3546 lines
172 KiB
Plaintext
3546 lines
172 KiB
Plaintext
Idea aplikacj.
|
|
W restauracji na kazdym stoliku będize naklejka z inwydidualnym kodem QR.
|
|
Klient bedzie mógł zeskanować kod QR i wejść do aplikacji.
|
|
|
|
|
|
|
|
Dane do bazy danych Microsoft SQL
|
|
$serverName = '192.168.20.20';
|
|
$connectionOptions = [
|
|
'Database' => 'Gastro',
|
|
'Uid' => 'sa',
|
|
'PWD' => 'karczma!@#26',
|
|
'CharacterSet' => 'UTF-8',
|
|
];
|
|
|
|
dbo.NGastroDTRachunek - Tutaj jest lista rachunków.
|
|
{
|
|
"schema": "dbo",
|
|
"name": "NGastroDTRachunek",
|
|
"full_name": "dbo.NGastroDTRachunek",
|
|
"columns": [
|
|
{
|
|
"name": "ID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": "(newid())",
|
|
"ordinal": 1
|
|
},
|
|
{
|
|
"name": "UzytkownikModyfikujacyID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 2
|
|
},
|
|
{
|
|
"name": "RabatID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 3
|
|
},
|
|
{
|
|
"name": "StolikID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 4
|
|
},
|
|
{
|
|
"name": "KartaID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 5
|
|
},
|
|
{
|
|
"name": "DotacjaID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 6
|
|
},
|
|
{
|
|
"name": "RezerwacjaID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 7
|
|
},
|
|
{
|
|
"name": "ZmianaUzytkownikOtwierajacyID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 8
|
|
},
|
|
{
|
|
"name": "RodzajOtwarciaRachunkuID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 9
|
|
},
|
|
{
|
|
"name": "PoziomCenowyID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 10
|
|
},
|
|
{
|
|
"name": "UzytkownikOtwierajacyID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 11
|
|
},
|
|
{
|
|
"name": "KasaID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 12
|
|
},
|
|
{
|
|
"name": "ZmianaID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 13
|
|
},
|
|
{
|
|
"name": "Numer",
|
|
"data_type": "int",
|
|
"type": "int(10,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 14
|
|
},
|
|
{
|
|
"name": "NumerZmiana",
|
|
"data_type": "int",
|
|
"type": "int(10,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 15
|
|
},
|
|
{
|
|
"name": "NumerReczny",
|
|
"data_type": "varchar",
|
|
"type": "varchar(10)",
|
|
"nullable": false,
|
|
"default": "('')",
|
|
"ordinal": 16
|
|
},
|
|
{
|
|
"name": "DataOtwarcia",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 17
|
|
},
|
|
{
|
|
"name": "DataZamkniecia",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 18
|
|
},
|
|
{
|
|
"name": "DataModyfikacji",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 19
|
|
},
|
|
{
|
|
"name": "Opis",
|
|
"data_type": "nvarchar",
|
|
"type": "nvarchar(400)",
|
|
"nullable": false,
|
|
"default": "('')",
|
|
"ordinal": 20
|
|
},
|
|
{
|
|
"name": "IloscOsob",
|
|
"data_type": "int",
|
|
"type": "int(10,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 21
|
|
},
|
|
{
|
|
"name": "Status",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 22
|
|
},
|
|
{
|
|
"name": "FlgRozliczony",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 23
|
|
},
|
|
{
|
|
"name": "RachunekWstepnyIlosc",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 24
|
|
},
|
|
{
|
|
"name": "FlgBlokadaEdycji",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 25
|
|
},
|
|
{
|
|
"name": "FlgBlokadaEdycjiPoRabacie",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 26
|
|
},
|
|
{
|
|
"name": "NIP",
|
|
"data_type": "varchar",
|
|
"type": "varchar(20)",
|
|
"nullable": false,
|
|
"default": "('')",
|
|
"ordinal": 27
|
|
},
|
|
{
|
|
"name": "FlgDotacjaUwzgledniaPozycjeNaDokumencie",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((1))",
|
|
"ordinal": 28
|
|
},
|
|
{
|
|
"name": "KodKreskowy",
|
|
"data_type": "varchar",
|
|
"type": "varchar(16)",
|
|
"nullable": false,
|
|
"default": "('')",
|
|
"ordinal": 29
|
|
},
|
|
{
|
|
"name": "FlgNumerWydrukowany",
|
|
"data_type": "bit",
|
|
"type": "bit",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 30
|
|
},
|
|
{
|
|
"name": "FlgKolejnoscSerwowania",
|
|
"data_type": "bit",
|
|
"type": "bit",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 31
|
|
},
|
|
{
|
|
"name": "OkresSerwowaniaNr",
|
|
"data_type": "int",
|
|
"type": "int(10,0)",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 32
|
|
},
|
|
{
|
|
"name": "FlgExecutionStatus",
|
|
"data_type": "int",
|
|
"type": "int(10,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 33
|
|
},
|
|
{
|
|
"name": "NumerDoOdbioruOdnawialny",
|
|
"data_type": "int",
|
|
"type": "int(10,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 34
|
|
},
|
|
{
|
|
"name": "FlgFastTrack",
|
|
"data_type": "bit",
|
|
"type": "bit",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 35
|
|
},
|
|
{
|
|
"name": "LimitWartosciRachunku",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 36
|
|
},
|
|
{
|
|
"name": "Telefon",
|
|
"data_type": "varchar",
|
|
"type": "varchar(15)",
|
|
"nullable": false,
|
|
"default": "('')",
|
|
"ordinal": 37
|
|
},
|
|
{
|
|
"name": "FlgRecznyTelefon",
|
|
"data_type": "bit",
|
|
"type": "bit",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 38
|
|
},
|
|
{
|
|
"name": "_FlgTCF",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 39
|
|
},
|
|
{
|
|
"name": "DS_RowVersion",
|
|
"data_type": "timestamp",
|
|
"type": "timestamp",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 40
|
|
}
|
|
],
|
|
"column_count": 40,
|
|
"order_column": "DS_RowVersion",
|
|
"order_reason": "timestamp\/rowversion"
|
|
},
|
|
|
|
|
|
Kolumna StolikID w tabeli SaleTransOrder jest ID stolika, który został przypisany do zamówienia. Kolumna Ta jest kluczem obcym, który wskazuje na tabelę SaleStolik.
|
|
|
|
Pozycje danego rachunku znajdują się w tabeli: dbo.NGastroDTRachunekPozycja
|
|
|
|
{
|
|
"schema": "dbo",
|
|
"name": "NGastroDTRachunekPozycja",
|
|
"full_name": "dbo.NGastroDTRachunekPozycja",
|
|
"columns": [
|
|
{
|
|
"name": "ID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": "(newid())",
|
|
"ordinal": 1
|
|
},
|
|
{
|
|
"name": "UzytkownikUsuwajacyID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 2
|
|
},
|
|
{
|
|
"name": "RabatID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 3
|
|
},
|
|
{
|
|
"name": "ZestawID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 4
|
|
},
|
|
{
|
|
"name": "KonfiguracjaDrukowaniaZamowienID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 5
|
|
},
|
|
{
|
|
"name": "UzytkownikAutoryzujacyID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 6
|
|
},
|
|
{
|
|
"name": "PrzyczynaStornZwrotowID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 7
|
|
},
|
|
{
|
|
"name": "PromocjaID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 8
|
|
},
|
|
{
|
|
"name": "KuponID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 9
|
|
},
|
|
{
|
|
"name": "DTRachunekID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 10
|
|
},
|
|
{
|
|
"name": "TowarID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 11
|
|
},
|
|
{
|
|
"name": "UzytkownikDodajacyID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 12
|
|
},
|
|
{
|
|
"name": "StawkaVatID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 13
|
|
},
|
|
{
|
|
"name": "KasaID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 14
|
|
},
|
|
{
|
|
"name": "PoziomCenowyID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 15
|
|
},
|
|
{
|
|
"name": "Ilosc",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,6)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 16
|
|
},
|
|
{
|
|
"name": "IloscZestawow",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,6)",
|
|
"nullable": false,
|
|
"default": "((1))",
|
|
"ordinal": 17
|
|
},
|
|
{
|
|
"name": "Cena",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 18
|
|
},
|
|
{
|
|
"name": "DataDodania",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 19
|
|
},
|
|
{
|
|
"name": "DataUsuniecia",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 20
|
|
},
|
|
{
|
|
"name": "DataModyfikacjiGrupySerwowania",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 21
|
|
},
|
|
{
|
|
"name": "IloscMinutOpoznienia",
|
|
"data_type": "int",
|
|
"type": "int(10,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 22
|
|
},
|
|
{
|
|
"name": "FlgWydrukowana",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 23
|
|
},
|
|
{
|
|
"name": "NumerGrupySerwowania",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((1))",
|
|
"ordinal": 24
|
|
},
|
|
{
|
|
"name": "IloscKawalkow",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((1))",
|
|
"ordinal": 25
|
|
},
|
|
{
|
|
"name": "RolaWKompozycji",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 26
|
|
},
|
|
{
|
|
"name": "NumerCzesci",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((1))",
|
|
"ordinal": 27
|
|
},
|
|
{
|
|
"name": "Notatka",
|
|
"data_type": "varchar",
|
|
"type": "varchar(255)",
|
|
"nullable": false,
|
|
"default": "('')",
|
|
"ordinal": 28
|
|
},
|
|
{
|
|
"name": "_p_StawkaVatGrupaSymbol",
|
|
"data_type": "varchar",
|
|
"type": "varchar(1)",
|
|
"nullable": false,
|
|
"default": "('')",
|
|
"ordinal": 29
|
|
},
|
|
{
|
|
"name": "_p_StawkaVatSymbol",
|
|
"data_type": "varchar",
|
|
"type": "varchar(10)",
|
|
"nullable": false,
|
|
"default": "('')",
|
|
"ordinal": 30
|
|
},
|
|
{
|
|
"name": "_p_StawkaVatSeparatorFiskalny",
|
|
"data_type": "varchar",
|
|
"type": "varchar(10)",
|
|
"nullable": false,
|
|
"default": "('')",
|
|
"ordinal": 31
|
|
},
|
|
{
|
|
"name": "_p_StawkaVatStawka",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 32
|
|
},
|
|
{
|
|
"name": "_p_StawkaVatFlgZwolniona",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 33
|
|
},
|
|
{
|
|
"name": "_c_Wartosc",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 34
|
|
},
|
|
{
|
|
"name": "_c_DataUtworzenia",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 35
|
|
},
|
|
{
|
|
"name": "CenaPodstawowa",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 36
|
|
},
|
|
{
|
|
"name": "CenaPozaZestawem",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 37
|
|
},
|
|
{
|
|
"name": "CenaPodstawowaPozaZestawem",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 38
|
|
},
|
|
{
|
|
"name": "GrupaZestawuID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 39
|
|
},
|
|
{
|
|
"name": "ZrodloRabatuID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 40
|
|
},
|
|
{
|
|
"name": "FlgRodzajZrodlaRabatu",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 41
|
|
},
|
|
{
|
|
"name": "IloscZrealizowana",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,6)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 42
|
|
},
|
|
{
|
|
"name": "StatusRealizacji",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 43
|
|
},
|
|
{
|
|
"name": "DataZmianyStatusuRealizacji",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 44
|
|
},
|
|
{
|
|
"name": "StatusEdycji",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 45
|
|
},
|
|
{
|
|
"name": "DataWydruku",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 46
|
|
},
|
|
{
|
|
"name": "NazwaDanieOtwarte",
|
|
"data_type": "varchar",
|
|
"type": "varchar(200)",
|
|
"nullable": false,
|
|
"default": "('')",
|
|
"ordinal": 47
|
|
},
|
|
{
|
|
"name": "FlgPozycjaNadrzedna",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 48
|
|
},
|
|
{
|
|
"name": "IloscTalerzy",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((1))",
|
|
"ordinal": 49
|
|
},
|
|
{
|
|
"name": "DotacjaIlosc",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,6)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 50
|
|
},
|
|
{
|
|
"name": "DotacjaWartosc",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 51
|
|
},
|
|
{
|
|
"name": "DotacjaPierwotnaWartosc",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 52
|
|
},
|
|
{
|
|
"name": "KredytWartosc",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 53
|
|
},
|
|
{
|
|
"name": "KredytPierwotnaWartosc",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 54
|
|
},
|
|
{
|
|
"name": "FlgPotwierdzona",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 55
|
|
},
|
|
{
|
|
"name": "DodatekDlaDTRachunekPozycjaID",
|
|
"data_type": "uniqueidentifier",
|
|
"type": "uniqueidentifier",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 56
|
|
},
|
|
{
|
|
"name": "PunktyLojalnosciowe",
|
|
"data_type": "int",
|
|
"type": "int(10,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 57
|
|
},
|
|
{
|
|
"name": "FlgDowolnaCena",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 58
|
|
},
|
|
{
|
|
"name": "DataWyswietleniaNaKDS",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 59
|
|
},
|
|
{
|
|
"name": "FlgCzyZestornowanyZRozchodem",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 60
|
|
},
|
|
{
|
|
"name": "TowarKodKreskowy",
|
|
"data_type": "varchar",
|
|
"type": "varchar(100)",
|
|
"nullable": true,
|
|
"default": null,
|
|
"ordinal": 61
|
|
},
|
|
{
|
|
"name": "PromocjaTyp",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 62
|
|
},
|
|
{
|
|
"name": "DataWykonania",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 63
|
|
},
|
|
{
|
|
"name": "DataWydania",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 64
|
|
},
|
|
{
|
|
"name": "DataOdebrania",
|
|
"data_type": "datetime",
|
|
"type": "datetime",
|
|
"nullable": false,
|
|
"default": "('1900-01-01')",
|
|
"ordinal": 65
|
|
},
|
|
{
|
|
"name": "CenaPoWydzieleniu",
|
|
"data_type": "decimal",
|
|
"type": "decimal(19,2)",
|
|
"nullable": true,
|
|
"default": "(NULL)",
|
|
"ordinal": 66
|
|
},
|
|
{
|
|
"name": "FlgSerwis",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 67
|
|
},
|
|
{
|
|
"name": "FlgNapiwek",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 68
|
|
},
|
|
{
|
|
"name": "FlgBlokadaEdycji",
|
|
"data_type": "bit",
|
|
"type": "bit",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 69
|
|
},
|
|
{
|
|
"name": "_FlgTCF",
|
|
"data_type": "tinyint",
|
|
"type": "tinyint(3,0)",
|
|
"nullable": false,
|
|
"default": "((0))",
|
|
"ordinal": 70
|
|
},
|
|
{
|
|
"name": "DS_RowVersion",
|
|
"data_type": "timestamp",
|
|
"type": "timestamp",
|
|
"nullable": false,
|
|
"default": null,
|
|
"ordinal": 71
|
|
}
|
|
],
|
|
"column_count": 71,
|
|
"order_column": "DS_RowVersion",
|
|
"order_reason": "timestamp\/rowversion"
|
|
},
|
|
|
|
|
|
CREATE PROCEDURE [dbo].[PV_WSKDSGetBill]
|
|
@cGetRequestTemplate bit = 0,
|
|
@cGetResponseTemplate bit = 0,
|
|
@cRequest xml=null
|
|
AS BEGIN
|
|
SET NOCOUNT ON;
|
|
SET DATEFORMAT ymd;
|
|
|
|
--------------------------------------------------------------------------
|
|
-- kolejne kroki wykonania procedury
|
|
|
|
IF @cGetRequestTemplate = 1 and @cGetResponseTemplate = 0
|
|
BEGIN
|
|
|
|
SELECT '<request>
|
|
<DeviceID typ="Int"/>
|
|
<SessionID typ="Varchar"/>
|
|
</request>' as template
|
|
RETURN;
|
|
|
|
END
|
|
|
|
IF @cGetResponseTemplate = 1 and @cGetRequestTemplate = 0
|
|
BEGIN
|
|
SELECT
|
|
'<response>
|
|
<SessionID typ="Varchar"/>
|
|
<ExecutionStatus typ="Int"/>
|
|
<Bills typ="lista">
|
|
<Bill typ="klasa">
|
|
<ID typ="VarChar"/>
|
|
<Description typ="VarChar"/>
|
|
<Remark typ="VarChar"/>
|
|
<PointOfSale typ="VarChar"/>
|
|
<User typ="VarChar"/>
|
|
<Date typ="DateTime"/>
|
|
<OpenningType typ="Int"/>
|
|
<Articles typ="lista">
|
|
<Article typ="klasa">
|
|
<ID typ="VarChar"/>
|
|
<ArticleID typ="VarChar"/>
|
|
<Name typ="VarChar"/>
|
|
<ServingGroup typ="Int"/>
|
|
<ServingGroupName typ="VarChar"/>
|
|
<PersonNumber typ="Int"/>
|
|
<Remark typ="VarChar"/>
|
|
<QuantitySet typ="Int"/>
|
|
<QuantityToDo typ="Decimal"/>
|
|
<QuantityDone typ="Decimal"/>
|
|
<QuantityRemoved typ="Decimal"/>
|
|
<QuantityPrecision typ="Int"/>
|
|
<Date typ="DateTime"/>
|
|
<IsModified typ="TinyInt"/>
|
|
<IsNew typ="TinyInt"/>
|
|
<StatusOfPreparation typ="TinyInt"/>
|
|
<Color typ="VarChar"/>
|
|
<ShowWeight typ="Int"/>
|
|
<ConnectionID typ="VarChar"/>
|
|
<SubArticles typ="lista">
|
|
<SubArticle typ="klasa">
|
|
<ID typ="VarChar"/>
|
|
<SubArticleID typ="VarChar"/>
|
|
<Name typ="VarChar"/>
|
|
<QuantitySet typ="Int"/>
|
|
<Quantity typ="Decimal"/>
|
|
<QuantityPrecision typ="Int"/>
|
|
<IsPrimary typ="TinyInt"/>
|
|
<StatusOfPreparation typ="TinyInt"/>
|
|
<IsModified typ="TinyInt"/>
|
|
</SubArticle>
|
|
</SubArticles>
|
|
</Article>
|
|
</Articles>
|
|
</Bill>
|
|
</Bills>
|
|
</response>' as template
|
|
RETURN;
|
|
END
|
|
DECLARE @DeviceID UNIQUEIDENTIFIER,
|
|
@SessionID UNIQUEIDENTIFIER,
|
|
@KierunekWydrukuWszystkieID UNIQUEIDENTIFIER,
|
|
@DeviceNumber INT,
|
|
@ExecutionStatus INT,
|
|
@result XML;
|
|
|
|
DECLARE @SortType INT = 0, -- 0 - najstarsze na poczatku; 1 - najnowsze na poczatku
|
|
@WyswietlanieEdytowanychRachunkow INT = 0, -- 0 - nie wyświetlamy rachunków w trakcie edycji; 1 - wyświetlane są rachunki już podczas ich edycji
|
|
@WyswietlanieWykonanychPozycji INT = 0, -- 0 - nie wyświetlamy wykonanych pozycji; 1 - wyświetlane są pozycje już wykonane
|
|
@RodzajNumeracjiNaKDS INT = 0, -- 0 - Globalny, 1 - Zmianowy, 2- DoOdbioru, 3 - GlobalnyDoOdbioru, 4 - ZmianowyDoOdbioru, 5 - DoOdbioruGlobalny = 5, 6 - DoOdbioruZmianowy
|
|
@RodzajKDS INT = 0, -- 0 - KDS kuchenny; 1 - KDS wydawka
|
|
@KDSWydawkaKolorPozycjiWPrzygotowaniu INT = 0, -- kolor dla pozycji w trakcie przygotowania - dla KDS wydawki
|
|
@KDSWydawkaKolorPozycjiWydanych INT = 0, -- kolor dla pozycji przygotowanych - dla KDS wydawki
|
|
@KDsWydawkaKolorPozycjiWezwanychDoWydania INT = 0, -- kolor dla pozycji wezwanych do wydania - dla KDS wydawki
|
|
@RodzajNumerkaDoOdbioruZamowienia INT = 0,
|
|
@KDSExistsIssued BIT = 1, -- verification of existing KDS Issued
|
|
@WyswietlajRachunkiZOstatnichGodzin INT = 48,
|
|
@DataCzasOdKtorejWyswietlacRachunki DATETIME = DATEADD(hh, -48, GETDATE());
|
|
|
|
SET @KierunekWydrukuWszystkieID = '7DA780B3-6E27-49F7-AE4A-1F8BDC792A72'
|
|
|
|
SET @ExecutionStatus = 0;
|
|
SET @DeviceID = NULL;
|
|
|
|
SELECT @DeviceNumber = CAST(NULLIF(tab.item.value('DeviceID[1]','INT'),'0') AS INT),
|
|
@SessionID = CAST(NULLIF(tab.item.value('SessionID[1]','VARCHAR(36)'),'') AS UNIQUEIDENTIFIER)
|
|
FROM @cRequest.nodes('//GetBill') AS tab(item)
|
|
|
|
SELECT @DeviceID = u.ID,
|
|
@RodzajKDS = CAST(ISNULL(uk1.Wartosc, '0') AS INT),
|
|
@KDSWydawkaKolorPozycjiWPrzygotowaniu = CAST(ISNULL(uk2.Wartosc, '0') AS INT),
|
|
@KDSWydawkaKolorPozycjiWydanych = CAST(ISNULL(uk3.Wartosc, '0') AS INT),
|
|
@KDsWydawkaKolorPozycjiWezwanychDoWydania = CAST(ISNULL(uk4.Wartosc, '0') AS INT)
|
|
FROM NGastroUrzadzenie u
|
|
INNER JOIN NGastroUrzadzenieTyp ut ON u.UrzadzenieTypID = ut.ID
|
|
AND ut.Symbol = 'Android'
|
|
INNER JOIN NGastroUrzadzenieKonfiguracja uk ON uk.UrzadzenieID = u.ID
|
|
AND uk.Nazwa = 'Number'
|
|
LEFT JOIN NGastroUrzadzenieKonfiguracja uk1 ON uk1.UrzadzenieID = u.ID
|
|
AND uk1.Nazwa = 'Tryb'
|
|
LEFT JOIN NGastroUrzadzenieKonfiguracja uk2 ON uk2.UrzadzenieID = u.ID
|
|
AND uk2.Nazwa = 'KDSColorInProgress'
|
|
LEFT JOIN NGastroUrzadzenieKonfiguracja uk3 ON uk3.UrzadzenieID = u.ID
|
|
AND uk3.Nazwa = 'KDSColorDone'
|
|
LEFT JOIN NGastroUrzadzenieKonfiguracja uk4 ON uk4.UrzadzenieID = u.ID
|
|
AND uk4.Nazwa = 'KDSColorItemsCalled'
|
|
WHERE CAST(uk.Wartosc AS INT) = @DeviceNumber
|
|
AND u.FlgAktywne = 1
|
|
|
|
SET @SortType =
|
|
(
|
|
SELECT TOP 1 k.TInt
|
|
FROM NSysAppKonfiguracjaSzablon ks
|
|
INNER JOIN NSysAppKonfiguracja k ON k.SzablonID = ks.ID
|
|
INNER JOIN NSysApp a ON a.ID = ks.AppID
|
|
AND a.Nr = 8
|
|
WHERE ks.Symbol = 'Local.KDS.BillSortOrder'
|
|
)
|
|
|
|
SET @RodzajNumeracjiNaKDS =
|
|
(
|
|
SELECT TOP 1 k.TInt
|
|
FROM NSysAppKonfiguracjaSzablon ks
|
|
INNER JOIN NSysAppKonfiguracja k ON k.SzablonID = ks.ID
|
|
INNER JOIN NSysApp a ON a.ID = ks.AppID
|
|
AND a.Nr = 8
|
|
WHERE ks.Symbol = 'Lokal.Sprzedaz.RodzajNumeracjiNaKDS'
|
|
)
|
|
|
|
SET @WyswietlanieEdytowanychRachunkow =
|
|
(
|
|
SELECT TOP 1 k.TInt
|
|
FROM NSysAppKonfiguracjaSzablon ks
|
|
INNER JOIN NSysAppKonfiguracja k ON k.SzablonID = ks.ID
|
|
INNER JOIN NSysApp a ON a.ID = ks.AppID AND a.Nr = 8
|
|
WHERE ks.Symbol = 'Local.KDS.ShowBillsOnEdit'
|
|
)
|
|
|
|
SET @WyswietlanieWykonanychPozycji =
|
|
(
|
|
SELECT TOP 1 k.TInt
|
|
FROM NSysAppKonfiguracjaSzablon ks
|
|
INNER JOIN NSysAppKonfiguracja k ON k.SzablonID = ks.ID
|
|
INNER JOIN NSysApp a ON a.ID = ks.AppID AND a.Nr = 8
|
|
WHERE ks.Symbol = 'Local.KDS.ShowDonePositions'
|
|
)
|
|
|
|
SET @RodzajNumerkaDoOdbioruZamowienia =
|
|
(
|
|
SELECT TOP 1 k.TInt
|
|
FROM NSysAppKonfiguracjaSzablon ks
|
|
INNER JOIN NSysAppKonfiguracja k ON k.SzablonID = ks.ID
|
|
INNER JOIN NSysApp a ON a.ID = ks.AppID AND a.Nr = 8
|
|
WHERE ks.Symbol = 'Lokal.POS.RodzajNumerkaDoOdbioruZamowienia'
|
|
)
|
|
|
|
SET @WyswietlajRachunkiZOstatnichGodzin =
|
|
(
|
|
SELECT TOP 1 k.TInt
|
|
FROM NSysAppKonfiguracjaSzablon ks
|
|
INNER JOIN NSysAppKonfiguracja k ON k.SzablonID = ks.ID
|
|
INNER JOIN NSysApp a ON a.ID = ks.AppID AND a.Nr = 8
|
|
WHERE ks.Symbol = 'Local.KDS.ShowOrdersFromTheLastHours'
|
|
)
|
|
|
|
IF(@WyswietlajRachunkiZOstatnichGodzin > 0)
|
|
SET @DataCzasOdKtorejWyswietlacRachunki = DATEADD(hh, (-1)*@WyswietlajRachunkiZOstatnichGodzin, GETDATE());
|
|
|
|
if @RodzajKDS = 0
|
|
if NOT EXISTS (
|
|
SELECT u.*
|
|
FROM NGastroUrzadzenie u
|
|
INNER JOIN NGastroUrzadzenieTyp ut ON u.UrzadzenieTypID = ut.ID AND ut.Symbol = 'Android'
|
|
inner JOIN NGastroUrzadzenieKonfiguracja uk1 ON uk1.UrzadzenieID = u.ID AND uk1.Nazwa = 'Tryb'
|
|
inner join NGastroUrzadzenieKdsWydawkaDla w on u.id = w.UrzadzenieIDWydawka and w.UrzadzenieIDKds = @DeviceID
|
|
WHERE CAST(uk1.Wartosc AS INT) = 1
|
|
AND u.FlgAktywne = 1
|
|
)
|
|
AND EXISTS (
|
|
SELECT u.*
|
|
FROM NGastroUrzadzenie u
|
|
INNER JOIN NGastroUrzadzenieTyp ut ON u.UrzadzenieTypID = ut.ID AND ut.Symbol = 'Android'
|
|
inner JOIN NGastroUrzadzenieKonfiguracja uk1 ON uk1.UrzadzenieID = u.ID AND uk1.Nazwa = 'Tryb'
|
|
WHERE CAST(uk1.Wartosc AS INT) = 2
|
|
AND u.FlgAktywne = 1
|
|
)
|
|
set @KDSExistsIssued = 0
|
|
|
|
|
|
IF (OBJECT_ID('tempdb..#BillsToShow') IS NOT NULL)
|
|
DROP TABLE #BillsToShow
|
|
CREATE TABLE #BillsToShow (ID UNIQUEIDENTIFIER)
|
|
|
|
IF (OBJECT_ID('tempdb..#LastBills') IS NOT NULL)
|
|
DROP TABLE #LastBills
|
|
CREATE TABLE #LastBills (ID UNIQUEIDENTIFIER)
|
|
|
|
IF (OBJECT_ID('tempdb..#OpenBillTypes') IS NOT NULL)
|
|
DROP TABLE #OpenBillTypes
|
|
CREATE TABLE #OpenBillTypes (ID UNIQUEIDENTIFIER)
|
|
|
|
IF @RodzajKDS IN (0, 3)
|
|
BEGIN
|
|
INSERT INTO #OpenBillTypes
|
|
SELECT RodzajOtwarciaRachunkuID
|
|
FROM NGastroUrzadzenieRodzajOtwarciaRachunku
|
|
WHERE UrzadzenieID = @DeviceID
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT INTO #OpenBillTypes
|
|
SELECT RodzajOtwarciaRachunkuID
|
|
FROM NGastroUrzadzenieRodzajOtwarciaRachunku u
|
|
INNER JOIN NGastroUrzadzenieKdsWydawkaDla w ON u.UrzadzenieID = w.UrzadzenieIDKds
|
|
WHERE w.UrzadzenieIDWydawka = @DeviceID
|
|
GROUP BY RodzajOtwarciaRachunkuID
|
|
END
|
|
|
|
|
|
INSERT INTO #LastBills
|
|
SELECT rachunek.ID
|
|
FROM NGastroDTRachunek rachunek
|
|
INNER JOIN NGastroUrzadzenieKasa urzadzenieKasa on urzadzenieKasa.UrzadzenieID=@DeviceID
|
|
INNER JOIN #OpenBillTypes obt ON obt.ID = rachunek.RodzajOtwarciaRachunkuID
|
|
WHERE
|
|
rachunek.DataOtwarcia >= @DataCzasOdKtorejWyswietlacRachunki
|
|
AND (rachunek.KasaID = urzadzenieKasa.KasaID)
|
|
AND rachunek.Status <> 2 -- rachunek usunięty
|
|
|
|
IF(@RodzajKDS = 0 AND @KDSExistsIssued = 0)
|
|
BEGIN
|
|
DECLARE @UrzadzenieKasa TABLE (UrzadzenieID uniqueidentifier, KasaID uniqueidentifier)
|
|
INSERT INTO @UrzadzenieKasa (UrzadzenieID, KasaID)
|
|
SELECT uk.UrzadzenieID, uk.KasaID
|
|
FROM NGastroUrzadzenieKasa uk
|
|
INNER JOIN NGastroUrzadzenie u ON u.ID = uk.UrzadzenieID
|
|
INNER JOIN NGastroUrzadzenieTyp ut ON u.UrzadzenieTypID = ut.ID AND ut.Symbol = 'Android'
|
|
INNER JOIN NGastroUrzadzenieKonfiguracja uk1 ON uk1.UrzadzenieID = u.ID AND uk1.Nazwa = 'Tryb'
|
|
WHERE CAST(uk1.Wartosc AS INT) = 2
|
|
AND u.FlgAktywne = 1
|
|
|
|
-- nie ma wydawki, usuwamy zbumpowane rachunki ,dla których nie ma order number (i był potrzebny tylko 1 bump)
|
|
DELETE #LastBills
|
|
WHERE ID IN (
|
|
SELECT rach.ID
|
|
FROM #LastBills rach
|
|
INNER JOIN NGastroDTRachunek rr ON rr.ID = rach.ID
|
|
LEFT JOIN NGastroDTRachunekPozycja p on p.DTRachunekID = rach.ID and ISNULL(p.StatusRealizacji, 6) < 3
|
|
LEFT JOIN @UrzadzenieKasa uk ON uk.KasaID = rr.KasaID
|
|
WHERE p.ID IS NULL
|
|
AND uk.KasaID IS NULL
|
|
)
|
|
|
|
END
|
|
|
|
IF(@RodzajKDS = 3)
|
|
DELETE #LastBills
|
|
WHERE ID IN (
|
|
SELECT rach.ID
|
|
FROM #LastBills rach
|
|
INNER JOIN NGastroDTRachunek rr ON rr.ID = rach.ID
|
|
LEFT JOIN NGastroDTRachunekPozycja p on p.DTRachunekID = rach.ID and ISNULL(p.StatusRealizacji, 6) IN (3,4)
|
|
LEFT JOIN @UrzadzenieKasa uk ON uk.KasaID = rr.KasaID
|
|
WHERE p.ID IS NULL
|
|
AND uk.KasaID IS NULL
|
|
)
|
|
|
|
IF (OBJECT_ID('tempdb..#Pizza') IS NOT NULL)
|
|
DROP TABLE #Pizza
|
|
CREATE TABLE #Pizza
|
|
(
|
|
BillID UNIQUEIDENTIFIER NOT NULL,
|
|
ID UNIQUEIDENTIFIER NOT NULL,
|
|
TowarID UNIQUEIDENTIFIER NOT NULL,
|
|
NazwaZestawu VARCHAR(200) COLLATE POLISH_CS_AI NOT NULL,
|
|
NazwaTowaru VARCHAR(200) COLLATE POLISH_CS_AI NOT NULL,
|
|
Ilosc DECIMAL(19,6) NOT NULL,
|
|
Skladnik TINYINT NOT NULL,
|
|
Zamiennik TINYINT NOT NULL,
|
|
PizzaBaza TINYINT NOT NULL,
|
|
IloscBaza DECIMAL(19,6) NOT NULL,
|
|
NumerCzesci INT,
|
|
GrupaZestawuID UNIQUEIDENTIFIER NOT NULL
|
|
)
|
|
|
|
IF (OBJECT_ID('tempdb..#Pozycje') IS NOT NULL)
|
|
DROP TABLE #Pozycje
|
|
CREATE TABLE #Pozycje
|
|
(
|
|
ID UNIQUEIDENTIFIER,
|
|
DTRachunekID UNIQUEIDENTIFIER,
|
|
DodatekDlaDTRachunekPozycjaID UNIQUEIDENTIFIER,
|
|
FlgPozycjaNadrzedna TINYINT,
|
|
GrupaZestawuID UNIQUEIDENTIFIER,
|
|
TowarID UNIQUEIDENTIFIER,
|
|
FlgPotwierdzona TINYINT,
|
|
StatusRealizacji TINYINT,
|
|
UzytkownikUsuwajacyID UNIQUEIDENTIFIER ,
|
|
KonfiguracjaDrukowaniaZamowienID UNIQUEIDENTIFIER,
|
|
DataWyswietleniaNaKDS DATETIME,
|
|
DataWydruku DATETIME,
|
|
DataDodania DATETIME,
|
|
ZestawID UNIQUEIDENTIFIER,
|
|
NumerCzesci TINYINT,
|
|
NumerGrupySerwowania TINYINT,
|
|
Notatka VARCHAR(255),
|
|
Ilosc DECIMAL(19,6),
|
|
IloscZestawow DECIMAL(19,6),
|
|
IloscZrealizowana DECIMAL(19,6),
|
|
IloscKawalkow TINYINT,
|
|
DataUsuniecia DATETIME,
|
|
DataModyfikacjiGrupySerwowania DATETIME,
|
|
RolaWKompozycji TINYINT,
|
|
NazwadanieOtwarte VARCHAR(200) COLLATE POLISH_CS_AI NOT NULL
|
|
)
|
|
|
|
IF (OBJECT_ID('tempdb..#Bills') IS NOT NULL)
|
|
DROP TABLE #Bills
|
|
CREATE TABLE #Bills
|
|
(
|
|
ID UNIQUEIDENTIFIER,
|
|
Description NVARCHAR(150),
|
|
UserDescription VARCHAR(20),
|
|
Remark VARCHAR(150),
|
|
PointOfSale NVARCHAR(50),
|
|
Date DATETIME,
|
|
OpenningType INT,
|
|
FlgFastTrack TINYINT
|
|
)
|
|
IF (OBJECT_ID('tempdb..#Articles') IS NOT NULL)
|
|
DROP TABLE #Articles
|
|
CREATE TABLE #Articles
|
|
(
|
|
ID UNIQUEIDENTIFIER,
|
|
BillID UNIQUEIDENTIFIER,
|
|
ArticleID UNIQUEIDENTIFIER,
|
|
PackageID UNIQUEIDENTIFIER,
|
|
Name VARCHAR(200) COLLATE POLISH_CS_AI DEFAULT '',
|
|
ServingGroup INT DEFAULT 0,
|
|
ServingGroupName VARCHAR(50) COLLATE POLISH_CS_AI DEFAULT '',
|
|
PersonNumber INT DEFAULT 0,
|
|
Remark VARCHAR(255) COLLATE POLISH_CS_AI DEFAULT '',
|
|
QuantitySet TINYINT DEFAULT 0,
|
|
QuantityToDo DECIMAL(19,6) DEFAULT 0,
|
|
QuantityDone DECIMAL(19,6) DEFAULT 0,
|
|
QuantityRemoved DECIMAL(19,6) DEFAULT 0,
|
|
QuantityPrecision INT DEFAULT 0,
|
|
Date DATETIME,
|
|
IsModified TINYINT DEFAULT 0,
|
|
IsNew TINYINT DEFAULT 0,
|
|
StatusOfPreparation TINYINT DEFAULT 0,
|
|
ArticleType TINYINT DEFAULT 0,
|
|
PartNumber TINYINT DEFAULT 1,
|
|
Parts TINYINT DEFAULT 1,
|
|
ServingGroupModificationDate DATETIME,
|
|
Color INT,
|
|
ShowWeight INT,
|
|
ConnectionID UNIQUEIDENTIFIER
|
|
)
|
|
IF (OBJECT_ID('tempdb..#Modifiers') IS NOT NULL)
|
|
DROP TABLE #Modifiers
|
|
CREATE TABLE #Modifiers
|
|
(
|
|
ItemID UNIQUEIDENTIFIER,
|
|
ZamiennikTowarID UNIQUEIDENTIFIER,
|
|
TowarNazwaDlaKas VARCHAR(MAX),
|
|
Ilosc DECIMAL(19,6),
|
|
DeleteFlag TINYINT,
|
|
Pozycja INT
|
|
)
|
|
IF (OBJECT_ID('tempdb..#SubArticles') IS NOT NULL)
|
|
DROP TABLE #SubArticles
|
|
CREATE TABLE #SubArticles
|
|
(
|
|
ID UNIQUEIDENTIFIER,
|
|
ArticleID UNIQUEIDENTIFIER,
|
|
SubArticleID UNIQUEIDENTIFIER,
|
|
Name VARCHAR(200) COLLATE POLISH_CS_AI DEFAULT '',
|
|
Quantity DECIMAL(19,6) DEFAULT 0,
|
|
QuantityPrecision INT DEFAULT 0,
|
|
IsPrimary TINYINT DEFAULT 0,
|
|
StatusOfPreparation TINYINT DEFAULT 0,
|
|
IsModified TINYINT DEFAULT 0,
|
|
Numer INT,
|
|
NumerCzesci INT DEFAULT 0,
|
|
GrupaZestawuID UNIQUEIDENTIFIER,
|
|
Pozycja INT,
|
|
ZestawID UNIQUEIDENTIFIER,
|
|
IsModify TINYINT DEFAULT 1,
|
|
IsAddition TINYINT DEFAULT 0,
|
|
Date DATETIME,
|
|
Remark VARCHAR(255) COLLATE POLISH_CS_AI DEFAULT ''
|
|
)
|
|
|
|
SET @SessionID = ISNULL(@SessionID, NEWID())
|
|
|
|
IF EXISTS(SELECT * FROM NGastroUrzadzenieAktywnosc ua WHERE ua.ID <> @SessionID AND ua.UrzadzenieID = @DeviceID
|
|
AND DATEDIFF(second, ua.DataOstatniejAktywnosci, GETDATE()) < 3 )
|
|
BEGIN
|
|
SET @ExecutionStatus = 1;
|
|
--GOTO Result;
|
|
END
|
|
|
|
IF @DeviceID IS NULL
|
|
BEGIN
|
|
SET @ExecutionStatus = 2;
|
|
GOTO Result;
|
|
END
|
|
|
|
IF EXISTS(SELECT 1 FROM NGastroUrzadzenieAktywnosc ua WHERE ua.ID = @SessionID)
|
|
BEGIN
|
|
UPDATE NGastroUrzadzenieAktywnosc
|
|
SET DataOstatniejAktywnosci = GETDATE()
|
|
WHERE ID = @SessionID
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT INTO NGastroUrzadzenieAktywnosc(ID, UrzadzenieID, DataOstatniejAktywnosci)
|
|
VALUES( @SessionID, @DeviceID, GETDATE())
|
|
END
|
|
|
|
IF (OBJECT_ID('tempdb..#BillsTemp') IS NOT NULL)
|
|
DROP TABLE #BillsTemp
|
|
CREATE TABLE #BillsTemp (ID UNIQUEIDENTIFIER)
|
|
|
|
IF (OBJECT_ID('tempdb..#ResultModyf') IS NOT NULL)
|
|
DROP TABLE #ResultModyf
|
|
|
|
CREATE TABLE #ResultModyf
|
|
(
|
|
PozycjaID UNIQUEIDENTIFIER,
|
|
ZamiennikTowarID UNIQUEIDENTIFIER,
|
|
KonfiguracjaDrukowaniaZamowienID UNIQUEIDENTIFIER,
|
|
TowarNazwaDlaKas VARCHAR(MAX),
|
|
Ilosc DECIMAL(19,6),
|
|
DeleteFlag TINYINT,
|
|
Pozycja INT
|
|
)
|
|
|
|
|
|
|
|
IF @RodzajKDS = 0
|
|
BEGIN
|
|
|
|
DECLARE @TabPozRachID NGastroTableOfID
|
|
INSERT INTO @TabPozRachID
|
|
SELECT DISTINCT rp.DTRachunekID
|
|
FROM #LastBills b
|
|
INNER JOIN NGastroDTRachunekPozycja rp ON rp.DTRachunekID = b.ID
|
|
INNER JOIN NGAStroTowar t ON rp.TowarID = t.ID and t.NumerPlu<99900
|
|
INNER JOIN NGAStroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
AND ukdz.UrzadzenieID = @DeviceID
|
|
WHERE rp.StatusRealizacji in (1,2,99) OR (@WyswietlanieEdytowanychRachunkow = 1 AND rp.StatusRealizacji = 0)
|
|
|
|
|
|
INSERT INTO #Pozycje
|
|
SELECT DISTINCT *
|
|
FROM
|
|
(
|
|
SELECT rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,rp.KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM NGAStroDTRachunekPozycja rp
|
|
INNER JOIN #LastBills r on r.ID = rp.DtrachunekID
|
|
INNER JOIN NGAStroTowar t ON rp.TowarID = t.ID and t.NumerPlu<99900
|
|
INNER JOIN NGAStroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
AND ukdz.UrzadzenieID = @DeviceID
|
|
WHERE
|
|
(
|
|
(@WyswietlanieEdytowanychRachunkow = 1 AND (RP.StatusRealizacji <> 99 OR rp.FlgPotwierdzona = 1))
|
|
OR (@WyswietlanieEdytowanychRachunkow = 0 AND rp.FlgPotwierdzona = 1 AND rp.StatusRealizacji > 0 )
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
AND (
|
|
rp.StatusRealizacji=99
|
|
OR (@WyswietlanieWykonanychPozycji = 0 AND rp.StatusRealizacji < 3)
|
|
OR (@WyswietlanieWykonanychPozycji = 1
|
|
AND rp.StatusRealizacji < 5
|
|
AND EXISTS(SELECT * FROM @TabPozRachID rach WHERE rach.ID = r.ID)
|
|
|
|
)
|
|
OR ( @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
OR (@WyswietlanieEdytowanychRachunkow = 1 AND rp.StatusRealizacji = 0)
|
|
)
|
|
AND ( @KDSExistsIssued = 0
|
|
OR (@KDSExistsIssued = 1
|
|
AND EXISTS(SELECT * FROM @TabPozRachID rach WHERE rach.ID = r.ID)
|
|
)
|
|
)
|
|
UNION ALL
|
|
SELECT rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,rp.KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM NGAStroDTRachunekPozycja rp
|
|
INNER JOIN #LastBills r on r.ID = rp.DtrachunekID
|
|
INNER JOIN NGAStroTowar t ON rp.TowarID = t.ID and t.NumerPlu>99900
|
|
INNER JOIN NGAStroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
AND ukdz.UrzadzenieID = @DeviceID
|
|
WHERE (rp.StatusRealizacji=99
|
|
OR (@WyswietlanieWykonanychPozycji = 0 and rp.StatusRealizacji < 3)
|
|
OR (@WyswietlanieWykonanychPozycji = 1 and rp.StatusRealizacji < 5 )
|
|
OR ( @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
)
|
|
AND
|
|
(
|
|
(@WyswietlanieEdytowanychRachunkow = 1 AND @RodzajKDS = 0)
|
|
OR (@WyswietlanieEdytowanychRachunkow = 0 AND rp.FlgPotwierdzona = 1 AND rp.StatusRealizacji > 0 )
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
AND ( @KDSExistsIssued = 0
|
|
OR(@KDSExistsIssued = 1
|
|
AND EXISTS(SELECT * FROM NGastroDTRachunekPozycja rp
|
|
WHERE rp.DTRachunekID = r.ID
|
|
AND rp.StatusRealizacji in (1,2,99)
|
|
)
|
|
)
|
|
)
|
|
) A
|
|
|
|
INSERT INTO #Pozycje
|
|
SELECT DISTINCT *
|
|
FROM
|
|
(
|
|
SELECT rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,p.KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM NGAStroDTRachunekPozycja rp
|
|
INNER JOIN NGastroDTRachunekPozycjaPowiazanie pow ON pow.DTRachunekPozycjaID = rp.ID
|
|
LEFT JOIN #Pozycje p ON p.ID = pow.DTRachunekPozycjaDocelowaID
|
|
WHERE pow.DTRachunekPozycjaDocelowaID IN (SELECT ID FROM #Pozycje)
|
|
AND pow.DTRachunekPozycjaID NOT IN (SELECT ID FROM #Pozycje)
|
|
|
|
)B
|
|
|
|
---- towary które mają wybrame modyfikatory ze zgodnym kierunkiem
|
|
INSERT INTO #Pozycje
|
|
SELECT DISTINCT *
|
|
FROM
|
|
(
|
|
SELECT
|
|
rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,tm.KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM #LastBills r
|
|
INNER JOIN NGastroDTRachunekPozycja rp ON r.ID = rp.DtrachunekID
|
|
INNER JOIN NGastroDTRachunekPozycjaModyfikacja rpm ON rp.ID = rpm.DTRachunekPozycjaID
|
|
INNER JOIN NGastroTowar t ON t.ID = rpm.TowarID
|
|
INNER JOIN NGastroTowar tm ON tm.ID = rpm.ModyfikatorID
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON kdz.ID = ISNULL(rp.KonfiguracjaDrukowaniaZamowienID, tm.KonfiguracjaDrukowaniaZamowienID)
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
AND ukdz.UrzadzenieID = @DeviceID
|
|
WHERE rpm.Ilosc > 0
|
|
AND rpm.ModyfikatorIlosc > 0
|
|
AND (rp.StatusRealizacji=99
|
|
OR (@WyswietlanieWykonanychPozycji = 0 and rp.StatusRealizacji < 3)
|
|
OR (@WyswietlanieWykonanychPozycji = 1 and rp.StatusRealizacji < 5 )
|
|
OR ( @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
)
|
|
AND
|
|
(
|
|
(@WyswietlanieEdytowanychRachunkow = 1 AND @RodzajKDS = 0)
|
|
OR (@WyswietlanieEdytowanychRachunkow = 0 AND rp.FlgPotwierdzona = 1 AND rp.StatusRealizacji > 0 )
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
AND ( @KDSExistsIssued = 0
|
|
OR(@KDSExistsIssued = 1
|
|
AND EXISTS(SELECT * FROM NGastroDTRachunekPozycja rp
|
|
WHERE rp.DTRachunekID = r.ID
|
|
AND rp.StatusRealizacji in (0,1,2,99)
|
|
)
|
|
)
|
|
)
|
|
|
|
)modyf
|
|
|
|
INSERT INTO #Pozycje
|
|
SELECT DISTINCT *
|
|
FROM (
|
|
SELECT rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,rp.KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM NGAStroDTRachunekPozycja rp
|
|
INNER JOIN #LastBills r on r.ID = rp.DtrachunekID
|
|
INNER JOIN NGAStroTowar t ON rp.TowarID = t.ID and t.NumerPlu>99900
|
|
INNER JOIN NGastroDTRachunekPozycjaPowiazanie rpp ON rpp.DTRachunekPozycjaID = rp.ID
|
|
INNER JOIN NGastroDTRachunekPozycja rpz ON rpz.ID = rpp.DTRachunekPozycjaDocelowaID
|
|
INNER JOIN NGAStroKonfiguracjaDrukowaniaZamowien kdz ON ISNULL(rp.KonfiguracjaDrukowaniaZamowienID, rpz.KonfiguracjaDrukowaniaZamowienID) = kdz.ID
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
AND ukdz.UrzadzenieID = @DeviceID
|
|
WHERE (rp.StatusRealizacji=99
|
|
OR (@WyswietlanieWykonanychPozycji = 0 and rp.StatusRealizacji < 3)
|
|
OR (@WyswietlanieWykonanychPozycji = 1 and rp.StatusRealizacji < 5 )
|
|
OR ( @KDSExistsIssued = 0 and (rp.StatusRealizacji = 4 OR (rp.StatusRealizacji = 5 AND rpz.StatusRealizacji = 4 ))
|
|
))
|
|
AND
|
|
(
|
|
(@WyswietlanieEdytowanychRachunkow = 1 AND @RodzajKDS = 0)
|
|
OR (@WyswietlanieEdytowanychRachunkow = 0 AND rp.FlgPotwierdzona = 1 AND rp.StatusRealizacji > 0 )
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
AND ( @KDSExistsIssued = 0
|
|
OR(@KDSExistsIssued = 1
|
|
AND EXISTS(SELECT * FROM NGastroDTRachunekPozycja rp
|
|
WHERE rp.DTRachunekID = r.ID
|
|
AND rp.StatusRealizacji in (0,1,2,99)
|
|
)
|
|
)
|
|
)
|
|
|
|
) dod
|
|
|
|
|
|
|
|
----tu dokładamy bazowe skałdniki nie zamienione na nic innego
|
|
INSERT INTO #ResultModyf
|
|
SELECT DISTINCT rp.ID,
|
|
rpm.ModyfikatorID,
|
|
tm.KonfiguracjaDrukowaniaZamowienID,
|
|
CASE WHEN ISNULL(tm.NazwaNaZamowieniu,'') = '' THEN tm.NazwaDlaKas ELSE tm.NazwaNaZamowieniu END AS ModyfikatorNazwaNaZamowieniu,
|
|
rpm.ModyfikatorIlosc,
|
|
CAST(0 AS TINYINT),
|
|
skl.Pozycja
|
|
FROM #LastBills r
|
|
INNER JOIN NGastroDTRachunekPozycja rp ON r.ID = rp.DtrachunekID
|
|
CROSS APPLY (SELECT TOP 1 ID, TowarID, Ilosc
|
|
FROM NGastroBOM
|
|
WHERE TowarID = rp.TowarID
|
|
AND ObowiazujeOd <= GETDATE()
|
|
ORDER BY ObowiazujeOd DESC
|
|
) bom
|
|
INNER JOIN NGastroSkladnik skl ON bom.id = skl.BomID
|
|
INNER JOIN NGastroTowar towar on towar.ID = skl.TowarID
|
|
INNER JOIN NGastroDTRachunekPozycjaModyfikacja rpm ON rp.ID = rpm.DTRachunekPozycjaID AND rpm.TowarID = skl.TowarID
|
|
INNER JOIN NGastroTowar t ON t.ID = rpm.TowarID
|
|
INNER JOIN NGastroTowar tm ON tm.ID = rpm.ModyfikatorID
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON (rp.KonfiguracjaDrukowaniaZamowienID IS NULL AND kdz.ID = tm.KonfiguracjaDrukowaniaZamowienID)
|
|
OR (rp.KonfiguracjaDrukowaniaZamowienID IS NOT NULL AND kdz.ID = rp.KonfiguracjaDrukowaniaZamowienID)
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
AND ukdz.UrzadzenieID = @DeviceID
|
|
WHERE tm.FlgSprzedawany = 1
|
|
AND tm.FlgAktywny = 1
|
|
AND tm.FlgDeleted = 0
|
|
AND rpm.Ilosc > 0
|
|
AND rpm.ModyfikatorIlosc > 0
|
|
AND (rp.StatusRealizacji=99
|
|
OR (@WyswietlanieWykonanychPozycji = 0 and rp.StatusRealizacji < 3)
|
|
OR (@WyswietlanieWykonanychPozycji = 1 and rp.StatusRealizacji < 5 )
|
|
OR ( @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
)
|
|
AND
|
|
(
|
|
(@WyswietlanieEdytowanychRachunkow = 1 AND @RodzajKDS = 0)
|
|
OR rp.FlgPotwierdzona = 1
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
AND ( @KDSExistsIssued = 0
|
|
OR(@KDSExistsIssued = 1
|
|
AND EXISTS(SELECT * FROM NGastroDTRachunekPozycja rp
|
|
WHERE rp.DTRachunekID = r.ID
|
|
AND rp.StatusRealizacji in (0,1,2,99)
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
----tu dokładamy bazowe skąłdniki nie zamienione na nic innego
|
|
INSERT INTO #ResultModyf
|
|
SELECT DISTINCT
|
|
rp.ID,
|
|
skl.TowarID,
|
|
towar.KonfiguracjaDrukowaniaZamowienID,
|
|
towar.NazwaDlaKas,
|
|
ROUND(skl.Ilosc/bom.Ilosc,3),
|
|
0 ,
|
|
skl.Pozycja
|
|
FROM #LastBills R
|
|
INNER JOIN NGastroDTRachunekPozycja rp ON rp.DTRachunekID = r.ID
|
|
LEFT JOIN NGastroTowar tz ON tz.ID = rp.ZestawID
|
|
INNER JOIN NGastroTowar tow ON tow.id = rp.TowarID and tow.FlgReceptura = 1
|
|
CROSS APPLY (SELECT TOP 1 ID, TowarID, Ilosc
|
|
FROM NGastroBOM
|
|
WHERE TowarID = rp.TowarID
|
|
AND ObowiazujeOd <= GETDATE()
|
|
ORDER BY ObowiazujeOd DESC
|
|
) bom
|
|
INNER JOIN NGastroSkladnik skl ON bom.id = skl.BomID
|
|
INNER JOIN NGastroTowar towar on towar.ID = skl.TowarID
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON (rp.KonfiguracjaDrukowaniaZamowienID IS NULL AND kdz.ID = towar.KonfiguracjaDrukowaniaZamowienID)
|
|
OR (rp.KonfiguracjaDrukowaniaZamowienID IS NOT NULL AND kdz.ID = rp.KonfiguracjaDrukowaniaZamowienID)
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
AND ukdz.UrzadzenieID = @DeviceID
|
|
WHERE towar.FlgSprzedawany = 1
|
|
AND towar.FlgAktywny = 1
|
|
AND towar.FlgDeleted = 0
|
|
AND (rp.StatusRealizacji=99
|
|
OR (@WyswietlanieWykonanychPozycji = 0 and rp.StatusRealizacji < 3)
|
|
OR (@WyswietlanieWykonanychPozycji = 1 and rp.StatusRealizacji < 5 )
|
|
OR ( @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
)
|
|
AND
|
|
(
|
|
(@WyswietlanieEdytowanychRachunkow = 1 AND @RodzajKDS = 0)
|
|
OR rp.FlgPotwierdzona = 1
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
AND ( @KDSExistsIssued = 0
|
|
OR(@KDSExistsIssued = 1
|
|
AND EXISTS(SELECT * FROM NGastroDTRachunekPozycja rp
|
|
WHERE rp.DTRachunekID = r.ID
|
|
AND rp.StatusRealizacji in (1,2,99)
|
|
)
|
|
)
|
|
)
|
|
AND (tz.ID IS NULL
|
|
OR (tz.ID IS NOT NULL AND tz.RodzajTowaru <> 3)
|
|
OR (tz.ID IS NOT NULL AND tz.RodzajTowaru = 3 AND rp.RolaWKompozycji <> 0 )
|
|
)
|
|
|
|
|
|
UPDATE t SET
|
|
t.DeleteFlag = 1
|
|
FROM #ResultModyf t
|
|
INNER JOIN NGastroDTRachunekPozycjaModyfikacja modyfikacja ON t.ZamiennikTowarID = modyfikacja.TowarID
|
|
AND t.PozycjaID = modyfikacja.DTRachunekPozycjaID
|
|
|
|
DELETE FROM #ResultModyf
|
|
WHERE DeleteFlag = 1;
|
|
|
|
INSERT INTO #Pozycje
|
|
SELECT DISTINCT *
|
|
FROM
|
|
(
|
|
SELECT rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,r.KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM #ResultModyf r
|
|
INNER JOIN NGastroDTRachunekPozycja rp ON rp.ID = r.PozycjaID
|
|
LEFT JOIN #Pozycje p ON p.ID = r.PozycjaID
|
|
WHERE p.ID IS NULL
|
|
|
|
)modyf2
|
|
|
|
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT INTO #Pozycje
|
|
SELECT DISTINCT *
|
|
FROM
|
|
(
|
|
SELECT rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,rp.KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM NGAStroDTRachunekPozycja rp
|
|
INNER JOIN #LastBills r on r.ID = rp.DtrachunekID
|
|
INNER JOIN NGAStroTowar t ON rp.TowarID = t.ID and t.NumerPlu<99900
|
|
INNER JOIN NGAStroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
LEFT JOIN NGAStroUrzadzenieKdsWydawkaDla u ON u.UrzadzenieIDKds = ukdz.UrzadzenieID and u.UrzadzenieIDWydawka = @DeviceID
|
|
WHERE @RodzajKDS in (1, 3)
|
|
AND ((@RodzajKDS = 1
|
|
AND u.ID IS NOT NULL
|
|
AND (rp.StatusRealizacji < 5 OR (rp.StatusRealizacji in (5,99) AND rp.UzytkownikUsuwajacyID IS NOT NULL))
|
|
AND rp.FlgPotwierdzona = 1 AND rp.StatusRealizacji > 0
|
|
)
|
|
OR
|
|
(@RodzajKDS = 3
|
|
AND rp.StatusRealizacji IN (3,4)
|
|
AND rp.UzytkownikUsuwajacyID IS NULL
|
|
AND rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
UNION ALL
|
|
SELECT rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,rp.KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM NGAStroDTRachunekPozycja rp
|
|
INNER JOIN #LastBills r on r.ID = rp.DtrachunekID
|
|
INNER JOIN NGAStroTowar t ON rp.TowarID = t.ID and t.NumerPlu>99900
|
|
INNER JOIN NGAStroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
LEFT JOIN NGAStroUrzadzenieKdsWydawkaDla u ON u.UrzadzenieIDKds = ukdz.UrzadzenieID and u.UrzadzenieIDWydawka = @DeviceID
|
|
WHERE @RodzajKDS in (1, 3)
|
|
AND (
|
|
(@RodzajKDS = 1
|
|
AND u.ID IS NOT NULL
|
|
AND (rp.StatusRealizacji < 5 or (rp.StatusRealizacji in (5,99) and rp.UzytkownikUsuwajacyID is not null))
|
|
AND rp.FlgPotwierdzona = 1 AND rp.StatusRealizacji > 0
|
|
)
|
|
OR
|
|
(@RodzajKDS = 3
|
|
AND rp.StatusRealizacji IN (3,4)
|
|
AND rp.UzytkownikUsuwajacyID IS NULL
|
|
AND rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
) A
|
|
|
|
INSERT INTO #Pozycje
|
|
SELECT DISTINCT *
|
|
FROM
|
|
(
|
|
SELECT rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,p.KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM NGAStroDTRachunekPozycja rp
|
|
INNER JOIN NGastroDTRachunekPozycjaPowiazanie pow ON pow.DTRachunekPozycjaID = rp.ID
|
|
LEFT JOIN #Pozycje p ON p.ID = pow.DTRachunekPozycjaDocelowaID
|
|
WHERE pow.DTRachunekPozycjaDocelowaID IN (SELECT ID FROM #Pozycje)
|
|
AND pow.DTRachunekPozycjaID NOT IN (SELECT ID FROM #Pozycje)
|
|
|
|
)B
|
|
|
|
---- towary które mają wybrane modyfikatory ze zgodnym kierunkiem
|
|
INSERT INTO #Pozycje
|
|
SELECT DISTINCT *
|
|
FROM
|
|
(
|
|
SELECT DISTINCT rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,ISNULL(rp.KonfiguracjaDrukowaniaZamowienID,tm.KonfiguracjaDrukowaniaZamowienID) KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM #LastBills r
|
|
INNER JOIN NGastroDTRachunekPozycja rp ON r.ID = rp.DtrachunekID
|
|
INNER JOIN NGastroDTRachunekPozycjaModyfikacja rpm ON rp.ID = rpm.DTRachunekPozycjaID
|
|
INNER JOIN NGastroTowar t ON t.ID = rpm.TowarID
|
|
INNER JOIN NGastroTowar tm ON tm.ID = rpm.ModyfikatorID
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON (rp.KonfiguracjaDrukowaniaZamowienID IS NULL AND kdz.ID = tm.KonfiguracjaDrukowaniaZamowienID)
|
|
OR (rp.KonfiguracjaDrukowaniaZamowienID IS NOT NULL AND kdz.ID = rp.KonfiguracjaDrukowaniaZamowienID)
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
LEFT JOIN NGAStroUrzadzenieKdsWydawkaDla u ON u.UrzadzenieIDKds = u.UrzadzenieIDKds and u.UrzadzenieIDWydawka = @DeviceID
|
|
WHERE @RodzajKDS IN (1 ,3)
|
|
AND ((@RodzajKDS = 1 AND u.ID IS NOT NULL AND (rp.StatusRealizacji < 5 or (rp.StatusRealizacji in (5,99) and rp.UzytkownikUsuwajacyID is not null)))
|
|
OR (@RodzajKDS = 3 AND (rp.StatusRealizacji IN (3,4) AND rp.UzytkownikUsuwajacyID IS NULL)))
|
|
AND rp.FlgPotwierdzona = 1 AND rp.StatusRealizacji > 0
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
AND rpm.Ilosc > 0
|
|
AND rpm.ModyfikatorIlosc > 0
|
|
|
|
)modyf
|
|
|
|
INSERT INTO #ResultModyf
|
|
SELECT DISTINCT rp.ID,
|
|
rpm.ModyfikatorID,
|
|
ISNULL(rp.KonfiguracjaDrukowaniaZamowienID,tm.KonfiguracjaDrukowaniaZamowienID) KonfiguracjaDrukowaniaZamowienID,
|
|
CASE WHEN ISNULL(tm.NazwaNaZamowieniu,'') = '' THEN tm.NazwaDlaKas ELSE tm.NazwaNaZamowieniu END AS ModyfikatorNazwaNaZamowieniu,
|
|
rpm.ModyfikatorIlosc,
|
|
CAST(0 AS TINYINT),
|
|
0
|
|
FROM #LastBills r
|
|
INNER JOIN NGastroDTRachunekPozycja rp ON r.ID = rp.DtrachunekID
|
|
INNER JOIN NGastroDTRachunekPozycjaModyfikacja rpm ON rp.ID = rpm.DTRachunekPozycjaID
|
|
INNER JOIN NGastroTowar t ON t.ID = rpm.TowarID
|
|
INNER JOIN NGastroTowar tm ON tm.ID = rpm.ModyfikatorID
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON (rp.KonfiguracjaDrukowaniaZamowienID IS NULL AND kdz.ID = tm.KonfiguracjaDrukowaniaZamowienID)
|
|
OR (rp.KonfiguracjaDrukowaniaZamowienID IS NOT NULL AND kdz.ID = rp.KonfiguracjaDrukowaniaZamowienID)
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
LEFT JOIN NGAStroUrzadzenieKdsWydawkaDla u ON u.UrzadzenieIDKds = u.UrzadzenieIDKds and u.UrzadzenieIDWydawka = @DeviceID
|
|
WHERE tm.FlgSprzedawany = 1
|
|
AND tm.FlgAktywny = 1
|
|
AND tm.FlgDeleted = 0
|
|
AND @RodzajKDS IN (1,3)
|
|
AND (
|
|
(@RodzajKDS = 1 AND u.ID IS NOT NULL AND (rp.StatusRealizacji < 5 or (rp.StatusRealizacji in (5,99) and rp.UzytkownikUsuwajacyID is not null)))
|
|
OR
|
|
(@RodzajKDS = 3 AND rp.StatusRealizacji IN (3,4) AND rp.UzytkownikUsuwajacyID is null)
|
|
)
|
|
AND rp.FlgPotwierdzona = 1 AND rp.StatusRealizacji > 0
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
AND rpm.Ilosc > 0
|
|
AND rpm.ModyfikatorIlosc > 0
|
|
|
|
|
|
----tu dokładamy bazowe skąłdniki nie zamienione na nic innego
|
|
INSERT INTO #ResultModyf
|
|
SELECT rp.ID,
|
|
skl.TowarID,
|
|
towar.KonfiguracjaDrukowaniaZamowienID,
|
|
towar.NazwaDlaKas,
|
|
ROUND(skl.Ilosc/bom.Ilosc,3),
|
|
0 ,
|
|
skl.Pozycja
|
|
FROM #LastBills R
|
|
INNER JOIN NGastroDTRachunekPozycja rp ON rp.DTRachunekID = r.ID
|
|
INNER JOIN NGastroTowar tow ON tow.id = rp.TowarID and tow.FlgReceptura = 1
|
|
CROSS APPLY (SELECT TOP 1 ID, TowarID, Ilosc
|
|
FROM NGastroBOM
|
|
WHERE TowarID = rp.TowarID
|
|
AND ObowiazujeOd <= GETDATE()
|
|
ORDER BY ObowiazujeOd DESC
|
|
) bom
|
|
INNER JOIN NGastroSkladnik skl ON bom.id = skl.BomID
|
|
INNER JOIN NGastroTowar towar on towar.ID = skl.TowarID
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON kdz.ID = towar.KonfiguracjaDrukowaniaZamowienID
|
|
INNER JOIN NGAStroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
LEFT JOIN NGAStroUrzadzenieKdsWydawkaDla u ON u.UrzadzenieIDKds = u.UrzadzenieIDKds and u.UrzadzenieIDWydawka = @DeviceID
|
|
WHERE towar.FlgSprzedawany = 1
|
|
AND towar.FlgAktywny = 1
|
|
AND towar.FlgDeleted = 0
|
|
AND @RodzajKDS IN (1,3)
|
|
AND (
|
|
(@RodzajKDS = 1 AND u.ID IS NOT NULL AND (rp.StatusRealizacji < 5 or (rp.StatusRealizacji in (5,99) and rp.UzytkownikUsuwajacyID is not null)))
|
|
OR
|
|
(@RodzajKDS = 3 AND rp.StatusRealizacji IN (3,4) AND rp.UzytkownikUsuwajacyID is null)
|
|
)
|
|
AND rp.FlgPotwierdzona = 1 AND rp.StatusRealizacji > 0
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
|
|
|
|
UPDATE t SET
|
|
t.DeleteFlag = 1
|
|
FROM #ResultModyf t
|
|
INNER JOIN NGastroDTRachunekPozycjaModyfikacja modyfikacja ON t.ZamiennikTowarID = modyfikacja.TowarID
|
|
AND t.PozycjaID = modyfikacja.DTRachunekPozycjaID
|
|
|
|
|
|
DELETE FROM #ResultModyf
|
|
WHERE DeleteFlag = 1;
|
|
|
|
INSERT INTO #Pozycje
|
|
SELECT DISTINCT *
|
|
FROM
|
|
(
|
|
SELECT rp.ID
|
|
,rp.DTRachunekID
|
|
,rp.DodatekDlaDTRachunekPozycjaID
|
|
,rp.FlgPozycjaNadrzedna
|
|
,rp.GrupaZestawuID
|
|
,rp.TowarID
|
|
,rp.FlgPotwierdzona
|
|
,rp.StatusRealizacji
|
|
,rp.UzytkownikUsuwajacyID
|
|
,r.KonfiguracjaDrukowaniaZamowienID
|
|
,rp.DataWyswietleniaNaKDS
|
|
,rp.DataWydruku
|
|
,rp._c_DataUtworzenia
|
|
,rp.ZestawID
|
|
,rp.NumerCzesci
|
|
,rp.NumerGrupySerwowania
|
|
,rp.Notatka
|
|
,rp.Ilosc
|
|
,rp.IloscZestawow
|
|
,rp.IloscZrealizowana
|
|
,rp.IloscKawalkow
|
|
,rp.DataUsuniecia
|
|
,rp.DataModyfikacjiGrupySerwowania
|
|
,rp.RolaWKompozycji
|
|
,rp.NazwadanieOtwarte
|
|
FROM #ResultModyf r
|
|
INNER JOIN NGastroDTRachunekPozycja rp ON rp.DTRachunekID = r.PozycjaID
|
|
INNER JOIN NGastroTowar t ON t.ID = rp.TowarID
|
|
LEFT JOIN #Pozycje p ON p.ID = r.PozycjaID
|
|
WHERE p.ID IS NULL
|
|
|
|
)modyf2
|
|
END
|
|
|
|
DECLARE @date AS DATETIME = GETDATE()
|
|
|
|
INSERT INTO #Bills
|
|
(
|
|
ID,
|
|
Description,
|
|
UserDescription,
|
|
Remark,
|
|
PointOfSale,
|
|
Date,
|
|
OpenningType,
|
|
FlgFastTrack
|
|
)
|
|
SELECT
|
|
r.ID,
|
|
CAST((
|
|
CASE @RodzajNumeracjiNaKDS
|
|
WHEN 0 THEN CAST(r.Numer AS VARCHAR(MAX))
|
|
WHEN 1 THEN CAST(r.NumerZmiana AS VARCHAR(MAX))
|
|
WHEN 2 THEN CASE WHEN @RodzajNumerkaDoOdbioruZamowienia = 0 THEN CAST(r.NumerZmiana AS VARCHAR(MAX))
|
|
WHEN @RodzajNumerkaDoOdbioruZamowienia = 1 THEN NumerReczny
|
|
WHEN @RodzajNumerkaDoOdbioruZamowienia = 2 THEN CAST(r.NumerDoOdbioruOdnawialny AS VARCHAR(MAX))
|
|
END
|
|
WHEN 3 THEN CAST(r.Numer AS VARCHAR(MAX)) + '/' + CASE WHEN @RodzajNumerkaDoOdbioruZamowienia = 0 THEN CAST(r.NumerZmiana AS VARCHAR(MAX))
|
|
WHEN @RodzajNumerkaDoOdbioruZamowienia = 1 THEN NumerReczny
|
|
WHEN @RodzajNumerkaDoOdbioruZamowienia = 2 THEN CAST(r.NumerDoOdbioruOdnawialny AS VARCHAR(MAX))
|
|
END
|
|
WHEN 4 THEN CAST(r.NumerZmiana AS VARCHAR(MAX)) + '/' + CASE WHEN @RodzajNumerkaDoOdbioruZamowienia = 0 THEN CAST(r.NumerZmiana AS VARCHAR(MAX))
|
|
WHEN @RodzajNumerkaDoOdbioruZamowienia = 1 THEN NumerReczny
|
|
WHEN @RodzajNumerkaDoOdbioruZamowienia = 2 THEN CAST(r.NumerDoOdbioruOdnawialny AS VARCHAR(MAX))
|
|
END
|
|
WHEN 5 THEN CASE WHEN @RodzajNumerkaDoOdbioruZamowienia = 0 THEN CAST(r.NumerZmiana AS VARCHAR(MAX))
|
|
WHEN @RodzajNumerkaDoOdbioruZamowienia = 1 THEN r.NumerReczny
|
|
WHEN @RodzajNumerkaDoOdbioruZamowienia = 2 THEN CAST(r.NumerDoOdbioruOdnawialny AS VARCHAR(MAX))
|
|
END + '/' + CAST(r.Numer AS VARCHAR(MAX))
|
|
WHEN 6 THEN CASE WHEN @RodzajNumerkaDoOdbioruZamowienia = 0 THEN CAST(r.NumerZmiana AS VARCHAR(MAX))
|
|
WHEN @RodzajNumerkaDoOdbioruZamowienia = 1 THEN r.NumerReczny
|
|
WHEN @RodzajNumerkaDoOdbioruZamowienia = 2 THEN CAST(r.NumerDoOdbioruOdnawialny AS VARCHAR(MAX))
|
|
END + '/' + CAST(r.NumerZmiana AS VARCHAR(MAX))
|
|
END
|
|
) AS VARCHAR(10)),
|
|
o.Nick,
|
|
LEFT(r.Opis,150),
|
|
s.Nazwa,
|
|
r.DataOtwarcia,
|
|
CASE ror.Kod
|
|
WHEN 'NS' THEN 1 -- NaStolik
|
|
WHEN 'WBD' THEN 5 -- NaWynosBezDostawy
|
|
WHEN 'WZD' THEN 6 -- NaWynosZDostawa
|
|
WHEN 'S' THEN 7 -- Sklepowy
|
|
WHEN 'ZOS' THEN 8 -- ZOpisemSlownym
|
|
WHEN 'H' THEN 9 -- Hotelowy
|
|
WHEN 'NKA' THEN 10 -- NaKarte
|
|
ELSE -1
|
|
END as OpenningType,
|
|
r.FlgFastTrack
|
|
FROM (SELECT DISTINCT DTRachunekID AS ID FROM #Pozycje) b
|
|
INNER JOIN NGastroDTRachunek r on b.ID = r.ID
|
|
INNER JOIN NGastroUzytkownik u ON r.UzytkownikOtwierajacyID = u.ID
|
|
INNER JOIN NSysOperator o ON u.OperatorID = o.ID
|
|
INNER JOIN NSysOperatorLokal ol ON ol.OperatorID = o.ID
|
|
INNER JOIN NGastroKasa k ON k.ID = r.KasaID
|
|
INNER JOIN NSysStanowisko s ON s.ID = k.StanowiskoID
|
|
LEFT JOIN NGastroRodzajOtwarciaRachunku ror on ror.ID = r.RodzajOtwarciaRachunkuID
|
|
|
|
UPDATE b SET
|
|
b.Date = tt.Data
|
|
FROM #Bills b
|
|
INNER JOIN
|
|
(
|
|
SELECT CASE WHEN @SortType =0
|
|
THEN Min(CASE
|
|
WHEN rp.DataWyswietleniaNaKDS IS NOT NULL AND rp.DataWyswietleniaNaKDS < rp.DataWydruku
|
|
THEN rp.DataDodania
|
|
ELSE rp.DataWydruku
|
|
END )
|
|
ELSE
|
|
MAX(CASE
|
|
WHEN rp.DataWyswietleniaNaKDS IS NOT NULL AND rp.DataWyswietleniaNaKDS < rp.DataWydruku
|
|
THEN rp.DataDodania
|
|
ELSE rp.DataWydruku
|
|
END )
|
|
END AS Data,
|
|
rp.DTRachunekID
|
|
FROM #Bills b
|
|
INNER JOIN #Pozycje rp ON b.id = rp.DTRachunekID
|
|
WHERE ( @WyswietlanieEdytowanychRachunkow = 1 OR rp.FlgPotwierdzona = 1)
|
|
AND rp.StatusRealizacji NOT IN (3,4,6)
|
|
AND DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
GROUP BY rp.DTRachunekID
|
|
) tt ON tt.DTRachunekID = b.ID
|
|
|
|
INSERT INTO #Pizza
|
|
(
|
|
BillID,
|
|
ID,
|
|
TowarID,
|
|
NazwaZestawu,
|
|
NazwaTowaru,
|
|
Ilosc,
|
|
Skladnik,
|
|
Zamiennik,
|
|
PizzaBaza,
|
|
IloscBaza,
|
|
NumerCzesci,
|
|
GrupaZestawuID
|
|
)
|
|
SELECT
|
|
z.BillID,
|
|
z.ZestawID,
|
|
ts.ID,
|
|
CASE WHEN LTRIM(RTRIM(t.NazwaNaZamowieniu)) = '' THEN t.NazwaDlaKas ELSE t.NazwaNaZamowieniu END AS NazwaZestawu,
|
|
CASE WHEN LTRIM(RTRIM(ts.NazwaNaZamowieniu)) = '' THEN ts.NazwaDlaKas ELSE ts.NazwaNaZamowieniu END AS NazwaTowaru,
|
|
CAST(ROUND(ts.IloscSprzedawana / b.Ilosc, 3) AS DECIMAL(19,6)),
|
|
1,
|
|
0,
|
|
1,
|
|
CAST(ROUND(ts.IloscSprzedawana / b.Ilosc, 3) AS DECIMAL(19,6)),
|
|
NumerCzesci,
|
|
GrupaZestawuID
|
|
FROM
|
|
(
|
|
SELECT DISTINCT
|
|
ZestawID,b.ID as BillID, NumerCzesci, GrupaZestawuID
|
|
FROM #Bills b
|
|
INNER JOIN #Pozycje rp ON b.ID = rp.DTRachunekID
|
|
WHERE(
|
|
(@RodzajKDS IN (0, 1)
|
|
AND (@WyswietlanieWykonanychPozycji = 1
|
|
OR @RodzajKDS = 1
|
|
OR rp.StatusRealizacji <> 3
|
|
OR (@RodzajKDS = 0 and @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
)
|
|
AND (
|
|
(@RodzajKDS = 0 and rp.StatusRealizacji < 4)
|
|
or (@RodzajKDS = 0 and @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
or (@RodzajKDS = 1 and rp.StatusRealizacji < 5)
|
|
or rp.UzytkownikUsuwajacyID is not null
|
|
)
|
|
AND
|
|
(
|
|
DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
OR (@WyswietlanieEdytowanychRachunkow = 1 AND rp.UzytkownikUsuwajacyID IS NOT NULL AND rp.FlgPotwierdzona = 0)
|
|
)
|
|
AND
|
|
(
|
|
@WyswietlanieEdytowanychRachunkow = 1
|
|
OR rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
OR
|
|
( @RodzajKDS = 3
|
|
AND rp.StatusRealizacji IN (3,4)
|
|
AND rp.UzytkownikUsuwajacyID IS NULL
|
|
AND DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
AND rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
AND rp.ZestawID IS NOT NULL
|
|
) z
|
|
INNER JOIN NGastroTowar t ON z.ZestawID = t.ID AND t.RodzajTowaru = 3
|
|
CROSS APPLY (SELECT TOP 1 ID, TowarID, Ilosc
|
|
FROM NGastroBOM
|
|
WHERE TowarID = z.ZestawID
|
|
AND ObowiazujeOd <= GETDATE()
|
|
ORDER BY ObowiazujeOd DESC
|
|
) b
|
|
INNER JOIN NGastroSkladnik s ON s.BomID = b.ID
|
|
INNER JOIN NGastroTowar ts ON ts.ID = s.TowarID
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
z.BillID,
|
|
z.ZestawID,
|
|
tz.ID,
|
|
CASE WHEN LTRIM(RTRIM(t.NazwaNaZamowieniu)) = '' THEN t.NazwaDlaKas ELSE t.NazwaNaZamowieniu END AS NazwaZestawu,
|
|
CASE WHEN LTRIM(RTRIM(tz.NazwaNaZamowieniu)) = '' THEN tz.NazwaDlaKas ELSE tz.NazwaNaZamowieniu END AS NazwaTowaru,
|
|
CAST(ROUND(ts.IloscSprzedawana / b.Ilosc, 3) AS DECIMAL(19,6)),
|
|
0,
|
|
1,
|
|
1,
|
|
zam.Ilosc,
|
|
NumerCzesci,
|
|
z.GrupaZestawuID
|
|
FROM
|
|
(
|
|
SELECT DISTINCT
|
|
ZestawID,b.ID as BillID, NumerCzesci, GrupaZestawuID
|
|
FROM #Bills b
|
|
INNER JOIN #Pozycje rp ON b.ID = rp.DTRachunekID
|
|
WHERE(
|
|
(@RodzajKDS IN (0, 1)
|
|
AND (@WyswietlanieWykonanychPozycji = 1
|
|
OR @RodzajKDS = 1
|
|
OR rp.StatusRealizacji <> 3
|
|
OR (@RodzajKDS = 0 and @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
)
|
|
AND (
|
|
(@RodzajKDS = 0 and rp.StatusRealizacji < 4)
|
|
or (@RodzajKDS = 0 and @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
or (@RodzajKDS = 1 and rp.StatusRealizacji < 5)
|
|
or rp.UzytkownikUsuwajacyID is not null
|
|
)
|
|
AND
|
|
(
|
|
DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
OR (@WyswietlanieEdytowanychRachunkow = 1 AND rp.UzytkownikUsuwajacyID IS NOT NULL AND rp.FlgPotwierdzona = 0)
|
|
)
|
|
AND
|
|
(
|
|
@WyswietlanieEdytowanychRachunkow = 1
|
|
OR rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
OR
|
|
( @RodzajKDS = 3
|
|
AND rp.StatusRealizacji IN (3,4)
|
|
AND rp.UzytkownikUsuwajacyID IS NULL
|
|
AND DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
AND rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
AND rp.ZestawID IS NOT NULL
|
|
) z
|
|
CROSS APPLY (SELECT TOP 1 ID, TowarID, Ilosc
|
|
FROM NGastroBOM
|
|
WHERE TowarID = z.ZestawID
|
|
AND ObowiazujeOd <= GETDATE()
|
|
ORDER BY ObowiazujeOd DESC
|
|
) b
|
|
INNER JOIN NGastroTowar t ON z.ZestawID = t.ID AND t.RodzajTowaru = 3
|
|
INNER JOIN NGastroSkladnik s ON s.BomID = b.ID
|
|
INNER JOIN NGastroTowar ts ON ts.ID = s.TowarID
|
|
INNER JOIN NGastroZamiennik zam ON zam.SkladnikID = s.ID
|
|
INNER JOIN NGastroTowar tz ON tz.ID = zam.TowarID AND tz.FlgAktywny = 1 and tz.Blokada = 0
|
|
|
|
INSERT INTO #Articles
|
|
(
|
|
ID,
|
|
BillID,
|
|
ArticleID,
|
|
PackageID,
|
|
Name,
|
|
ServingGroup,
|
|
ServingGroupName,
|
|
PersonNumber,
|
|
Remark,
|
|
QuantitySet,
|
|
QuantityToDo,
|
|
QuantityDone,
|
|
QuantityRemoved,
|
|
QuantityPrecision,
|
|
Date,
|
|
IsModified,
|
|
IsNew,
|
|
StatusOfPreparation,
|
|
ArticleType,
|
|
PartNumber,
|
|
Parts,
|
|
ServingGroupModificationDate,
|
|
Color,
|
|
ShowWeight,
|
|
ConnectionID
|
|
)
|
|
SELECT
|
|
rp.ID, --ID
|
|
rp.DTRachunekID, --BillID
|
|
rp.TowarID, --ArticleID
|
|
rp.GrupaZestawuID,
|
|
CASE WHEN NazwaNaZamowieniu = ''
|
|
THEN NazwaTowaru
|
|
ELSE NazwaNaZamowieniu
|
|
END + CASE WHEN t.NumerPlu>99900 THEN ': ' + rp.NazwaDanieOtwarte ELSE '' END, --Name
|
|
rp.NumerGrupySerwowania, --ServingGroup
|
|
ISNULL(sp.Opis, CAST(rp.NumerGrupySerwowania AS VARCHAR) ), --ServingGroupName
|
|
1, --PersonNumber
|
|
rp.Notatka, --Remark
|
|
CASE WHEN t.RodzajTowaru = 8 and t.FlgPodawanieWagiPoPrzygotowaniu = 1 and @RodzajKDS = 0
|
|
THEN 0
|
|
ELSE 1
|
|
END, --QuantitySet
|
|
CASE WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN 0
|
|
ELSE rp.Ilosc
|
|
END, --QuantityToDo
|
|
rp.IloscZrealizowana, --QuantityDone
|
|
(CASE WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN rp.Ilosc
|
|
ELSE 0
|
|
END), --QuantityRemoved
|
|
t.Precyzja, --QuantityPrecision
|
|
rp.DataDodania, --Date
|
|
0, --IsModified
|
|
CASE
|
|
WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN CASE WHEN DATEDIFF(SECOND, rp.DataUsuniecia, @date) <= 10 THEN 1 ELSE 0 END
|
|
ELSE
|
|
CASE rp.StatusRealizacji
|
|
WHEN 0 THEN 1
|
|
ELSE
|
|
CASE WHEN ISNULL(konf.TInt, 0) > 0 AND DATEADD(ss, konf.TInt ,rp.DataWyswietleniaNaKDS) > @date
|
|
THEN 1 ELSE 0
|
|
END
|
|
END
|
|
END, --IsNew,
|
|
CASE WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN 99
|
|
ELSE CASE WHEN @WyswietlanieWykonanychPozycji = 1 AND @KDSExistsIssued = 0 AND rp.StatusRealizacji = 4
|
|
THEN 3
|
|
ELSE rp.StatusRealizacji
|
|
END
|
|
END, --StatusOfPreparation
|
|
t.RodzajTowaru, --ArticleType
|
|
rp.NumerCzesci, -- PartNumber
|
|
1, --Parts
|
|
rp.DataModyfikacjiGrupySerwowania, --ServingGroupModificationDate
|
|
CASE WHEN @RodzajKDS = 1
|
|
THEN CASE WHEN rp.StatusRealizacji IN (0,1,2) AND rp.UzytkownikUsuwajacyID IS NULL THEN @KdsWydawkaKolorPozycjiWPrzygotowaniu
|
|
WHEN rp.StatusRealizacji IN (3) AND rp.UzytkownikUsuwajacyID IS NULL THEN @KdsWydawkaKolorPozycjiWydanych
|
|
WHEN rp.StatusRealizacji IN (4) AND rp.UzytkownikUsuwajacyID IS NULL THEN @KDsWydawkaKolorPozycjiWezwanychDoWydania
|
|
ELSE NULL
|
|
END
|
|
WHEN @RodzajKDS = 3
|
|
THEN CASE WHEN rp.StatusRealizacji IN (3) AND rp.UzytkownikUsuwajacyID IS NULL THEN @KdsWydawkaKolorPozycjiWydanych
|
|
WHEN rp.StatusRealizacji IN (4) AND rp.UzytkownikUsuwajacyID IS NULL THEN @KDsWydawkaKolorPozycjiWezwanychDoWydania
|
|
ELSE NULL
|
|
END
|
|
ELSE NULL
|
|
END, --Color
|
|
1, --ShowWeight
|
|
NULL
|
|
FROM #Bills b
|
|
INNER JOIN #Pozycje rp ON b.ID = rp.DTRachunekID
|
|
INNER JOIN NGastroTowar t ON t.ID = rp.TowarID
|
|
LEFT JOIN NGastroDTRachunekPozycjaPowiazanie rpp ON rpp.DTRachunekPozycjaID = rp.ID
|
|
LEFT JOIN NGastroDTRachunekPozycja rpz ON rpz.ID = rpp.DTRachunekPozycjaDocelowaID AND rpz.StatusRealizacji = 4
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON (t.NumerPlu<>99900 and ISNULL(rp.KonfiguracjaDrukowaniaZamowienID, rpz.KonfiguracjaDrukowaniaZamowienID) = kdz.ID)
|
|
INNER JOIN NGastroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
and (ukdz.UrzadzenieID = @DeviceID or @rodzajKds =1 )
|
|
LEFT join NGastroUrzadzenieKdsWydawkaDla u on (u.UrzadzenieIDKds = ukdz.UrzadzenieID and u.UrzadzenieIDWydawka = @DeviceID) or @rodzajKds =0
|
|
INNER JOIN NGastroGrupaTowarowa gt ON t.GrupaTowarowaID = gt.ID
|
|
LEFT JOIN NSysSlownik s ON s.SystemNr = 300
|
|
LEFT JOIN NSysSlownikPozycja sp ON sp.SlownikID = s.ID AND sp.Wartosc = CAST(rp.NumerGrupySerwowania AS VARCHAR)
|
|
LEFT JOIN NSysAppKonfiguracjaSzablon konfSzab ON konfSzab.Symbol= 'Local.KDS.NewPositionBacklightTime'
|
|
LEFT JOIN NSysAppKonfiguracja konf ON konf.SzablonID = konfSzab.ID
|
|
WHERE (
|
|
(((@RodzajKDS = 1 and U.ID IS NOT NULL) or @RodzajKDS = 0)
|
|
AND
|
|
(@WyswietlanieWykonanychPozycji = 1
|
|
OR @RodzajKDS = 1
|
|
OR rp.StatusRealizacji <> 3
|
|
OR (@RodzajKDS = 0 and @KDSExistsIssued = 0 and (rp.StatusRealizacji = 4 OR (rp.StatusRealizacji = 5 AND ISNULL(rpz.StatusRealizacji,0) = 4)))
|
|
)
|
|
AND
|
|
(
|
|
DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
OR (@WyswietlanieEdytowanychRachunkow = 1 AND rp.UzytkownikUsuwajacyID IS NOT NULL AND rp.FlgPotwierdzona = 0)
|
|
)
|
|
AND (
|
|
(@RodzajKDS = 0 and rp.StatusRealizacji < 4)
|
|
or (@RodzajKDS = 0 and @KDSExistsIssued = 0 and (rp.StatusRealizacji = 4 OR (rp.StatusRealizacji = 5 AND ISNULL(rpz.StatusRealizacji,0) = 4)))
|
|
or (@RodzajKDS = 1 and rp.StatusRealizacji < 5)
|
|
or rp.UzytkownikUsuwajacyID is not null
|
|
)
|
|
AND rp.StatusRealizacji<>6
|
|
AND
|
|
(
|
|
@WyswietlanieEdytowanychRachunkow = 1
|
|
OR rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
OR
|
|
( @RodzajKDS = 3
|
|
AND rp.StatusRealizacji IN (3,4)
|
|
AND DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
AND rp.UzytkownikUsuwajacyID IS NULL
|
|
)
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 1 OR rp.GrupaZestawuID IS NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NULL)
|
|
AND rp.GrupaZestawuID IS NULL
|
|
AND NOT EXISTS (SELECT * FROM NGastroDTRachunekPozycjaPowiazanie rpp WHERE rpp.DTRachunekPozycjaDocelowaID = rp.ID)
|
|
|
|
UNION
|
|
SELECT k.GrupaZestawuID, --ID
|
|
k.DTRachunekID, --BillID
|
|
k.TowarID, --ArticleID
|
|
k.GrupaZestawuID,
|
|
MAX(k.Name), --Name
|
|
MAX(k.ServingGroup) , --ServingGroup
|
|
MAX(k.ServingGroupName) , --ServingGroupName
|
|
MAX(k.PersonNumber), --PersonNumber
|
|
MAX(k.Remark), --Remark
|
|
k.QuantitySet, --QuantitySet
|
|
MAX(k.QuantityToDo), --QuantityToDo
|
|
MIN(k.QuantityDone), --QuantityDone
|
|
MIN(k.QuantityRemoved), --QuantityRemoved
|
|
MAX(k.QuantityPrecision), --QuantityPrecision
|
|
MIN(k.Date), --Date
|
|
MAX(k.IsModified), --IsModified
|
|
MAX(k.IsNew),
|
|
MIN(k.StatusOfPreparation), --StatusOfPreparation,
|
|
k.RodzajTowaru,
|
|
k.NumerCzesci,
|
|
1 IloscKawalkow,
|
|
MIN(k.DataModyfikacjiGrupySerwowania),
|
|
CASE WHEN MIN(k.Color) > 0 THEN
|
|
CASE WHEN MIN(k.Color) = 4 THEN @KDsWydawkaKolorPozycjiWezwanychDoWydania
|
|
WHEN MIN(k.Color) < 3 THEN @KDSWydawkaKolorPozycjiWPrzygotowaniu
|
|
ELSE @KDSWydawkaKolorPozycjiWydanych
|
|
END
|
|
ELSE NULL
|
|
END Color,
|
|
k.ShowWeight,
|
|
k.ConnectionID
|
|
FROM (
|
|
SELECT rp.GrupaZestawuID, --ID
|
|
rp.DTRachunekID, --BillID
|
|
CAST( MAX(CAST(rp.ZestawID AS VARCHAR(36))) AS UNIQUEIDENTIFIER) AS TowarID, --ArticleID
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END AS Name, --Name
|
|
MAX(rp.NumerGrupySerwowania) AS ServingGroup, --ServingGroup
|
|
MAX(ISNULL(sp.Opis, CAST(rp.NumerGrupySerwowania AS VARCHAR) )) ServingGroupName, --ServingGroupName
|
|
1 AS PersonNumber, --PersonNumber
|
|
MAX(rp.Notatka) AS Remark, --Remark
|
|
CASE WHEN t.RodzajTowaru = 8 and @RodzajKDS = 0
|
|
THEN 0
|
|
ELSE 1
|
|
END AS QuantitySet, --QuantitySet
|
|
MAX(CASE WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN 0
|
|
ELSE rp.IloscZestawow
|
|
END) AS QuantityToDo, --QuantityToDo
|
|
MIN(CASE WHEN rp.IloscZrealizowana < rp.Ilosc
|
|
THEN 0
|
|
ELSE 1
|
|
END) AS QuantityDone, --QuantityDone
|
|
MIN(CASE WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN CASE WHEN t.RodzajTowaru = 9
|
|
THEN rp.IloscZestawow
|
|
ELSE rp.ilosc
|
|
END
|
|
ELSE 0
|
|
END) AS QuantityRemoved, --QuantityRemoved
|
|
2 AS QuantityPrecision, --QuantityPrecision
|
|
MIN(rp.DataDodania) AS Date, --Date
|
|
0 AS IsModified, --IsModified
|
|
CASE
|
|
WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN CASE WHEN DATEDIFF(second, MIN(DataUsuniecia), @date) <= 10 THEN 1 ELSE 0 END
|
|
ELSE
|
|
CASE MIN(rp.StatusRealizacji)
|
|
WHEN 0 THEN 1
|
|
ELSE
|
|
CASE WHEN ISNULL(MIN(konf.TInt), 0) > 0 AND DATEADD(ss, MIN(konf.TInt) ,MIN(rp.DataWyswietleniaNaKDS)) > @date
|
|
THEN 1 ELSE 0
|
|
END
|
|
END
|
|
END AS IsNew, --IsNew,
|
|
MIN(CASE WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN 99
|
|
ELSE rp.StatusRealizacji
|
|
END) AS StatusOfPreparation, --StatusOfPreparation,
|
|
t.RodzajTowaru,
|
|
rp.NumerCzesci,
|
|
1 AS IloscKawalkow,
|
|
MIN(rp.DataModyfikacjiGrupySerwowania) DataModyfikacjiGrupySerwowania,
|
|
CASE WHEN @RodzajKDS = 1
|
|
THEN CASE WHEN rp.UzytkownikUsuwajacyID IS NULL THEN rp.StatusRealizacji ELSE -1 END
|
|
ELSE -1
|
|
END AS Color,
|
|
1 AS ShowWeight,
|
|
CASE WHEN t.RodzajTowaru IN (9, 10) THEN rp.GrupaZestawuID ELSE NULL END AS ConnectionID
|
|
--ShowWeight
|
|
FROM #Pozycje rp
|
|
INNER JOIN NGastroTowar t ON t.ID = rp.ZestawID AND t.RodzajTowaru <> 3
|
|
INNER JOIN NgastroTowar t1 ON t1.ID = rp.TowarID and rp.ZestawID = t.ID AND t.RodzajTowaru <> 3
|
|
INNER JOIN NGastroGrupaTowarowa gt ON t.GrupaTowarowaID = gt.ID
|
|
LEFT JOIN NSysSlownik s ON s.SystemNr = 300
|
|
LEFT JOIN NSysSlownikPozycja sp ON sp.SlownikID = s.ID AND sp.Wartosc = CAST(rp.NumerGrupySerwowania AS VARCHAR)
|
|
LEFT JOIN NSysAppKonfiguracjaSzablon konfSzab ON konfSzab.Symbol= 'Local.KDS.NewPositionBacklightTime'
|
|
LEFT JOIN NSysAppKonfiguracja konf ON konf.SzablonID = konfSzab.ID
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGastroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
and (ukdz.UrzadzenieID = @DeviceID or @RodzajKDS =1 )
|
|
LEFT JOIN NGastroUrzadzenieKdsWydawkaDla u on (u.UrzadzenieIDKds = ukdz.UrzadzenieID and u.UrzadzenieIDWydawka = @DeviceID) or @RodzajKDS =0
|
|
WHERE(
|
|
( @RodzajKDS IN (0 ,1)
|
|
AND (@WyswietlanieWykonanychPozycji = 1
|
|
or @RodzajKDS = 1
|
|
OR rp.StatusRealizacji <> 3
|
|
or (@RodzajKDS = 0 and @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
)
|
|
AND ((@RodzajKDS = 0 and rp.StatusRealizacji < 4)
|
|
or (@RodzajKDS = 0 and @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
or (@RodzajKDS = 1 and rp.StatusRealizacji < 5)
|
|
or rp.UzytkownikUsuwajacyID is not null
|
|
)
|
|
AND rp.StatusRealizacji<>6
|
|
AND
|
|
(
|
|
@WyswietlanieEdytowanychRachunkow = 1
|
|
OR rp.FlgPotwierdzona = 1
|
|
)
|
|
AND
|
|
(
|
|
DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
OR (@WyswietlanieEdytowanychRachunkow = 1 AND rp.UzytkownikUsuwajacyID IS NOT NULL AND rp.FlgPotwierdzona = 0)
|
|
)
|
|
)
|
|
OR
|
|
( @RodzajKDS = 3
|
|
AND rp.StatusRealizacji IN (3,4)
|
|
AND rp.UzytkownikUsuwajacyID IS NULL
|
|
AND rp.FlgPotwierdzona = 1
|
|
AND DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
)
|
|
)
|
|
AND rp.GrupaZestawuID IS NOT NULL
|
|
GROUP BY rp.GrupaZestawuID, rp.DTRachunekID, rp.UzytkownikUsuwajacyID,
|
|
( CASE WHEN t.NazwaNaZamowieniu = '' THEN t.NazwaTowaru ELSE t.NazwaNaZamowieniu END )
|
|
,t.RodzajTowaru,rp.StatusRealizacji, rp.NumerCzesci
|
|
)k
|
|
GROUP BY k.GrupaZestawuID,
|
|
k.DTRachunekID,
|
|
k.TowarID,
|
|
k.QuantitySet,
|
|
k.RodzajTowaru,
|
|
k.NumerCzesci,
|
|
k.ShowWeight,
|
|
k.ConnectionID
|
|
|
|
UNION ALL -- PIZZA
|
|
|
|
SELECT
|
|
dtrp.ID
|
|
,p.BillID
|
|
,p.ArticleID
|
|
,p.GrupaZestawuID
|
|
,p.Name
|
|
,p.ServingGroup
|
|
,p.ServingGroupName
|
|
,p.PersonNumber
|
|
,p.Remark
|
|
,p.QuantitySet
|
|
,p.QuantityToDo
|
|
,p.QuantityDone
|
|
,p.QuantityRemoved
|
|
,p.QuantityPrecision
|
|
,dtrp.DataDodania
|
|
,p.IsModified
|
|
,p.IsNew
|
|
,p.StatusOfPreparation
|
|
,p.RodzajTowaru
|
|
,p.NumerCzesci
|
|
,p.IloscKawalkow
|
|
,dtrp.DataModyfikacjiGrupySerwowania
|
|
,p.Color
|
|
,1
|
|
,p.ConnectionID --ShowWeight
|
|
FROM
|
|
(
|
|
SELECT distinct
|
|
rp.GrupaZestawuID,
|
|
rp.ZestawID,
|
|
rp.NumerCzesci,
|
|
rp.DTRachunekID AS BillID,
|
|
rp.ZestawID AS ArticleID,
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END AS Name,
|
|
rp.NumerGrupySerwowania AS ServingGroup,
|
|
ISNULL(sp.Opis, CAST(rp.NumerGrupySerwowania AS VARCHAR) ) AS ServingGroupName,
|
|
1 AS PersonNumber,
|
|
rp.Notatka AS Remark,
|
|
CASE WHEN t.RodzajTowaru = 8 and @RodzajKDS = 0
|
|
THEN 0
|
|
ELSE 1
|
|
END AS QuantitySet,
|
|
CASE WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN 0
|
|
ELSE ROUND(rp.ilosc * rp.IloscZestawow,2)
|
|
END AS QuantityToDo,
|
|
CASE WHEN rp.IloscZrealizowana < rp.Ilosc
|
|
THEN 0
|
|
ELSE ROUND(1.0 / rp.IloscKawalkow, 2)
|
|
END AS QuantityDone,
|
|
CASE WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN ROUND(1.0 / rp.IloscKawalkow, 2)
|
|
ELSE 0
|
|
END AS QuantityRemoved,
|
|
2 AS QuantityPrecision,
|
|
0 AS IsModified,
|
|
CASE
|
|
WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN CASE WHEN DATEDIFF(second, DataUsuniecia, @date) <= 10 THEN 1 ELSE 0 END
|
|
ELSE
|
|
CASE rp.StatusRealizacji
|
|
WHEN 0 THEN 1
|
|
ELSE
|
|
CASE WHEN ISNULL(konf.TInt, 0) > 0 AND DATEADD(ss, konf.TInt ,rp.DataWyswietleniaNaKDS) > @date
|
|
THEN 1 ELSE 0
|
|
END
|
|
END
|
|
END AS IsNew, --IsNew,
|
|
CASE WHEN rp.UzytkownikUsuwajacyID IS NOT NULL
|
|
THEN 99
|
|
ELSE rp.StatusRealizacji
|
|
END AS StatusOfPreparation,
|
|
t.RodzajTowaru,
|
|
rp.IloscKawalkow,
|
|
|
|
CASE WHEN @RodzajKDS = 1
|
|
THEN CASE WHEN rp.StatusRealizacji in (0,1,2) and rp.UzytkownikUsuwajacyID is null THEN @KDSWydawkaKolorPozycjiWPrzygotowaniu
|
|
when rp.StatusRealizacji in (3,4) and rp.UzytkownikUsuwajacyID is null THEN @KDSWydawkaKolorPozycjiWydanych
|
|
ELSE null
|
|
END
|
|
ELSE null
|
|
END as Color,
|
|
1 as ShowWeight,
|
|
rp.GrupaZestawuID as ConnectionID
|
|
FROM #Bills b
|
|
INNER JOIN #Pozycje rp ON rp.DTRachunekID = b.ID and rp.RolaWKompozycji = 1
|
|
INNER JOIN NGastroTowar t ON t.ID = rp.ZestawID AND t.RodzajTowaru = 3
|
|
INNER JOIN #Pizza p ON rp.TowarID = p.TowarID
|
|
AND p.ID = rp.ZestawID
|
|
AND p.PizzaBaza = 1
|
|
AND p.Skladnik = 1
|
|
and p.BillID = rp.DTRachunekID
|
|
INNER JOIN NGastroGrupaTowarowa gt ON t.GrupaTowarowaID = gt.ID
|
|
LEFT JOIN NSysSlownik s ON s.SystemNr = 300
|
|
LEFT JOIN NSysAppKonfiguracjaSzablon konfSzab ON konfSzab.Symbol= 'Local.KDS.NewPositionBacklightTime'
|
|
LEFT JOIN NSysAppKonfiguracja konf ON konf.SzablonID = konfSzab.ID
|
|
LEFT JOIN NSysSlownikPozycja sp ON sp.SlownikID = s.ID AND sp.Wartosc = CAST(rp.NumerGrupySerwowania AS VARCHAR)
|
|
LEFT JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGastroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
and (ukdz.UrzadzenieID = @DeviceID or @rodzajKds =1 )
|
|
LEFT JOIN NGastroUrzadzenieKdsWydawkaDla u on (u.UrzadzenieIDKds = ukdz.UrzadzenieID and u.UrzadzenieIDWydawka = @DeviceID) or @rodzajKds =0
|
|
WHERE (
|
|
(@RodzajKDS IN (0,1)
|
|
AND (@WyswietlanieWykonanychPozycji = 1
|
|
or @RodzajKDS = 1
|
|
or (@RodzajKDS = 0 and @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
OR rp.StatusRealizacji <> 3
|
|
)
|
|
|
|
AND (
|
|
(@RodzajKDS = 0 and rp.StatusRealizacji < 4)
|
|
or (@RodzajKDS = 0 and @KDSExistsIssued = 0 and rp.StatusRealizacji = 4)
|
|
or (@RodzajKDS = 1 and rp.StatusRealizacji < 5)
|
|
or rp.UzytkownikUsuwajacyID is not null
|
|
)
|
|
AND rp.StatusRealizacji<>6
|
|
AND
|
|
(
|
|
@WyswietlanieEdytowanychRachunkow = 1
|
|
OR rp.FlgPotwierdzona = 1
|
|
)
|
|
AND
|
|
(
|
|
DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
OR (@WyswietlanieEdytowanychRachunkow = 1 AND rp.UzytkownikUsuwajacyID IS NOT NULL AND rp.FlgPotwierdzona = 0)
|
|
)
|
|
)
|
|
OR
|
|
( @RodzajKDS = 3
|
|
AND rp.StatusRealizacji IN (3,4)
|
|
AND rp.UzytkownikUsuwajacyID IS NULL
|
|
AND rp.FlgPotwierdzona = 1
|
|
AND DATEDIFF(ss, CASE rp.DataWydruku WHEN CAST('1900-01-01' AS DATETIME) THEN @date ELSE rp.DataWydruku END, @date) > 0
|
|
)
|
|
)
|
|
AND rp.GrupaZestawuID IS NOT NULL
|
|
) p
|
|
inner join
|
|
(
|
|
select cast(max(cast( ID as varchar(36))) as UNIQUEIDENTIFIER) as ID,
|
|
GrupaZestawuID,
|
|
ZestawID,
|
|
MAX(DataModyfikacjiGrupySerwowania) as DataModyfikacjiGrupySerwowania,
|
|
MAX(DataDodania) AS DataDodania
|
|
from #Pozycje
|
|
group by GrupaZestawuID, ZestawID
|
|
) dtrp on dtrp.GrupaZestawuID = p.GrupaZestawuID and dtrp.ZestawID = p.ZestawID
|
|
|
|
|
|
DECLARE @NazwyTowarowDlaPozycji TABLE (idPoz UNIQUEIDENTIFIER , nazwa VARCHAR(100) COLLATE POLISH_CS_AI DEFAULT '',numer INT IDENTITY (1,1))
|
|
INSERT INTO @NazwyTowarowDlaPozycji(idPoz,nazwa)
|
|
SELECT rp.ID,
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END
|
|
FROM #Pozycje rp
|
|
INNER JOIN NGastroTowar t ON t.ID = rp.TowarID AND t.RodzajTowaru <> 4
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
LEFT JOIN NGastroTowar tz ON rp.ZestawID = tz.ID
|
|
WHERE (
|
|
(@RodzajKDS IN (0,1)
|
|
AND (@WyswietlanieWykonanychPozycji = 1 or @RodzajKDS = 1 OR rp.StatusRealizacji <> 3)
|
|
AND ((@RodzajKDS = 0 and (rp.StatusRealizacji < 4 or rp.StatusRealizacji=99)) or (@RodzajKDS = 1 and (rp.StatusRealizacji < 5 or rp.StatusRealizacji=99)) or (@RodzajKDS = 0 and @KDSExistsIssued = 0 and rp.StatusRealizacji = 4))
|
|
AND
|
|
(
|
|
@WyswietlanieEdytowanychRachunkow = 1
|
|
OR rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
OR (@RodzajKDS = 3
|
|
AND rp.StatusRealizacji IN (3,4)
|
|
AND rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 0 OR rp.GrupaZestawuID IS NOT NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NOT NULL)
|
|
AND ISNULL(rp.RolaWKompozycji, 0) IN (0, 2)
|
|
AND ISNULL(tz.RodzajTowaru, 0) <> 3
|
|
|
|
INSERT INTO #SubArticles
|
|
(
|
|
ID,
|
|
ArticleID,
|
|
SubArticleID,
|
|
Name,
|
|
Quantity,
|
|
QuantityPrecision,
|
|
IsPrimary,
|
|
StatusOfPreparation,
|
|
IsModified,
|
|
Numer,
|
|
NumerCzesci,
|
|
GrupaZestawuID,
|
|
Pozycja,
|
|
ZestawID,
|
|
IsAddition,
|
|
Date,
|
|
Remark
|
|
)
|
|
select CAST(MAX(CAST(zliczonezestawy.ID AS VARCHAR(36))) AS UNIQUEIDENTIFIER),
|
|
zliczonezestawy.GrupaZestawuID,
|
|
CAST(MAX(CAST(zliczonezestawy.TowarID AS VARCHAR(36))) AS UNIQUEIDENTIFIER),
|
|
max(zliczonezestawy.nazwa),
|
|
Max(zliczonezestawy.ilosc),
|
|
max(zliczonezestawy.Precyzja),
|
|
1,
|
|
max(zliczonezestawy.StatusRealizacji),
|
|
0,
|
|
Numer,
|
|
NumerCzesci,
|
|
zliczonezestawy.GrupaZestawuID,
|
|
0,
|
|
CAST(MAX(CAST(zliczonezestawy.ZestawID AS VARCHAR(36))) AS UNIQUEIDENTIFIER) AS ZestawID,
|
|
0,
|
|
Date,
|
|
'' Remark
|
|
from
|
|
(
|
|
select CAST(MAX(CAST(sel.ID AS VARCHAR(36))) AS UNIQUEIDENTIFIER) as id,
|
|
sel.GrupaZestawuID ,
|
|
CAST(max(CAST(sel.TowarID AS VARCHAR(36))) AS UNIQUEIDENTIFIER) as TowarID,
|
|
sel.nazwa ,
|
|
CASE WHEN max(sel.RodzajTowaru) = 9 THEN sum(sel.Ilosc)
|
|
ELSE
|
|
sum((CASE WHEN sel.UzytkownikUsuwajacyID IS NOT NULL THEN -1.0 ELSE 1.0 END
|
|
*
|
|
CASE sel.IloscKawalkow WHEN 1 THEN sel.Ilosc ELSE CEILING(ROUND(sel.Ilosc, 2) * sel.IloscKawalkow) END
|
|
)) END as ilosc,
|
|
max(sel.Precyzja) as Precyzja ,
|
|
max(sel.StatusRealizacji) as StatusRealizacji,
|
|
min(sel.Numer) as numer,
|
|
max(sel.NumerCzesci) as NumerCzesci,
|
|
CAST(MAX(CAST(sel.ZestawID AS VARCHAR(36))) AS UNIQUEIDENTIFIER) AS ZestawID,
|
|
MAX(sel.DataDodania) AS DATE,
|
|
MAX(Notatka) as Remark
|
|
from
|
|
(
|
|
SELECT DISTINCT nt.Numer,
|
|
t.Precyzja,
|
|
tz.RodzajTowaru,
|
|
nt.nazwa as nazwa,
|
|
rp.*
|
|
FROM #Pozycje rp
|
|
INNER JOIN @NazwyTowarowDlaPozycji nt on nt.idPoz = rp.ID
|
|
INNER JOIN NGastroTowar t ON t.ID = rp.TowarID AND t.RodzajTowaru <> 4
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGastroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
and (ukdz.UrzadzenieID = @DeviceID or @rodzajKds =1 )
|
|
LEFT JOIN NGastroUrzadzenieKdsWydawkaDla u on (u.UrzadzenieIDKds = ukdz.UrzadzenieID and u.UrzadzenieIDWydawka = @DeviceID and @rodzajKds =1) or @rodzajKds =0
|
|
INNER JOIN NGastroGrupaTowarowa gt ON t.GrupaTowarowaID = gt.ID
|
|
LEFT JOIN NSysSlownik s ON s.SystemNr = 300
|
|
LEFT JOIN NSysSlownikPozycja sp ON sp.SlownikID = s.ID AND sp.Wartosc = CAST(rp.NumerGrupySerwowania AS VARCHAR)
|
|
LEFT JOIN NGastroTowar tz ON rp.ZestawID = tz.ID
|
|
WHERE (
|
|
(@RodzajKDS IN (0,1)
|
|
AND (@WyswietlanieWykonanychPozycji = 1 or @RodzajKDS = 1 OR rp.StatusRealizacji <> 3)
|
|
AND ((@RodzajKDS = 0 and (rp.StatusRealizacji < 4 or rp.StatusRealizacji=99))
|
|
or (@RodzajKDS = 1 and (rp.StatusRealizacji < 5 or rp.StatusRealizacji=99))
|
|
or (@RodzajKDS = 0 and @KDSExistsIssued = 0 and rp.StatusRealizacji = 4))
|
|
AND rp.StatusRealizacji<>6
|
|
AND (@WyswietlanieEdytowanychRachunkow = 1 OR rp.FlgPotwierdzona = 1)
|
|
)
|
|
OR
|
|
(@RodzajKDS = 3
|
|
AND rp.StatusRealizacji IN (3,4)
|
|
AND rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 0 OR rp.GrupaZestawuID IS NOT NULL OR rp.DodatekDlaDTRachunekPozycjaID IS NOT NULL)
|
|
AND ISNULL(rp.RolaWKompozycji, 0) IN (0, 2)
|
|
AND ISNULL(tz.RodzajTowaru, 0) <> 3
|
|
) sel
|
|
group by sel.GrupaZestawuID,sel.nazwa
|
|
) zliczonezestawy
|
|
group by zliczonezestawy.GrupaZestawuID,zliczonezestawy.Numer, NumerCzesci, zliczonezestawy.DATE
|
|
|
|
|
|
UNION ALL
|
|
SELECT distinct rp.ID,
|
|
rp.ID,
|
|
m.ZamiennikTowarID AS TowarID,
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END,
|
|
m.Ilosc,
|
|
t.Precyzja,
|
|
1,
|
|
rp.StatusRealizacji,
|
|
0,
|
|
0,
|
|
rp.NumerCzesci,
|
|
rp.GrupaZestawuID,
|
|
m.Pozycja + 100, -- dodajemy 100 aby składniki, których nie mona na nic zmienić znalazły sie na końcu, tak jak w posie
|
|
NULL,
|
|
0,
|
|
rp.DataDodania,
|
|
rp.Notatka
|
|
FROM #ResultModyf m
|
|
INNER JOIN #Pozycje rp ON rp.ID = m.PozycjaID
|
|
INNER JOIN NGastroTowar t ON t.ID = m.ZamiennikTowarID
|
|
WHERE ( (@RodzajKDS IN (0,1)
|
|
AND (@WyswietlanieWykonanychPozycji = 1 or @RodzajKDS = 1 OR rp.StatusRealizacji <> 3)
|
|
AND
|
|
(
|
|
(@RodzajKDS = 0 AND (rp.StatusRealizacji < 4 OR rp.StatusRealizacji=99))
|
|
OR (@RodzajKDS = 1 AND (rp.StatusRealizacji < 5 OR rp.StatusRealizacji=99))
|
|
OR (@RodzajKDS = 0 AND @KDSExistsIssued = 0 AND rp.StatusRealizacji = 4)
|
|
)
|
|
AND rp.StatusRealizacji<>6
|
|
AND
|
|
(
|
|
@WyswietlanieEdytowanychRachunkow = 1
|
|
OR rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
OR
|
|
(@RodzajKDS = 3
|
|
AND rp.StatusRealizacji IN (3,4)
|
|
AND rp.FlgPotwierdzona = 1
|
|
)
|
|
)
|
|
AND (rp.FlgPozycjaNadrzedna = 1 )
|
|
AND ISNULL(rp.RolaWKompozycji, 0) = 0
|
|
|
|
|
|
|
|
|
|
UNION ALL
|
|
---- kompozycja
|
|
SELECT distinct rp.ID,
|
|
a.ID,
|
|
rp.TowarID,
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END,
|
|
rp.Ilosc,
|
|
t.Precyzja,
|
|
1,
|
|
rp.StatusRealizacji,
|
|
0,
|
|
0,
|
|
a.PartNumber,
|
|
rp.GrupaZestawuID,
|
|
0,
|
|
NULL,
|
|
0,
|
|
a.Date,
|
|
'' Notatka
|
|
FROM #Articles a
|
|
INNER JOIN #Pozycje rp
|
|
ON a.ArticleID = rp.ZestawID
|
|
AND a.PackageID = rp.GrupaZestawuID
|
|
AND a.PartNumber = rp.NumerCzesci
|
|
INNER JOIN NGastroTowar t ON t.ID = rp.TowarID
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGastroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
and (ukdz.UrzadzenieID = @DeviceID or @rodzajKds =1 )
|
|
LEFT JOIN NGastroUrzadzenieKdsWydawkaDla u on (u.UrzadzenieIDKds = ukdz.UrzadzenieID and u.UrzadzenieIDWydawka = @DeviceID) or @rodzajKds IN (0 ,3)
|
|
WHERE a.ArticleType = 3
|
|
AND rp.RolaWKompozycji = 0
|
|
|
|
UNION ALL
|
|
---- kompozycja
|
|
select NewId(),
|
|
a.ID ,
|
|
z.TowarID,
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END,
|
|
(-1.0 * z.Ilosc),
|
|
t.Precyzja,
|
|
1,
|
|
a.StatusOfPreparation ,
|
|
1,
|
|
0,
|
|
a.PartNumber,
|
|
a.ConnectionID,
|
|
s.Pozycja,
|
|
NULL,
|
|
0,
|
|
a.Date,
|
|
'' Notatka
|
|
FROM #Articles a
|
|
CROSS APPLY (SELECT TOP 1 ID, TowarID, Ilosc
|
|
FROM NGastroBOM
|
|
WHERE TowarID = a.ArticleID
|
|
AND ObowiazujeOd <= GETDATE()
|
|
ORDER BY ObowiazujeOd DESC
|
|
) b
|
|
INNER JOIN NGastroSkladnik s ON b.ID = s.BomID
|
|
INNER JOIN NGastroZamiennik z ON s.ID = z.SkladnikID AND z.FlgRodzaj = 0
|
|
INNER JOIN NGastroTowar t ON t.ID = z.TowarID AND t.FlgAktywny = 1 AND t.Blokada = 0
|
|
where a.ArticleType = 3
|
|
and z.TowarID not in ( select rp.TowarID from #Pozycje rp
|
|
where a.BillId = rp.DTRachunekID
|
|
and a.ArticleID = rp.ZestawID
|
|
AND a.PackageID = rp.GrupaZestawuID
|
|
and rp.RolaWKompozycji = 2
|
|
AND a.PartNumber = rp.NumerCzesci
|
|
)
|
|
|
|
UNION ALL
|
|
---- zestaw automatyczny
|
|
SELECT distinct rp.ID,
|
|
a.ID,
|
|
rp.TowarID,
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END,
|
|
rp.Ilosc,
|
|
t.Precyzja,
|
|
1,
|
|
rp.StatusRealizacji,
|
|
1,
|
|
0,
|
|
a.PartNumber,
|
|
rp.GrupaZestawuID,
|
|
0,
|
|
NULL,
|
|
0,
|
|
a.Date,
|
|
rp.Notatka
|
|
FROM #Articles a
|
|
INNER JOIN #Pozycje rp ON a.ArticleID = rp.ZestawID AND a.PackageID = rp.GrupaZestawuID
|
|
INNER JOIN NGastroTowar t ON t.ID = rp.TowarID
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGastroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
and (ukdz.UrzadzenieID = @DeviceID or @rodzajKds =1 )
|
|
INNER JOIN NGastroUrzadzenieKdsWydawkaDla u on (u.UrzadzenieIDKds = ukdz.UrzadzenieID and u.UrzadzenieIDWydawka = @DeviceID) or @rodzajKds IN (0 ,3)
|
|
WHERE a.ArticleType = 10
|
|
AND t.RodzajTowaru IN (4, 9)
|
|
|
|
UNION ALL
|
|
---- zestaw automatyczny
|
|
SELECT distinct rp.ID,
|
|
a.ID,
|
|
rp.TowarID,
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END,
|
|
rpm.ModyfikatorIlosc,
|
|
t.Precyzja,
|
|
1,
|
|
rp.StatusRealizacji,
|
|
1,
|
|
0,
|
|
a.PartNumber,
|
|
rp.GrupaZestawuID,
|
|
0,
|
|
NULL,
|
|
0,
|
|
a.Date,
|
|
rp.Notatka
|
|
FROM #Articles a
|
|
INNER JOIN #Pozycje rp ON a.ArticleID = rp.ZestawID AND a.PackageID = rp.GrupaZestawuID
|
|
INNER JOIN NGastroDTRachunekPozycjaModyfikacja rpm ON rpm.DTRachunekPozycjaID = rp.ID
|
|
INNER JOIN NGastroTowar t ON t.ID = rpm.ModyfikatorID
|
|
INNER JOIN NGastroKonfiguracjaDrukowaniaZamowien kdz ON rp.KonfiguracjaDrukowaniaZamowienID = kdz.ID
|
|
INNER JOIN NGastroUrzadzenieKierunekDrukowaniaZamowien ukdz ON (ukdz.SposobDrukowaniaZamowienID = kdz.SposobDrukowaniaZamowienID
|
|
OR ukdz.SposobDrukowaniaZamowienID = @KierunekWydrukuWszystkieID)
|
|
and (ukdz.UrzadzenieID = @DeviceID or @rodzajKds = 1 )
|
|
INNER JOIN NGastroUrzadzenieKdsWydawkaDla u on (u.UrzadzenieIDKds = ukdz.UrzadzenieID and u.UrzadzenieIDWydawka = @DeviceID) or @RodzajKDS IN (0, 3)
|
|
WHERE a.ArticleType = 10
|
|
AND t.RodzajTowaru = 1
|
|
|
|
UNION ALL
|
|
---- kompozycja
|
|
select NewId(),
|
|
temp1.ID,
|
|
temp1.TowarID,
|
|
temp1.NazwaTowaru,
|
|
temp1.ilosc,
|
|
temp1.Precyzja,
|
|
IsPrimary,
|
|
temp1.StatusOfPreparation ,
|
|
temp1.IsModified,
|
|
temp1.Numer,
|
|
temp1.NumerCzesci,
|
|
temp1.GrupaZestawuID,
|
|
0,
|
|
NULL,
|
|
0,
|
|
temp1.date,
|
|
Notatka
|
|
FROM
|
|
(
|
|
SELECT DISTINCT
|
|
a.ID ,
|
|
p.TowarID,
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END as NazwaTowaru,
|
|
CASE WHEN rp.Ilosc = 0
|
|
THEN round((-1 * p.IloscBaza)/ IloscKawalkow ,2)
|
|
ELSE (rp.Ilosc - round(cast(cast((p.IloscBaza*1000)/ IloscKawalkow as int) as decimal(19,3))/1000,3)) * IloscKawalkow
|
|
END as ilosc,
|
|
t.Precyzja,
|
|
1 as IsPrimary,
|
|
a.StatusOfPreparation ,
|
|
1 as IsModified,
|
|
0 as Numer,
|
|
p.NumerCzesci,
|
|
rp.GrupaZestawuID,
|
|
a.Date,
|
|
'' Notatka
|
|
FROM #Articles a
|
|
INNER JOIN #Pizza p ON a.BillID = p.BillID AND p.ID = a.ArticleID
|
|
INNER JOIN #Pozycje rp ON rp.DTRachunekID = p.BillID
|
|
AND p.ID = rp.ZestawID
|
|
AND rp.TowarID = p.TowarID
|
|
AND rp.NumerCzesci = p.NumerCzesci
|
|
AND rp.GrupaZestawuID = p.GrupaZestawuID
|
|
AND rp.RolaWKompozycji = 2
|
|
INNER JOIN NGastroTowar t on t.ID = p.TowarID
|
|
WHERE a.ArticleType = 3
|
|
AND rp.Ilosc - ROUND(CAST(CAST((p.IloscBaza*1000)/ IloscKawalkow AS INT) AS DECIMAL(19,3))/1000,3) < 0
|
|
) temp1
|
|
|
|
UNION ALL -- opakowanie do pizzy
|
|
SELECT CAST(MAX(CAST(rpz.ID AS VARCHAR(36))) AS UNIQUEIDENTIFIER) ID,
|
|
a.ID,
|
|
rpz.TowarID,
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END,
|
|
Sum(rpz.Ilosc) Ilosc,
|
|
t.Precyzja,
|
|
1 AS IsPrimary,
|
|
rp.StatusRealizacji,
|
|
0 AS IsModified,
|
|
0,
|
|
rp.NumerCzesci AS PartNumber,
|
|
rp.GrupaZestawuID,
|
|
0,
|
|
NULL,
|
|
1,
|
|
MIN(rp.DataDodania) DataDodania,
|
|
rpz.Notatka
|
|
FROM #Pozycje rp
|
|
INNER JOIN #Articles a ON a.PackageID = rp.GrupaZestawuID AND a.ArticleType = 3
|
|
INNER JOIN NGastroDTRachunekPozycjaPowiazanie rpp ON rpp.DTRachunekPozycjaID = rp.ID
|
|
INNER JOIN NGastroDTRachunekPozycja rpz ON rpz.ID = rpp.DTRachunekPozycjaDocelowaID
|
|
INNER JOIN NGastroTowar t ON t.ID = rpz.TowarID
|
|
GROUP BY
|
|
a.ID,
|
|
rpz.TowarID,
|
|
t.NazwaNaZamowieniu,
|
|
t.NazwaTowaru,
|
|
t.Precyzja,
|
|
rp.StatusRealizacji,
|
|
rp.NumerCzesci,
|
|
rp.GrupaZestawuID,
|
|
rpz.Notatka
|
|
|
|
------ Dodatki i opakowania
|
|
UNION ALL
|
|
|
|
SELECT CAST(MAX(CAST(rp.ID AS VARCHAR(36))) AS UNIQUEIDENTIFIER) ID ,
|
|
rp.GrupaZestawu,
|
|
rp.TowarID,
|
|
rp.NazwaTowaru,
|
|
Sum(rp.Ilosc) Ilosc,
|
|
rp.Precyzja,
|
|
1 AS IsPrimary,
|
|
rp.StatusRealizacji,
|
|
0 AS IsModified,
|
|
0,
|
|
rp.NumerCzesci AS PartNumber,
|
|
rp.GrupaZestawuID GrupaZestawuID,
|
|
0,
|
|
NULL,
|
|
1,
|
|
MIN(rp.DataDodania) DataDodania,
|
|
rp.Notatka COLLATE POLISH_CS_AI
|
|
FROM (
|
|
SELECT DISTINCT rpz.ID ID,
|
|
CASE WHEN a.ArticleType = 9
|
|
THEN a.PackageID
|
|
ELSE rp.ID
|
|
END GrupaZestawu,
|
|
|
|
t.ID TowarID,
|
|
CASE WHEN t.NazwaNaZamowieniu = ''
|
|
THEN t.NazwaTowaru
|
|
ELSE t.NazwaNaZamowieniu
|
|
END NazwaTowaru,
|
|
rpz.Ilosc,
|
|
t.Precyzja,
|
|
rp.StatusRealizacji,
|
|
rp.NumerCzesci ,
|
|
rp.GrupaZestawuID GrupaZestawuID,
|
|
rp.DataDodania,
|
|
rpz.Notatka
|
|
FROM #Pozycje rp
|
|
INNER JOIN #Articles a ON (a.PackageID = rp.GrupaZestawuID OR rp.ID = a.ID) AND a.ArticleType <> 3
|
|
INNER JOIN NGastroDTRachunekPozycjaPowiazanie rpp ON rpp.DTRachunekPozycjaID = rp.ID
|
|
INNER JOIN NGastroDTRachunekPozycja rpz ON rpz.ID = rpp.DTRachunekPozycjaDocelowaID
|
|
INNER JOIN NGastroTowar t ON t.ID = rpz.TowarID
|
|
INNER JOIN #Pozycje p ON p.ID = rpz.ID
|
|
|
|
) rp
|
|
GROUP BY
|
|
rp.GrupaZestawu,
|
|
rp.TowarID,
|
|
rp.NazwaTowaru,
|
|
rp.Precyzja,
|
|
rp.StatusRealizacji,
|
|
rp.NumerCzesci,
|
|
rp.GrupaZestawuID,
|
|
rp.Notatka
|
|
|
|
UPDATE a
|
|
SET Remark = CAST(Remark + '; ' AS VARCHAR(255))
|
|
FROM #Articles a
|
|
WHERE a.ArticleType IN (1,3,4,8,9)
|
|
|
|
UPDATE a
|
|
SET Remark = CAST(Remark + isnull((
|
|
SELECT s.Remark + '; '
|
|
FROM #SubArticles s
|
|
WHERE s.ArticleID = a.ID
|
|
AND s.IsAddition = 1
|
|
AND LEN(LTRIM(RTRIM(ISNULL(s.Remark,'')))) > 0
|
|
ORDER BY [Date]
|
|
FOR XML PATH(''),TYPE
|
|
).value('(./text())[1]','VARCHAR(255)') ,'')
|
|
AS VARCHAR(255))
|
|
FROM #Articles a
|
|
WHERE a.ArticleType IN (1,3,4,8,9)
|
|
|
|
UPDATE a
|
|
SET Remark = ISNULL((
|
|
SELECT p.Notatka + '; '
|
|
FROM #Pozycje p
|
|
WHERE p.GrupaZestawuID = a.PackageID
|
|
AND LEN(LTRIM(RTRIM(ISNULL(p.Notatka,'')))) > 0
|
|
ORDER BY [DataDodania]
|
|
FOR XML PATH(''),TYPE
|
|
).value('(./text())[1]','VARCHAR(255)') ,'')
|
|
FROM #Articles a
|
|
WHERE a.ArticleType = 10
|
|
|
|
UPDATE a
|
|
SET Remark = REVERSE(STUFF(REVERSE((Remark)), 1, 2,''))
|
|
FROM #Articles a
|
|
WHERE a.ArticleType IN (1,3,4,8,9,10)
|
|
|
|
|
|
UPDATE a SET
|
|
Name = '[' + CAST(Lp AS VARCHAR(2)) + '] ' + Name
|
|
FROM #Articles a
|
|
INNER JOIN
|
|
(
|
|
SELECT ROW_NUMBER() OVER(PARTITION BY BillID ORDER BY ServingGroup, Date, ModificationDate) AS Lp,
|
|
BillID,
|
|
PackageID
|
|
FROM
|
|
(
|
|
SELECT BillID, PackageID, MAX(ServingGroup) AS ServingGroup, MAX(Date) AS Date, MAX(ServingGroupModificationDate) AS ModificationDate
|
|
FROM #Articles
|
|
WHERE PackageID IS NOT NULL
|
|
AND ArticleType = 3
|
|
GROUP BY BillID, PackageID
|
|
) tmp
|
|
) num ON num.PackageID = a.PackageID AND num.BillID = a.BillID
|
|
|
|
--Ustawienie kolejności podstaw--
|
|
UPDATE sa SET
|
|
sa.Pozycja = s.Pozycja,
|
|
sa.IsModify = 0
|
|
FROM #SubArticles sa
|
|
CROSS APPLY (SELECT TOP 1 ID, TowarID, Ilosc
|
|
FROM NGastroBOM
|
|
WHERE TowarID = sa.ZestawID
|
|
AND ObowiazujeOd <= GETDATE()
|
|
ORDER BY ObowiazujeOd DESC
|
|
) b
|
|
INNER JOIN NGastroSkladnik s ON s.BomID = b.ID
|
|
LEFT JOIN NGastroZamiennik z ON z.SkladnikID = s.ID
|
|
WHERE sa.SubarticleID = s.TowarID
|
|
AND z.ID IS NULL
|
|
|
|
|
|
|
|
--Ustawienie kolejności kroków zestawu--
|
|
UPDATE sa SET
|
|
sa.Pozycja = s.Pozycja
|
|
FROM #SubArticles sa
|
|
CROSS APPLY (SELECT TOP 1 ID, TowarID, Ilosc
|
|
FROM NGastroBOM
|
|
WHERE TowarID = sa.ZestawID
|
|
AND ObowiazujeOd <= GETDATE()
|
|
ORDER BY ObowiazujeOd DESC
|
|
) b
|
|
INNER JOIN NGastroSkladnik s ON s.BomID = b.ID
|
|
INNER JOIN NgastroZamiennik z ON z.SkladnikID = s.ID AND sa.SubArticleID = z.TowarID
|
|
WHERE sa.IsModify = 1
|
|
|
|
UPDATE sa SET
|
|
sa.Pozycja = s.Pozycja
|
|
FROM #SubArticles sa
|
|
CROSS APPLY (SELECT TOP 1 ID, TowarID, Ilosc
|
|
FROM NGastroBOM
|
|
WHERE TowarID = sa.ZestawID
|
|
AND ObowiazujeOd <= GETDATE()
|
|
ORDER BY ObowiazujeOd DESC
|
|
) b
|
|
INNER JOIN NGastroSkladnik s ON s.BomID = b.ID AND sa.SubArticleID = s.TowarID
|
|
WHERE sa.IsModify = 1
|
|
|
|
IF @RodzajKDS = 3
|
|
BEGIN
|
|
UPDATE #Articles
|
|
SET StatusOfPreparation = 4
|
|
WHERE StatusOfPreparation = 3
|
|
|
|
UPDATE #SubArticles
|
|
SET StatusOfPreparation = 4
|
|
WHERE StatusOfPreparation = 3
|
|
END
|
|
|
|
SELECT @result =
|
|
(
|
|
SELECT
|
|
@ExecutionStatus AS ExecutionStatus,
|
|
@SessionID AS SessionID,
|
|
(
|
|
SELECT
|
|
(
|
|
SELECT b.ID,
|
|
b.Description,
|
|
b.Remark,
|
|
b.PointOfSale,
|
|
b.UserDescription AS [User],
|
|
b.Date,
|
|
b.OpenningType,
|
|
CONVERT(XML,
|
|
(
|
|
SELECT ID,
|
|
ArticleID,
|
|
Name,
|
|
ServingGroup,
|
|
ServingGroupName,
|
|
PersonNumber,
|
|
Remark,
|
|
QuantitySet,
|
|
QuantityToDo,
|
|
QuantityDone,
|
|
QuantityRemoved,
|
|
QuantityPrecision,
|
|
Date,
|
|
IsModified,
|
|
IsNew,
|
|
StatusOfPreparation,
|
|
'#' + RIGHT(sys.fn_varbintohexstr(CONVERT(VARBINARY(8), Color)), 6) as Color,
|
|
ShowWeight,
|
|
ConnectionID,
|
|
CONVERT(XML,
|
|
(
|
|
SELECT s.ID,
|
|
s.SubArticleID,
|
|
s.Name,
|
|
s.Quantity,
|
|
s.QuantityPrecision,
|
|
s.IsPrimary,
|
|
s.StatusOfPreparation,
|
|
s.IsModified
|
|
FROM #SubArticles s
|
|
WHERE (s.ArticleID = a.ID OR s.ArticleID = a.ConnectionID)
|
|
AND
|
|
(
|
|
a.PartNumber = 0
|
|
OR a.PartNumber = s.NumerCzesci
|
|
AND
|
|
(
|
|
a.ConnectionID = s.GrupaZestawuID
|
|
OR s.GrupaZestawuID IS NULL
|
|
)
|
|
)
|
|
ORDER BY IsAddition, IsModify, Pozycja, Date
|
|
FOR XML PATH('SubArticle'), ROOT('SubArticles'), TYPE
|
|
))
|
|
FROM #Articles a
|
|
WHERE a.BillID = b.ID
|
|
ORDER BY a.ServingGroup, a.Date, a.ServingGroupModificationDate
|
|
FOR XML PATH('Article'), ROOT('Articles'), TYPE
|
|
))
|
|
FROM #Bills b
|
|
WHERE EXISTS
|
|
(
|
|
SELECT * FROM #Articles WHERE BillID = b.ID
|
|
)
|
|
ORDER BY
|
|
CASE WHEN @RodzajKDS = 2 THEN '' ELSE b.FlgFastTrack END DESC -- @RodzajKDS = 2 (OrderNumber)
|
|
,CASE WHEN ISNULL(@SortType, 0) = 0 THEN b.Date ELSE '' END ASC
|
|
,CASE WHEN ISNULL(@SortType, 0) = 1 THEN b.Date ELSE '' END DESC
|
|
FOR XML PATH('Bill'), TYPE
|
|
)
|
|
FOR XML PATH('Bills'), TYPE
|
|
)
|
|
FOR XML PATH(''), ROOT('response'), TYPE
|
|
)
|
|
|
|
Result:
|
|
|
|
IF( @ExecutionStatus > 0 )
|
|
BEGIN
|
|
SET @result = '<response><SessionID>' + CAST(@SessionID AS VARCHAR(36)) + '</SessionID>' +
|
|
+ '<ExecutionStatus>' + CAST(@ExecutionStatus AS VARCHAR(36)) + '</ExecutionStatus><Bills/></response>';
|
|
END
|
|
|
|
SELECT @result AS Response
|
|
|
|
--------------------------------------------------------------------------
|
|
-- zakonczenie procedury
|
|
|
|
KONIEC:
|
|
IF (OBJECT_ID('tempdb..#BillsToShow') IS NOT NULL)
|
|
DROP TABLE #BillsToShow
|
|
|
|
IF (OBJECT_ID('tempdb..#Pizza') IS NOT NULL)
|
|
DROP TABLE #Pizza
|
|
|
|
IF (OBJECT_ID('tempdb..#Bills') IS NOT NULL)
|
|
DROP TABLE #Bills
|
|
|
|
IF (OBJECT_ID('tempdb..#Articles') IS NOT NULL)
|
|
DROP TABLE #Articles
|
|
|
|
IF (OBJECT_ID('tempdb..#SubArticles') IS NOT NULL)
|
|
DROP TABLE #SubArticles
|
|
|
|
IF (OBJECT_ID('tempdb..#BillsTemp') IS NOT NULL)
|
|
DROP TABLE #BillsTemp
|
|
|
|
IF (OBJECT_ID('tempdb..#Pozycje') IS NOT NULL)
|
|
DROP TABLE #Pozycje
|
|
|
|
IF (OBJECT_ID('tempdb..#Zmiany') IS NOT NULL)
|
|
DROP TABLE #Zmiany
|
|
|
|
IF (OBJECT_ID('tempdb..#LastBills') IS NOT NULL)
|
|
DROP TABLE #LastBills
|
|
|
|
RETURN(0);
|
|
|
|
BLADWYKONANIA:
|
|
RETURN(99);
|
|
END; |