diff --git a/ComObjekt.pas b/ComObjekt.pas index a160d39..31ccb32 100644 --- a/ComObjekt.pas +++ b/ComObjekt.pas @@ -205,7 +205,7 @@ var oVar1, oVar2: OleVariant; arrDefs.Add('ef_Vyroba_VratNovyPaletovyList'); arrDefs.Add('ef_Vyroba_VratCisloSarze'); arrDefs.Add('ef_Kmen_VratPocetKsVKartonu'); - arrDefs.Add('tbl__TabVyrobaObjednavky'); +// arrDefs.Add('tbl__TabVyrobaObjednavky'); // arrDefs.Add('tbl__TabVyrobaOperaceStartStop'); arrDefs.Add('ep_P01_HDC1'); @@ -219,6 +219,7 @@ var oVar1, oVar2: OleVariant; arrDefs.Add('ep_Vyroba_VyrobaMimoPlan'); arrDefs.Add('ep_Vyroba_Doklady_Micharna'); + arrDefs.Add('ep_Vyroba_Doklady_PomocPrijemka'); arrDefs.Add('ep_Vyroba_GenVydejZeMzdy'); arrDefs.Add('ep_Vyroba_GenOdvodZeMzdy'); arrDefs.Add('ep_Vyroba_DoplnSkladProVydejDleDokl'); @@ -226,6 +227,7 @@ var oVar1, oVar2: OleVariant; arrDefs.Add('ep_Vyroba_InsertEvidRozpracOper'); arrDefs.Add('ep_Vyroba_PrijemNestandard'); arrDefs.Add('ep_Vyroba_VyrobaMimoPlan'); + arrDefs.Add('ep_Vyroba_GenObjednavkuMatDoVyroby'); arrDefs.Add('ep_HDC_PZ_ZapisPolozek'); arrDefs.Add('ep_Vyroba_GenerujPalety'); arrDefs.Add('ep_Vyroba_GenSouhrnnyVydej'); @@ -246,8 +248,8 @@ var oVar1, oVar2: OleVariant; // arrDefs.Add('spec_Clear'); - arrDefs.Add('trg__TabVyrobaObjednavky_IU'); - arrDefs.Add('trg__TabVyrobaObjednavky_Pol_D'); +// arrDefs.Add('trg__TabVyrobaObjednavky_IU'); +// arrDefs.Add('trg__TabVyrobaObjednavky_Pol_D'); arrDefs.Add('trg__TabVyrobaPalety_IU'); arrDefs.Add('trg__TabVyrobaPalety_D'); arrDefs.Add('trg__TabPohybyZbozi_HDC_IU'); @@ -257,6 +259,7 @@ var oVar1, oVar2: OleVariant; arrDefs.Add('trg__TabVyrobaPaletyUkonceni_D'); arrDefs.Add('trg__TabVyrobaVydejMatSarze_IU'); arrDefs.Add('trg__TabVyrCisPrikaz_HDC_D'); + arrDefs.Add('trg__TabPrikazMzdyAZmetky_HDC_D'); for i:=0 to arrDefs.Count-1 do begin @@ -702,11 +705,11 @@ var oVar1, oVar2: OleVariant; Helios.Error(#1'Akci můžete spustit jen nad dokladem Výdejky/pÅ™evodky Å™ady 231'#1) else begin - tBid:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Vyroba_Micharna_PozadavkyObj'''); + tBid:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Vyroba_ObjednavkyMat'''); if (tBid>0) then begin lSQL:= 'DROP TABLE IF EXISTS #TabZapisPolozekOZ' + CRLF + 'CREATE TABLE #TabZapisPolozekOZ (ID INT IDENTITY(1,1) NOT NULL, IDPolozky INT NOT NULL, PRIMARY KEY (ID))' + CRLF; - podm:= '(hvw_Vyroba_Micharna_PozadavkyObj.Blokovano=0 OR hvw_Vyroba_Micharna_PozadavkyObj.MnozKVydeji>0) AND hvw_Vyroba_Micharna_PozadavkyObj.Splneno=0'; + podm:= '(hvw_Vyroba_ObjednavkyMat.Blokovano=0 OR hvw_Vyroba_ObjednavkyMat.MnozKVydeji>0) AND hvw_Vyroba_ObjednavkyMat.Splneno=0'; if Helios.Prenos2 (tBid, 'ID', 'ID', oVar1, oVar2, podm, 'Vyberte položky', false, true, false, 1) then begin arrId:= helUtils.StrToArrayInt (VarToStr(oVar1), ','); diff --git a/PluginHDCRTN.dproj b/PluginHDCRTN.dproj index 2591811..a339071 100644 --- a/PluginHDCRTN.dproj +++ b/PluginHDCRTN.dproj @@ -102,7 +102,7 @@ 0 - CompanyName=;FileDescription=Helios iNuvio plugin pro Rootvin;FileVersion=3.0.2025.519;InternalName=;LegalCopyright=HD Consulting Strakonice, T.Buzin;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE12.3.1;ProgramID=com.embarcadero.$(MSBuildProjectName);LastCompiledTime=2025.05.21 19:06:43 + CompanyName=;FileDescription=Helios iNuvio plugin pro Rootvin;FileVersion=3.0.2025.519;InternalName=;LegalCopyright=HD Consulting Strakonice, T.Buzin;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE12.3.1;ProgramID=com.embarcadero.$(MSBuildProjectName);LastCompiledTime=2025.06.08 21:57:26 madExcept;$(DCC_Define) 3 2 @@ -128,7 +128,7 @@ true true 1033 - CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);LastCompiledTime=2025.05.21 14:33:39 + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);LastCompiledTime=2025.05.29 08:14:42 (None) none madExcept;$(DCC_Define) diff --git a/_plgPlan/frmVyrobniTyden.dfm b/_plgPlan/frmVyrobniTyden.dfm index f9e6683..76c3e66 100644 --- a/_plgPlan/frmVyrobniTyden.dfm +++ b/_plgPlan/frmVyrobniTyden.dfm @@ -4,7 +4,7 @@ object formVyberTydne: TformVyberTydne BorderIcons = [biSystemMenu] BorderStyle = bsSingle Caption = ' V'#253'robn'#237' t'#253'den' - ClientHeight = 473 + ClientHeight = 451 ClientWidth = 311 Color = clBtnFace Font.Charset = DEFAULT_CHARSET @@ -82,11 +82,11 @@ object formVyberTydne: TformVyberTydne OnChange = cbRokChange end object btnDnes: TButton - Left = 196 + Left = 186 Top = 8 - Width = 105 + Width = 115 Height = 36 - Caption = 'Dnes' + Caption = 'Aktu'#225'ln'#237' t'#253'den' TabOrder = 2 OnClick = btnDnesClick end diff --git a/_sql/2UT/utObjednavkyMat.sql b/_sql/2UT/utObjednavkyMat.sql new file mode 100644 index 0000000..c6664fc --- /dev/null +++ b/_sql/2UT/utObjednavkyMat.sql @@ -0,0 +1,594 @@ +SET NOCOUNT ON + +DECLARE + @iTemp INT, + @sql NVARCHAR(3000), + @idTab INT, + @sysTabName NVARCHAR(128), + @hvwName NVARCHAR(128), + @idCol INT, + @trigger NVARCHAR(max) + + +SET @sysTabName = '_TabVyroba_Objednavky' +SET @hvwName = 'hvw_Vyroba_ObjednavkyMat' + + +IF EXISTS (SELECT 1 FROM dbo.TabObecnyPrehled WHERE NazevSys=N'hvw_Vyroba_Micharna_PozadavkyObj') + UPDATE dbo.TabObecnyPrehled SE NazevSys=@hvwName WHERE NazevSys=N'hvw_Vyroba_Micharna_PozadavkyObj' + + +SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivTabulka), 1) +DBCC CHECKIDENT (TabDefTabUzivTabulka, RESEED, @iTemp) +SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivAtributy), 1) +DBCC CHECKIDENT (TabDefTabUzivAtributy, RESEED, @iTemp) +SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivConstraint), 1) +DBCC CHECKIDENT (TabDefTabUzivConstraint, RESEED, @iTemp) + + + +-- tabulka +SET @idTab = (SELECT ID FROM dbo.TabDefTabUzivTabulka WHERE NazevTabulky=@sysTabName) +IF (@idTab IS NULL) + BEGIN + INSERT dbo.TabDefTabUzivTabulka (Skupina, Popis, NazevTabulky, NazevPrehledu, NastaveniAkceNovy, NastaveniAkceOprava, NastaveniAkceZrusit) + SELECT N'', 'Objednávky na materiál', @sysTabName, @hvwName, 1, 1, 1 + SET @idTab = SCOPE_IDENTITY() + END + + + + + + + +-- sloupce +IF (@idTab IS NOT NULL) + BEGIN +/* + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUHeliosAttr, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrEditor, EdAtrPoradi, EdAtrHlidat, EdAtrPrenosAtr, EdAtrSkrytyPrenos, EdAtrInfoAtr1, EdAtrInfoAtr2, EdAtrPrenosDPSN, EdAtrPrenosIDFiltr, EdAtrPodminka) + +DTUAtrTyp +0=INT +1=SMALLINT +2=TINYINT +3=BIGINT +4=GUID +5=BIT +6=NVARCHAR +7=NTEXT +8=VARBINARY(MAX) +9=DATETIME +10=NUMERIC(5,2) +11=NUMERIC(19,6) +12=FLOAT +13=VARCHAR +14=NVARCHAR(MAX) +*/ + + +/* + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'ID') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN, EdAtrPrenosAtr) + SELECT @idTab, 1, N'ID', N'Systémové èíslo', 0, 0, 0, N'', 0, -- 0 = int + NULL, NULL, NULL, 20, N'', 0, 1, 0, 1, 0, + 0, 0, N'', N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'ID') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY' + EXEC sp_executesql @sql + END +*/ + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPrijataDataJson') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN, EdAtrPrenosAtr) + SELECT @idTab, 2, N'IDPrijataDataJson', N'ID JSON', 0, 0, 1, N'', 0, -- 0 = int + NULL, NULL, NULL, 20, N'', 0, 0, 0, 1, 0, + 1, 0, N'', N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDPrijataDataJson') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDPrijataDataJson INT NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IdPHIdent') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 3, N'IdPHIdent', N'Identifikace PH', 3, 0, 1, N'', 0, -- 3=bigint + NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IdPHIdent') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IdPHIdent BIGINT NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IdPHIdent2') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 4, N'IdPHIdent2', N'Identifikace 2 PH', 3, 0, 1, N'', 0, -- 3=bigint + NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IdPHIdent') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IdPHIdent2 BIGINT NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'PHOznaceni') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 5, N'PHOznaceni', N'Oznaèení PH', 6, 50, 1, N'', 0, -- 6=nvarchar + NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'PHOznaceni') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD PHOznaceni NVARCHAR(50) NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Poznamka') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 6, N'Poznamka', N'Poznámka', 6, 255, 1, N'', 0, -- 6=nvarchar + NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 1, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Poznamka') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Poznamka NVARCHAR(255) NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'SkupZbo') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUHeliosAttr, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 7, N'SkupZbo', N'TabKmenZbozi.SkupZbo', N'', 6, 3, 1, N'', 0, -- 6=nvarchar + NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'SkupZbo') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD SkupZbo NVARCHAR(3) NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'RegCis') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUHeliosAttr, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 8, N'RegCis', N'TabKmenZbozi.RegCis', N'', 6, 30, 1, N'', 0, -- 6 = nvarchar, delka 30 + NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'RegCis') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD RegCis NVARCHAR(30) NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDKmenZbozi') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN, EdAtrPrenosAtr) + SELECT @idTab, 9, N'IDKmenZbozi', N'Kmenová karta', 0, 0, 1, N'', 0, -- 0 = int + NULL, NULL, NULL, 20, N'', 0, 0, 0, 1, 0, + 0, 0, N'', N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDKmenZbozi') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDKmenZbozi INT NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Mnozstvi') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 10, N'Mnozstvi', N'Množství', 11, 0, 0, N'0', 0, -- 11 = numeric(19,6) + NULL, NULL, NULL, 70, N'#,##0.##', 1, 1, 1, 1, 1, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Mnozstvi') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'MnozVydane') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 11, N'MnozVydane', N'Množství na výdejkách', 11, 0, 0, N'0', 0, -- 11 = numeric(19,6) + NULL, NULL, NULL, 70, N'#,##0.##', 1, 1, 1, 1, 1, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'MnozVydane') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD MnozVydane NUMERIC(19,6) NOT NULL DEFAULT 0.0' + EXEC sp_executesql @sql + END + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'PaletovyList') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 12, N'PaletovyList', N'Paletový list', 6, 100, 1, N'', 0, -- 6 = nvarchar, delka 100 + NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'PaletovyList') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD PaletovyList NVARCHAR(100) NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Sarze') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 13, N'Sarze', N'Šarže', 6, 100, 1, N'', 0, -- 6 = nvarchar, delka 100 + NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Sarze') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Sarze NVARCHAR(100) NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'NocniObjednavka') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 14, N'NocniObjednavka', N'Noèní objednávka', 5, 0, 0, N'0', 0, -- 5 = bit + NULL, NULL, NULL, 10, N'', 1, 1, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'NocniObjednavka') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD NocniObjednavka NOT NULL DEFAULT 0' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Storno') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 15, N'Storno', N'Storno', 5, 0, 0, N'0', 0, -- 5 = bit + NULL, NULL, NULL, 10, N'', 1, 1, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Storno') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Storno NOT NULL DEFAULT 0' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Vratka') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 16, N'Vratka', N'Vratka', 5, 0, 0, N'0', 0, -- 5 = bit + NULL, NULL, NULL, 10, N'', 1, 1, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Vratka') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Vratka NOT NULL DEFAULT 0' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Splneno') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 17, N'Splneno', N'Splnìno', 5, 0, 0, N'0', 0, -- 5 = bit + NULL, NULL, NULL, 10, N'', 1, 1, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Splneno') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Splneno NOT NULL DEFAULT 0' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'OdmitnutoSkladem') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrJmenoVerejneZkr, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 18, N'OdmitnutoSkladem', N'Odmítnuto skladem', N'Odmítnuto', 5, 0, 0, N'0', 0, -- 5 = bit + NULL, NULL, NULL, 10, N'', 1, 1, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'OdmitnutoSkladem') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD OdmitnutoSkladem BIT NOT NULL DEFAULT 0' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'PocetPohybuOZ') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrJmenoVerejneZkr, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 19, N'PocetPohybuOZ', N'Poèet pohybù OZ', N'', 1, 0, 0, N'0', 0, -- 1 = smallint + NULL, NULL, NULL, 10, N'', 1, 1, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'PocetPohybuOZ') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD OdmitnutoSkladem NOT NULL DEFAULT 0' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Blokovano') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrJmenoVerejneZkr, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 20, N'Blokovano', N'Blokováno', N'', 5, 0, 0, N'0', 0, -- 5 = bit + NULL, NULL, NULL, 10, N'', 1, 1, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Blokovano') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Blokovano BIT NOT NULL DEFAULT 0' + EXEC sp_executesql @sql + END + + +/* + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'DatPorizeni') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrJmenoVerejneZkr, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 21, N'DatPorizeni', N'', N'TabCisOrg.DatPorizeni', 9, 0, 0, N'GETDATE()', 0, -- 9 = datetime + NULL, NULL, NULL, 18, N'', 1, 1, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'DatPorizeni') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD DatPorizeni DATETIME NOT NULL DEFAULT GETDATE()' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Autor') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrJmenoVerejneZkr, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 22, N'Autor', N'', N'TabCisOrg.Autor', 6, 80, 0, N'SUSER_SNAME()', 0, -- 6 = nvarchar + NULL, NULL, NULL, 20, N'', 1, 1, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Autor') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME()' + EXEC sp_executesql @sql + END +*/ + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'DatZpracovani') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrJmenoVerejneZkr, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 23, N'DatZpracovani', N'Datum zpracování', N'', 9, 0, 1, N'', 0, -- 9 = datetime + NULL, NULL, NULL, 18, N'', 1, 0, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'DatZpracovani') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD DatZpracovani DATETIME NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'JeMaterial') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 24, N'JeMaterial', N'JeMaterial', 5, 0, 0, N'1', 0, -- 5 = bit + NULL, NULL, NULL, 10, N'', 1, 1, 0, 1, 0, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'JeMaterial') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD JeMaterial NOT NULL DEFAULT 1' + EXEC sp_executesql @sql + END + + + END -- @idTab IS NOT NULL + + + + + + + +-- indexy +IF (@idTab IS NOT NULL) + IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=1 AND JmenoSys=N'PK__' + @sysTabName + N'__ID') + INSERT dbo.TabDefTabUzivConstraint + (IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys) + SELECT @idTab, N'PK__' + @sysTabName + N'__ID', 1, N'ID', N'', N'', N'', N'', N'', N'', N'' + +IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDKmenZbozi') + IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDKmenZbozi') + INSERT dbo.TabDefTabUzivConstraint + (IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys) + SELECT @idTab, N'IX__' + @sysTabName + N'__IDKmenZbozi', 0, N'IDKmenZbozi', N'', N'', N'', N'', N'', N'', N'' + + +IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPrijataDataJson') + IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDPrijataDataJson') + INSERT dbo.TabDefTabUzivConstraint + (IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys) + SELECT @idTab, N'IX__' + @sysTabName + N'__IDPrijataDataJson', 0, N'IDPrijataDataJson', N'', N'', N'', N'', N'', N'', N'' + + + + + + + +-- hlavni trigger +IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivTabulka WHERE DefiniceTriggeru IS NULL) + UPDATE dbo.TabDefTabUzivTabulka SET DefiniceTriggeru=N'CREATE TRIGGER ht__TabVyroba_Objednavky_DIU ON _TabVyroba_Objednavky +FOR DELETE,INSERT,UPDATE AS + +IF (@@ROWCOUNT=0) + RETURN +SET NOCOUNT ON + +-- 1..insert, -1..delete, 0..update +DECLARE @JakaAkce INT +SET @JakaAkce = 0 +IF EXISTS(SELECT*FROM INSERTED) + SET @JakaAkce = @JakaAkce + 1 +IF EXISTS(SELECT*FROM DELETED) + SET @JakaAkce = @JakaAkce - 1 + + +DECLARE + @id INT, + @sz NVARCHAR(3), + @rc NVARCHAR(30), + @idKZ INT, + @sarze NVARCHAR(50) + + +-- begin: cast insert/update +IF (@JakaAkce=0) OR (@JakaAkce=1) + BEGIN + DECLARE c CURSOR LOCAL FAST_FORWARD FOR + SELECT i.ID, i.SkupZbo, i.RegCis, i.IDKmenZbozi + FROM inserted i + OPEN c + WHILE (1=1) + BEGIN + FETCH NEXT FROM c INTO @id, @sz, @rc, @idKZ + IF (@@FETCH_STATUS<>0) BREAK + + IF (@idKZ IS NULL) + BEGIN + SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc) + IF (@idKZ IS NOT NULL) + UPDATE dbo._TabVyroba_Objednavky SET IDKmenZbozi=@idKZ WHERE ID=@id + END + UPDATE dbo._TabVyroba_Objednavky SET JeMaterial=(SELECT Material FROM dbo.TabKmenZbozi WHERE ID=@idKZ) WHERE ID=@id + + END + CLOSE c + DEALLOCATE c + END +-- end: cast insert/update + + +-- begin: cast delete +IF (@JakaAkce=-1) + BEGIN + DECLARE c CURSOR LOCAL FAST_FORWARD FOR + SELECT d.ID + FROM deleted d + OPEN c + WHILE (1=1) + BEGIN + FETCH NEXT FROM c INTO @id + +-- kdyz mazes hlavni zaznam, smaz odkazy na jednotlive polozky OZ + DELETE FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@id + + END + CLOSE c + DEALLOCATE c + + + +-- cisteni seedu tabuly + SET @id = ISNULL( (SELECT MAX(ID) FROM dbo._TabVyroba_Objednavky), 1) + DBCC CHECKIDENT(_TabVyroba_Objednavky, RESEED, @id) + + END +-- end: cast delete + +' WHERE ID=@idTab diff --git a/_sql/2UT/utObjednavkyMatPol.sql b/_sql/2UT/utObjednavkyMatPol.sql new file mode 100644 index 0000000..cff16bb --- /dev/null +++ b/_sql/2UT/utObjednavkyMatPol.sql @@ -0,0 +1,307 @@ +SET NOCOUNT ON + +DECLARE + @iTemp INT, + @sql NVARCHAR(3000), + @idTab INT, + @sysTabName NVARCHAR(128), + @hvwName NVARCHAR(128), + @idCol INT, + @trigger NVARCHAR(max) + + +SET @sysTabName = '_TabVyroba_Objednavky_Pol' +SET @hvwName = 'hvw_Vyroba_ObjednavkyMat_Pol' + + + +SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivTabulka), 1) +DBCC CHECKIDENT (TabDefTabUzivTabulka, RESEED, @iTemp) +SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivAtributy), 1) +DBCC CHECKIDENT (TabDefTabUzivAtributy, RESEED, @iTemp) +SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivConstraint), 1) +DBCC CHECKIDENT (TabDefTabUzivConstraint, RESEED, @iTemp) + + + +-- tabulka +SET @idTab = (SELECT ID FROM dbo.TabDefTabUzivTabulka WHERE NazevTabulky=@sysTabName) +IF (@idTab IS NULL) + BEGIN + INSERT dbo.TabDefTabUzivTabulka (Skupina, Popis, NazevTabulky, NazevPrehledu, NastaveniAkceNovy, NastaveniAkceOprava, NastaveniAkceZrusit) + SELECT N'', 'Zapsané položky objednávky na materiál', @sysTabName, @hvwName, 1, 1, 1 + SET @idTab = SCOPE_IDENTITY() + END + + + + + + + +-- sloupce +IF (@idTab IS NOT NULL) + BEGIN +/* + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUHeliosAttr, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrEditor, EdAtrPoradi, EdAtrHlidat, EdAtrPrenosAtr, EdAtrSkrytyPrenos, EdAtrInfoAtr1, EdAtrInfoAtr2, EdAtrPrenosDPSN, EdAtrPrenosIDFiltr, EdAtrPodminka) + +DTUAtrTyp +0=INT +1=SMALLINT +2=TINYINT +3=BIGINT +4=GUID +5=BIT +6=NVARCHAR +7=NTEXT +8=VARBINARY(MAX) +9=DATETIME +10=NUMERIC(5,2) +11=NUMERIC(19,6) +12=FLOAT +13=VARCHAR +14=NVARCHAR(MAX) +*/ + + +/* + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'ID') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN, EdAtrPrenosAtr) + SELECT @idTab, 1, N'ID', N'Systémové èíslo', 0, 0, 0, N'', 0, -- 0 = int + NULL, NULL, NULL, 20, N'', 0, 1, 0, 1, 0, + 0, 0, N'', N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'ID') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY' + EXEC sp_executesql @sql + END +*/ + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDHlava') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN, EdAtrPrenosAtr) + SELECT @idTab, 2, N'IDHlava', N'Hlavièka', 0, 0, 1, N'', 0, -- 0 = int + NULL, NULL, NULL, 20, N'', 0, 0, 0, 1, 0, + 1, 0, N'', N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDHlava') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDHlava INT NOT NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDDokladOZ') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 3, N'IDDokladOZ', N'Doklad OZ', 0, 0, 1, N'', 0, -- 3=int + NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDDokladOZ') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDDokladOZ INT NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPohybOZ') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 4, N'IDPohybOZ', N'Položka dokladu OZ', 0, 0, 1, N'', 0, -- 0=int + NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDPohybOZ') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDPohybOZ INT NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDVyrCP') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 5, N'IDVyrCP', N'Pohyb VÈ položky OZ', 0, 0, 1, N'', 0, -- 0=int + NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDVyrCP') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDVyrCP INT NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'SkupZbo') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUHeliosAttr, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 6, N'SkupZbo', N'TabKmenZbozi.SkupZbo', N'', 6, 3, 1, N'', 0, -- 6=nvarchar + NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'SkupZbo') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD SkupZbo NVARCHAR(3) NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'RegCis') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUHeliosAttr, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 7, N'RegCis', N'TabKmenZbozi.RegCis', N'', 6, 30, 1, N'', 0, -- 6 = nvarchar, delka 30 + NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'RegCis') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD RegCis NVARCHAR(30) NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Mnozstvi') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 8, N'Mnozstvi', N'Množství', 11, 0, 0, N'0', 0, -- 11 = numeric(19,6) + NULL, NULL, NULL, 70, N'#,##0.##', 1, 1, 1, 1, 1, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Mnozstvi') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'PaletovyList') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 9, N'PaletovyList', N'Paletový list', 6, 100, 1, N'', 0, -- 6 = nvarchar, delka 100 + NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'PaletovyList') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD PaletovyList NVARCHAR(100) NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Sarze') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 10, N'Sarze', N'Šarže', 6, 100, 1, N'', 0, -- 6 = nvarchar, delka 100 + NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0, + 1, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Sarze') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Sarze NVARCHAR(100) NULL' + EXEC sp_executesql @sql + END + + END -- @idTab IS NOT NULL + + + + + + + +-- indexy +IF (@idTab IS NOT NULL) + IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=1 AND JmenoSys=N'PK__' + @sysTabName + N'__ID') + INSERT dbo.TabDefTabUzivConstraint + (IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys) + SELECT @idTab, N'PK__' + @sysTabName + N'__ID', 1, N'ID', N'', N'', N'', N'', N'', N'', N'' + +IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDHlava') + IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDHlava') + INSERT dbo.TabDefTabUzivConstraint + (IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys) + SELECT @idTab, N'IX__' + @sysTabName + N'__IDHlava', 0, N'IDHlava', N'', N'', N'', N'', N'', N'', N'' + + +IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPohybOZ') + IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDPohybOZ') + INSERT dbo.TabDefTabUzivConstraint + (IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys) + SELECT @idTab, N'IX__' + @sysTabName + N'__IDPohybOZ', 0, N'IDPohybOZ', N'', N'', N'', N'', N'', N'', N'' + + + + + + + +-- hlavni trigger +IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivTabulka WHERE DefiniceTriggeru IS NULL) + UPDATE dbo.TabDefTabUzivTabulka SET DefiniceTriggeru=N'CREATE TRIGGER ht_' + @sysTabName + '_DIU ON ' + @sysTabName + ' +FOR DELETE,INSERT,UPDATE AS + +IF (@@ROWCOUNT=0) + RETURN +SET NOCOUNT ON + +-- 1..insert, -1..delete, 0..update +DECLARE @JakaAkce INT +SET @JakaAkce = 0 +IF EXISTS(SELECT*FROM INSERTED) + SET @JakaAkce = @JakaAkce + 1 +IF EXISTS(SELECT*FROM DELETED) + SET @JakaAkce = @JakaAkce - 1 + + +DECLARE + @id INT + + +-- begin: cast delete +IF (@JakaAkce=-1) + BEGIN + +-- cisteni seedu tabulky + SET @id = ISNULL( (SELECT MAX(ID) FROM dbo._TabVyroba_Objednavky_Pol), 1) + DBCC CHECKIDENT(_TabVyroba_Objednavky_Pol, RESEED, @id) + + END +-- end: cast delete + +' WHERE ID=@idTab + diff --git a/_sql/2UT/utRamcovyPlan.sql b/_sql/2UT/utRamcovyPlan.sql new file mode 100644 index 0000000..f04d7d0 --- /dev/null +++ b/_sql/2UT/utRamcovyPlan.sql @@ -0,0 +1,153 @@ +SET NOCOUNT ON + +DECLARE + @iTemp INT, + @sql NVARCHAR(3000), + @idTab INT, + @sysTabName NVARCHAR(128), + @hvwName NVARCHAR(128), + @idCol INT, + @trigger NVARCHAR(max) + + +SET @sysTabName = '_TabVyroba_RamcovyPlan' +SET @hvwName = 'hvw_Vyroba_RamcovyPlan' + + +SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivTabulka), 1) +DBCC CHECKIDENT (TabDefTabUzivTabulka, RESEED, @iTemp) +SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivAtributy), 1) +DBCC CHECKIDENT (TabDefTabUzivAtributy, RESEED, @iTemp) +SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivConstraint), 1) +DBCC CHECKIDENT (TabDefTabUzivConstraint, RESEED, @iTemp) + + + +-- tabulka +SET @idTab = (SELECT ID FROM dbo.TabDefTabUzivTabulka WHERE NazevTabulky=@sysTabName) +IF (@idTab IS NULL) + BEGIN + INSERT dbo.TabDefTabUzivTabulka (Skupina, Popis, NazevTabulky, NazevPrehledu, NastaveniAkceNovy, NastaveniAkceOprava, NastaveniAkceZrusit) + SELECT N'', 'Rámcový plán', @sysTabName, @hvwName, 1, 1, 1 + SET @idTab = SCOPE_IDENTITY() + END + + + + + + + +-- sloupce +IF (@idTab IS NOT NULL) + BEGIN +/* + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUHeliosAttr, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrEditor, EdAtrPoradi, EdAtrHlidat, EdAtrPrenosAtr, EdAtrSkrytyPrenos, EdAtrInfoAtr1, EdAtrInfoAtr2, EdAtrPrenosDPSN, EdAtrPrenosIDFiltr, EdAtrPodminka) + +DTUAtrTyp +0=INT +1=SMALLINT +2=TINYINT +3=BIGINT +4=GUID +5=BIT +6=NVARCHAR +7=NTEXT +8=VARBINARY(MAX) +9=DATETIME +10=NUMERIC(5,2) +11=NUMERIC(19,6) +12=FLOAT +13=VARCHAR +14=NVARCHAR(MAX) +*/ + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDKmenZbozi') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN, EdAtrPrenosAtr) + SELECT @idTab, 1, N'IDKmenZbozi', N'ID kmenové karty', 0, 0, 0, N'', 0, -- 0 = int + NULL, NULL, NULL, 20, N'', 0, 1, 0, 1, 1, + 0, 0, N'2', N'ID' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDKmenZbozi') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDKmenZbozi INT NOT NULL' + EXEC sp_executesql @sql + END + + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Rok') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 2, N'Rok', N'Rok', 1, 0, 0, N'', 0, + NULL, NULL, NULL, 50, N'', 1, 1, 0, 1, 1, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Rok') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Rok SMALLINT NOT NULL' + EXEC sp_executesql @sql + END + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Mesic') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 3, N'Mesic', N'Mìsíc', 2, 0, 0, N'', 0, + NULL, NULL, NULL, 50, N'', 1, 1, 0, 1, 1, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Mesic') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Mesic TINYINT NOT NULL' + EXEC sp_executesql @sql + END + + + SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Mnozstvi') + IF (@idCol IS NULL) + INSERT dbo.TabDefTabUzivAtributy + (IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh, + DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny, + DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN) + SELECT @idTab, 4, N'Mnozstvi', N'Množství', 11, 0, 0, N'0', 0, + NULL, NULL, NULL, 70, N'#,##0.##', 1, 1, 1, 1, 1, + 0, 0, N'' + IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Mnozstvi') + BEGIN + SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0' + EXEC sp_executesql @sql + END + + + END -- @idTab IS NOT NULL + + + + +-- indexy +IF (@idTab IS NOT NULL) + IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=1 AND JmenoSys=N'PK__' + @sysTabName + N'__ID') + INSERT dbo.TabDefTabUzivConstraint + (IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys) + SELECT @idTab, N'PK__' + @sysTabName + N'__ID', 1, N'ID', N'', N'', N'', N'', N'', N'', N'' + +IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDKmenZbozi') + IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDKmenZbozi') + INSERT dbo.TabDefTabUzivConstraint + (IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys) + SELECT @idTab, N'IX__' + @sysTabName + N'__IDKmenZbozi', 0, N'IDKmenZbozi', N'', N'', N'', N'', N'', N'', N'' + + + diff --git a/_sql/col_DokladyZbozi_EXT.sql b/_sql/col_DokladyZbozi_EXT.sql index 7152718..40aa7c8 100644 --- a/_sql/col_DokladyZbozi_EXT.sql +++ b/_sql/col_DokladyZbozi_EXT.sql @@ -28,3 +28,11 @@ IF (COL_LENGTH(N'dbo.TabDokladyZbozi_EXT', N'_HDCAPI_PHident') IS NULL) @NazevAtrVerZkr=N'', @TypAtr=N'INT', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=10, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0, @KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL, @TypAtrSQL=N'INT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL + +IF (COL_LENGTH(N'dbo.TabDokladyZbozi_EXT', N'_Vyroba_ObjednavkaMat_Typ') IS NULL) + EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabDokladyZbozi', @NazevAtrSys=N'_Vyroba_ObjednavkaMat_Typ', @Skupina=N'Plugin Pekárna', @NazevAtrVer=N'Typ položek objednávky z výroby', + @NazevAtrVerZkr=N'', @TypAtr=N'SMALLINT', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=10, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0, + @KonverzeAtr=N'NULL= +1=Materiál/polotovar +2=Finál', @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL, + @TypAtrSQL=N'SMALLINT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL diff --git a/_sql/col_PohybyZbozi_EXT.sql b/_sql/col_PohybyZbozi_EXT.sql index 511419c..840f9fd 100644 --- a/_sql/col_PohybyZbozi_EXT.sql +++ b/_sql/col_PohybyZbozi_EXT.sql @@ -16,13 +16,16 @@ IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Vyroba_Sarze') IS NULL) @NazevAtrVerZkr=N'Šarže', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=12, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0, @KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL, @TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL - +IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Vyroba_Sarze') IS NOT NULL) + ALTER TABLE dbo.TabPohybyZbozi_EXT ALTER COLUMN _Vyroba_Sarze NVARCHAR(200) IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Vyroba_PaletList') IS NULL) EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPohybyZbozi', @NazevAtrSys=N'_Vyroba_PaletList', @Skupina=N'Plugin Pekárna', @NazevAtrVer=N'Paletový list', @NazevAtrVerZkr=N'Palet. list', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0, @KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL, @TypAtrSQL=N'NVARCHAR(30)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL +IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Vyroba_Sarze') IS NOT NULL) + ALTER TABLE dbo.TabPohybyZbozi_EXT ALTER COLUMN _Vyroba_Sarze NVARCHAR(50) IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Mouka_Silo') IS NULL) EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPohybyZbozi', @NazevAtrSys=N'_Mouka_Silo', @Skupina=N'Plugin Pekárna', @NazevAtrVer=N'Silo umístìní mouky', diff --git a/_sql/ef_Vyroba_VratNovyPaletovyList.sql b/_sql/ef_Vyroba_VratNovyPaletovyList.sql index a9bd217..010e61b 100644 --- a/_sql/ef_Vyroba_VratNovyPaletovyList.sql +++ b/_sql/ef_Vyroba_VratNovyPaletovyList.sql @@ -18,12 +18,14 @@ BEGIN @radaPrijemNestd NVARCHAR(3)='270' -- vyrobky PEK - SET @bi = 1 + ISNULL( (SELECT MAX(TRY_PARSE(VyrCislo AS BIGINT)) FROM dbo.TabVyrCisPrikaz WHERE VyrCislo LIKE N'5%'), 0) + SET @bi = 1 + ISNULL( (SELECT MAX(TRY_PARSE(VyrCislo AS BIGINT)) FROM dbo.TabVyrCisPrikaz + WHERE VyrCislo LIKE N'5[2-9]%' AND LEN(VyrCislo)=7 AND ISNUMERIC(VyrCislo)=1 AND TRY_CAST(VyrCislo AS BIGINT) IS NOT NULL ), 0) IF (@bi = 1) SET @bi = 5200001 SET @retVal = CONVERT(nvarchar, @bi) - IF EXISTS(SELECT 1 FROM Information_schema.Routines WHERE Specific_schema=N'dbo' AND specific_name=N'ef_Vyroba_VratNovyPaletovyList1' AND Routine_Type=N'FUNCTION') +-- IF EXISTS(SELECT 1 FROM Information_schema.Routines WHERE Specific_schema=N'dbo' AND specific_name=N'ef_Vyroba_VratNovyPaletovyList1' AND Routine_Type=N'FUNCTION') + IF EXISTS(SELECT 1 FROM sys.objects o JOIN sys.schemas s ON (s.schema_id=o.schema_id) WHERE o.name=N'ef_Vyroba_VratNovyPaletovyList1' AND s.name=N'dbo' AND o.type='FN') SET @retVal = dbo.ef_Vyroba_VratNovyPaletovyList1 (@typ, @radaVPr, @cisloOrg, @idKmenZbozi) diff --git a/_sql/ep_HDC_PZ_ZapisPolozek.sql b/_sql/ep_HDC_PZ_ZapisPolozek.sql index e32f5ba..6477e10 100644 --- a/_sql/ep_HDC_PZ_ZapisPolozek.sql +++ b/_sql/ep_HDC_PZ_ZapisPolozek.sql @@ -62,6 +62,7 @@ IF (@typ=1) -- zapis z dbo._TabVyroba_Objednavky do dokladu výdejky SELECT @idPHIdent=IdPHIdent, @idPHIdent2=IdPHIdent2, @idKmen=IDKmenZbozi, @sz=SkupZbo, @rc=RegCis, @mnoz=Mnozstvi, @paletList=PaletovyList, @sarze=Sarze FROM dbo._TabVyroba_Objednavky WHERE ID=@idPol + SET @sarze = ISNULL(@sarze, N'') SET @paletList = ISNULL(@paletList, N'') IF (@idKmen IS NOT NULL) @@ -71,16 +72,16 @@ IF (@typ=1) -- zapis z dbo._TabVyroba_Objednavky do dokladu výdejky EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKmen, @IDSklad=@sklad, @IDZboSklad=@idStav OUT IF (@idStav IS NOT NULL) BEGIN - EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZ OUT, @IDDoklad=@idDokladOZDst, @DruhPohybu=@dpz, @CisloOrg=@cisOrg, @IDZboSklad=@idStav, @Mena=@dzMena, @Kurz=@dzKurz, @KurzEuro=@dzKurzE, - @JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=NULL, @VstupniCena=@vstC, @Mnozstvi=@mnoz, @PovolitDuplicitu=1 + EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZ OUT, @IDDoklad=@idDokladOZDst, @DruhPohybu=@dpz, @CisloOrg=@cisOrg, @IDZboSklad=@idStav, @Mena=@dzMena, + @Kurz=@dzKurz, @KurzEuro=@dzKurzE, @JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=NULL, + @VstupniCena=@vstC, @Mnozstvi=@mnoz, @PovolitDuplicitu=1 IF (@idPZ IS NOT NULL) BEGIN UPDATE dbo._TabVyroba_Objednavky SET Blokovano=1 WHERE ID=@idPol - UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPol WHERE ID=@idPZ - IF (@@ROWCOUNT=0) - INSERT dbo.TabPohybyZbozi_EXT (ID, _HDCAPI_PHident) SELECT @idPZ, @idPol - + IF NOT EXISTS (SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ) + INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ) + UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPHIdent2 WHERE ID=@idPZ -- jednoznacna identifikace, @idPHIdent je pro dotaz na stejnou polozku stejny, @idPHIdent2 podle sarzi UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@sarze, _Vyroba_PaletList=@paletList WHERE ID=@idPZ /* @@ -100,7 +101,8 @@ IF (@typ=1) -- zapis z dbo._TabVyroba_Objednavky do dokladu výdejky END -- @idVCK */ - INSERT dbo._TabVyroba_Objednavky_Pol (IDHlava, IDDokladOZ, IDPohybOZ, IDVyrCP, Mnozstvi, Sarze) VALUES (@idPol, @idDokladOZDst, @idPZ, @idVCP, @mnoz, @paletList) + INSERT dbo._TabVyroba_Objednavky_Pol (IDHlava, IDDokladOZ, IDPohybOZ, IDVyrCP, Mnozstvi, PaletovyList, Sarze) + SELECT @idPol, @idDokladOZDst, @idPZ, @idVCP, @mnoz, @paletList, @sarze END -- @idPZ END -- @idStav diff --git a/_sql/ep_P03_HDC1.sql b/_sql/ep_P03_HDC1.sql index 088b69e..54243eb 100644 --- a/_sql/ep_P03_HDC1.sql +++ b/_sql/ep_P03_HDC1.sql @@ -115,7 +115,7 @@ IF (@rada IN (N'251', N'261', N'281')) AND (@idSklad=@sklPekarna) INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) INNER JOIN dbo.TabUmisteni u ON (u.ID=p.IDUmisteni) - WHERE p.IDDoklad=@IDDoklad AND k.SkupZbo=N'101' AND k.Nazev1 LIKE N'%mouka%' AND p.IDUmisteni IS NOT NULL + WHERE p.IDDoklad=@IDDoklad AND k.SkupZbo=N'101' AND k.Nazev1 LIKE N'%mouka%' AND k.RegCis IN (N'111000', N'112000') AND p.IDUmisteni IS NOT NULL OPEN c WHILE (1=1) BEGIN @@ -153,17 +153,29 @@ IF (@rada IN (N'251', N'261', N'281')) AND (@idSklad=@sklPekarna) -- prijemky a storna na hlavni sklad IF (@rada IN (N'251', N'259', N'261', N'269')) AND (@idSklad=@sklMatHlavni) BEGIN +-- zapis moznych puvodnich VC materialu do pomocne tabulky, u polotovaru je VC cislo paletoveho listu, to se musi nechat kvuli odpisu ze stavu VC !!! INSERT dbo._hdc_PZ_PuvodniVC (IDPohybZbozi, IDDoklad, IDZboSklad, VyrCis, IDVyrCis, Mnozstvi, Sarze, PaletovyList, IDUmisteni) SELECT p.ID, p.IDDoklad, p.IDZboSklad, vcp.Nazev, vcp.IDVyrCis, vcp.Mnozstvi, vcp.Nazev, vcs.Nazev1, p.IDUmisteni FROM dbo.TabPohybyZbozi p + INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) + INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) INNER JOIN dbo.TabVyrCP vcp ON (vcp.IDPolozkaDokladu=p.ID) INNER JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis) WHERE p.IDDoklad=@IDDoklad +-- AND k.Material=1 ORDER BY p.Poradi, vcp.ID + -- odstran umisteni, delalo by problem pri vydeji UPDATE dbo.TabPohybyZbozi SET IDUmisteni=NULL WHERE IDDoklad=@IDDoklad --- smaz vyrobni cisla, jejich evidenci vede ProHolding - DELETE FROM dbo.TabVyrCP WHERE IDPolozkaDokladu IN (SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@IDDoklad) + +-- smaz vyrobni cisla/sarze materialu, jejich evidenci vede ProHolding - nesmi se mazat u vyrobenych polotovaru, u tech mame cislo paletoveho listu !!! +-- jen materialy ??? + DELETE FROM dbo.TabVyrCP WHERE IDPolozkaDokladu IN (SELECT p.ID FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) + INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) WHERE p.IDDoklad=@IDDoklad +-- AND k.Material=1 + ) + +-- identity reseed tabulky pohybu VC SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCP), 0) DBCC CHECKIDENT (TabVyrCP, RESEED, @iTemp) END diff --git a/_sql/ep_V03_HDC1.sql b/_sql/ep_V03_HDC1.sql index 5e4a659..18b2170 100644 --- a/_sql/ep_V03_HDC1.sql +++ b/_sql/ep_V03_HDC1.sql @@ -84,19 +84,29 @@ IF (@rada IN (N'231')) AND (@idSklad=@sklMatHlavni) AND (@idSkladPrev=@sklPekarn CLOSE p DEALLOCATE p --- zapis do pomocne tabulky +-- zapis moznych puvodnich VC materialu do pomocne tabulky, u polotovaru je VC cislo paletoveho listu, to se musi nechat kvuli odpisu ze stavu VC !!! INSERT dbo._hdc_PZ_PuvodniVC (IDPohybZbozi, IDDoklad, IDZboSklad, VyrCis, IDVyrCis, Mnozstvi, Sarze, PaletovyList, IDUmisteni) SELECT p.ID, p.IDDoklad, p.IDZboSklad, vcp.Nazev, vcp.IDVyrCis, vcp.Mnozstvi, vcp.Nazev, vcs.Nazev1, p.IDUmisteni FROM dbo.TabPohybyZbozi p + INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) + INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) INNER JOIN dbo.TabVyrCP vcp ON (vcp.IDPolozkaDokladu=p.ID) INNER JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis) WHERE p.IDDoklad=@IDDoklad +-- AND k.Material=1 ORDER BY p.Poradi, vcp.ID + -- odstran umisteni, delalo by problem pri vydeji UPDATE dbo.TabPohybyZbozi SET IDUmisteni=NULL WHERE IDDoklad=@IDDoklad --- smaz vyrobni cisla, jejich evidenci vede ProHolding - DELETE FROM dbo.TabVyrCP WHERE IDPolozkaDokladu IN (SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@IDDoklad) +-- smaz vyrobni cisla/sarze materialu, jejich evidenci vede ProHolding - nesmi se mazat u vyrobenych polotovaru, u tech mame cislo paletoveho listu !!! +-- jen materialy ??? + DELETE FROM dbo.TabVyrCP WHERE IDPolozkaDokladu IN (SELECT p.ID FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) + INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) WHERE p.IDDoklad=@IDDoklad +-- AND k.Material=1 + ) + +-- identity reseed tabulky pohybu VC SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCP), 0) DBCC CHECKIDENT (TabVyrCP, RESEED, @iTemp) END diff --git a/_sql/ep_Vyroba_Doklady_Micharna.sql b/_sql/ep_Vyroba_Doklady_Micharna.sql index c7db455..7ec8815 100644 --- a/_sql/ep_Vyroba_Doklady_Micharna.sql +++ b/_sql/ep_Vyroba_Doklady_Micharna.sql @@ -18,6 +18,7 @@ DECLARE @errMsg NVARCHAR(500), @bChyba BIT, @iChyba INT, + @iTemp INT, @debugXml XML, @gKV XML, @kv XML, @@ -38,7 +39,7 @@ DECLARE DECLARE @cOrg INT, - @sklMat NVARCHAR(30), + @sklMat NVARCHAR(30)=N'311', @sklTechnicky NVARCHAR(30), @sklPek NVARCHAR(30), @sklProFin NVARCHAR(30)=N'312', @@ -46,6 +47,7 @@ DECLARE @radaTechVydej NVARCHAR(30)=N'223', @radaTechPrijem NVARCHAR(30)=N'', @sklVydejMat NVARCHAR(30), + @sklProVydej NVARCHAR(30), @radaDZVydejka NVARCHAR(3)=NULL, @radaDZPrevodV NVARCHAR(3)=NULL, @prevodka BIT=0, @@ -124,7 +126,9 @@ DECLARE @idVCS INT, @idVCP INT, @sz NVARCHAR(3), + @sz2 NVARCHAR(3), @rc NVARCHAR(30), + @rc2 NVARCHAR(30), @idUmist INT, @sarze NVARCHAR(30), @paletList NVARCHAR(30), @@ -137,7 +141,8 @@ DECLARE @mnozEvid NUMERIC(19,6), @idVazVP INT, @mnozVyssiReq NUMERIC(19,6), - @mnozVyssiOdv NUMERIC(19,6) + @mnozVyssiOdv NUMERIC(19,6), + @mnozVyssiOdvSum NUMERIC(19,6) DECLARE @idStartStopOp INT, @@ -162,6 +167,7 @@ DECLARE DECLARE @idKZv INT, @idKZn INT, + @idKZn2 INT, @idPrKVazbyPolot INT, @idPrKVazbyNova INT, @novaPriorita INT, @@ -187,10 +193,11 @@ DECLARE -DECLARE @TabPHObj TABLE (ID INT NOT NULL, IDPHIdent BIGINT ) +DECLARE @TabPHObj TABLE (ID INT NOT NULL, IDPHIdent BIGINT, IDSklad NVARCHAR(30) ) DECLARE @PrKVazby TABLE (ID INT NOT NULL, Sklad NVARCHAR(30), IDKmenZbozi INT, Mnozstvi NUMERIC(19,6) DEFAULT 0.0 ) DECLARE @TabPolozky TABLE (ID INT IDENTITY(1,1) NOT NULL, IDKmen INT, Sarze NVARCHAR(100), PaletList NVARCHAR(100) ) DECLARE @TabIDMzdy TABLE (ID INT NOT NULL) +DECLARE @TabNocniPrevodky TABLE (IDSklad NVARCHAR(30), IDDoklad INT) -- tabulky pro generovani vydejky a odvodu @@ -338,15 +345,24 @@ DROP TABLE IF EXISTS #HDCTabDefiniceProZapisJSON IF (@sklMat IS NULL) SELECT @sklMat=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavní sklad - Materiál' +IF (@sklMat IS NULL) + SET @sklMat=N'311' SET @sklProPolo = @sklMat IF (@sklTechnicky IS NULL) SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%neúè%' AND CisloStr LIKE N'2%' +IF (@sklTechnicky IS NULL) + SET @sklTechnicky=N'261' IF (@sklPek IS NULL) SELECT @sklPek=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Výroba - Pekárna' +IF (@sklPek IS NULL) + SET @sklPek=N'211' IF (@sklTechnicky IS NULL) AND (@sklPek IS NOT NULL) SET @sklTechnicky=@sklPek IF (@sklProFin IS NULL) SELECT @sklProFin=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Hlavní sklad - Výrobky / Zboží' +IF (@sklProFin IS NULL) + SET @sklProFin = N'312' + IF (@radaTechVydej IS NOT NULL) SET @radaDZVydejka = @radaTechVydej @@ -529,12 +545,17 @@ WHILE (1=1) IF (@sz=N'921') AND (@rc=N'001000') SET @vodaLitry = @mnoz - IF (@sz=N'101') AND (@nazev1 LIKE N'%mouka%') + IF (@sz=N'101') AND (@nazev1 LIKE N'%mouka%') and (@rc IN (N'111000',N'112000')) BEGIN SET @moukaKgFin = @mnoz SET @moukaKgNorma = @mnoz2 END + IF EXISTS(SELECT 1 FROM dbo.TabPrKVazby WHERE IDPrikaz=@idVPr AND vyssi=@dilec AND nizsi=@idKZ AND IDOdchylkyDo IS NULL AND Priorita=0 AND Mnozstvi<>@mnoz) + UPDATE dbo.TabPrKVazby SET Mnozstvi=@mnoz, mnozstviSeZtratou=@mnoz + WHERE IDPrikaz=@idVPr AND vyssi=@dilec AND nizsi=@idKZ AND IDOdchylkyDo IS NULL AND Priorita=0 + + SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo<>N'921' AND SkupZbo=@sz AND RegCis=@rc AND (Material=1 OR Dilec=1) AND Sluzba=0) IF (@idKZ IS NOT NULL) BEGIN @@ -563,7 +584,7 @@ WHILE (1=1) SET @kv = (SELECT * FROM @PrKVazby FOR XML AUTO) - IF (@subtypDokum='michani') OR (@subtypDokum=N'') + IF (@subtypDokum=N'michani') OR (@subtypDokum=N'') BEGIN SET @mnozEvid = ISNULL(@mnozEvid, 1) -- UPDATE #tabOdved SET mnozstvi=CASE WHEN @NekontrolMnozOdvedFinal=0 AND mnozstvi+@mnoz>maxMnozstvi THEN maxMnozstvi ELSE mnozstvi+@mnoz END WHERE IDPrikaz=@idVPr @@ -688,7 +709,7 @@ WHILE (1=1) SET @gKV = (SELECT * FROM #TabPrKVazbyGen FOR XML AUTO) -- u michani odmaz vodu - IF (@subtypDokum='michani') OR (@subtypDokum=N'') + IF (@subtypDokum=N'michani') OR (@subtypDokum=N'') BEGIN DELETE FROM #TabPrKVazbyGen WHERE nizsi=(SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'921' AND RegCis=N'001000') MERGE #TabPrKVazbyGen AS T USING @PrKVazby AS S ON (T.IDPrKV=T.ID) WHEN MATCHED THEN UPDATE SET T.Mnozstvi=S.Mnozstvi, T.MnozstviPoz=S.Mnozstvi; @@ -722,7 +743,7 @@ WHILE (1=1) FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) - WHERE p.IDDoklad=@idDZ AND k.Sluzba=0 AND k.SkupZbo<>'921' + WHERE p.IDDoklad=@idDZ AND k.Sluzba=0 AND k.SkupZbo<>N'921' OPEN vyPol WHILE (1=1) BEGIN @@ -739,9 +760,10 @@ WHILE (1=1) UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=IIF(@sarze=N'', NULL, @sarze), _Vyroba_PaletList=IIF(@paletList=N'', NULL, @paletList) WHERE ID=@idPZ -- u michani a mouky zadat i silo - IF (@subtypDokum='michani') OR (@subtypDokum=N'') + IF (@subtypDokum=N'michani') OR (@subtypDokum=N'') BEGIN - SELECT @jsemMouka = CONVERT(bit, CASE WHEN Nazev1 LIKE N'%mouka%' AND SkupZbo=N'101' THEN 1 ELSE 0 END) FROM dbo.TabKmenZbozi WHERE ID=@idKZ + SELECT @jsemMouka = CONVERT(bit, CASE WHEN Nazev1 LIKE N'%mouka%' AND SkupZbo=N'101' AND RegCis IN (N'111000', N'112000') THEN 1 ELSE 0 END) + FROM dbo.TabKmenZbozi WHERE ID=@idKZ IF (@jsemMouka=1) UPDATE dbo.TabPohybyZbozi_EXT SET _Mouka_Silo=@moukaSilo WHERE ID=@idPZ END @@ -753,50 +775,7 @@ WHILE (1=1) -- begin: pomocna prijemka nedostatecneho materialu (jen materialu !!!) - SET @idDZPomocPrij=NULL - DECLARE pomPrij CURSOR LOCAL FOR - SELECT p.IDZboSklad, p.Mnozstvi - FROM dbo.TabPohybyZbozi p - INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) - INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) - WHERE p.IDDoklad=@idDZ -- doklad vydejky - AND k.Material=1 AND k.Sluzba=0 - OPEN pomPrij - WHILE (1=1) - BEGIN - FETCH NEXT FROM pomPrij INTO @idSSPomocPrij, @mnozVydej - IF (@@FETCH_STATUS<>0) BREAK - --- spocitej jestli mam skladem mnozstvi na realizaci vydejky - SET @mnozSklad = ISNULL( (SELECT Mnozstvi+MnozstviKPrijmu-MnozstviKVydeji FROM dbo.TabStavSkladu WHERE ID=@idSSPomocPrij), 0) - IF (@mnozVydej>@mnozSklad) - BEGIN - SET @mnozPrij = @mnozVydej - @mnozSklad - IF (@idDZPomocPrij IS NULL) -- uz existuje doklad pomocne prijemky na sklade 261 (technologicky) ? - BEGIN - EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZPomocPrij OUT, @Sklad=@sklTechnicky, @DruhPohybu=0, @RadaDokladu=@radaPrijem, @CisloOrg=0 - SELECT @menaPrij=Mena, @kurzPrij=Kurz, @kurzPrijE=KurzEuro, @jednMPrij=JednotkaMeny, @vstCPrij=VstupniCena - FROM dbo.TabDokladyZbozi WHERE ID=@idDZPomocPrij - END - IF (@idDZPomocPrij IS NOT NULL) - BEGIN - EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZPomocPrij OUT, @IDDoklad=@idDZPomocPrij, @DruhPohybu=0, @CisloOrg=0, @IDZboSklad=@idSSPomocPrij, - @Mena=@menaPrij, @Kurz=@kurzPrij, @KurzEuro=@kurzPrijE, @JednotkaMeny=@jednMPrij, @SazbaSD=NULL, @SazbaDPH=NULL, - @ZakazanoDPH=NULL, @VstupniCena=@vstCPrij, @Mnozstvi=@mnozPrij, @PovolitDuplicitu=1 - END - END - END - CLOSE pomPrij - DEALLOCATE pomPrij - IF (@idDZPomocPrij IS NOT NULL) -- pokud mam pomocnou prijemku, zkus ji realizovat nez budes realizovat vydejku - BEGIN - BEGIN TRY - EXEC dbo.hp_Realizuj_Prijem @ID=@idDZPomocPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1 - END TRY - BEGIN CATCH - SET @errMsg = ERROR_MESSAGE() - END CATCH - END + EXEC dbo.ep_Vyroba_Doklady_PomocPrijemka @idVydej=@idDZ -- end: pomocna prijemka nedostatecneho materialu @@ -919,67 +898,95 @@ WHILE (1=1) IF (@subtypDokum=N'michani') OR (@subtypDokum=N'') BEGIN - DECLARE vazP CURSOR LOCAL FOR - SELECT vp.ID, vp.IDPrikazVyssi, vp.Mnozstvi, ISNULL(vpe._MnozstviOdv, 0) - FROM dbo.TabVazbyPrikazu vp - LEFT JOIN dbo.TabVazbyPrikazu_EXT vpe ON (vpe.ID=vp.ID) - WHERE vp.IDPrikaz=@idVPr - AND (1=0) -- !!! VYPNUTO !!! - OPEN vazP - WHILE (1=1) + IF ISNULL( (SELECT COUNT(ID) FROM dbo.TabVazbyPrikazu WHERE IDPrikaz=@idVPr), 0)>1 BEGIN - FETCH FROM vazP INTO @idVazVP, @idVPrVyssi, @mnozVyssiReq, @mnozVyssiOdv - IF (@@FETCH_STATUS<>0) BREAK - - SELECT @dilecVyssi=IDTabKmen FROM dbo.TabPrikaz WHERE ID=@idVPrVyssi - SELECT @dilec=IDTabKmen FROM dbo.TabPrikaz WHERE ID=@idVPr --- pokud jsem testo, odved me na vyssi prikaz - IF EXISTS (SELECT 1 FROM dbo.TabKmenZbozi WHERE SkupZbo=N'701' AND ID=@dilec) + SET @idVPrVyssi = NULL + IF ISNULL( (SELECT COUNT(*) FROM (SELECT DISTINCT(IDPrikazCil) FROM dbo.TabPrikazPrevodPolotov WHERE IDPrikazZdroj=@idVPr GROUP BY IDPrikazCil) x), 0)=1 + SET @idVPrVyssi = (SELECT TOP(1) IDPrikazCil FROM dbo.TabPrikazPrevodPolotov WHERE IDPrikazZdroj=@idVPr) + + IF (@idVPrVyssi IS NULL) + DECLARE vazP CURSOR LOCAL FOR + SELECT TOP(1) vp.ID, vp.IDPrikazVyssi, vp.Mnozstvi, ISNULL(vpe._MnozstviOdv, 0) + FROM dbo.TabVazbyPrikazu vp + LEFT JOIN dbo.TabVazbyPrikazu_EXT vpe ON (vpe.ID=vp.ID) + WHERE vp.IDPrikaz=@idVPr +-- AND (1=0) -- !!! VYPNUTO !!! + ORDER BY vp.IDPrikazVyssi + ELSE + DECLARE vazP CURSOR LOCAL FOR + SELECT TOP(1) vp.ID, vp.IDPrikazVyssi, vp.Mnozstvi, ISNULL(vpe._MnozstviOdv, 0) + FROM dbo.TabVazbyPrikazu vp + LEFT JOIN dbo.TabVazbyPrikazu_EXT vpe ON (vpe.ID=vp.ID) + WHERE vp.IDPrikaz=@idVPr + AND vp.IDPrikazVyssi=@idVPrVyssi + OPEN vazP + WHILE (1=1) BEGIN - SELECT TOP(1) @doklKV=Doklad FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDVPrVyssi AND nizsi=@dilec AND Splneno=0 + FETCH FROM vazP INTO @idVazVP, @idVPrVyssi, @mnozVyssiReq, @mnozVyssiOdv + IF (@@FETCH_STATUS<>0) BREAK + + SET @mnozVyssiOdvSum = ISNULL( (SELECT SUM(mnozstvi) FROM dbo.TabPrikazPrevodPolotov WHERE IDPrikazZdroj=@idVPr AND IDPrikazCil=@idVPrVyssi), 0) + IF (@mnozVyssiOdvSum=0) AND EXISTS (SELECT 1 FROM dbo.TabPrikazPrevodPolotov WHERE IDPrikazZdroj=@idVPr AND IDPrikazCil<>@idVPrVyssi) + CONTINUE + + IF NOT EXISTS (SELECT 1 FROM dbo.TabVazbyPrikazu_EXT WHERE ID=@idVazVP) + INSERT dbo.TabVazbyPrikazu_EXT (ID) VALUES (@idVazVP) + UPDATE dbo.TabVazbyPrikazu_EXT SET _MnozstviOdv=@mnozVyssiOdvSum WHERE ID=@idVazVP + SET @mnozVyssiReq = @mnozVyssiReq - @mnozVyssiOdvSum + IF (@mnozVyssiReq<=0) + CONTINUE + + SELECT @dilecVyssi=IDTabKmen FROM dbo.TabPrikaz WHERE ID=@idVPrVyssi + SELECT @dilec=IDTabKmen FROM dbo.TabPrikaz WHERE ID=@idVPr +-- pokud jsem testo, odved me na vyssi prikaz + IF EXISTS (SELECT 1 FROM dbo.TabKmenZbozi WHERE SkupZbo=N'701' AND ID=@dilec) + BEGIN + SELECT TOP(1) @doklKV=Doklad FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDVPrVyssi AND nizsi=@dilec AND Splneno=0 -- v pripade necelociselneho mnozstvi davky testa to na vyssim prikazu zaokrouhli vcetne vypoctu ztrat - IF (@doklKV IS NOT NULL) - AND EXISTS (SELECT 1 FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDVPrVyssi AND nizsi=@dilec AND Splneno=0 AND mnoz_zad<>CEILING(mnoz_zad)) - BEGIN - SELECT TOP(1) @mnDavkaPred=mnoz_zad, @mnDavkaPo=CEILING(mnoz_zad), @mnBezZtrat=mnozstvi, @mnSeZtrat=mnozstviSeZtratou - FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDVPrVyssi AND nizsi=@dilec AND Splneno=0 AND mnoz_zad<>CEILING(mnoz_zad) - SET @mnSeZtrat = ROUND(@mnSeZtrat * (@mnDavkaPo/@mnDavkaPred), 6) - UPDATE dbo.TabPrKVazby SET mnoz_zad=CEILING(mnoz_zad), mnozstviSeZtratou=@mnSeZtrat, ProcZtrat= ROUND(100*((@mnSeZtrat/@mnBezZtrat)-1), 2) - WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDVPrVyssi AND nizsi=@dilec AND Splneno=0 AND mnoz_zad<>CEILING(mnoz_zad) + IF (@doklKV IS NOT NULL) + AND EXISTS (SELECT 1 FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDVPrVyssi AND nizsi=@dilec AND Splneno=0 AND mnoz_zad<>CEILING(mnoz_zad)) + BEGIN + SELECT TOP(1) @mnDavkaPred=mnoz_zad, @mnDavkaPo=CEILING(mnoz_zad), @mnBezZtrat=mnozstvi, @mnSeZtrat=mnozstviSeZtratou + FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDVPrVyssi AND nizsi=@dilec AND Splneno=0 AND mnoz_zad<>CEILING(mnoz_zad) + SET @mnSeZtrat = ROUND(@mnSeZtrat * (@mnDavkaPo/@mnDavkaPred), 6) + UPDATE dbo.TabPrKVazby SET mnoz_zad=CEILING(mnoz_zad), mnozstviSeZtratou=@mnSeZtrat, ProcZtrat= ROUND(100*((@mnSeZtrat/@mnBezZtrat)-1), 2) + WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDVPrVyssi AND nizsi=@dilec AND Splneno=0 AND mnoz_zad<>CEILING(mnoz_zad) -- uprav i vazbu prikazu testa na vyssi - UPDATE dbo.TabVazbyPrikazu SET Mnozstvi=CEILING(Mnozstvi) WHERE ID=@idVazVP AND Mnozstvi<>CEILING(Mnozstvi) - END + UPDATE dbo.TabVazbyPrikazu SET Mnozstvi=CEILING(Mnozstvi) WHERE ID=@idVazVP AND Mnozstvi<>CEILING(Mnozstvi) + END -- pripoj to k evidenci operace - IF (@idMzda IS NOT NULL) - BEGIN + IF (@idMzda IS NOT NULL) + BEGIN + DELETE FROM #TabOdved_IDMzdy + INSERT #TabOdved_IDMzdy (IDPrikaz, IDMzdy) SELECT @idVPr, @idMzda + END + + EXEC @idPZ=dbo.hp_OdvedeniPrikazuPrevodem @DatPripadu=@aktDatum, @KonecneOdvedeniNatvrdo=0, @IDPrikazZdroj=@idVPr, @IDPrikazCil=@IDVPrVyssi, + @Doklad=@doklKV, @IDDilec=@dilec, @mnozstvi=1, @IDOdvedeniVC=0, @IDZakazModif=@idZakazModif + IF (@idPZ>0) + BEGIN + IF NOT EXISTS (SELECT 1 FROM dbo.TabVazbyPrikazu_EXT WHERE ID=@idVazVP) + INSERT dbo.TabVazbyPrikazu_EXT (ID) VALUES (@idVazVP) + UPDATE dbo.TabVazbyPrikazu_EXT SET _MnozstviOdv = 1 + ISNULL(_MnozstviOdv,0) WHERE ID=@idVazVP + END DELETE FROM #TabOdved_IDMzdy - INSERT #TabOdved_IDMzdy (IDPrikaz, IDMzdy) SELECT @idVPr, @idMzda - END -/* - EXEC @idPZ=dbo.hp_OdvedeniPrikazuPrevodem @DatPripadu=@aktDatum, @KonecneOdvedeniNatvrdo=0, @IDPrikazZdroj=@idVPr, @IDPrikazCil=@IDVPrVyssi, - @Doklad=@doklKV, @IDDilec=@dilec, @mnozstvi=1, @IDOdvedeniVC=0, @IDZakazModif=@idZakazModif - IF (@idPZ>0) - BEGIN - IF NOT EXISTS (SELECT 1 FROM dbo.TabVazbyPrikazu_EXT WHERE ID=@idVazVP) - INSERT dbo.TabVazbyPrikazu_EXT (ID) VALUES (@idVazVP) - UPDATE dbo.TabVazbyPrikazu_EXT SET _MnozstviOdv = 1 + ISNULL(_MnozstviOdv,0) WHERE ID=@idVazVP - END - DELETE FROM #TabOdved_IDMzdy -*/ - END -- jsem SZ 701 + + END -- jsem SZ 701 + END + CLOSE vazP + DEALLOCATE vazP END - CLOSE vazP - DEALLOCATE vazP - - IF 1=ISNULL( (SELECT COUNT(ID) FROM dbo.TabVazbyPrikazu WHERE IDPrikaz=@idVPr), 0) + IF ISNULL( (SELECT COUNT(ID) FROM dbo.TabVazbyPrikazu WHERE IDPrikaz=@idVPr), 0)=1 BEGIN SELECT @idVazVP=ID, @idVPrVyssi=IDPrikazVyssi FROM dbo.TabVazbyPrikazu WHERE IDPrikaz=@idVPr + SET @mnozVyssiOdvSum = ISNULL( (SELECT SUM(mnozstvi) FROM dbo.TabPrikazPrevodPolotov WHERE IDPrikazZdroj=@idVPr AND IDPrikazCil=@idVPrVyssi), 0) + SELECT @dilecVyssi=IDTabKmen FROM dbo.TabPrikaz WHERE ID=@idVPrVyssi SELECT @dilec=IDTabKmen FROM dbo.TabPrikaz WHERE ID=@idVPr -- pokud jsem testo, odved me na vyssi prikaz @@ -1033,8 +1040,8 @@ WHILE (1=1) IF (@subtypDokum IN (N'maceni', N'baleni')) AND (@jeOdvOperace=1) AND (@idMzda IS NOT NULL) BEGIN - SELECT @nazevDilce=k.Nazev1 FROM dbo.TabPrikazMzdyAZmetky pmz INNER JOIN dbo.TabKmenZbozi k ON (k.ID=pmz.IDTabKmen) WHERE pmz.ID=@idMzda - IF (@nazevDilce LIKE N'%polotovar%') + SELECT @nazevDilce=k.Nazev1, @dilec=k.ID FROM dbo.TabPrikazMzdyAZmetky pmz INNER JOIN dbo.TabKmenZbozi k ON (k.ID=pmz.IDTabKmen) WHERE pmz.ID=@idMzda + IF (@nazevDilce LIKE N'%polotovar%') OR EXISTS (SELECT 1 FROM dbo.TabParKmZ WHERE IDKmenZbozi=@dilec AND TypDilce=1) EXEC dbo.ep_Vyroba_GenOdvodZeMzdy @IDMzdy=@idMzda, @bezVyrCis=0, @radaOdvod=N'283', @skladOdvod=@sklProPolo, @realizujPrijem=1, @errMsg=@errMsg OUT ELSE EXEC dbo.ep_Vyroba_GenOdvodZeMzdy @IDMzdy=@idMzda, @bezVyrCis=0, @radaOdvod=N'273', @skladOdvod=@sklProFin, @realizujPrijem=1, @errMsg=@errMsg OUT @@ -1202,7 +1209,9 @@ WHILE (1=1) INSERT dbo._TabVyroba_Objednavky (IDPrijataDataJson, IdPHIdent, IdPHIdent2, SkupZbo, RegCis, PaletovyList, Sarze, Mnozstvi, DatPorizeni) SELECT @idJson, @idPHIdent, @idPHIdent2, @sz, @rc, @paletList, @sarze, @mnoz, @datPorizeni SET @idPHObj = SCOPE_IDENTITY() - INSERT @TabPHObj (ID, IDPHIdent) VALUES (@idPHObj, @idPHIdent) + INSERT @TabPHObj (ID, IDPHIdent, IDSklad) + SELECT @idPHObj, @idPHIdent, CASE WHEN k.Material=1 THEN @sklMat ELSE CASE WHEN ISNULL(p.TypDilce,0)=1 THEN @sklProPolo ELSE @sklProFin END END + FROM dbo.TabKmenZbozi k LEFT JOIN dbo.TabParKmZ p ON (p.IDKmenZbozi=k.ID) WHERE k.SkupZbo=@sz AND k.RegCis=@rc IF (@typDokum='micharna') AND (@subtypDokum='nocni') UPDATE dbo._TabVyroba_Objednavky SET NocniObjednavka=1 WHERE ID=@idPHObj END @@ -1217,20 +1226,23 @@ WHILE (1=1) SET @dpz = 4 DECLARE p CURSOR LOCAL FOR - SELECT ID, IDPHIdent FROM @TabPHObj + SELECT ID, IDPHIdent, IDSklad FROM @TabPHObj OPEN p WHILE (1=1) BEGIN - FETCH NEXT FROM p INTO @idPHObj, @idPHIdent + FETCH NEXT FROM p INTO @idPHObj, @idPHIdent, @sklProVydej IF (@@FETCH_STATUS<>0) BREAK + SET @idDZ = (SELECT IDDoklad FROM @TabNocniPrevodky WHERE IDSklad=@sklProVydej) IF (@idDZ IS NULL) BEGIN - EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@sklMat, @DruhPohybu=@dpz, @RadaDokladu=@radaDZPrevodV, @CisloOrg=0 + EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@sklProVydej, @DruhPohybu=@dpz, @RadaDokladu=@radaDZPrevodV, @CisloOrg=0 UPDATE dbo.TabDokladyZbozi SET DruhPohybuPrevod=0, TypPrevodky=N'281', IdSkladPrevodu=@sklPek, PrevodRealizovat=1 WHERE ID=@idDZ SELECT @menaDZ=Mena, @kurzDZ=Kurz, @kurzEDZ=KurzEuro, @jednM=JednotkaMeny, @vstC=VstupniCena, @parZnak=ParovaciZnak FROM dbo.TabDokladyZbozi WHERE ID=@idDZ - UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=0, Poznamka=N'Noèní výdej' WHERE ID=@idDZ - UPDATE dbo._TabVyroba_Objednavky SET IDDokladOZ=@idDZ WHERE ID=@idPHObj + UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL, Poznamka=N'Noèní výdej' WHERE ID=@idDZ +-- UPDATE dbo._TabVyroba_Objednavky SET IDDokladOZ=@idDZ WHERE ID=@idPHObj + IF NOT EXISTS (SELECT 1 FROM @TabNocniPrevodky WHERE IDSKlad=@sklProVydej) + INSERT @TabNocniPrevodky (IDSklad, IDDoklad) SELECT @sklProVydej, @idDZ END IF (@idDZ IS NOT NULL) @@ -1240,9 +1252,9 @@ WHILE (1=1) SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc) IF (@idKZ IS NOT NULL) BEGIN - SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklMat) + SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklProVydej) IF (@idSS IS NULL) - EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@sklMat, @IDZboSklad=@idSS OUT + EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@sklProVydej, @IDZboSklad=@idSS OUT IF (@idSS IS NOT NULL) BEGIN EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZ OUT, @IDDoklad=@idDZ, @DruhPohybu=@dpz, @CisloOrg=0, @IDZboSklad=@idSS, @Mena=@menaDZ, @Kurz=@kurzDZ, @@ -1261,7 +1273,7 @@ WHILE (1=1) END SET @idVCP = NULL - IF (@paletList<>N'') + IF (@paletList<>N'') -- Helios VyrCis BEGIN SET @idVCK = (SELECT ID FROM dbo.TabVyrCK WHERE IDKmenZbozi=@idKZ AND Nazev1=@paletList) IF (@idVCK IS NULL) @@ -1286,51 +1298,73 @@ WHILE (1=1) CLOSE p DEALLOCATE p - IF (@idDZ IS NOT NULL) + DECLARE dok CURSOR LOCAL FOR + SELECT IDDoklad FROM @TabNocniPrevodky + OPEN dok + WHILE (1=1) BEGIN - UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ - SET @logTyp=3 - SET @logInt=@idDZ - SET @logStr = @parZnak - SET @log4Mail = 1 - SET @logText = N'Nelze realizovat výdejka noèní pøevodky' + FETCH NEXT FROM dok INTO @idDZ + IF (@@FETCH_STATUS<>0) BREAK - SET @aktDatum = GETDATE() - EXEC dbo.hp_Realizuj_Vydej @ID=@idDZ, @DatumRealizace=@aktDatum, @Uzivatel=0, @Hlidat=0, @BylaChyba=@bChyba OUT - IF (@bChyba=0) + IF (@idDZ IS NOT NULL) BEGIN --- je vygenerovana prijemka na druhe strane ? pokud ne, vygeneruj ji - IF NOT EXISTS (SELECT 1 FROM dbo.TabPohybyZbozi WHERE IDOldPolozka IN (SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idDZ)) - BEGIN - SET @aktDatum = GETDATE() - EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZDst OUT, @Sklad=@sklPek, @DruhPohybu=0, @RadaDokladu='281', - @Mena=@menaDZ, @CisloOrg=0, @DatumPorizeni=@aktDatum - IF (@idDZDst IS NOT NULL) - BEGIN - IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idDZDst) - INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idDZDst) - UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_IDPuvodniDoklad=@idDZ WHERE ID=@idDZDst - SELECT @datReal=DatRealizace FROM dbo.TabDokladyZbozi WHERE ID=@idDZ - EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idDZDst, @IDDokladSrc=@idDZ, @CisloOrgCil=0, @MUCil=NULL, @MenaCil=@menaDZ, - @KurzCil=NULL, @JednotkaMenyCil=NULL, @KurzEuroCil=NULL, @CisloZakCil=NULL, @NOkruhCil=NULL, - @StredNakladCil=NULL, @StredVynosCil=NULL, @FormaDopravyCil=NULL, @VozidloCil=NULL, @ObjednavkaCil=NULL, - @PopisDodavkyCil=NULL, @NavaznyDobropisCil=NULL, @ZamestnanecCil=NULL, @DodFakCil=NULL, @Nasobek=1, - @SlevaCil=NULL, @VytvaretDokladovouVazbu=1, @VytvaretPolozkovouVazbu=1, @ChybaSkladana=@errMsg OUT, - @KopirovaniDokladu=1 - IF EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idDZDst) - AND EXISTS (SELECT 1 FROM dbo.TabDokladyZbozi WHERE Realizovano=1 AND ID=@idDZ) - EXEC dbo.hp_Realizuj_Prijem @ID=@idDZDst, @DatumRealizace=@datReal, @Uzivatel=0, @BylaChyba=@bChyba OUT, @RealMnoz=1, @RealFin=1, @VypnoutUpozorneniPriZajistovani=1 - END - END + UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ + SET @logTyp=3 + SET @logInt=@idDZ + SET @logStr = @parZnak + SET @log4Mail = 1 + SET @logText = N'Nelze realizovat výdejka noèní pøevodky' - SET @logTyp=0 - SET @logInt=0 - SET @logStr = N'' - SET @log4Mail = 0 - SET @logText = N'' - END + SET @aktDatum = GETDATE() + +-- odchytni chybu pri realizaci, chceme aby tam doklad zustal a vyresili to rucne + BEGIN TRY + EXEC dbo.hp_Realizuj_Vydej @ID=@idDZ, @DatumRealizace=@aktDatum, @Uzivatel=0, @Hlidat=0, @BylaChyba=@bChyba OUT + END TRY + BEGIN CATCH + SET @bChyba=1 -- chyba, vetsinou kvuli nedostatku na skladu + UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ -- zrus priznak, ktery se nastavuje pri pokusu o realizaci + END CATCH + + IF (@bChyba=0) + BEGIN +-- je vygenerovana prijemka na druhe strane ? pokud ne, vygeneruj ji + IF NOT EXISTS (SELECT 1 FROM dbo.TabPohybyZbozi WHERE IDOldPolozka IN (SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idDZ)) + BEGIN + SET @aktDatum = GETDATE() + EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZDst OUT, @Sklad=@sklPek, @DruhPohybu=0, @RadaDokladu='281', + @Mena=@menaDZ, @CisloOrg=0, @DatumPorizeni=@aktDatum + IF (@idDZDst IS NOT NULL) + BEGIN + IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idDZDst) + INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idDZDst) + UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_IDPuvodniDoklad=@idDZ WHERE ID=@idDZDst + SELECT @datReal=DatRealizace FROM dbo.TabDokladyZbozi WHERE ID=@idDZ + EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idDZDst, @IDDokladSrc=@idDZ, @CisloOrgCil=0, @MUCil=NULL, @MenaCil=@menaDZ, + @KurzCil=NULL, @JednotkaMenyCil=NULL, @KurzEuroCil=NULL, @CisloZakCil=NULL, @NOkruhCil=NULL, + @StredNakladCil=NULL, @StredVynosCil=NULL, @FormaDopravyCil=NULL, @VozidloCil=NULL, @ObjednavkaCil=NULL, + @PopisDodavkyCil=NULL, @NavaznyDobropisCil=NULL, @ZamestnanecCil=NULL, @DodFakCil=NULL, @Nasobek=1, + @SlevaCil=NULL, @VytvaretDokladovouVazbu=1, @VytvaretPolozkovouVazbu=1, @ChybaSkladana=@errMsg OUT, + @KopirovaniDokladu=1 + IF EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idDZDst) + AND EXISTS (SELECT 1 FROM dbo.TabDokladyZbozi WHERE Realizovano=1 AND ID=@idDZ) + EXEC dbo.hp_Realizuj_Prijem @ID=@idDZDst, @DatumRealizace=@datReal, @Uzivatel=0, @BylaChyba=@bChyba OUT, @RealMnoz=1, @RealFin=1, @VypnoutUpozorneniPriZajistovani=1 + END + END + + SET @logTyp=0 + SET @logInt=0 + SET @logStr = N'' + SET @log4Mail = 0 + SET @logText = N'' + END -- @bChyba=0 + END -- @idDZ IS NOT NULL + + END - END -- @subtypDokum='nocni' + CLOSE dok + DEALLOCATE dok + END -- @typDokum='micharna' AND @subtypDokum='nocni' UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), Blokovano=0, IDDoklad=@idDZ WHERE ID=@idJson @@ -1464,17 +1498,22 @@ WHILE (1=1) -- BEGIN: ZAHAJENI OPERACE IF (@akce=N'prikaz_zamena_material') BEGIN - SELECT @idVPr=u2.Id, @sz=u3.skupzbo, @rc=u3.regcis + SELECT @idVPr=u2.Id, @sz=u3.skupzbo, @rc=u3.regcis, @sz2=u4.skupzbo, @rc2=u4.regcis FROM #TabJSONData d CROSS APPLY OPENJSON (d.doc, '$') WITH ([prikaz] NVARCHAR(MAX) AS JSON, [material] NVARCHAR(max) AS JSON) AS u CROSS APPLY OPENJSON (prikaz) WITH (id INT) AS u2 CROSS APPLY OPENJSON (material) - WITH (skupzbo NVARCHAR(3), regcis NVARCHAR(30), nazev NVARCHAR(100)) AS u3; + WITH (skupzbo NVARCHAR(3), regcis NVARCHAR(30), nazev NVARCHAR(100)) AS u3 + CROSS APPLY OPENJSON (removeMaterial) + WITH (skupzbo NVARCHAR(3), regcis NVARCHAR(30), nazev NVARCHAR(100)) AS u4; + + SET @idKZn = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc) + SET @idKZn2 = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz2 AND RegCis=@rc2) + IF EXISTS (SELECT 1 FROM dbo.TabPrikaz WHERE ID=@idVPr AND StavPrikazu=30) BEGIN - SET @idKZn = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc) SELECT @idKZv = (SELECT IDTabKmen FROM dbo.TabPrikaz WHERE ID=@idVPr) IF (@idVPr IS NOT NULL) AND (@idKZn IS NOT NULL) AND (@idKZn<>@idKZv) BEGIN @@ -1501,6 +1540,7 @@ WHILE (1=1) END -- (@idPrKVazbyNova IS NOT NULL) END -- (@idVPr IS NOT NULL) AND (@idKZn IS NOT NULL) END -- prikaz ve stavu 30 + END -- akce: -- END: ZAHAJENI OPERACE @@ -1513,6 +1553,40 @@ WHILE (1=1) ROLLBACK TRAN SET @errMsg = ERROR_PROCEDURE() + N'/r.' + CONVERT(nvarchar, ERROR_LINE()) + N' >> ' + ERROR_MESSAGE() + +-- begin: pouzavirej mozne cursory + IF (CURSOR_STATUS('local','dok')>=-1) + BEGIN + CLOSE dok + DEALLOCATE dok + END + + IF (CURSOR_STATUS('local','vy')>=-1) + BEGIN + CLOSE vy + DEALLOCATE vy + END + + IF (CURSOR_STATUS('local','vyPol')>=-1) + BEGIN + CLOSE vyPol + DEALLOCATE vyPol + END + + IF (CURSOR_STATUS('local','p')>=-1) + BEGIN + CLOSE p + DEALLOCATE p + END + + IF (CURSOR_STATUS('local','vazP')>=-1) + BEGIN + CLOSE vazP + DEALLOCATE vazP + END +-- end: pouzavirej mozne cursory + + UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=@errMsg WHERE ID=@idJson IF (@logTyp>0) @@ -1547,5 +1621,3 @@ DROP TABLE IF EXISTS #TabPrKVazbyGenVC -- pro jistotu IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL DROP TABLE #TabJSONData - - diff --git a/_sql/ep_Vyroba_Doklady_PomocPrijemka.sql b/_sql/ep_Vyroba_Doklady_PomocPrijemka.sql new file mode 100644 index 0000000..ff455dd --- /dev/null +++ b/_sql/ep_Vyroba_Doklady_PomocPrijemka.sql @@ -0,0 +1,128 @@ +-- dbo.ep_Vyroba_Doklady_PomocPrijemka +CREATE PROCEDURE dbo.ep_Vyroba_Doklady_PomocPrijemka + @idVydej INT=NULL +AS + +-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !! + + +SET NOCOUNT ON + + +DECLARE + @tranPred INT, + @cnt INT, + @errMsg NVARCHAR(500), + @bChyba BIT, + @iChyba INT, + @debugXml XML, + @gKV XML, + @kv XML, + @odv XML, + @aktDatum DATETIME=GETDATE(), + @logTyp TINYINT, + @logText NVARCHAR(500), + @logInt INT, + @logStr NVARCHAR(255), + @log4Mail BIT=0 + +DECLARE + @jsonString NVARCHAR(MAX), + @jsonString2 NVARCHAR(MAX), + @typDokum NVARCHAR(50), + @subtypDokum NVARCHAR(50), + @akce NVARCHAR(50) + +DECLARE + @cOrg INT, + @sklTechnicky NVARCHAR(30), + @idKZ INT, + @idSS INT + +DECLARE + @retVal INT, + @RespekExistDoklady BIT=0, + @NekontrolMnozOdvedFinal BIT, + @idUziv INT + +DECLARE + @idDZPomocPrij INT, + @radaPrijem NVARCHAR(3)='292', + @menaPrij NVARCHAR(3), + @kurzPrij NUMERIC(19,6), + @kurzPrijE NUMERIC(19,6), + @vstCPrij TINYINT, + @jednMPrij INT, + @idPZPomocPrij INT, + @idSSPomocPrij INT, + @mnozSklad NUMERIC(19,6), + @mnozVydej NUMERIC(19,6), + @mnozPrij NUMERIC(19,6) + + + + +IF OBJECT_ID(N'dbo.TabUserCfg', N'U') IS NOT NULL + SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME()) +SET @idUziv = ISNULL(@idUziv, 0) + + +IF (@sklTechnicky IS NULL) + SET @sklTechnicky=(SELECT TOP(1) Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%neúè%' AND CisloStr LIKE N'2%') +IF (@sklTechnicky IS NULL) + SET @sklTechnicky=N'261' + + +-- begin: pomocna prijemka nedostatecneho materialu (jen materialu !!!) + SET @idDZPomocPrij=NULL + DECLARE pomPrij CURSOR LOCAL FOR + SELECT p.IDZboSklad, p.Mnozstvi + FROM dbo.TabPohybyZbozi p + INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) + INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) + WHERE p.IDDoklad=@idVydej -- doklad vydejky +-- AND k.Material=1 + AND k.Sluzba=0 + OPEN pomPrij + WHILE (1=1) + BEGIN + FETCH NEXT FROM pomPrij INTO @idSS, @mnozVydej + IF (@@FETCH_STATUS<>0) BREAK + + SELECT @idKZ=IDKmenZbozi FROM dbo.TabStavSkladu WHERE ID=@idSS + SET @idSSPomocPrij=(SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklTechnicky) + IF (@idSSPomocPrij IS NULL) + EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@sklTechnicky, @IDZboSklad=@idSSPomocPrij OUT + + -- spocitej jestli mam skladem mnozstvi na realizaci vydejky +-- SET @mnozSklad = ISNULL( (SELECT Mnozstvi+MnozstviKPrijmu-MnozstviKVydeji FROM dbo.TabStavSkladu WHERE ID=@idSSPomocPrij), 0) + SET @mnozSklad = ISNULL( (SELECT Mnozstvi FROM dbo.TabStavSkladu WHERE ID=@idSSPomocPrij), 0) + IF (@mnozVydej>@mnozSklad) + BEGIN + SET @mnozPrij = @mnozVydej - @mnozSklad + IF (@idDZPomocPrij IS NULL) -- uz existuje doklad pomocne prijemky na sklade 261 (technologicky) ? + BEGIN + EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZPomocPrij OUT, @Sklad=@sklTechnicky, @DruhPohybu=0, @RadaDokladu=@radaPrijem, @CisloOrg=0 + SELECT @menaPrij=Mena, @kurzPrij=Kurz, @kurzPrijE=KurzEuro, @jednMPrij=JednotkaMeny, @vstCPrij=VstupniCena + FROM dbo.TabDokladyZbozi WHERE ID=@idDZPomocPrij + END + IF (@idDZPomocPrij IS NOT NULL) + BEGIN + EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZPomocPrij OUT, @IDDoklad=@idDZPomocPrij, @DruhPohybu=0, @CisloOrg=0, @IDZboSklad=@idSSPomocPrij, + @Mena=@menaPrij, @Kurz=@kurzPrij, @KurzEuro=@kurzPrijE, @JednotkaMeny=@jednMPrij, @SazbaSD=NULL, @SazbaDPH=NULL, + @ZakazanoDPH=NULL, @VstupniCena=@vstCPrij, @Mnozstvi=@mnozPrij, @PovolitDuplicitu=1 + END + END + END + CLOSE pomPrij + DEALLOCATE pomPrij + IF (@idDZPomocPrij IS NOT NULL) -- pokud mam pomocnou prijemku, zkus ji realizovat nez budes realizovat vydejku + BEGIN + BEGIN TRY + EXEC dbo.hp_Realizuj_Prijem @ID=@idDZPomocPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1 + END TRY + BEGIN CATCH + SET @errMsg = ERROR_MESSAGE() + END CATCH + END +-- end: pomocna prijemka nedostatecneho materialu diff --git a/_sql/ep_Vyroba_GenSouhrnnyVydej.sql b/_sql/ep_Vyroba_GenSouhrnnyVydej.sql index 0fb0313..62bf87f 100644 --- a/_sql/ep_Vyroba_GenSouhrnnyVydej.sql +++ b/_sql/ep_Vyroba_GenSouhrnnyVydej.sql @@ -45,8 +45,8 @@ DECLARE @dzKurz NUMERIC(19,6), @dzKurzE NUMERIC(19,6) -DECLARE @vydeje TABLE (SkupZbo NVARCHAR(3) NOT NULL, RegCis NVARCHAR(30) NOT NULL, IDKmenZbozi INT, IDPohybZbozi INT, IDPrikaz INT, Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0, - PRIMARY KEY (SkupZbo,RegCis) ) +DECLARE @vydeje TABLE (SkupZbo NVARCHAR(3) NOT NULL, RegCis NVARCHAR(30) NOT NULL, IDKmenZbozi INT, IDPohybZbozi INT, IDVyrCS INT, IDPrikaz INT, + Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0, PRIMARY KEY (SkupZbo,RegCis) ) @@ -86,12 +86,14 @@ IF (@radaVydej IS NULL) -INSERT @vydeje (SkupZbo, RegCis, IDKmenZbozi, IDPohybZbozi, IDPrikaz, Mnozstvi) - SELECT p.SkupZbo, p.RegCis, k.ID, p.ID, ISNULL(p.IDPrikaz, d.IDPrikaz), p.MnozstviDruhove +INSERT @vydeje (SkupZbo, RegCis, IDKmenZbozi, IDPohybZbozi, IDPrikaz, IDVyrCS, Mnozstvi) + SELECT p.SkupZbo, p.RegCis, k.ID, p.ID, ISNULL(p.IDPrikaz, d.IDPrikaz), + vcp.IDVyrCis, ISNULL(vcp.Mnozstvi * CASE WHEN p.MnozstviDruhove>=0 THEN 1.0 ELSE -1.0 END, p.MnozstviDruhove) FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad) INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) + LEFT JOIN dbo.TabVyrCP vcp ON (vcp.IDPolozkaDokladu=p.ID) WHERE d.DatPorizeni BETWEEN @datumOd AND @datumDo AND d.RadaDokladu IN (@radaVydej, N'229', N'292') -- standardne by melo byt: 223 vydej spotreba PEK, 229 Storno vydej spotreba, 292 Prijem vyrovnani do normy AND d.DruhPohybuZbo IN (0,1,3,4) @@ -115,6 +117,9 @@ IF (@tranPred=0) BEGIN TRAN + +SET @idDZ = NULL + IF EXISTS (SELECT 1 FROM @vydeje WHERE Mnozstvi<>0 AND IDKmenZbozi IS NOT NULL) BEGIN EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@idSklad, @DruhPohybuZbo=@dpz, @RadaDokladu=@radaVydej, @CisloOrg=@cOrg, @DatumPorizeni=@datumDo @@ -126,6 +131,7 @@ IF EXISTS (SELECT 1 FROM @vydeje WHERE Mnozstvi<>0 AND IDKmenZbozi IS NOT NULL) SELECT DISTINCT(IDKmenZbozi), SUM(Mnozstvi) FROM @vydeje WHERE IDKmenZbozi IS NOT NULL + AND IDPohybZbozi IS NOT NULL GROUP BY IDKmenZbozi OPEN p WHILE (1=1) diff --git a/_sql/tbl__TabVyrobaObjednavky.sql b/_sql/tbl__TabVyrobaObjednavky.sql index 533886d..d13c5f8 100644 --- a/_sql/tbl__TabVyrobaObjednavky.sql +++ b/_sql/tbl__TabVyrobaObjednavky.sql @@ -5,19 +5,22 @@ IF OBJECT_ID(N'dbo._TabVyroba_Objednavky', N'U') IS NULL IdPHIdent bigint NULL, IdPHIdent2 bigint NULL, PHOznaceni nvarchar(50) COLLATE Czech_CI_AS NULL, - IDDokladOZ INT, +-- IDDokladOZ INT, +-- IDPohybOZ INT, Poznamka nvarchar(255) COLLATE Czech_CI_AS NULL, SkupZbo nvarchar(3) COLLATE Czech_CI_AS NULL, RegCis nvarchar(30) COLLATE Czech_CI_AS NULL, IDKmenZbozi int NULL, Mnozstvi numeric(19, 6) DEFAULT 0.0 NOT NULL, - MnozKVydeji numeric(19, 6) DEFAULT 0.0 NOT NULL, + MnozVydane numeric(19, 6) DEFAULT 0.0 NOT NULL, +-- MnozKVydeji numeric(19, 6) DEFAULT 0.0 NOT NULL, PaletovyList nvarchar(50) COLLATE Czech_CI_AS NULL, Sarze nvarchar(30) COLLATE Czech_CI_AS NULL, NocniObjednavka BIT NOT NULL DEFAULT 0, Storno BIT NOT NULL DEFAULT 0, Vratka BIT NOT NULL DEFAULT 0, Splneno BIT NOT NULL DEFAULT 0, + OdmitnutoSkladem BIT NOT NULL DEFAULT 0, PocetPohybuOZ SMALLINT NOT NULL DEFAULT 0, Blokovano bit DEFAULT 0 NOT NULL, DatPorizeni datetime DEFAULT getdate() NOT NULL, @@ -38,8 +41,7 @@ DROP INDEX IF EXISTS EI_TabVyroba_Objednavky_idPH ON dbo._TabVyroba_Objednavky /* 10.11.2023 */ -IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'IDDokladOZ') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD IDDokladOZ INT NULL - +--IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'IDDokladOZ') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD IDDokladOZ INT NULL IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'IDPohybOZ') IS NOT NULL ALTER TABLE dbo._TabVyroba_Objednavky DROP COLUMN IDPohybOZ IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'DatReportuPH') IS NOT NULL ALTER TABLE dbo._TabVyroba_Objednavky DROP COLUMN DatReportuPH IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'PocetPohybuOZ') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD PocetPohybuOZ SMALLINT NOT NULL DEFAULT 0 @@ -55,7 +57,16 @@ IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'NocniObjednavka') IS NULL ALTER TA /* 23.11.2023 */ IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'Splneno') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD Splneno BIT NOT NULL DEFAULT 0 -IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'MnozKVydeji') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD MnozKVydeji NUMERIC(19,6) NOT NULL DEFAULT 0.0 +--IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'MnozKVydeji') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD MnozKVydeji NUMERIC(19,6) NOT NULL DEFAULT 0.0 + + +/* 5.6.2025 */ +IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'MnozVydane') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD MnozVydane NUMERIC(19,6) NOT NULL DEFAULT 0.0 +IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'MnozKVydeji') IS NOT NULL ALTER TABLE dbo._TabVyroba_Objednavky DROP COLUMN MnozKVydeji + + + + @@ -68,7 +79,7 @@ IF OBJECT_ID(N'dbo._TabVyroba_Objednavky_Pol', N'U') IS NULL IDPohybOZ INT NULL, IDVyrCP INT NULL, SkupZbo NVARCHAR(3), - RegCis NVARCHAR(100), + RegCis NVARCHAR(30), Mnozstvi numeric(19, 6) DEFAULT 0.0 NOT NULL, Sarze NVARCHAR(100) NULL, PaletovyList NVARCHAR(100) NULL, diff --git a/_sql/tbl__TabVyrobaPalety.sql b/_sql/tbl__TabVyrobaPalety.sql index 68d824c..0f310dc 100644 --- a/_sql/tbl__TabVyrobaPalety.sql +++ b/_sql/tbl__TabVyrobaPalety.sql @@ -60,6 +60,13 @@ EXEC sp_addextendedproperty @name='MS_Description', @value=N'0-nedefinovano 5-nestandard', @level0type='schema', @level0name='dbo', @level1type='table', @level1name='_TabVyroba_Palety', @level2type='column', @level2name='Typ' +/* 29.5.2025 */ +IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'TiskDatExpirace') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD TiskDatExpirace BIT NOT NULL DEFAULT 1 +IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'TiskSarze') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD TiskSarze BIT NOT NULL DEFAULT 1 + + + + DROP INDEX IF EXISTS EI__TabVyroba_Palety_Typ ON dbo._TabVyroba_Palety CREATE NONCLUSTERED INDEX EI__TabVyroba_Palety_Typ ON dbo._TabVyroba_Palety (Typ) diff --git a/_sql/trg__TabPohybyZbozi_HDC_D.sql b/_sql/trg__TabPohybyZbozi_HDC_D.sql index e1ddf74..c5eba2e 100644 --- a/_sql/trg__TabPohybyZbozi_HDC_D.sql +++ b/_sql/trg__TabPohybyZbozi_HDC_D.sql @@ -47,8 +47,7 @@ BEGIN SELECT @idObjHlav=IDHlava FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ=@id DELETE FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ=@id IF OBJECT_ID(N'dbo._TabVyroba_Objednavky', N'U') IS NOT NULL - UPDATE dbo._TabVyroba_Objednavky SET MnozKVydeji=Mnozstvi - ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idObjHlav), 0) - WHERE ID=@idObjHlav + UPDATE dbo._TabVyroba_Objednavky SET MnozVydane=ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idObjHlav), 0) WHERE ID=@idObjHlav END END END diff --git a/_sql/trg__TabPohybyZbozi_HDC_IU.sql b/_sql/trg__TabPohybyZbozi_HDC_IU.sql index 066ad68..aea6c12 100644 --- a/_sql/trg__TabPohybyZbozi_HDC_IU.sql +++ b/_sql/trg__TabPohybyZbozi_HDC_IU.sql @@ -37,8 +37,7 @@ BEGIN SELECT @idObjHlav=IDHlava, @idObjPol=ID FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ=@id UPDATE dbo._TabVyroba_Objednavky_Pol SET Mnozstvi=@mnoz WHERE ID=@idObjPol IF OBJECT_ID(N'dbo._TabVyroba_Objednavky', N'U') IS NOT NULL - UPDATE dbo._TabVyroba_Objednavky SET MnozKVydeji=Mnozstvi - ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idObjHlav), 0) - WHERE ID=@idObjHlav + UPDATE dbo._TabVyroba_Objednavky SET MnozVydane=ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idObjHlav), 0) WHERE ID=@idObjHlav END END END diff --git a/_sql/trg__TabPrikazMzdyAZmetky_HDC_D.sql b/_sql/trg__TabPrikazMzdyAZmetky_HDC_D.sql new file mode 100644 index 0000000..79a30d2 --- /dev/null +++ b/_sql/trg__TabPrikazMzdyAZmetky_HDC_D.sql @@ -0,0 +1,34 @@ +-- dbo.ET_TabPrikazMzdyAZmetky_HDC_D +CREATE TRIGGER dbo.ET_TabPrikazMzdyAZmetky_HDC_D ON dbo.TabPrikazMzdyAZmetky +WITH EXECUTE AS CALLER +FOR DELETE +AS +BEGIN + SET NOCOUNT ON + +-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN nebo Windows sluzby HDCDZApi !! + + DECLARE + @id INT + + + + DECLARE c CURSOR LOCAL FAST_FORWARD FOR + SELECT d.ID + FROM deleted d + OPEN c + WHILE (1=1) + BEGIN + FETCH NEXT FROM c INTO @id + IF (@@FETCH_STATUS<>0) BREAK + +-- sync informace pro reseni ASol/ProHolding/HDC +-- vydejky + IF OBJECT_ID(N'dbo._hdc_ph_PrijataJsonData', N'U') IS NOT NULL + UPDATE dbo._hdc_ph_PrijataJsonData SET IDMzda=NULL WHERE IDMzda=@id + + END + CLOSE c + DEALLOCATE c + +END diff --git a/datMod.dfm b/datMod.dfm index 6eea4bb..721a416 100644 --- a/datMod.dfm +++ b/datMod.dfm @@ -117,6 +117,9 @@ object dm: Tdm FieldName = 'fSarze' Size = 50 end + object vtStrojefIDPaleta: TIntegerField + FieldName = 'fIDPaleta' + end end object vtPlanZitra: TFDMemTable FetchOptions.AssignedValues = [evMode] @@ -129,7 +132,7 @@ object dm: Tdm Left = 143 Top = 89 object vtPlanZitrafIDPlan2: TIntegerField - FieldName = 'fIDPlan' + FieldName = 'fIDDavka' end object vtPlanZitrafVyrobek: TStringField FieldName = 'fVyrobek' @@ -142,6 +145,19 @@ object dm: Tdm object vtPlanZitrafZakazka: TStringField FieldName = 'fZakazka' end + object vtPlanZitrafIDPrikaz: TIntegerField + FieldName = 'fIDPrikaz' + Visible = False + end + object vtPlanZitrafHodOd: TSmallintField + FieldName = 'fHodOd' + end + object vtPlanZitrafHodDo: TSmallintField + FieldName = 'fHodDo' + end + object vtPlanZitrafMnozstvi: TFloatField + FieldName = 'fMnozstvi' + end end object dsPlanZitra: TDataSource DataSet = vtPlanZitra @@ -149,6 +165,8 @@ object dm: Tdm Top = 35 end object vtRozpracPL: TFDMemTable + FieldDefs = <> + IndexDefs = <> FetchOptions.AssignedValues = [evMode] FetchOptions.Mode = fmAll ResourceOptions.AssignedValues = [rvSilentMode] @@ -156,6 +174,7 @@ object dm: Tdm UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] UpdateOptions.CheckRequired = False UpdateOptions.AutoCommitUpdates = True + StoreDefs = True Left = 238 Top = 90 object vtRozpracPLfIDEvidRozp: TIntegerField @@ -163,6 +182,7 @@ object dm: Tdm end object vtRozpracPLfIDStroj: TIntegerField FieldName = 'fIDStroj' + Visible = False end object vtRozpracPLfStroj: TStringField FieldName = 'fStroj' diff --git a/datMod.pas b/datMod.pas index 3cc0351..7d35f45 100644 --- a/datMod.pas +++ b/datMod.pas @@ -308,6 +308,11 @@ type vtMaterialcolCisloZbozi: TStringField; vtMaterialcolIDPohyb: TIntegerField; vtSarzecolIDPohybOZ: TIntegerField; + vtStrojefIDPaleta: TIntegerField; + vtPlanZitrafIDPrikaz: TIntegerField; + vtPlanZitrafHodOd: TSmallintField; + vtPlanZitrafHodDo: TSmallintField; + vtPlanZitrafMnozstvi: TFloatField; procedure DataModuleCreate (Sender: TObject); procedure vtCCP1BeforeDelete (DataSet: TDataSet); procedure vtCCP1BeforeInsert (DataSet: TDataSet); @@ -343,8 +348,9 @@ type procedure NactiCCP1 (const f: TformKontrolaCCP1); procedure NactiCCP1ProNoveZaznamy (const f: TformKontrolaCCP1edt); - procedure NactiPlanStroje (const f: TformPekarna; const idStroj: integer); - procedure NactiRozpracovane (const f: TformPekarna); + procedure NactiPlanStroje (const f: TformPekarna; const idStroj: integer; dnes: boolean=true); + procedure NactiRozpracovane (const f: TformPekarna; const idStroj: integer); + procedure NactiOdpadStroje (const f: TformPekarna); procedure NactiOdpady (const f: TformOdpady); @@ -376,7 +382,7 @@ var apiMod: boolean; apiServer, phServer, compName, url, sqlLang: string; vyrobniDen: TDate; - aktIdStroj, aktIdKmen, aktIdPrikaz, aktIdKmenPlan, aktIdKmenRozprac, idZamMistr, cisZamMistr: integer; + aktIdStroj, aktIdKmen, aktIdPrikaz, aktIDPaleta, aktIdKmenPlan, aktIdKmenRozprac, idZamMistr, cisZamMistr: integer; bmIdStroj, bmIdPlanDnes, bmIdPrikaz: integer; // bookmarky aktZakazka: string; @@ -1088,6 +1094,7 @@ uses System.Variants, System.StrUtils, Winapi.Windows, System.DateUtils, IdHTTP, end; end; + vtObjednavkaMat.IndexFieldNames:= 'colCisloObj:D'; vtObjednavkaMat.First; end; @@ -1096,7 +1103,7 @@ uses System.Variants, System.StrUtils, Winapi.Windows, System.DateUtils, IdHTTP, procedure Tdm.NactiZasobaObjednavky (const f: TformZasobaObjednavky); - var lSQL: string; + var lSQL, regCis: string; cnt, idKmen: integer; begin if not(vtZasobyObjednavky.Active) then @@ -1106,7 +1113,9 @@ uses System.Variants, System.StrUtils, Winapi.Windows, System.DateUtils, IdHTTP, lSQL:= 'SELECT ID, SkupZbo, RegCis, Nazev1, MJEvidence FROM ' + tblKZ + ' WHERE Material=1 OR ID IN (SELECT IDKmenZbozi FROM ' + tblSS + ' WHERE IDSklad IN (N''211'',N''311''))'; lSQL:= lSQL + ' OR ID IN (SELECT IDKmenZbozi FROM ' + tblObjednavky + ') ORDER BY Nazev1'; } - lSQL:= 'SELECT k.ID, k.SkupZbo, k.RegCis, k.Nazev1, k.MJEvidence FROM ' + tblKZ + ' k INNER JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID) WHERE ke._Vyroba_ProObjednavku=1'; + lSQL:= 'SELECT k.ID, k.SkupZbo, k.RegCis, k.Nazev1, k.MJEvidence FROM ' + tblKZ + ' k INNER JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID)' + + ' WHERE ke._Vyroba_ProObjednavku=1 AND k.ID NOT IN (SELECT ID FROM ' + tblKZ + ' WHERE SkupZbo=N''101'' AND RegCis IN (N''111000'', N''112000''))' + + ' AND k.ID IN (SELECT IDKmenZbozi FROM ' + tblSS + ' WHERE Mnozstvi>0 AND IDSklad=N''311'')'; with Helios.OpenSQL(lSQL) do begin @@ -1121,7 +1130,10 @@ uses System.Variants, System.StrUtils, Winapi.Windows, System.DateUtils, IdHTTP, vtZasobyObjednavky.Append; vtZasobyObjednavky.FieldByName('colIDKmen').AsInteger:= idKmen; vtZasobyObjednavky.FieldByName('colSZ').AsString:= VarToStr(FieldByNameValues('SkupZbo')); - vtZasobyObjednavky.FieldByName('colRC').AsString:= VarToStr(FieldByNameValues('RegCis')); + regCis:= VarToStr(FieldByNameValues('RegCis')); + if (regCis='012003') then + lSQL:= ''; + vtZasobyObjednavky.FieldByName('colRC').AsString:= regCis; vtZasobyObjednavky.FieldByName('colNazev1').AsString:= VarToStr(FieldByNameValues('Nazev1')); vtZasobyObjednavky.FieldByName('colMJ').AsString:= VarToStr(FieldByNameValues('MJEvidence')); @@ -1658,9 +1670,16 @@ uses System.Variants, System.StrUtils, Winapi.Windows, System.DateUtils, IdHTTP, - procedure Tdm.NactiPlanStroje (const f: TformPekarna; const idStroj: integer); + procedure Tdm.NactiPlanStroje (const f: TformPekarna; const idStroj: integer; dnes: boolean=true); var lSQL: string; begin + if (idStroj>0) then + begin + lSQL:= 'SELECT FROM ' + tblAdvKPlanDavky + ' WHERE DatumPripadu=' + IfThen(dnes, 'GETDATE()', ''); + end; + + + if (idStroj>0) then begin lSQL:= 'SELECT ID FROM ' + tblVPr + ' WHERE StavPrikazu IN (20,30) AND ID NOT IN (SELECT r.IDPrikaz FROM ' + tblRozpracOper + ' h INNER JOIN ' + tblRozpracOperR; @@ -1721,12 +1740,15 @@ uses System.Variants, System.StrUtils, Winapi.Windows, System.DateUtils, IdHTTP, - procedure Tdm.NactiRozpracovane (const f: TformPekarna); + procedure Tdm.NactiRozpracovane (const f: TformPekarna; const idStroj: integer); var lSQL: string; idVPr, idH, idS, idK, radaPrikaz, cisloPL: string; mnVCP, mnZbytVCPP: Extended; i1, i2: integer; begin + + + lSQL:= 'SELECT DISTINCT(vp.ID) FROM ' + tblPrPost + ' prp INNER JOIN ' + tblPrikaz + ' vp ON (vp.ID=prp.IDPrikaz)'; lSQL:= lSQL + ' WHERE vp.StavPrikazu=40 AND prp.IDOdchylkyDo IS NULL AND prp.typ<2 AND prp.IDStroje=' + aktIdStroj.ToString + ' GROUP BY vp.ID'; { @@ -2034,7 +2056,7 @@ uses System.Variants, System.StrUtils, Winapi.Windows, System.DateUtils, IdHTTP, procedure Tdm.NactiStrojeAPraci (const f: TformPekarna); - var lSQL: string; + var lSQL, cisloPL, sarze: string; idStroj, idVPr, cntVz: integer; begin lSQL:= 'SELECT st.ID, p.Pracoviste, st.Nazev, st.Kod FROM ' + tblCStroju + ' st INNER JOIN ' + tblCPrac + ' p ON (p.ID=IDPrac) WHERE p.IDTabStrom=N' + stredPekarna.ToString.QuotedString; @@ -2085,13 +2107,25 @@ uses System.Variants, System.StrUtils, Winapi.Windows, System.DateUtils, IdHTTP, vtStroje.FieldByName('fVyrobek').AsString:= VarToStr(FieldByNameValues('Nazev1')); vtStroje.FieldByName('fZakazka').AsString:= VarToStr(FieldByNameValues('RadaPrikaz')).Replace(' ',''); vtStroje.FieldByName('fIDEvidRozpOper').AsString:= VarToStr(FieldByNameValues('ID')); - vtStroje.FieldByName('fIDPrikaz').AsString:= VarToStr(FieldByNameValues('idVPr')); + idVPr:= VarToStr(FieldByNameValues('idVPr')).ToInteger; + vtStroje.FieldByName('fIDPrikaz').AsInteger:= idVPr; vtStroje.FieldByName('fCisloZbozi').AsString:= VarToStr(FieldByNameValues('CisloZbozi')); vtStroje.FieldByName('fIDKmen').AsString:= VarToStr(FieldByNameValues('IDKmen')); - vtStroje.FieldByName('fAktPaletList').AsString:= VarToStr(FieldByNameValues('VyrCislo')); - vtStroje.FieldByName('fSarze').AsString:= VarToStr(FieldByNameValues('Sarze')); vtStroje.FieldByName('fCinnost').AsString:= 'Výroba'; + cisloPL:= VarToStr(FieldByNameValues('VyrCislo')); + vtStroje.FieldByName('fAktPaletList').AsString:= cisloPL; + sarze:= VarToStr(FieldByNameValues('Sarze')); + vtStroje.FieldByName('fSarze').AsString:= sarze; + + if (cisloPL<>'') and (sarze<>'') and (idVPr>0) then + begin + lSQL:= 'SELECT TOP(1) ID FROM ' + tblPalety + ' WHERE IDPrikaz=' + idVPr.ToString + ' AND CisloPalety=N' + cisloPL.QuotedString + + ' AND Sarze=N' + sarze.QuotedString + ' AND DatUkonceni IS NULL AND IDStroj=' + idStroj.ToString + ' ORDER BY ID'; + vtStroje.FieldByName('fIDPaleta').AsInteger:= helUtils.getHeliosIntVal (Helios, 0, lSQL); + end; + + // vtRozpracPL.Append; // dm.vtRozpracPL.FieldByName('') // vtRozpracPL.Post; diff --git a/frmObjednavkaMat.dfm b/frmObjednavkaMat.dfm index e05c54f..82648a3 100644 --- a/frmObjednavkaMat.dfm +++ b/frmObjednavkaMat.dfm @@ -122,7 +122,6 @@ object formObjednavkaMat: TformObjednavkaMat ReadOnly = True Title.Alignment = taCenter Title.Caption = 'Dod'#225'no' - Width = 64 Visible = True end item diff --git a/frmObjednavkaMat.pas b/frmObjednavkaMat.pas index 7d884e0..2902dd2 100644 --- a/frmObjednavkaMat.pas +++ b/frmObjednavkaMat.pas @@ -6,7 +6,7 @@ uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Data.DB, Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls, Vcl.Mask, IdHTTP, IdSSLOpenSSL, System.JSON, IdBaseComponent, IdComponent, IdRawBase, IdRawClient, IdIcmpClient, - ddPlugin_TLB, JvExDBGrids, JvDBGrid; + ddPlugin_TLB, JvExDBGrids, JvDBGrid, uPing; {$I iConsts.inc} @@ -111,6 +111,7 @@ uses System.StrUtils, System.Math, if not(TryStrToFloat(edtNaPalete.Text, napal)) then napal:= 0; + if (mn>0) or (pal>0) then begin mnSum:= mn; @@ -182,6 +183,7 @@ uses System.StrUtils, System.Math, sarze:= ''; paletovyList:= ''; try +{ icmpCli.Host:= datMod.getDomainName (datMod.phServer); try icmpCLi.Ping(); @@ -190,20 +192,34 @@ uses System.StrUtils, System.Math, except pingOK:= False; end; - +} +{$IFDEF DEBUG} + i:= 0; + resp:= '{"@context":"/api/contexts/Order","@id":"/api/orders/10","@type":"Order","id":10,"heliosId":null,"name":"Lecitin tekutý","skupzbo":"101","regcis":"652801"' + + ',"paletovyList":"2500082","quantity":"1000.0000","items":[{"@id":"/api/material_order_items/12","@type":"MaterialOrderItem","id":12,"stockItem":{"@id":"/api/stock_items/47"' + + ',"@type":"StockItem","id":47,"heliosId":250,"heliosPrijemkaId":84},"stockItemFinal":null,"order":"/api/orders/10","name":"Lecitin tekutý","sarze":"066-03-24-0220"' + + ',"paletovyList":"2500082","quantity":"1000","dateExp":"2026-08-31T00:00:00+02:00","isCompleted":false,"completedAt":null}],"isCompleted":false,"isUserCompleted":false' + + ',"completedAt":null,"isFinalCompleted":false}'; +{$ELSE} + i:= uPing.Ping (datMod.getDomainName (datMod.phServer), resp); resp:= ''; - if (pingOK) then - begin - respStream:= TStringStream.Create(''); - lHTTP.Post (datMod.phServer + '/order', lParamList, respStream); - resp:= respStream.DataString.Replace('\/', '/'); - end; +{$ENDIF} + pingOK:= (i=0); + + if (pingOK) +{$IFDEF DEBUG} and (1=0) {$ENDIF} + then + begin + respStream:= TStringStream.Create(''); + lHTTP.Post ('http://rootvin.datazone.cloud/api/helios/order', lParamList, respStream); +// lHTTP.Post (datMod.phServer + '/order', lParamList, respStream); + resp:= respStream.DataString.Replace('\/', '/'); + end; // log if (helUtils.SQLObjectExists(Helios, tblHDCPHLog)) and (resp<>'') then Helios.ExecSQL ('INSERT ' + tblHDCPHLog + ' (LogText, LogTextLong) SELECT N''Dotaz na objednávku materiálu (dle mnoz)'', N' + resp.QuotedString); - if (resp.Contains('neexistuje')) then errText:= 1; @@ -240,6 +256,10 @@ uses System.StrUtils, System.Math, else if (sarze='') and (paletovyList='') then begin + if (ph1='') then + ph1:= '0'; + if (ph2='') then + ph2:= '0'; lSQL:= 'INSERT ' + tblObjednavky + ' (SkupZbo, RegCis, IDKmenZbozi, PaletovyList, Sarze, Mnozstvi, IdPHIdent, IdPHIdent2) SELECT N' + sz.QuotedString; lSQL:= lSQL + ', N' + rc.QuotedString + ', ' + idKmen.ToString + ', N' + paletovyList.QuotedString + ', N' + sarze.QuotedString + ', ' + mnPL.ToString.Replace(',', '.'); lSQL:= lSQL + ', ' + ph1 + ', ' + ph2; diff --git a/frmPekarna.dfm b/frmPekarna.dfm index a49a18c..dc865cc 100644 --- a/frmPekarna.dfm +++ b/frmPekarna.dfm @@ -278,7 +278,7 @@ object formPekarna: TformPekarna Top = 103 Width = 634 Height = 626 - ActivePage = shRozpracovanePL + ActivePage = shPlanDnes Align = alClient TabOrder = 2 object shPlanDnes: TTabSheet @@ -374,7 +374,6 @@ object formPekarna: TformPekarna object shPlanZitra: TTabSheet Caption = ' Pl'#225'n v'#253'roby Z'#205'TRA ' ImageIndex = 1 - TabVisible = False object grdPlanZitra: TDBGrid Left = 0 Top = 0 @@ -568,7 +567,6 @@ object formPekarna: TformPekarna Width = 624 Height = 509 Align = alClient - Color = 15790320 DataSource = dm.dsRozpracPL DrawingStyle = gdsGradient GradientEndColor = clActiveCaption @@ -578,7 +576,7 @@ object formPekarna: TformPekarna Font.Height = -16 Font.Name = 'Segoe UI' Font.Style = [] - Options = [dgTitles, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] + Options = [dgTitles, dgIndicator, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] ParentFont = False TabOrder = 1 TitleFont.Charset = DEFAULT_CHARSET @@ -612,7 +610,7 @@ object formPekarna: TformPekarna FieldName = 'fStroj' Title.Alignment = taCenter Title.Caption = 'Stroj' - Width = 208 + Width = 204 Visible = True end item @@ -636,7 +634,7 @@ object formPekarna: TformPekarna FieldName = 'fSZ' Title.Alignment = taCenter Title.Caption = 'SK' - Width = 38 + Width = 37 Visible = True end item @@ -645,7 +643,7 @@ object formPekarna: TformPekarna FieldName = 'fRC' Title.Alignment = taCenter Title.Caption = 'Reg. '#269'.' - Width = 94 + Width = 92 Visible = True end item @@ -654,7 +652,7 @@ object formPekarna: TformPekarna FieldName = 'fAktPaletList' Title.Alignment = taCenter Title.Caption = 'PL' - Width = 126 + Width = 124 Visible = True end item @@ -662,7 +660,7 @@ object formPekarna: TformPekarna FieldName = 'fDatStart' Title.Alignment = taCenter Title.Caption = 'Start' - Width = 122 + Width = 120 Visible = True end item @@ -671,7 +669,7 @@ object formPekarna: TformPekarna FieldName = 'fColR' Title.Alignment = taCenter Title.Caption = 'R' - Width = 26 + Width = 25 Visible = True end> end @@ -709,12 +707,11 @@ object formPekarna: TformPekarna Left = 172 Top = 4 Width = 137 - Height = 25 + Height = 17 Align = alRight Alignment = taRightJustify Caption = 'Vy'#345'adit z v'#253'roby paletu:' Visible = False - ExplicitHeight = 17 end object GridPanel16: TGridPanel Left = 312 @@ -1127,7 +1124,7 @@ object formPekarna: TformPekarna object Label1: TLabel Left = 1 Top = 30 - Width = 270 + Width = 210 Height = 21 Align = alBottom Alignment = taCenter @@ -1139,7 +1136,6 @@ object formPekarna: TformPekarna Font.Name = 'Segoe UI' Font.Style = [fsBold] ParentFont = False - ExplicitWidth = 210 end end object memVyrobniPoznamka: TMemo diff --git a/frmPekarna.pas b/frmPekarna.pas index a944717..756b986 100644 --- a/frmPekarna.pas +++ b/frmPekarna.pas @@ -304,6 +304,8 @@ var f:= TformTiskyNahledy.Create (nil); try f.idKmen:= datMod.aktIdKmen; + f.idPrikaz:= datMod.aktIdPrikaz; + f.idPaleta:= datMod.aktIDPaleta; f.Helios:= Helios; f.HeliosHandle:= Application.Handle; f.ShowModal; @@ -1014,11 +1016,8 @@ procedure TformPekarna.FormClose (Sender: TObject; var Action: TCloseAction); grdRozpracovane.Font.Height:= Helios.FontHeight; grdStroje.Font.Height:= Helios.FontHeight; + pgCtrlPlan.ActivePage:= shPlanDnes; - - - - shPlanZitra.TabVisible:= false; runTimerRozprac:= true; sgInfo.Cells[0, 0]:= 'Rok'; @@ -1075,7 +1074,7 @@ procedure TformPekarna.FormClose (Sender: TObject; var Action: TCloseAction); infoTimerTimer (Sender); - dm.NactiDataPaneluStroje (self, arrStroje); + dm.NactiDataPaneluStroje (self, arrStroje); // stroje strediska 211 if (dm.vtStroje.RecordCount>0) then grdStrojeCellClick(grdStroje.Columns.Items[2]); @@ -1121,7 +1120,7 @@ procedure TformPekarna.FormClose (Sender: TObject; var Action: TCloseAction); if (dm.vtStroje.RecordCount>0) then datMod.bmIdStroj:= dm.vtStroje.FieldByName('fIDStroj').AsInteger; - dm.NactiPlanStroje (self, datMod.bmIdStroj); + dm.NactiPlanStroje (self, datMod.bmIdStroj, true); // dnesni plan (tj. davky kapacitniho planu) end; @@ -1315,6 +1314,8 @@ procedure TformPekarna.FormClose (Sender: TObject; var Action: TCloseAction); aktIdKmen:= grdStroje.DataSource.DataSet.FieldByName('fIDKmen').AsInteger; datMod.aktIdKmen:= aktIdKmen; + datMod.aktIDPaleta:= grdStroje.DataSource.DataSet.FieldByName('fIDPaleta').AsInteger; + datMod.aktIdPrikaz:= grdStroje.DataSource.DataSet.FieldByName('fIDPrikaz').AsInteger; datMod.bmIdPrikaz:= datMod.aktIdPrikaz; @@ -1611,7 +1612,7 @@ procedure TformPekarna.FormClose (Sender: TObject; var Action: TCloseAction); begin edtNazevRozpracVyrobku.Text:= ''; edtRozpracZakazka.Text:= ''; - dm.NactiRozpracovane (self); + dm.NactiRozpracovane (self, datMod.aktIdStroj); end; end; @@ -1644,7 +1645,7 @@ procedure TformPekarna.FormClose (Sender: TObject; var Action: TCloseAction); if (initOK) then begin - dm.NactiRozpracovane (self); + dm.NactiRozpracovane (self, datMod.aktIdStroj); dm.NactiPlanStroje (self, datMod.bmIdStroj); end; diff --git a/frmTiskyNahledy.pas b/frmTiskyNahledy.pas index 906d19f..f4724d2 100644 --- a/frmTiskyNahledy.pas +++ b/frmTiskyNahledy.pas @@ -75,6 +75,7 @@ type HeliosHandle: integer; idKmen: integer; idPrikaz: integer; + idPaleta: integer; idStroj: Integer; sarze: string; paletList: string; @@ -83,16 +84,17 @@ type var formTiskyNahledy: TformTiskyNahledy; bidPalety: integer; + idFormKA, idFormPS, idFormPL: integer; implementation -uses datMod, - frmZahajeniPalety, - helUtils; +uses System.StrUtils, + datMod, + frmZahajeniPalety, helUtils; {$R *.dfm} - function ResourceNameToString(lpszName: PChar): string; + function ResourceNameToString (lpszName: PChar): string; begin if Is_IntResource(lpszName) then Result:= '#' + IntToStr(NativeUInt(lpszName)) @@ -101,7 +103,7 @@ uses datMod, end; - function ResourceTypeToString(lpszType: PChar): string; + function ResourceTypeToString (lpszType: PChar): string; begin case NativeUInt(lpszType) of NativeUInt(RT_CURSOR): @@ -113,12 +115,12 @@ uses datMod, NativeUInt(RT_GROUP_ICON): Result:= 'RT_GROUP_ICON'; else - Result := ResourceNameToString(lpszType); + Result := ResourceNameToString (lpszType); end; end; - function EnumResNameProc(hModule: HMODULE; lpszType, lpszName: PChar; lParam: NativeInt): BOOL; stdcall; + function EnumResNameProc (hModule: HMODULE; lpszType, lpszName: PChar; lParam: NativeInt): BOOL; stdcall; begin TStrings(lParam).Add(ResourceNameToString(lpszName)); result:= true; @@ -126,56 +128,52 @@ uses datMod, + procedure TformTiskyNahledy.btnAVTisk1Click (Sender: TObject); var idF: integer; begin - if (datMod.aktIdKmen>0) then + if (idKmen>0) then begin - idF:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT ID FROM ' + tblFormDef + ' WHERE Nazev2=N''PEK-6'''); + idF:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT TOP(1) ID FROM ' + tblFormDef + ' WHERE Nazev2=N''PEK-6'''); if (idF>0) then - Helios.PrintForm3 (bidDilce, idF, 'TabKmenZbozi.ID=' + datMod.aktIdKmen.ToString); + Helios.PrintForm3 (bidDilce, idF, 'TabKmenZbozi.ID=' + idKmen.ToString); end; - Close; end; + procedure TformTiskyNahledy.btnAVTisk2Click (Sender: TObject); - var lSQL: string; - f: integer; - i: integer; + var lSQL, podm: string; + idFormNastav: integer; begin - if (idKmen>0) and (bidPalety>0) then + if (bidPalety>0) and (idFormKA>0) then begin - f:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT ISNULL(_KL,0) FROM ' + tblKZe + ' WHERE ID=' + idKmen.ToString); - if (f>0) then + lSQL:= 'SELECT TOP(1) ID FROM ' + tblTiskDef + ' WHERE FormDefID=' + idFormKA.ToString + ' AND LoginName IS NULL ORDER BY Prednastaveno DESC'; + idFormNastav:= helUtils.getHeliosIntVal (Helios, 0, lSQL); + if (idFormNastav=0) then begin - lSQL:= 'SELECT COUNT(ID) FROM ' + datMod.constHvwVyrobaPalety + ' x WHERE x.IDKmen=' + idKmen.ToString; - if (paletList<>'') then - lSQL:= lSQL + ' AND x.CisloPalety=N' + paletList.QuotedString - else - begin - if (sarze<>'') then - lSQL:= lSQL + ' AND x.Sarze=N' + sarze.QuotedString; - if (idPrikaz>0) then - lSQL:= lSQL + ' AND x.IDPrikaz=' + idPrikaz.ToString; - if (idStroj>0) then - lSQL:= lSQL + ' AND x.IDStroj=' + idStroj.ToString; - end; - i:= helUtils.getHeliosIntVal (Helios, 0, lSQL); - if (i=1) then - begin - lSQL:= lSQL.Replace('SELECT COUNT(ID) FROM ' + datMod.constHvwVyrobaPalety + ' x WHERE', ''); - lSQL:= lSQL.Replace('x', datMod.constHvwVyrobaPalety); - Helios.PrintForm3 (bidPalety, f, lSQL.Trim); - end; + lSQL:= 'INSERT ' + tblTiskDef + ' (FormDefID, Nazev, Prednastaveno, Implicitni, LevyOkraj, HorniOkraj, TiskFronta) SELECT ' + idFormKA.ToString + + ', N''Tisk Zebra'', 1, 0, 0, 0, N''Zebra''' + CRLF + 'SELECT SCOPE_IDENTITY()'; + idFormNastav:= helUtils.getHeliosIntVal (Helios, 0, lSQL); end; + Helios.ExecSQL('UPDATE ' + tblTiskDef + ' SET PocetKopii=1 WHERE ID=' + idFormNastav.ToString); + + podm:= 'hvw_Vyroba_Palety.CisloPalety=(SELECT TOP(1) CisloPalety FROM ' + datMod.constHvwVyrobaPalety + ' WHERE'; + if (idPaleta>0) then + podm:= podm + ' ID=' + idPaleta.ToString + else + podm:= podm + ' IDPrikaz=' + idPrikaz.ToString + ' AND IDStroj=' + idStroj.ToString + IfThen(paletList<>'', ' AND CisloPalety=N' + paletList.QuotedString, ''); + podm:= podm + ')'; + + Helios.PrintForm3 (bidPalety, idFormKA, podm); end; end; + procedure TformTiskyNahledy.btnAVTisk3Click (Sender: TObject); // paletovy listek var f: integer; f2: TformZahajeniPalety; @@ -186,6 +184,7 @@ uses datMod, try f2.Helios:= Helios; f2.opakTisky:= true; + f2.idPaleta:= idPaleta; f2.f2:= self; f2.idPrikaz:= idPrikaz; f2.idStroj:= datMod.bmIdStroj; @@ -216,7 +215,6 @@ uses datMod, if (idF>0) then Helios.PrintForm3 (bidDilce, idF, 'TabKmenZbozi.ID=' + datMod.aktIdKmenPlan.ToString); end; - Close; end; @@ -231,14 +229,14 @@ uses datMod, if (idF>0) then Helios.PrintForm3 (bidDilce, idF, 'TabKmenZbozi.ID=' + datMod.aktIdKmenRozprac.ToString); end; - Close; end; procedure TformTiskyNahledy.FormShow (Sender: TObject); - var sl: TStringList; + var lSQL: string; + sl: TStringList; hndl: NativeUInt; i: integer; icn: TIcon; @@ -278,6 +276,24 @@ uses datMod, bidPalety:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Vyroba_Palety'''); + + idFormKA:= 0; // Kartonový Å¡títek (Zebra) + idFormPS:= 0; + idFormPL:= 0; + + lSQL:= 'SELECT * FROM ' + tblKZe + ' WHERE ID=' + idKmen.ToString; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + First; + if not(TryStrToInt(VarToStr(FieldByNameValues('_KL')), idFormKA)) then + idFormKA:= 0; + if not(TryStrToInt(VarToStr(FieldByNameValues('_PalStitek')), idFormPS)) then + idFormPS:= 0; + if not(TryStrToInt(VarToStr(FieldByNameValues('_PLKK')), idFormPL)) then + idFormPL:= 0; + end; + end; end. diff --git a/frmUkonceniPalety.pas b/frmUkonceniPalety.pas index 4ec44a8..3c78a07 100644 --- a/frmUkonceniPalety.pas +++ b/frmUkonceniPalety.pas @@ -6,7 +6,7 @@ uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Mask, Vcl.Buttons, IdHTTP, IdSSLOpenSSL, REST.Json, - ddPlugin_TLB, JsonDataObjects, ColorButton; + ddPlugin_TLB, JsonDataObjects, ColorButton, uPing; {$I iConsts.inc} @@ -81,6 +81,7 @@ var tiskNa: byte; idKmen, idPalety, idFormKA, idFormPL, idFormPS: integer; mjEvid: string; + jeFinal, jePolotovar: boolean; pocKA, pocKS, ksVKA: Extended; prepKA2ks, prepKA2pal: Extended; @@ -339,6 +340,9 @@ uses DateUtils, Math, StrUtils, begin idKmen:= 0; mjEvid:= ''; + jeFinal:= false; + jePolotovar:= false; + if (idVPr>0) then begin with Helios.OpenSQL('SELECT k.SkupZbo, k.RegCis, k.Nazev1, vp.IDTabKmen, k.MJEvidence FROM ' + tblVPr + ' vp INNER JOIN ' + tblKZ + ' k ON (k.ID=vp.IDTabKmen) WHERE vp.ID=' + idVPr.ToString) do @@ -348,6 +352,9 @@ uses DateUtils, Math, StrUtils, edtSZ.Text:= VarToStr(FieldByNameValues('SkupZbo')); edtRegCis.Text:= VarToStr(FieldByNameValues('RegCis')); edtNazev1.Text:= VarToStr(FieldByNameValues('Nazev1')); + + jeFinal:= helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 FROM ' + tblParKZ + ' WHERE IDKmenZbozi=' + idKmen.ToString + ' AND TypDilce=0'); + jePolotovar:= helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 FROM ' + tblParKZ + ' WHERE IDKmenZbozi=' + idKmen.ToString + ' AND TypDilce=1'); end; pocKA:= NactiPocetKAZEvidRozpOperR; @@ -504,7 +511,7 @@ uses DateUtils, Math, StrUtils, var lSQL, lSQL2, podm, errMsg, a, novyPL, idMzdyS, idMezdS, skSubPrikaz, sTemp, sRnd, sklVyd, radaVyd: string; nazevOp, mjDilce: string; pocKA, pocKAOld, pocKS, noveMnoz, NPalPocKA, NPalPocKS, prepKA2ks, mnozProKoef, koefMn : extended; - casPrace, idEvOpR, idMzdy, locIdVPr, d, d2, cnt: integer; + casPrace, idEvOpR, idMzdy, locIdVPr, d, d2, cnt, iPing: integer; bid, idF, idPalUkonceni, idPrac, idDZ, idDZVyd: integer; spotrebaTesto, spotreba702, vydejOK: boolean; fSarzeVydej: TformSarzeVydej; @@ -764,10 +771,11 @@ uses DateUtils, Math, StrUtils, } lSQL:= lSQL + 'DECLARE @e NVARCHAR(500)=N''''; IF OBJECT_ID(N''dbo.ep_Vyroba_GenOdvodZeMzdy'', N''P'') IS NOT NULL EXEC dbo.ep_Vyroba_GenOdvodZeMzdy @IDMzdy=' + idMzdy.ToString + ', @bezVyrCis=0, @realizujPrijem=1, @errMsg=@e OUT'; // @kopiiNaTechSklad=0, - if (edtNazev1.Text.Contains('polotovar')) then + if (edtNazev1.Text.Contains('polotovar')) or (jePolotovar) then lSQL:= lSQL + ', @skladOdvod=N''311''' else lSQL:= lSQL + ', @skladOdvod=N''312'''; + lSQL:= lSQL + CRLF + 'SELECT @e'; errMsg:= helUtils.getHeliosStrVal (Helios, '', lSQL); @@ -800,7 +808,9 @@ uses DateUtils, Math, StrUtils, resp:= ''; respStream:= TStringStream.Create(''); - if (helUtils.PingHost (helUtils.NetGetHostName(datMod.phServer))) then + iPing:= uPing.Ping (datMod.getDomainName (datMod.phServer), resp); +// if (helUtils.PingHost (helUtils.NetGetHostName(datMod.phServer))) then + if (iPing=0) then begin lHTTP.Post (datMod.phServer + IfThen(datMod.phServer.EndsWith('/'), '', '/') + 'prikaz', lParamList, respStream); resp:= respStream.DataString.Replace('\/', '/'); diff --git a/frmZahajeniPalety.pas b/frmZahajeniPalety.pas index 1ce0eed..5eb343e 100644 --- a/frmZahajeniPalety.pas +++ b/frmZahajeniPalety.pas @@ -6,7 +6,7 @@ uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, Vcl.ExtCtrls, IdHTTP, IdSSLOpenSSL, REST.Json, JsonDataObjects, - ddPlugin_TLB, frmPekarna, frmTiskyNahledy; + ddPlugin_TLB, frmPekarna, frmTiskyNahledy, uPing; {$I iConsts.inc} @@ -71,6 +71,7 @@ type Helios: IHelios; idPrikaz: integer; idStroj: integer; + idPaleta: integer; datVyroba: TDateTime; f: TformPekarna; f2: TformTiskyNahledy; @@ -85,6 +86,7 @@ var m1, m2: integer; mn, mnSum, mn2: integer; idFormPL, idFormPS, idFormKA: integer; + idFormKL: integer; // Kartonový Å¡títek (Zebra) implementation @@ -359,7 +361,7 @@ uses System.DateUtils, System.StrUtils, System.Math, procedure TformZahajeniPalety.btnTiskStitkuClick (Sender: TObject); var lSQL, podm, a, errMsg, rc, nazev1, nazevOp, strojNazev, sarze: string; n1, n2, n3: integer; - bid, idF: integer; + bidPL, bidKA, idF, idFormNastav: integer; d: integer; operace: TArray; jsemPeceni: boolean; @@ -367,6 +369,7 @@ uses System.DateUtils, System.StrUtils, System.Math, mjDilce, szDilce: string; ksVKA: integer; mnozPec, mnozBal, mnoz, sumaMnoz, koefPec: extended; + iPing: integer; // cPal, typPal: string; i, ii, i2, ii2, id, idx, idVCPrikaz, idPalety, idEROp: integer; @@ -378,7 +381,7 @@ uses System.DateUtils, System.StrUtils, System.Math, lHTTP: TIdHTTP; ssl: TIdSSLIOHandlerSocketOpenSSL; lParamList, respStream: TStringStream; - resp: string; + resp, resp2: string; joOut, joIn, itemsObj: TJSONObject; begin // Tento výrobek nemá Å¡títek, vytisknu pouze paletový @@ -399,11 +402,11 @@ uses System.DateUtils, System.StrUtils, System.Math, if not(TryStrToInt(edtPocetStitku.Text.Trim, n1)) then - n1:= 0; // pocet kartonu + n1:= 0; // pocet kartonovych stitku if not(TryStrToInt(edtPocetPL.Text.Trim, n2)) then n2:= 0; // pocetPalet if not(TryStrToInt(edtPocetStitkuMax.Text.Trim, n3)) then - n3:= 0; // pocet kartonu max + n3:= 0; // pocet kartonovych stitku max ksVKA:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT dbo.ef_Kmen_VratPocetKsVKartonu (' + idKmen.ToString + ')'); @@ -448,7 +451,19 @@ uses System.DateUtils, System.StrUtils, System.Math, lSQL:= lSQL + ' ,' + idVCPrikaz.ToString + ', ' + idKmen.ToString + ', CONVERT(datetime, N' + edtDatSpotreby.Text.QuotedString + ', 104)' + CRLF + ' SET @i=SCOPE_IDENTITY()' + CRLF + ' END' + CRLF; lSQL:= lSQL + CRLF + 'SELECT @i'; idPalety:= helUtils.getHeliosIntVal (Helios, 0, lSQL); - Helios.ExecSQL(lSQL); + + if (f<>nil) and (idPalety>0) then + begin + try + f.grdStroje.DataSource.DataSet.Edit; + f.grdStroje.DataSource.DataSet.FieldByName('fIDPaleta').AsInteger:= idPalety; + f.grdStroje.DataSource.DataSet.Post; + except + f.grdStroje.DataSource.DataSet.Cancel; + end; + end; + +// Helios.ExecSQL(lSQL); except on E:Exception do begin Helios.Error (#1'Chyba založení palety ' + pl.ToString + #1 + CRLF + E.Message); @@ -458,6 +473,15 @@ uses System.DateUtils, System.StrUtils, System.Math, end; + + if (opakTisky) and (idPaleta>0) then + idPalety:= idPaleta; + + lSQL:= 'UPDATE ' + tblPalety + ' SET TiskDatExpirace=' + IfThen(rbTiskSpotrebaAno.Checked, '1', '0') + ', TiskSarze=' + IfThen(rbTiskSarzeAno.Checked, '1', '0') + + ' WHERE ID=' + idPalety.ToString; + Helios.ExecSQL (lSQL); + + if (canCont) and not(opakTisky) then // jen pokud neni opakovany tisk (z Nahledu tisku) begin @@ -564,7 +588,7 @@ uses System.DateUtils, System.StrUtils, System.Math, // posli JSON o vyrobene palete try resp:= GenerujJSON (idPrikaz, idVCPrikaz, idEROp, n1).ToJSON (true).Replace(#10,'').Replace(#9,'').Replace('''',''); -{$IFNDEF DEBUG} + if (resp<>'') and (idPalety>0) and (datMod.phServer<>'') then begin resp:= TJson.JsonEncode(resp); @@ -573,27 +597,30 @@ uses System.DateUtils, System.StrUtils, System.Math, try lParamList:= TStringStream.Create(''); lParamList.WriteString (resp); - // http klient je stejny - lHTTP:= TIdHTTP.Create; - if (datMod.phServer.Contains('https')) then - begin - ssl:= TIdSSLIOHandlerSocketOpenSSL.Create(nil); - ssl.SSLOptions.Method:= sslvTLSv1_2; - ssl.SSLOptions.Mode:= sslmUnassigned; - lHTTP.IOHandler:= ssl; - end; - lHTTP.HTTPOptions:= [hoKeepOrigProtocol, hoForceEncodeParams, hoNoProtocolErrorException, hoWantProtocolErrorContent]; - lHTTP.Request.ContentType := 'application/ld+json'; - lHTTP.Request.Accept := 'application/ld+json, text/javascript, */*; q=0.01'; - respStream:= TStringStream.Create(''); - resp:= ''; - if (helUtils.PingHost (helUtils.NetGetHostName(datMod.phServer))) then - begin + + iPing:= uPing.Ping (datMod.phServer, resp); +// if (iPing=0) then +// begin + // http klient je stejny + lHTTP:= TIdHTTP.Create; + if (datMod.phServer.Contains('https')) then + begin + ssl:= TIdSSLIOHandlerSocketOpenSSL.Create(nil); + ssl.SSLOptions.Method:= sslvTLSv1_2; + ssl.SSLOptions.Mode:= sslmUnassigned; + lHTTP.IOHandler:= ssl; + end; + lHTTP.HTTPOptions:= [hoKeepOrigProtocol, hoForceEncodeParams, hoNoProtocolErrorException, hoWantProtocolErrorContent]; + lHTTP.Request.ContentType := 'application/ld+json'; + lHTTP.Request.Accept := 'application/ld+json, text/javascript, */*; q=0.01'; + + resp:= ''; lHTTP.Post (datMod.phServer + IfThen(datMod.phServer.EndsWith('/'), '', '/') + 'prikaz', lParamList, respStream); resp:= respStream.DataString.Replace('\/', '/'); Helios.ExecSQL('UPDATE ' + tblPalety + ' SET JSONStartResp=N' + resp.QuotedString + ' WHERE ID=' + idPalety.ToString); - end; +// end; + finally respStream.Free; lParamList.Free; @@ -602,7 +629,6 @@ uses System.DateUtils, System.StrUtils, System.Math, lHTTP.Free; end; end; -{$ENDIF} except end; end; // jen pokud neni opakovany tisk (z Nahledu tisku) @@ -610,41 +636,61 @@ uses System.DateUtils, System.StrUtils, System.Math, if (canCont) then begin - bid:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Vyroba_Palety'''); + bidPL:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Vyroba_Palety'''); + // idF:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblFormDef + ' WHERE Nazev2=N''PEK-2'''); - if (bid>100000) then + if (bidPL>100000) then begin - if (idFormKA>0) then + + if (idFormKA>0) then // Kartonový Å¡títek (Zebra) begin + lSQL:= 'SELECT TOP(1) ID FROM ' + tblTiskDef + ' WHERE FormDefID=' + idFormKA.ToString + ' AND LoginName IS NULL ORDER BY Prednastaveno DESC'; + idFormNastav:= helUtils.getHeliosIntVal (Helios, 0, lSQL); + if (idFormNastav=0) then + begin + lSQL:= 'INSERT ' + tblTiskDef + ' (FormDefID, Nazev, Prednastaveno, Implicitni, LevyOkraj, HorniOkraj, TiskFronta) SELECT ' + idFormKA.ToString + + ', N''Tisk Zebra'', 1, 0, 0, 0, N''Zebra''' + CRLF + 'SELECT SCOPE_IDENTITY()'; + idFormNastav:= helUtils.getHeliosIntVal (Helios, 0, lSQL); + end; + Helios.ExecSQL('UPDATE ' + tblTiskDef + ' SET PocetKopii=' + n1.ToString + ' WHERE ID=' + idFormNastav.ToString); + if (rbTiskNaObraz.Checked) then begin - podm:= 'hvw_Vyroba_Palety.CisloPalety=N' + pl.ToString.QuotedString; - Helios.RunAction2 (bid, podm, 'ActionPrint'); + if (idFormNastav>0) then + Helios.ExecSQL ('UPDATE ' + tblTiskDef + ' SET ZobrazNahled=1 WHERE ID=' + idFormNastav.ToString); +// Helios.RunAction2 (bid, podm, 'ActionPrint'); end else - if (idKmen>0) and (1=0) then begin - podm:= 'TabKmenZbozi.ID=' + idKmen.ToString; - for i:=1 to n1 do - Helios.PrintForm3 (bidKZ, idFormKA, podm); // kartonovy stitek + if (idFormNastav>0) then + Helios.ExecSQL ('UPDATE ' + tblTiskDef + ' SET ZobrazNahled=0 WHERE ID=' + idFormNastav.ToString); end; + + podm:= 'hvw_Vyroba_Palety.CisloPalety=N' + pl.ToString.QuotedString; +// for i:=1 to n1 do + Helios.PrintForm3 (bidPL, idFormKA, podm); end; - if (idFormPL>0) then + +// paletovy list + if (bidPL>100000) and (idFormPL>0) then begin podm:= 'hvw_Vyroba_Palety.CisloPalety=N' + pl.ToString.QuotedString; if (rbTiskNaObraz.Checked) and (1=0) then - Helios.RunAction2 (bid, podm, 'ActionPrint') +// Helios.RunAction2 (bid, podm, 'ActionPrint') else for i:=1 to n2 do - Helios.PrintForm3 (bid, idFormPL, podm); // paletovy list + Helios.PrintForm3 (bidPL, idFormPL, podm); // paletovy list end; + + end; end; end; - dm.NactiStrojeAPraci (f); + if not(opakTisky) then + dm.NactiStrojeAPraci (f); Close; end; @@ -652,7 +698,7 @@ uses System.DateUtils, System.StrUtils, System.Math, procedure TformZahajeniPalety.FormShow (Sender: TObject); - var lSQL : string; + var lSQL, dat : string; mx: integer; begin if (datVyroba=0) then @@ -683,7 +729,7 @@ uses System.DateUtils, System.StrUtils, System.Math, edtPocetPL.Text:= '2'; // tiskne se jeden nebo dva paletove listy - idFormKA:= 0; + idFormKA:= 0; // Kartonový Å¡títek (Zebra) idFormPS:= 0; idFormPL:= 0; @@ -699,6 +745,22 @@ uses System.DateUtils, System.StrUtils, System.Math, if not(TryStrToInt(VarToStr(FieldByNameValues('_PLKK')), idFormPL)) then idFormPL:= 0; end; + + lblWarnStitekKA.Visible:= (idFormKA=0); + lblWarnStitekPL.Visible:= (idFormPL=0); + + edtBarvaStitku.Text:= ''; + edtTypStitku.Text:= ''; + edtVelkostStitku.Text:= ''; + + with Helios.OpenSQL ('SELECT * FROM ' + tblKZe + ' WHERE ID=' + idKmen.ToString) do + begin + edtBarvaStitku.Text:= VarToStr(FieldByNameValues('_ASOL_BarvaStitku')); +// edtTypStitku.Text:= VarToStr(FieldByNameValues('_ASOL_BarvaStitku')); + edtVelkostStitku.Text:= VarToStr(FieldByNameValues('_RozmerStitku')); + end; + + { lSQL:= 'SELECT ke._KL FROM ' + tblVPr + ' vp INNER JOIN ' + tblKZ + ' k ON (k.ID=vp.IdTabKmen) INNER JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID) WHERE vp.ID=' + idPrikaz.ToString; idFormKA:= helUtils.getHeliosIntVal (Helios, 0, lSQL); @@ -738,17 +800,38 @@ uses System.DateUtils, System.StrUtils, System.Math, // typ palety je nove jen jeden, neurcuje se dle kmene !!! cPal:= ''; - lSQL:= 'SELECT COUNT(ID) FROM ' + tblPrikazVC + ' WHERE IDPrikaz=' + idPrikaz.ToString + ' AND (Mnozstvi-Odvedeno-Zmetky)>0' + if not(opakTisky) then + begin + lSQL:= 'SELECT COUNT(ID) FROM ' + tblPrikazVC + ' WHERE IDPrikaz=' + idPrikaz.ToString + ' AND (Mnozstvi-Odvedeno-Zmetky)>0' + ' AND ID NOT IN (SELECT r.IDVyrCis FROM ' + tblRozpracOperR + ' r INNER JOIN ' + tblRozpracOper + ' h ON (h.ID=r.IDEvidRozpracOper) WHERE r.IDVyrCis IS NOT NULL)'; - mx:= helUtils.getHeliosIntVal (Helios, 0, lSQL); + mx:= helUtils.getHeliosIntVal (Helios, 0, lSQL); + + if (mx>0) then + begin + lSQL:= lSQL.Replace('COUNT(ID) ', 'TOP(1) VyrCislo ') + ' ORDER BY VyrCislo'; + cPal:= helUtils.getHeliosStrVal (Helios, '', lSQL); + end; + if (cPal='') then + cPal:= helUtils.getHeliosStrVal(Helios, '', 'SELECT dbo.ef_Vyroba_VratNovyPaletovyList (3,NULL,NULL,NULL)'); + end + else + if (idPaleta>0) then // pri opakovanem tisku znam ID z dbo._TabVyroba_Palety + begin + with Helios.OpenSQL ('SELECT * FROM ' + tblPalety + ' WHERE ID=' + idPaleta.ToString + ' AND IDPrikaz=' + idPrikaz.ToString) do + begin + if (RecordCount=1) then + begin + cPal:= VarToStr(FieldByNameValues('CisloPalety')); + edtSarze.Text:= VarToStr(FieldByNameValues('Sarze')); + dat:= VarToStr(FieldByNameValues('DatZahajeni')); + if (dat.IndexOf(' ')>-1) then + dat:= LeftStr(dat, dat.IndexOf(' ')).Trim; + edtDatVyroby.Text:= dat; + edtDatSpotreby.Text:= VarToStr(FieldByNameValues('DatExpirace')); + end; + end; + end; - if (mx>0) then - begin - lSQL:= lSQL.Replace('COUNT(ID) ', 'TOP(1) VyrCislo ') + ' ORDER BY VyrCislo'; - cPal:= helUtils.getHeliosStrVal (Helios, '', lSQL); - end; - if (cPal='') then - cPal:= helUtils.getHeliosStrVal(Helios, '', 'SELECT dbo.ef_Vyroba_VratNovyPaletovyList (3,NULL,NULL,NULL)'); edtPL.Text:= cPal; diff --git a/frmZasobaObjednavky.pas b/frmZasobaObjednavky.pas index f313f5b..c8f62f4 100644 --- a/frmZasobaObjednavky.pas +++ b/frmZasobaObjednavky.pas @@ -259,7 +259,7 @@ uses System.StrUtils, System.Math, - procedure TformZasobaObjednavky.Label1Click(Sender: TObject); + procedure TformZasobaObjednavky.Label1Click (Sender: TObject); begin edtSZ.Text:= ''; edtRC.Text:= '';