From 078d77028a1da09c891f9e9c96643e7411f283b8 Mon Sep 17 00:00:00 2001 From: TomBuz Date: Tue, 26 May 2026 08:39:00 +0200 Subject: [PATCH] Pridana funkcnost zmeny planovaneho ukonceni prikazu podle tabulky (comObject akce 36) + prvni verze generovani KoopObj dle stare HDC funkcnosti ctecky --- .gitignore | 1 + ComObjekt.pas | 347 +++++++------ dataMod.dfm | 210 +++++++- dataMod.pas | 95 +++- frmGenKoopObj.dfm | 547 ++++++++++++++++++++ frmGenKoopObj.pas | 617 +++++++++++++++++++++++ frmGenTPV.pas | 50 +- frmOOPPohyb.pas | 389 +++++++------- frmOdvTavby.dfm | 2 +- frmOdvTavby.pas | 89 +++- frmSchvaleniZak.dfm | 6 + frmSchvaleniZak.pas | 182 ++++--- frmVPrZmenaPlanuUkonceni.dfm | 205 ++++++++ frmVPrZmenaPlanuUkonceni.pas | 171 +++++++ plgKdynium.dpr | 6 +- plgKdynium.dproj | 953 +++++++++++++++++++++++++++++++++-- plgKdynium.res | Bin 1004 -> 1004 bytes 17 files changed, 3380 insertions(+), 490 deletions(-) create mode 100644 frmGenKoopObj.dfm create mode 100644 frmGenKoopObj.pas create mode 100644 frmVPrZmenaPlanuUkonceni.dfm create mode 100644 frmVPrZmenaPlanuUkonceni.pas diff --git a/.gitignore b/.gitignore index 0ef51a4..ee210e3 100644 --- a/.gitignore +++ b/.gitignore @@ -83,3 +83,4 @@ __recovery/ *.7z bak/ bak2/ +x/ diff --git a/ComObjekt.pas b/ComObjekt.pas index 6e2d4f6..f3e17cb 100644 --- a/ComObjekt.pas +++ b/ComObjekt.pas @@ -85,7 +85,8 @@ uses System.Variants, Vcl.Controls, System.Generics.Collections, System.Generics {$IFDEF MadExcept} madExcept, {$ENDIF} - frmHrOdvOper, frmSchvaleniZak, frmOOPPohyb; + frmHrOdvOper, frmSchvaleniZak, frmOOPPohyb, frmVPrZmenaPlanuUkonceni, frmGenKoopObj, + dataMod; var oVar1, oVar2: OleVariant; LocalFormatSettings: TFormatSettings; @@ -336,43 +337,44 @@ var oVar1, oVar2: OleVariant; arrRadky: TArray>; cont: Boolean; proc1, proc2: Double; + wF: TForm; begin - overRadek:= 0; - posunSl:= 0; + overRadek := 0; + posunSl := 0; if (Clipboard.HasFormat(CF_TEXT)) then begin - errMsg:= ''; - cont:= true; - radky:= ''; + errMsg := ''; + cont := true; + radky := ''; try - radky:= Clipboard.AsText; - sl:= PosCount(#9, LeftStr(radky, Pos(#13, radky)-1)) + 1; // pocet sloupcu + radky := Clipboard.AsText; + sl := PosCount(#9, LeftStr(radky, Pos(#13, radky)-1)) + 1; // pocet sloupcu except on E:Exception do - cont:= false; + cont := false; end; if (radky<>'') and (cont) then begin - cont:= true; - cntIns:= 0; - cntAkt:= 0; - cnt:= Length(radky)-Length(StringReplace(radky, Chr(13),'',[rfReplaceAll]))+1; - SetLength(arrRadky, cnt, 5); // index od 0, napevno 5 sloupcu, kdyby nepsali nadpis pro SZn a procentaN + cont := true; + cntIns := 0; + cntAkt := 0; + cnt := Length(radky)-Length(StringReplace(radky, Chr(13),'',[rfReplaceAll]))+1; + SetLength (arrRadky, cnt, 5); // index od 0, napevno 5 sloupcu, kdyby nepsali nadpis pro SZn a procentaN if (Pos(#13, radky)>0) then - zaznam:= LeftStr(radky, Pos(#13, radky)-1) // nazvy sloupcu + zaznam := LeftStr(radky, Pos(#13, radky)-1) // nazvy sloupcu else - zaznam:= radky; + zaznam := radky; if Helios.YesNo('Má importovaná oblast hlavičku ?', false) then begin - Delete(radky,1,Pos(#13,radky)+1); // smaze hlavicku - SetLength(arrRadky,Length(arrRadky)-1); + Delete (radky,1,Pos(#13,radky)+1); // smaze hlavicku + SetLength (arrRadky,Length(arrRadky)-1); end; for idxR:=0 to High(arrRadky)-1 do begin if (Pos(#13,radky)>0) then - zaznam:= LeftStr(radky,Pos(#13,radky)-1) + zaznam := LeftStr(radky,Pos(#13,radky)-1) else - zaznam:= radky; - zaznam:= Trim(StringReplace(zaznam, #9#9, #9' '#9,[rfReplaceAll])); + zaznam := radky; + zaznam := Trim(StringReplace(zaznam, #9#9, #9' '#9,[rfReplaceAll])); if (zaznam<>'') then for idxS:=0 to sl-1 do begin @@ -380,13 +382,13 @@ var oVar1, oVar2: OleVariant; begin if (Pos(#9, zaznam)>0) then begin - arrRadky[idxR,idxS]:= LeftStr(zaznam, Pos(#9, zaznam)-1); - Delete(zaznam,1,Pos(#9, zaznam)); + arrRadky[idxR,idxS] := LeftStr(zaznam, Pos(#9, zaznam)-1); + Delete (zaznam,1,Pos(#9, zaznam)); end else begin - arrRadky[idxR,idxS]:= zaznam; - zaznam:= ''; + arrRadky[idxR,idxS] := zaznam; + zaznam := ''; end; end; end; @@ -399,7 +401,7 @@ var oVar1, oVar2: OleVariant; lSQL:= lSQL.Replace('#TabImp', 'dbo._TabImp'); Helios.ExecSQL(lSQL); - waitStart(nil, 'Import procenta ztrát dílců', Length(arrRadky), clRed); + wF := helUtils.waitStart (nil, 'Import procenta ztrát dílců', Length(arrRadky), clRed, true); for idxR:=0 to High(arrRadky)-1 do begin arrRadky[idxR, 0]:= helUtils.sqlSanitize(arrRadky[idxR, 0].Trim); // sz @@ -420,36 +422,38 @@ var oVar1, oVar2: OleVariant; begin try if (arrRadky[idxR, 2]='') then - proc1:= 0 + proc1 := 0 else if not(TryStrToFloat(arrRadky[idxR, 2].Replace(' ', '').Replace('.', ','), proc1)) then - proc1:= 0; + proc1 := 0; if (arrRadky[idxR, 4]='') then - proc2:= 0 + proc2 := 0 else if not(TryStrToFloat(arrRadky[idxR, 4].Replace(' ', '').Replace('.', ','), proc2)) then - proc2:= 0; + proc2 := 0; - lSQL:= 'INSERT #TabImportProcentaZtrat (SkupZbo, RegCis, Procento, SkupZboNizsi, ProcentoNizsi) SELECT N' + arrRadky[idxR, 0].QuotedString; - lSQL:= lSQL + ', N' + arrRadky[idxR, 1].QuotedString + ', ' + proc1.ToString.Replace(',', '.') + ', N' + arrRadky[idxR, 3].QuotedString + ', ' + proc2.ToString.Replace(',', '.'); + lSQL := 'INSERT #TabImportProcentaZtrat (SkupZbo, RegCis, Procento, SkupZboNizsi, ProcentoNizsi) SELECT N' + arrRadky[idxR, 0].QuotedString; + lSQL := lSQL + ', N' + arrRadky[idxR, 1].QuotedString + ', ' + proc1.ToString.Replace(',', '.') + ', N' + arrRadky[idxR, 3].QuotedString + ', ' + proc2.ToString.Replace(',', '.'); if (jeTest) then - lSQL:= lSQL.Replace('#TabImp', 'dbo._TabImp'); - Helios.ExecSQL(lSQL); + lSQL := lSQL.Replace ('#TabImp', 'dbo._TabImp'); + Helios.ExecSQL (lSQL); except on E:Exception do - errMsg:= E.Message + CRLF + lSQL; + errMsg := E.Message + CRLF + lSQL; end; end; end; - waitEnd; + + if Assigned(wF) then + waitEnd (wF); if not(jeTest) then - Helios.ExecSQL('IF OBJECT_ID(N''dbo.ep_HDC_TPV_ImportProcentaZtrat'', N''P'') IS NOT NULL EXEC dbo.ep_HDC_TPV_ImportProcentaZtrat'); + Helios.ExecSQL ('IF OBJECT_ID(N''dbo.ep_HDC_TPV_ImportProcentaZtrat'', N''P'') IS NOT NULL EXEC dbo.ep_HDC_TPV_ImportProcentaZtrat'); // Helios.ExecSQL('DROP TABLE IF EXISTS dbo._TabImportProcentaZtrat'); - Helios.ExecSQL('DROP TABLE IF EXISTS #TabImportProcentaZtrat'); + Helios.ExecSQL ('DROP TABLE IF EXISTS #TabImportProcentaZtrat'); - Helios.Refresh(false); + Helios.Refresh (false); // Helios.Info(#1'Nových karet forem: ' + cntIns.ToString + CRLF + 'Upravených karet forem: ' + cntAkt.ToString + #1); end; end; @@ -465,6 +469,7 @@ var oVar1, oVar2: OleVariant; arrRadky: TArray>; forma: TForma; cont: Boolean; + wF: TForm; begin overRadek:= 0; posunSl:= 0; @@ -523,14 +528,14 @@ var oVar1, oVar2: OleVariant; Delete(radky,1,Pos(#13, radky)+1); end; - waitStart(nil, 'Import dat karet forem', Length(arrRadky), clRed); + wF := helUtils.waitStart (nil, 'Import dat karet forem', Length(arrRadky), clRed, true); for idxR:=0 to High(arrRadky)-1 do begin if (idxR mod 10=0) then - waitSetProgBar(idxR); + helUtils.waitSetProgBar (idxR, wF); try idKZ:= 0; - ClearForma(forma); + ClearForma (forma); forma.sz:= Trim(arrRadky[idxR, 0]); posunSl:= 0; @@ -549,13 +554,13 @@ var oVar1, oVar2: OleVariant; if (forma.regCis='') then continue; - forma.nazev1:= Trim(arrRadky[idxR, 1 + posunSl]); - forma.vc:= Trim(arrRadky[idxR, 2 + posunSl]); - forma.popisVc:= Trim(arrRadky[idxR, 3 + posunSl]); - forma.skutPopVc:= Trim(arrRadky[idxR, 4 + posunSl]); - forma.vykres:= Trim(arrRadky[idxR, 5 + posunSl]); - forma.cilSklad:= Trim(arrRadky[idxR, 7 + posunSl]); - forma.jcena:= 0; + forma.nazev1 := Trim(arrRadky[idxR, 1 + posunSl]); + forma.vc := Trim(arrRadky[idxR, 2 + posunSl]); + forma.popisVc := Trim(arrRadky[idxR, 3 + posunSl]); + forma.skutPopVc := Trim(arrRadky[idxR, 4 + posunSl]); + forma.vykres := Trim(arrRadky[idxR, 5 + posunSl]); + forma.cilSklad := Trim(arrRadky[idxR, 7 + posunSl]); + forma.jcena := 0; with Helios.OpenSQL('SELECT ID FROM ' + tblKZ + ' WHERE SkupZbo=N' + QuotedStr(forma.sz) + ' AND RegCis=N' + QuotedStr(forma.regCis)) do if (RecordCount=1) then @@ -573,11 +578,11 @@ var oVar1, oVar2: OleVariant; // lSQL:= lSQL + 'SELECT SCOPE_IDENTITY()'; try with Helios.OpenSQL(lSQL) do - idKZ:= StrToInt(VarToStr(FieldValues(0))); - Inc(cntIns); + idKZ := StrToInt(VarToStr(FieldValues(0))); + Inc (cntIns); except on E:Exception do begin - Helios.Error(#1'Chyba INS: ' + e.Message +#1); + Helios.Error (#1'Chyba INS: ' + e.Message +#1); idKZ:= 0; end; end; @@ -592,9 +597,9 @@ var oVar1, oVar2: OleVariant; lSQL:= lSQL + forma.cilSklad.QuotedString + ', @IDZboSklad=@idSS OUT' + CRLF + 'SELECT @idSS'; try with Helios.OpenSQL(lSQL) do - idSS:= StrToInt(VarToStr(FieldValues(0))); + idSS := StrToInt(VarToStr(FieldValues(0))); except - idSS:= 0; + idSS := 0; end; if (idSS>0) and (forma.vc<>'') then begin @@ -604,8 +609,8 @@ var oVar1, oVar2: OleVariant; lSQL:= lSQL + 'IF (@idVC IS NULL)' + CRLF + ' EXEC dbo.hp_OZInsertVyrCS @IDVyrCS=@idVC OUT, @IDVyrCK=@idVCK OUT, @IDZboSklad=' + idSS.ToString; lSQL:= lSQL + ', @Nazev1=N' + forma.vc.QuotedString + CRLF + 'SELECT @idVC'; try - with Helios.OpenSQL(lSQL) do - idVC:= StrToInt(VarToStr(FieldValues(0))); + with Helios.OpenSQL (lSQL) do + idVC:= StrToInt (VarToStr(FieldValues(0))); except idVC:= 0; end; @@ -613,7 +618,7 @@ var oVar1, oVar2: OleVariant; begin lSQL:= 'UPDATE ' + tblVyrCSE + ' SET _SkutecnyPopis=N' + forma.skutPopVc.QuotedString + ' WHERE ID=' + idVC.ToString + CRLF + 'IF (@@ROWCOUNT=0)' + CRLF; lSQL:= lSQL + ' INSERT ' + tblVyrCSE + ' (ID, _SkutecnyPopis) SELECT ' + idVC.ToString + ', N' + forma.skutPopVc.QuotedString; - Helios.ExecSQL(lSQL); + Helios.ExecSQL (lSQL); end; end; end; @@ -623,10 +628,11 @@ var oVar1, oVar2: OleVariant; errMsg:= E.Message + CRLF + lSQL; end; end; - waitEnd; + if Assigned(wF) then + waitEnd (wF); - Helios.Refresh(true); - Helios.Info(#1'Nových karet forem: ' + cntIns.ToString + CRLF + 'Upravených karet forem: ' + cntAkt.ToString + #1); + Helios.Refresh (true); + Helios.Info (#1'Nových karet forem: ' + cntIns.ToString + CRLF + 'Upravených karet forem: ' + cntAkt.ToString + #1); end; end; end; @@ -641,6 +647,7 @@ var oVar1, oVar2: OleVariant; arrRadky: TArray>; forma: TForma; cont: Boolean; + wF: TForm; begin overRadek:= 0; posunSl:= 0; @@ -662,7 +669,7 @@ var oVar1, oVar2: OleVariant; cntIns:= 0; cntAkt:= 0; cnt:= Length(radky)-Length(StringReplace(radky, Chr(13),'',[rfReplaceAll]))+1; - SetLength(arrRadky, cnt, sl); // index od 0 + SetLength (arrRadky, cnt, sl); // index od 0 if (Pos(#13, radky)>0) then zaznam:= LeftStr(radky, Pos(#13, radky)-1) // nazvy sloupcu else @@ -699,14 +706,14 @@ var oVar1, oVar2: OleVariant; Delete(radky,1,Pos(#13, radky)+1); end; - waitStart(nil, 'Import dat karet forem', Length(arrRadky), clRed); + wF := helUtils.waitStart (nil, 'Import dat karet forem', Length(arrRadky), clRed, true); for idxR:=0 to High(arrRadky)-1 do begin if (idxR mod 10=0) then - waitSetProgBar(idxR); + helUtils.waitSetProgBar (idxR, wF); try - idKZ:= 0; - ClearForma(forma); + idKZ := 0; + ClearForma (forma); forma.sz:= Trim(arrRadky[idxR, 0]); posunSl:= 0; @@ -744,11 +751,11 @@ var oVar1, oVar2: OleVariant; lSQL:= lSQL + 'SELECT SCOPE_IDENTITY()'; try with Helios.OpenSQL(lSQL) do - idKZ:= StrToInt(VarToStr(FieldValues(0))); + idKZ:= StrToInt (VarToStr(FieldValues(0))); Inc(cntIns); except on E:Exception do begin - Helios.Error(#1'Chyba INS: ' + e.Message +#1); + Helios.Error (#1'Chyba INS: ' + e.Message +#1); idKZ:= 0; end; end; @@ -790,19 +797,21 @@ var oVar1, oVar2: OleVariant; idVC:= 0; end; if (idVC>0) then - Helios.ExecSQL('UPDATE ' + tblVyrCSE + ' SET _SkutecnyPopis=N' + IfThen(forma.skutPopVc='', 'ULL', QuotedStr(forma.skutPopVc)) + ' WHERE ID=' + idVC.ToString); + Helios.ExecSQL ('UPDATE ' + tblVyrCSE + ' SET _SkutecnyPopis=N' + IfThen(forma.skutPopVc='', 'ULL', QuotedStr(forma.skutPopVc)) + ' WHERE ID=' + idVC.ToString); end; end; end; except on E:Exception do - errMsg:= E.Message + CRLF + lSQL; + errMsg := E.Message + CRLF + lSQL; end; end; - waitEnd; - Helios.Refresh(true); - Helios.Info(#1'Nových karet forem: ' + cntIns.ToString + CRLF + 'Upravených karet forem: ' + cntAkt.ToString + #1); + if Assigned(wF) then + waitEnd (wF); + + Helios.Refresh (true); + Helios.Info (#1'Nových karet forem: ' + cntIns.ToString + CRLF + 'Upravených karet forem: ' + cntAkt.ToString + #1); end; end; end; @@ -817,6 +826,7 @@ var oVar1, oVar2: OleVariant; arrRadky: TArray>; forma: TForma; cont, jsemNew: Boolean; + wF: Tform; begin overRadek:= 0; posunSl:= 0; @@ -875,11 +885,11 @@ var oVar1, oVar2: OleVariant; Delete(radky,1,Pos(#13, radky)+1); end; - waitStart(nil, 'Import dat karet forem', Length(arrRadky), clRed); + wF := helUtils.waitStart (nil, 'Import dat karet forem', Length(arrRadky), clRed, true); for idxR:=0 to High(arrRadky)-1 do begin if (idxR mod 10=0) then - waitSetProgBar(idxR); + helUtils.waitSetProgBar (idxR, wF); try idKZ:= 0; jsemNew:= false; @@ -962,10 +972,12 @@ var oVar1, oVar2: OleVariant; errMsg:= E.Message + CRLF + lSQL; end; end; - waitEnd; - Helios.Refresh(true); - Helios.Info(#1'Import ' + cntIns.ToString + ' nových karet' + CRLF + 'Aktualizací karet: ' + cntAkt.ToString + #1); + if Assigned(wF) then + waitEnd (wF); + + Helios.Refresh (true); + Helios.Info (#1'Import ' + cntIns.ToString + ' nových karet' + CRLF + 'Aktualizací karet: ' + cntAkt.ToString + #1); end; end; end; @@ -979,6 +991,7 @@ var oVar1, oVar2: OleVariant; arrRadky: TArray>; kmen: TKmen; cont: Boolean; + wF: TForm; begin posunSl:= 0; @@ -1039,14 +1052,14 @@ var oVar1, oVar2: OleVariant; Delete(radky,1,Pos(#13, radky)+1); end; - waitStart(nil, 'Import dat karet nářadí', Length(arrRadky), clRed); + wF := helUtils.waitStart (nil, 'Import dat karet nářadí', Length(arrRadky), clRed, true); for idxR:=0 to High(arrRadky)-1 do begin if (idxR mod 10=0) then - waitSetProgBar(idxR); + helUtils.waitSetProgBar (idxR, wF); try idKZ:= 0; - clearKmen(kmen); + clearKmen (kmen); { if Trim(arrRadky[idxR, 0])<>Trim(arrRadky[idxR, 1]) then kmen.sz:= Trim(arrRadky[idxR, 0]); @@ -1243,10 +1256,12 @@ var oVar1, oVar2: OleVariant; errMsg:= E.Message + CRLF + lSQL; end; end; - waitEnd; - Helios.Refresh(true); - Helios.Info(#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1); + if Assigned(wF) then + waitEnd (wF); + + Helios.Refresh (true); + Helios.Info (#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1); end; end; end; @@ -1264,6 +1279,7 @@ var oVar1, oVar2: OleVariant; supps: TArray; fndIdx: integer; doplnNulu: boolean; + wF: TForm; begin xls:= TXLSWorkbook.Create; try @@ -1301,7 +1317,7 @@ var oVar1, oVar2: OleVariant; lSQL:= 'IF OBJECT_ID(N''tempdb..#TabMatrixSupps'', N''U'') IS NOT NULL DROP TABLE #TabMatrixSupps' + CRLF + 'CREATE TABLE #TabMatrixSupps (CisloOrg INT, Suffix NVARCHAR(5) DEFAULT N'''' NOT NULL, Nazev NVARCHAR(100)' + ', Mena NVARCHAR(50), Doprava NVARCHAR(100), KplCisloOrg AS (CONVERT(nvarchar, CisloOrg) + IIF(Suffix<>N'''', N''/''+ Suffix, N'''')) )' + CRLF; - Helios.ExecSQL(lSQL); + Helios.ExecSQL (lSQL); shSupp:= xls.Sheets.Add; shSupp.Name:= 'Suppliers'; @@ -1456,14 +1472,14 @@ var oVar1, oVar2: OleVariant; with Helios.OpenSQL(lSQL) do begin i:=RecordCount; - waitStart(nil, 'Export položek', i, clRed); + wF := helUtils.waitStart (nil, 'Export položek', i, clRed, true); First; i:= 1; while not(EOF) do begin if (i mod 10=0) then - waitSetProgBar(i); + helUtils.waitSetProgBar (i, wF); idKZ:= StrToInt(VarToStr(FieldValues(8))); sTypPol:= 'E'; @@ -1569,7 +1585,8 @@ var oVar1, oVar2: OleVariant; Next; end; - waitEnd; + if Assigned(wF) then + waitEnd (wF); end; @@ -1616,6 +1633,7 @@ var oVar1, oVar2: OleVariant; arrRadky: TArray>; kmen: TKmen; cont: Boolean; + wF: TForm; begin posunSl:= 2; @@ -1674,11 +1692,11 @@ var oVar1, oVar2: OleVariant; Delete(radky,1,Pos(#13, radky)+1); end; - waitStart(nil, 'Import dat karet měřidel', Length(arrRadky), clRed); + wF := helUtils.waitStart (nil, 'Import dat karet měřidel', Length(arrRadky), clRed, true); for idxR:=0 to High(arrRadky)-1 do begin if (idxR mod 10=0) then - waitSetProgBar(idxR); + helUtils.waitSetProgBar (idxR, wF); try idKZ:= 0; clearKmen(kmen); @@ -1820,10 +1838,12 @@ var oVar1, oVar2: OleVariant; errMsg:= E.Message + CRLF + lSQL; end; end; - waitEnd; - Helios.Refresh(true); - Helios.Info(#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1); + if Assigned(wF) then + helUtils.waitEnd (wF); + + Helios.Refresh (true); + Helios.Info (#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1); end; end; end; @@ -1838,6 +1858,7 @@ var oVar1, oVar2: OleVariant; arrRadky: TArray>; kmen: TKmen; cont, prvniPrazdne: Boolean; + wF: TForm; begin overRadek:= 0; @@ -1901,11 +1922,12 @@ var oVar1, oVar2: OleVariant; posunSl:= 0; if (prvniPrazdne) then posunSl:= -1; - waitStart(nil, 'Import dat karet výrobních čísel měřidel', Length(arrRadky), clRed); + + wF := helUtils.waitStart (nil, 'Import dat karet výrobních čísel měřidel', Length(arrRadky), clRed, true); for idxR:=0 to High(arrRadky)-1 do begin if (idxR mod 10=0) then - waitSetProgBar(idxR); + helUtils.waitSetProgBar (idxR, wF); try idKZ:= 0; idVC:= 0; @@ -1990,16 +2012,20 @@ var oVar1, oVar2: OleVariant; errMsg:= E.Message + CRLF + lSQL; end; end; - waitEnd; - Helios.Refresh(true); - Helios.Info(#1'Nových karet VČ: ' + cntIns.ToString + CRLF + 'Upravených karet VČ: ' + cntAkt.ToString + #1); + if Assigned(wF) then + helUtils.waitEnd (wF); + + Helios.Refresh (true); + Helios.Info (#1'Nových karet VČ: ' + cntIns.ToString + CRLF + 'Upravených karet VČ: ' + cntAkt.ToString + #1); end; end; end; - procedure TplgKdynium.ZakazkaZobrazAtestyTaveb(const Helios: IHelios; ids: TArray); + + + procedure TplgKdynium.ZakazkaZobrazAtestyTaveb (const Helios: IHelios; ids: TArray); var lSQL, idsX: string; bidRozbory, i: integer; begin @@ -2237,12 +2263,13 @@ var oVar1, oVar2: OleVariant; - procedure TplgKdynium.RozpRezii_PseudoAutomat(const Helios: IHelios; const arrID: TArray); + procedure TplgKdynium.RozpRezii_PseudoAutomat (const Helios: IHelios; const arrID: TArray); var lSQL, nazRozp, vstStr, denikIDs, utvarVst, cisStredOper: string; idPreuct, idx, rozpNr, idRozpRez, idObd, mObd, rObd: integer; ctiZak, ctiUtvar: Boolean; celkemHod, zakazkaHod: extended; arrVstStr: TArray; + wF: TForm; begin if (Length(arrID)>0) then begin @@ -2298,7 +2325,7 @@ var oVar1, oVar2: OleVariant; if (idObd>0) then begin - waitStart(nil, 'Zjišťuji podíly evidovaných hodin práce' + IfThen(cisStredOper='', '', ' pracovišť střediska ' + cisStredOper), 1, clRed); + wF := helUtils.waitStart (nil, 'Zjišťuji podíly evidovaných hodin práce' + IfThen(cisStredOper='', '', ' pracovišť střediska ' + cisStredOper), 1, clRed, true); lSQL:= 'SELECT ISNULL(SUM(pmz.Nor_cas_H), 0) FROM ' + tblPMZ + ' pmz INNER JOIN ' + tblPrikaz + 'p ON (p.ID=pmz.IDPrikaz) INNER JOIN ' + tblZak; lSQL:= lSQL + ' z ON (p.IDZakazka=z.ID) INNER JOIN ' + tblPrPost + ' pp ON (pp.IDPrikaz=pmz.IDPrikaz AND pp.Doklad=pmz.DokladPrPostup AND pp.Alt=pmz.AltPrPostup'; @@ -2316,7 +2343,8 @@ var oVar1, oVar2: OleVariant; helUtils.ReseedTable(Helios, tblRozpRezDet); Helios.ExecSQL('INSERT ' + tblRozpRezDet + ' (CisloZakazky, IdFIARozpusteniRezii, Podil) ' + lSQL); - waitEnd; + if Assigned(wF) then + helUtils.waitEnd (wF); { with Helios.OpenSQL(lSQL) do @@ -2331,7 +2359,7 @@ var oVar1, oVar2: OleVariant; end; // idRozpRez>0 end; // for rozpNr end; - Helios.Refresh(true); + Helios.Refresh (true); end; @@ -2341,9 +2369,9 @@ var oVar1, oVar2: OleVariant; procedure TplgKdynium.VytvorTempExtKomPar (const Helios: IHelios; id: integer); var lSQL: string; begin - lSQL:= 'IF OBJECT_ID(N''tempdb..#TabExtKomPar'', ''U'') IS NULL CREATE TABLE #TabExtKomPar (Popis NVARCHAR(10) NULL, Cislo NUMERIC(19,6) NULL)' + CRLF; - lSQL:= lSQL + 'DELETE FROM #TabExtKomPar' + CRLF + 'INSERT #TabExtKomPar (Popis, Cislo) SELECT N''STVlastID'', ' + id.ToString; - Helios.ExecSQL(lSQL); + lSQL := 'IF OBJECT_ID(N''tempdb..#TabExtKomPar'', ''U'') IS NULL CREATE TABLE #TabExtKomPar (Popis NVARCHAR(10) NULL, Cislo NUMERIC(19,6) NULL)' + CRLF; + lSQL := lSQL + 'DELETE FROM #TabExtKomPar' + CRLF + 'INSERT #TabExtKomPar (Popis, Cislo) SELECT N''STVlastID'', ' + id.ToString; + Helios.ExecSQL (lSQL); end; @@ -2351,7 +2379,7 @@ var oVar1, oVar2: OleVariant; procedure TplgKdynium.Run (const Helios: IHelios); - const MinVerzeHelios = $030020250106; + const MinVerzeHelios = $030020260114; var typAkce: byte; browID, cRec, cntID, l_loop, idDZ, dpz, cOrg, newBid: integer; lSQL, autor, radDokl, IDcka, params, paramsBak, vlastPar, vlastPar2, contInfo, sz, podm, sTemp: string; @@ -2368,6 +2396,8 @@ var oVar1, oVar2: OleVariant; fHrOdvOp: TformHrOdvOper; fSchvalZak: TformSchvaleniZak; fOOPPohyb: TformOOPPohyb; + fVPrZmenaUkonceni: TformVPrZmenaPlanuUkonceni; + fGenKObj: TformGenKoopObj; term, canCont, plusJeden: boolean; begin @@ -2384,6 +2414,9 @@ var oVar1, oVar2: OleVariant; raise Exception.Create('Plugin vyžaduje min verzi Heliosu ' + IntToHex(MinVerzeHelios, 12)) else begin + if (dataMod.dm=nil) then + dataMod.dm := Tdm.Create (nil); + with Helios.OpenSQL('SELECT CONVERT(nvarchar(128),CONTEXT_INFO(),2)') do if VarIsNull(FieldValues(0)) then @@ -2879,20 +2912,20 @@ var oVar1, oVar2: OleVariant; end; end; - 26: ImportKmenMeridla(Helios); - 27: ImportKmenMeridlaVC(Helios); - 28: ZakazkaZobrazTavby(Helios, arrID); - 29: ZakazkaZobrazAtestyTaveb(Helios, arrID); + 26: ImportKmenMeridla (Helios); + 27: ImportKmenMeridlaVC (Helios); + 28: ZakazkaZobrazTavby (Helios, arrID); + 29: ZakazkaZobrazAtestyTaveb (Helios, arrID); 30: begin - fSchvalZak:= TformSchvaleniZak.Create(nil); + fSchvalZak := TformSchvaleniZak.Create(nil); try - fSchvalZak.Helios:= Helios; - fSchvalZak.id:= 0; + fSchvalZak.Helios := Helios; + fSchvalZak.id := 0; if (Length(arrId)>1) then - fSchvalZak.arrID:= arrId + fSchvalZak.arrID := arrId else - fSchvalZak.id:= cRec; + fSchvalZak.id := cRec; fSchvalZak.ShowModal; finally fSchvalZak.Free; @@ -2901,30 +2934,30 @@ var oVar1, oVar2: OleVariant; 31: ImportProcentaZtrat(Helios); 32: begin - iTemp:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_ObdobiStavu'''); + iTemp := helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_ObdobiStavu'''); if (iTemp>0) then begin - podm:= 'DATEDIFF(year, hvw_ObdobiStavu.DatumOd, GETDATE()) BETWEEN 0 AND 1'; + podm := 'DATEDIFF(year, hvw_ObdobiStavu.DatumOd, GETDATE()) BETWEEN 0 AND 1'; if (Length(arrID)=1) then begin - iTemp2:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT o.DatumOd_Y FROM ' + tblObd + ' o INNER JOIN ' + tblRozpRez + ' r ON (r.IDObdobi=o.ID) WHERE r.ID=' + cRec.ToString); + iTemp2 := helUtils.getHeliosIntVal(Helios, 0, 'SELECT o.DatumOd_Y FROM ' + tblObd + ' o INNER JOIN ' + tblRozpRez + ' r ON (r.IDObdobi=o.ID) WHERE r.ID=' + cRec.ToString); if (iTemp2>0) then - podm:= podm + ' AND hvw_ObdobiStavu.DatumOd_Y=' + iTemp2.ToString; + podm := podm + ' AND hvw_ObdobiStavu.DatumOd_Y=' + iTemp2.ToString; end; if Helios.Prenos(iTemp, 'hvw_ObdobiStavu.ID', oVar, podm, 'Vyberte období ' + IfThen(iTemp2>0, ' roku ' + iTemp2.ToString, ' (M/R)'), true) then begin - Helios.ExecSQL('DROP TABLE IF EXISTS #TabObdobiRozpRez' + CRLF + 'CREATE TABLE #TabObdobiRozpRez (IdObd INT)' + CRLF + 'INSERT #TabObdobiRozpRez (IdObd) SELECT ' + VarToStr(oVar)); - RozpRezii_PseudoAutomat(Helios, arrID); + Helios.ExecSQL ('DROP TABLE IF EXISTS #TabObdobiRozpRez' + CRLF + 'CREATE TABLE #TabObdobiRozpRez (IdObd INT)' + CRLF + 'INSERT #TabObdobiRozpRez (IdObd) SELECT ' + VarToStr(oVar)); + RozpRezii_PseudoAutomat (Helios, arrID); end; end; - Helios.ExecSQL('DROP TABLE IF EXISTS #TabObdobiRozpRez'); + Helios.ExecSQL ('DROP TABLE IF EXISTS #TabObdobiRozpRez'); end; 33: begin // OOP zadani pohybu - fOOPPohyb:= TformOOPPohyb.Create(nil); + fOOPPohyb := TformOOPPohyb.Create(nil); try - fOOPPohyb.Helios:= Helios; - fOOPPohyb.jeTest:= jeTest; + fOOPPohyb.Helios := Helios; + fOOPPohyb.jeTest := jeTest; fOOPPohyb.ShowModal; finally fOOPPohyb.Free; @@ -2932,34 +2965,34 @@ var oVar1, oVar2: OleVariant; end; 34: begin - iTemp:= StrToInt (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('ID'))); // radek vydejky - iTemp2:= StrToInt (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('IDZboSklad'))); // idZboSklad - nTemp:= StrToFloat (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('Mnozstvi'))); // mnozstvi radku + iTemp := StrToInt (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('ID'))); // radek vydejky + iTemp2 := StrToInt (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('IDZboSklad'))); // idZboSklad + nTemp := StrToFloat (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('Mnozstvi'))); // mnozstvi radku - nTemp4:= helUtils.getHeliosFloatVal (Helios, 0, 'SELECT Mnozstvi FROM ' + tblSS + ' WHERE ID=' + iTemp2.ToString); - nTemp3:= 0; + nTemp4 := helUtils.getHeliosFloatVal (Helios, 0, 'SELECT Mnozstvi FROM ' + tblSS + ' WHERE ID=' + iTemp2.ToString); + nTemp3 := 0; VytvorTempExtKomPar (Helios, iTemp); - lSQL:= 'DROP TABLE IF EXISTS #TabRadkyProVyber' + CRLF + 'CREATE TABLE #TabRadkyProVyber (IDX INT IDENTITY(1,1) NOT NULL, ID INT NOT NULL)'; - Helios.ExecSQL(lSQL); + lSQL := 'DROP TABLE IF EXISTS #TabRadkyProVyber' + CRLF + 'CREATE TABLE #TabRadkyProVyber (IDX INT IDENTITY(1,1) NOT NULL, ID INT NOT NULL)'; + Helios.ExecSQL (lSQL); - lSQL:= 'SELECT p.ID, p.Mnozstvi FROM ' + tblPZ + ' p INNER JOIN ' + tblDZ + ' d ON (d.ID=p.IDDoklad) WHERE p.DruhPohybuZbo=0 AND p.IDZboSklad=' + iTemp2.ToString; - lSQL:= lSQL + ' AND p.ID NOT IN (SELECT ID FROM ' + tblPZe + ' WHERE ISNULL(_Expedice_VazbaPrijemVydejNenabizet, 0)=1)'; - lSQL:= lSQL + ' AND EXISTS(SELECT 1 FROM ' + tblDDZ + ' dd INNER JOIN ' + tblDDZe + ' dde ON (dde.ID=dd.ID) WHERE dd.RadaDokladu=d.RadaDokladu AND dd.DruhPohybuZbo=d.DruhPohybuZbo'; - lSQL:= lSQL + ' AND ISNULL(dde._Expedice_VazbaPrijemVydejNabizet,0)=1)'; - lSQL:= lSQL + ' AND p.ID>=ISNULL( (SELECT ID FROM ' + tblPZe + ' WHERE ISNULL(_Expedice_VazbaPrijemVydejHranice,0)=1), 0)'; - lSQL:= lSQL + ' ORDER BY p.DatPorizeni DESC'; + lSQL := 'SELECT p.ID, p.Mnozstvi FROM ' + tblPZ + ' p INNER JOIN ' + tblDZ + ' d ON (d.ID=p.IDDoklad) WHERE p.DruhPohybuZbo=0 AND p.IDZboSklad=' + iTemp2.ToString; + lSQL := lSQL + ' AND p.ID NOT IN (SELECT ID FROM ' + tblPZe + ' WHERE ISNULL(_Expedice_VazbaPrijemVydejNenabizet, 0)=1)'; + lSQL := lSQL + ' AND EXISTS(SELECT 1 FROM ' + tblDDZ + ' dd INNER JOIN ' + tblDDZe + ' dde ON (dde.ID=dd.ID) WHERE dd.RadaDokladu=d.RadaDokladu AND dd.DruhPohybuZbo=d.DruhPohybuZbo'; + lSQL := lSQL + ' AND ISNULL(dde._Expedice_VazbaPrijemVydejNabizet,0)=1)'; + lSQL := lSQL + ' AND p.ID>=ISNULL( (SELECT ID FROM ' + tblPZe + ' WHERE ISNULL(_Expedice_VazbaPrijemVydejHranice,0)=1), 0)'; + lSQL := lSQL + ' ORDER BY p.DatPorizeni DESC'; with Helios.OpenSQL(lSQL) do if (RecordCount>0) then begin - canCont:= true; - plusJeden:= false; + canCont := true; + plusJeden := false; First; while not(EOF) and (canCont) do begin - iTemp3:= StrToInt (VarToStr(FieldByNameValues('ID'))); - nTemp2:= StrToFloat (VarToStr(FieldByNameValues('Mnozstvi'))); - nTemp3:= nTemp3 + nTemp2; + iTemp3 := StrToInt (VarToStr(FieldByNameValues('ID'))); + nTemp2 := StrToFloat (VarToStr(FieldByNameValues('Mnozstvi'))); + nTemp3 := nTemp3 + nTemp2; if (nTemp3 + IndexDefs = <> + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + StoreDefs = True + Left = 48 + Top = 60 + object tblKoopObjHID: TAutoIncField + FieldName = 'ID' + Visible = False + end + object tblKoopObjHIDKoopObjH: TIntegerField + FieldName = 'IDKoopObjH' + Visible = False + end + object tblKoopObjHOznaceni: TStringField + FieldName = 'Oznaceni' + Size = 30 + end + object tblKoopObjHPozadDodani: TDateField + FieldName = 'PozadDodani' + end + object tblKoopObjHDatVytvoreni: TDateTimeField + FieldName = 'DatVytvoreni' + end + object tblKoopObjHJePrijem: TBooleanField + FieldName = 'JePrijem' + end + end + object dsKoopObjH: TDataSource + DataSet = tblKoopObjH + Left = 46 + Top = 126 + end + object dsKoopObjR: TDataSource + DataSet = tblKoopObjR + Left = 154 + Top = 128 + end + object tblKoopObjR: TFDMemTable + FieldDefs = <> + IndexDefs = <> + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + StoreDefs = True + Left = 148 + Top = 60 + object tblKoopObjRID: TAutoIncField + FieldName = 'ID' + end + object tblKoopObjRIDPolKoopObj: TIntegerField + FieldName = 'IDPolKoopObj' + end + object tblKoopObjRIDVPr: TIntegerField + FieldName = 'IDVPr' + end + object tblKoopObjRIDPrPostup: TIntegerField + FieldName = 'IDPrPostup' + end + object tblKoopObjRDoklad: TIntegerField + FieldName = 'Doklad' + end + object tblKoopObjRAlt: TStringField + FieldName = 'Alt' + Size = 1 + end + object tblKoopObjRIDDavka: TIntegerField + FieldName = 'IDDavka' + end + object tblKoopObjRMnozstvi: TFloatField + DefaultExpression = '0' + FieldName = 'Mnozstvi' + end + object tblKoopObjRKsNaStr: TSmallintField + FieldName = 'KsNaStr' + end + object tblKoopObjRIDKooperace: TIntegerField + FieldName = 'IDKooperace' + end + object tblKoopObjRPocetPalet: TSmallintField + FieldName = 'PocetPalet' + end + object tblKoopObjRPocetBeden: TSmallintField + DefaultExpression = '0' + FieldName = 'PocetBeden' + end + end + object tblInsOperace: TFDMemTable + FieldDefs = <> + IndexDefs = <> + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + StoreDefs = True + Left = 258 + Top = 62 + object tblInsOperaceID: TAutoIncField + FieldName = 'ID' + end + object tblInsOperaceIdPrPostup: TIntegerField + FieldName = 'IdPrPostup' + end + object tblInsOperaceRegCis: TStringField + FieldName = 'RegCis' + Size = 30 + end + object tblInsOperaceRadaPrikaz: TStringField + FieldName = 'RadaPrikaz' + Size = 30 + end + object tblInsOperaceIDVPr: TIntegerField + FieldName = 'IDVPr' + end + object tblInsOperaceIdVPrVyssi: TIntegerField + FieldName = 'IdVPrVyssi' + end + object tblInsOperaceIDDavka: TIntegerField + FieldName = 'IDDavka' + end + object tblInsOperaceIDDavkaRodic: TIntegerField + FieldName = 'IDDavkaRodic' + end + object tblInsOperaceDoklad: TIntegerField + FieldName = 'Doklad' + end + object tblInsOperaceAlt: TStringField + FieldName = 'Alt' + Size = 1 + end + object tblInsOperaceKusy: TIntegerField + FieldName = 'Kusy' + end + object tblInsOperaceKoef: TFloatField + FieldName = 'Koef' + end + object tblInsOperaceOperace: TStringField + FieldName = 'Operace' + Size = 100 + end + object tblInsOperaceIDKooperace: TIntegerField + FieldName = 'IDKooperace' + end + object tblInsOperaceKsNaStr: TSmallintField + FieldName = 'KsNaStr' + end + object tblInsOperaceIDRadkuHDCPol: TIntegerField + FieldName = 'IDRadkuHDCPol' + end + object tblInsOperaceKodKoop: TStringField + FieldName = 'KodKoop' + end + end + object tblRadekDavky: TFDMemTable + FieldDefs = <> + IndexDefs = <> + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + StoreDefs = True + Left = 356 + Top = 62 + object tblRadekDavkyID: TAutoIncField + FieldName = 'ID' + end + object tblRadekDavkyIDDavka: TIntegerField + FieldName = 'IDDavka' + end + object tblRadekDavkyIDDavkaRodic: TIntegerField + FieldName = 'IDDavkaRodic' + end + object tblRadekDavkyIDVPr: TIntegerField + FieldName = 'IDVPr' + end + object tblRadekDavkyIdPostup: TIntegerField + FieldName = 'IdPostup' + end + object tblRadekDavkyMnozstvi: TFloatField + FieldName = 'Mnozstvi' + end + end + object dsInsOperace: TDataSource + DataSet = tblInsOperace + Left = 252 + Top = 138 + end + object dsRadekDavky: TDataSource + DataSet = tblRadekDavky + Left = 346 + Top = 134 + end end diff --git a/dataMod.pas b/dataMod.pas index 79fa115..48b9490 100644 --- a/dataMod.pas +++ b/dataMod.pas @@ -3,10 +3,92 @@ interface uses - System.SysUtils, System.Classes; + System.SysUtils, System.Classes, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, + FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, Data.DB, + FireDAC.Comp.DataSet, FireDAC.Comp.Client, + ddPlugin_TLB; + +const + tblKonfigZarizeni = 'dbo._HDCserver_zarizeni'; + tblHDCKooperanti = 'dbo._HDCserver_kooperanti'; + + tblDavky = 'dbo._hdc_TabDavky'; + + tblHDCSDDokl = 'dbo._HDCserver_doklady'; + tblHDCSDPol = 'dbo._HDCserver_dokladyPol'; + tblHDCSDHeODokl = 'dbo._HDCserver_doklady_heoDokl'; + tblHDCSDPolKoopObj = 'dbo._HDCserver_dokladyPol_KoopObjPol'; + + tblKoopH = 'dbo._hdc_TabKooperaceH'; // hlavicka objednavky ze ctecky + tblKoopR = 'dbo._hdc_TabKooperaceR'; // polozka + tblKoopD = 'dbo._hdc_TabKooperaceD'; // davka + tblKoopVPr = 'dbo._hdc_TabKooperaceVPr'; // prikazy + type + TKooperant = class + strict private + FNazev: string; + FCisloOrg: integer; + FIDOrg: integer; + FHelios: IHelios; + public + constructor Create (const Nazev: string; const cisloOrg: integer; const Helios: IHelios); + property Nazev: string read FNazev write FNazev; + property CisloOrg: integer read FCisloOrg write FCisloOrg; + property IDOrg: integer read FIDOrg; + end; + Tdm = class(TDataModule) + tblKoopObjH: TFDMemTable; + dsKoopObjH: TDataSource; + dsKoopObjR: TDataSource; + tblKoopObjR: TFDMemTable; + tblKoopObjHID: TAutoIncField; + tblKoopObjHIDKoopObjH: TIntegerField; + tblKoopObjRID: TAutoIncField; + tblKoopObjRIDPolKoopObj: TIntegerField; + tblKoopObjRIDVPr: TIntegerField; + tblKoopObjRIDPrPostup: TIntegerField; + tblKoopObjRDoklad: TIntegerField; + tblKoopObjRAlt: TStringField; + tblKoopObjRIDDavka: TIntegerField; + tblKoopObjRMnozstvi: TFloatField; + tblKoopObjRKsNaStr: TSmallintField; + tblKoopObjRIDKooperace: TIntegerField; + tblKoopObjRPocetPalet: TSmallintField; + tblKoopObjRPocetBeden: TSmallintField; + tblInsOperace: TFDMemTable; + tblRadekDavky: TFDMemTable; + tblInsOperaceID: TAutoIncField; + tblInsOperaceIdPrPostup: TIntegerField; + tblInsOperaceRegCis: TStringField; + tblInsOperaceRadaPrikaz: TStringField; + tblInsOperaceIDVPr: TIntegerField; + tblInsOperaceIdVPrVyssi: TIntegerField; + tblInsOperaceIDDavkaRodic: TIntegerField; + tblInsOperaceDoklad: TIntegerField; + tblInsOperaceAlt: TStringField; + tblInsOperaceKusy: TIntegerField; + tblInsOperaceKoef: TFloatField; + tblInsOperaceOperace: TStringField; + tblInsOperaceIDKooperace: TIntegerField; + tblInsOperaceKsNaStr: TSmallintField; + tblInsOperaceIDRadkuHDCPol: TIntegerField; + tblInsOperaceKodKoop: TStringField; + tblRadekDavkyID: TAutoIncField; + tblRadekDavkyIDDavka: TIntegerField; + tblRadekDavkyIDDavkaRodic: TIntegerField; + tblRadekDavkyIDVPr: TIntegerField; + tblRadekDavkyIdPostup: TIntegerField; + tblRadekDavkyMnozstvi: TFloatField; + tblKoopObjHOznaceni: TStringField; + tblKoopObjHPozadDodani: TDateField; + tblKoopObjHDatVytvoreni: TDateTimeField; + tblKoopObjHJePrijem: TBooleanField; + dsInsOperace: TDataSource; + dsRadekDavky: TDataSource; + tblInsOperaceIDDavka: TIntegerField; private public end; @@ -15,9 +97,20 @@ var dm: Tdm; implementation +uses helUtils; {%CLASSGROUP 'Vcl.Controls.TControl'} {$R *.dfm} + + constructor TKooperant.Create (const Nazev: string; const cisloOrg: Integer; const Helios: IHelios); + begin + FHelios := Helios; + FNazev := Nazev; + FCisloOrg := cisloOrg; + FIDOrg := helUtils.getHeliosIntVal (FHelios, -1, 'SELECT ID FROM ' + tblCOrg + ' WHERE CisloOrg=' + FCisloOrg.ToString); + end; + + end. diff --git a/frmGenKoopObj.dfm b/frmGenKoopObj.dfm new file mode 100644 index 0000000..d61fac5 --- /dev/null +++ b/frmGenKoopObj.dfm @@ -0,0 +1,547 @@ +object formGenKoopObj: TformGenKoopObj + Left = 0 + Top = 0 + Caption = ' Generov'#225'n'#237' Koopera'#269'n'#237' objedn'#225'vky' + ClientHeight = 678 + ClientWidth = 952 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Segoe UI' + Font.Style = [] + Position = poOwnerFormCenter + OnShow = FormShow + TextHeight = 21 + object pgCtrl: TRzPageControl + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 946 + Height = 672 + Hint = '' + ActivePage = shNovaObj + Align = alClient + SoftCorners = True + TabIndex = 1 + TabOrder = 0 + FixedDimension = 27 + object shHlavicky: TRzTabSheet + Caption = 'Hlavi'#269'ky' + object pnl1: TGridPanel + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 936 + Height = 635 + Align = alClient + ColumnCollection = < + item + Value = 33.333333333333340000 + end + item + Value = 33.333333333333340000 + end + item + Value = 33.333333333333310000 + end> + ControlCollection = < + item + Column = 0 + Control = btnNovaObj + Row = 1 + end + item + Column = 1 + Control = btnPrijem + Row = 1 + end + item + Column = 2 + Control = btnReload + Row = 1 + end + item + Column = 0 + ColumnSpan = 3 + Control = grdHlavicky + Row = 0 + end> + RowCollection = < + item + Value = 85.000000000000000000 + end + item + Value = 15.000000000000000000 + end> + TabOrder = 0 + DesignSize = ( + 936 + 635) + object btnNovaObj: TButton + Left = 61 + Top = 556 + Width = 190 + Height = 60 + Anchors = [] + Caption = 'Nov'#225' kooperace' + TabOrder = 0 + OnClick = btnNovaObjClick + end + object btnPrijem: TButton + Left = 373 + Top = 556 + Width = 190 + Height = 60 + Anchors = [] + Caption = 'P'#345#237'jem kooperace' + TabOrder = 1 + end + object btnReload: TButton + Left = 684 + Top = 556 + Width = 190 + Height = 60 + Anchors = [] + Caption = 'Obnovit seznam' + TabOrder = 2 + end + object grdHlavicky: TJvDBGrid + AlignWithMargins = True + Left = 4 + Top = 4 + Width = 928 + Height = 532 + Align = alClient + Anchors = [] + DataSource = dm.dsKoopObjH + DrawingStyle = gdsGradient + Options = [dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] + ReadOnly = True + TabOrder = 3 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -16 + TitleFont.Name = 'Segoe UI' + TitleFont.Style = [] + ScrollBars = ssVertical + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 25 + TitleRowHeight = 25 + Columns = < + item + Expanded = False + FieldName = 'ID' + Visible = False + end + item + Expanded = False + FieldName = 'IDKoopObjH' + Visible = False + end + item + Expanded = False + FieldName = 'Oznaceni' + Title.Caption = 'Ozna'#269'en'#237 + Width = 529 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'PozadDodani' + Title.Alignment = taCenter + Title.Caption = 'Po'#382'adovan'#233' dod'#225'n'#237 + Width = 148 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'DatVytvoreni' + Title.Alignment = taCenter + Title.Caption = 'Datum vytvo'#345'en'#237 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'JePrijem' + Title.Alignment = taCenter + Title.Caption = 'P'#345#237'jem' + Width = 55 + Visible = True + end> + end + end + end + object shNovaObj: TRzTabSheet + OnShow = shNovaObjShow + Caption = 'Nov'#225' objedn'#225'vka' + object pnl2: TGridPanel + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 936 + Height = 635 + Align = alClient + ColumnCollection = < + item + Value = 100.000000000000000000 + end> + ControlCollection = < + item + Column = 0 + Control = pnl3 + Row = 2 + end + item + Column = 0 + Control = GridPanel1 + Row = 0 + end + item + Column = 0 + Control = grdNovePolozky + Row = 1 + end> + RowCollection = < + item + Value = 20.153297645299770000 + end + item + Value = 69.770053532050350000 + end + item + Value = 10.076648822649870000 + end> + TabOrder = 0 + object pnl3: TGridPanel + Left = 1 + Top = 570 + Width = 934 + Height = 64 + Align = alClient + ColumnCollection = < + item + Value = 50.000000000000000000 + end + item + Value = 50.000000000000000000 + end> + ControlCollection = < + item + Column = 0 + Control = btnPolUloz + Row = 0 + end + item + Column = 1 + Control = btnPolSmaz + Row = 0 + end> + RowCollection = < + item + Value = 100.000000000000000000 + end> + TabOrder = 0 + DesignSize = ( + 934 + 64) + object btnPolUloz: TButton + Left = 164 + Top = 7 + Width = 140 + Height = 50 + Anchors = [] + Caption = 'Ulo'#382'it objedn'#225'vku' + TabOrder = 0 + OnClick = btnPolUlozClick + end + object btnPolSmaz: TButton + Left = 630 + Top = 7 + Width = 140 + Height = 50 + Anchors = [] + Caption = 'Smazat' + TabOrder = 1 + OnClick = btnPolSmazClick + end + end + object GridPanel1: TGridPanel + Left = 1 + Top = 1 + Width = 934 + Height = 128 + Align = alClient + ColumnCollection = < + item + Value = 33.333333333333340000 + end + item + Value = 33.333333333333340000 + end + item + Value = 33.333333333333310000 + end> + ControlCollection = < + item + Column = 0 + Control = Label1 + Row = 0 + end + item + Column = 1 + ColumnSpan = 2 + Control = cbKooperanti + Row = 0 + end + item + Column = 0 + Control = Label2 + Row = 1 + end + item + Column = 1 + Control = dtPozadDodani + Row = 1 + end + item + Column = 0 + Control = btnNovaPol + Row = 2 + end + item + Column = 2 + Control = edtBarcode + Row = 2 + end + item + Column = 1 + Control = lblTypKodu + Row = 2 + end> + RowCollection = < + item + Value = 33.333333333333340000 + end + item + Value = 33.333333333333340000 + end + item + Value = 33.333333333333310000 + end> + TabOrder = 1 + DesignSize = ( + 934 + 128) + object Label1: TLabel + Left = 119 + Top = 11 + Width = 75 + Height = 21 + Anchors = [] + Caption = 'Kooperant:' + ExplicitLeft = 120 + end + object cbKooperanti: TRzComboBox + AlignWithMargins = True + Left = 315 + Top = 7 + Width = 536 + Height = 29 + Anchors = [akLeft] + Style = csDropDownList + TabOrder = 0 + OnChange = cbKooperantiChange + end + object Label2: TLabel + Left = 63 + Top = 53 + Width = 187 + Height = 21 + Anchors = [] + Caption = 'Po'#382'adovan'#233' datum dod'#225'n'#237':' + ExplicitLeft = 64 + end + object dtPozadDodani: TDateTimePicker + Left = 312 + Top = 49 + Width = 125 + Height = 29 + Anchors = [akLeft] + Date = 46155.000000000000000000 + Time = 0.371777592590660800 + TabOrder = 1 + end + object btnNovaPol: TButton + Left = 54 + Top = 87 + Width = 204 + Height = 38 + Anchors = [] + Caption = 'Nov'#225' polo'#382'ka' + TabOrder = 2 + OnClick = btnNovaPolClick + end + object edtBarcode: TEdit + Left = 622 + Top = 91 + Width = 445 + Height = 29 + Anchors = [] + MaxLength = 50 + TabOrder = 3 + OnExit = edtBarcodeExit + end + object lblTypKodu: TLabel + Left = 465 + Top = 95 + Width = 4 + Height = 21 + Anchors = [] + ExplicitLeft = 428 + end + end + object grdNovePolozky: TJvDBGrid + AlignWithMargins = True + Left = 4 + Top = 132 + Width = 928 + Height = 435 + Align = alClient + DataSource = dm.dsInsOperace + DrawingStyle = gdsGradient + Options = [dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] + PopupMenu = pMenu + TabOrder = 2 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -16 + TitleFont.Name = 'Segoe UI' + TitleFont.Style = [] + ScrollBars = ssVertical + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 25 + TitleRowHeight = 25 + Columns = < + item + Expanded = False + FieldName = 'ID' + Visible = False + end + item + Expanded = False + FieldName = 'IdPrPostup' + Visible = False + end + item + Alignment = taCenter + Expanded = False + FieldName = 'RegCis' + Title.Alignment = taCenter + Title.Caption = 'Reg. '#269#237'slo' + Width = 150 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'RadaPrikaz' + Title.Alignment = taCenter + Title.Caption = #344'ada / p'#345#237'kaz' + Width = 161 + Visible = True + end + item + Expanded = False + FieldName = 'IDVPr' + Visible = False + end + item + Expanded = False + FieldName = 'IdVPrVyssi' + Visible = False + end + item + Expanded = False + FieldName = 'IDDavkaRodic' + Visible = False + end + item + Expanded = False + FieldName = 'Doklad' + Visible = False + end + item + Expanded = False + FieldName = 'Alt' + Visible = False + end + item + Expanded = False + FieldName = 'Kusy' + Title.Alignment = taCenter + Width = 78 + Visible = True + end + item + Expanded = False + FieldName = 'Koef' + Visible = False + end + item + Expanded = False + FieldName = 'Operace' + Width = 409 + Visible = True + end + item + Expanded = False + FieldName = 'IDKooperace' + Visible = False + end + item + Expanded = False + FieldName = 'KsNaStr' + Visible = False + end + item + Expanded = False + FieldName = 'IDRadkuHDCPol' + Visible = False + end + item + Expanded = False + FieldName = 'KodKoop' + Title.Caption = 'Kooperace' + Width = 100 + Visible = True + end> + end + end + end + end + object pMenu: TPopupMenu + Left = 109 + Top = 428 + object pM1ZmenaMnoz: TMenuItem + Caption = 'Zm'#283'na mno'#382'stv'#237 + OnClick = pM1ZmenaMnozClick + end + object N1: TMenuItem + Caption = '-' + end + object pM1Smazat: TMenuItem + Caption = 'Smazat' + OnClick = pM1SmazatClick + end + end +end diff --git a/frmGenKoopObj.pas b/frmGenKoopObj.pas new file mode 100644 index 0000000..f394822 --- /dev/null +++ b/frmGenKoopObj.pas @@ -0,0 +1,617 @@ +unit frmGenKoopObj; + +interface + +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, JvExDBGrids, + JvDBGrid, RzTabs, Vcl.StdCtrls, RzCmboBx, Vcl.ComCtrls, + ddPlugin_TLB, Vcl.Menus; + +type + TformGenKoopObj = class(TForm) + pnl1: TGridPanel; + grdHlavicky: TJvDBGrid; + pgCtrl: TRzPageControl; + shHlavicky: TRzTabSheet; + shNovaObj: TRzTabSheet; + btnNovaObj: TButton; + btnPrijem: TButton; + btnReload: TButton; + pnl2: TGridPanel; + pnl3: TGridPanel; + btnPolUloz: TButton; + btnPolSmaz: TButton; + GridPanel1: TGridPanel; + Label1: TLabel; + cbKooperanti: TRzComboBox; + Label2: TLabel; + dtPozadDodani: TDateTimePicker; + btnNovaPol: TButton; + edtBarcode: TEdit; + grdNovePolozky: TJvDBGrid; + lblTypKodu: TLabel; + pMenu: TPopupMenu; + pM1ZmenaMnoz: TMenuItem; + N1: TMenuItem; + pM1Smazat: TMenuItem; + procedure edtBarcodeExit (Sender: TObject); + procedure shNovaObjShow (Sender: TObject); + procedure btnNovaPolClick (Sender: TObject); + procedure cbKooperantiChange (Sender: TObject); + procedure FormShow (Sender: TObject); + procedure btnNovaObjClick (Sender: TObject); + procedure btnPolSmazClick (Sender: TObject); + procedure pM1SmazatClick(Sender: TObject); + procedure pM1ZmenaMnozClick(Sender: TObject); + procedure btnPolUlozClick(Sender: TObject); + strict private + function SumPolozkyDleDavky (const idDavky: integer): Extended; + function SumPolozkyDlePrikazu (const idPrikaz: integer): Extended; + procedure NactiKooperanty; + public + Helios: IHelios; + typObj: integer; + end; + +var + formGenKoopObj: TformGenKoopObj; + jsemKooperace, operUzavrena, skenPrikaz, skipMe: boolean; + idDavka, idDavkaRodic, locIDDavka, locIDDavkaSelf, ksNaStrom, dokladPrP: integer; + idKoopObj, idPrikaz, idKmen, idOperace, idKoop, idKoopNew, typOper, cOrgKooperant, stavVPr: integer; + idKoopObjH: integer; + numDavka, kodOp, kodKoop, radaPrikaz, mjDavky, rc, altPrP: string; + ksSum, ks, ksZive: Extended; + typSkenKod, typDavky: byte; + aktCisOrgKoop, aktIdOrgKoop: integer; + + +implementation +uses System.RegularExpressions, System.StrUtils, System.DateUtils, + dataMod, + helUtils; + +{$R *.dfm} + + + + + procedure TformGenKoopObj.NactiKooperanty; + var lSQL: string; + nazevOrg: string; + i, ii, iLoop, cOrg: integer; + begin + if (idKoop=0) then + begin + if (idKoopObj>0) then + lSQL := 'SELECT o.Nazev, h.CisloOrg FROM ' + tblKoopH + ' h JOIN ' + tblCOrg + ' o ON (o.CisloOrg=h.CisloOrg) WHERE h.ID=' + idKoopObj.ToString + else + lSQL := 'SELECT k.CisloOrg, o.Nazev FROM ' + dataMod.tblHDCKooperanti + ' k JOIN ' + tblCOrg + ' o ON (o.CisloOrg=k.CisloOrg)' + + ' WHERE o.Stav=0 AND k.Aktivni=1 And k.Typ=1 ORDER BY o.Nazev'; + + end // idKoop=0 + else + lSQL := 'IF OBJECT_ID(N''dbo._hdc_TabCKoopCena'', N''U'') IS NOT NULL' + CRLF + + ' SELECT o.Nazev, o.CisloOrg FROM ' + tblCisKoop + ' ck JOIN ' + tblCOrg + ' o ON (o.ID=ck.dodavatel) WHERE o.Stav=0 AND ck.ID=' + idKoop.ToString + CRLF + + ' UNION ALL' + CRLF + + ' SELECT o.Nazev, o.CisloOrg FROM dbo._hdc_TabCKoopCena ckc JOIN ' + tblCOrg + ' o ON (o.CisloOrg=ckc.CisloOrg) WHERE o.Stav=0 AND ckc.IDKooperace=' + idKoop.ToString + CRLF + + ' ELSE' + CRLF + + ' SELECT o.Nazev, o.CisloOrg FROM ' + tblCisKoop + ' ck JOIN ' + tblCOrg + ' o ON (o.ID=ck.dodavatel) WHERE o.Stav=0 AND ck.ID=' + idKoop.ToString; + + i := 0; + ii := 0; + iLoop := 0; + + cbKooperanti.Items.Clear; + if (idKoopObj=0) then + cbKooperanti.Items.Add ('-- Vyberte --'); + + + with Helios.OpenSQL (lSQL) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + cOrg := FieldByNameValues('CisloOrg'); + if (cOrg=cOrgKooperant) then + ii := iLoop; + nazevOrg := FieldByNameValues('Nazev'); + cbKooperanti.Items.AddObject (cOrg.ToString + ' - ' + nazevOrg, TKooperant.Create (nazevOrg, cOrg, Helios) ); + Inc (iLoop); + Next; + end; + end; + + + end; + + + + + procedure TformGenKoopObj.pM1SmazatClick (Sender: TObject); + begin + if Helios.YesNo('Smazat poloku?', false) then + dataMod.dm.tblInsOperace.Delete; + end; + + + + + procedure TformGenKoopObj.pM1ZmenaMnozClick (Sender: TObject); + var iBox: string; + mn, mnOrig: Extended; + begin + mnOrig := dataMod.dm.tblInsOperace.FieldByName('Kusy').AsExtended; + + iBox := InputBox('Zmna mnostv (bylo ' + mnOrig.ToString + ')', 'Nov mnostv', mnOrig.ToString); + if not(TryStrToFloat(iBox, mn)) then + mn := -1; + + if (mn>0) and (mn<=mnOrig) then + begin + try + dataMod.dm.tblInsOperace.Edit; + dataMod.dm.tblInsOperace.FieldByName('Kusy').AsExtended := mn; + dataMod.dm.tblInsOperace.Post; + except + dataMod.dm.tblInsOperace.Cancel; + end; + end; + + end; + + + + + procedure TformGenKoopObj.btnNovaObjClick (Sender: TObject); + var lSQL, ozn: string; + begin + shNovaObj.TabVisible := true; + pgCtrl.ActivePage := shNovaObj; + shHlavicky.TabVisible := false; + self.Invalidate; + + if (idKoopObjH=0) then + begin + ozn := InputBox('NOV OJEDNVKA', 'Vae oznaen:', ''); + lSQL := 'INSERT ' + tblKoopH + ' (TypObj, DeviceID, BlokujeDevice, Oznaceni) SELECT ' + typObj.ToString + ', N' + ('H-' + Helios.LoginName).QuotedString + + ', N' + ('H-' + Helios.LoginName).QuotedString + ', N' + ozn.QuotedString + CRLF + 'SELECT SCOPE_IDENTITY() AS newID'; + with Helios.OpenSQL (lSQL) do + idKoopObjH := FieldByNameValues('newID'); + end; + + end; + + + + + procedure TformGenKoopObj.btnNovaPolClick (Sender: TObject); + begin + typSkenKod := 1; + kodOp := ''; + ks := 0; + ksZive := 0; + ksSum := 0; + idOperace := 0; + idPrikaz := 0;; + radaPrikaz := ''; + + lblTypKodu.Caption := 'Kd DVKY / PKAZU'; + edtBarcode.Visible := true; + self.ActiveControl := edtBarcode; + end; + + + + + procedure TformGenKoopObj.btnPolSmazClick (Sender: TObject); + begin + if Helios.YesNo('Opravdu smazat zadan poloky ?', false) then + begin + dataMod.dm.tblInsOperace.EmptyDataSet; + edtBarcode.Text := ''; + cbKooperanti.Clear; + cbKooperanti.Enabled := true; + self.ActiveControl := dtPozadDodani; + end; + end; + + + + + procedure TformGenKoopObj.btnPolUlozClick (Sender: TObject); + var lSQL: string; + i: integer; + idH: integer; + begin + + if (dataMod.dm.tblInsOperace.RecordCount>0) then + begin +// lSQL := 'DECLARE @idH INT' + CRLF + 'INSERT ' + tblKoopH + ' (TypObj, SkenPrikaz, ) ' + + dataMod.dm.tblInsOperace.First; + while not(dataMod.dm.tblInsOperace.Eof) do + begin + + end; + end + else + Helios.Error(#1'Objednvka nem dn poloky.'#1); + + end; + + + + + function TformGenKoopObj.SumPolozkyDleDavky (const idDavky: integer): Extended; + begin + result := 0; + end; + + + + + function TformGenKoopObj.SumPolozkyDlePrikazu (const idPrikaz: integer): Extended; + begin + result := 0; + end; + + + + + procedure TformGenKoopObj.cbKooperantiChange (Sender: TObject); + var k: TKooperant; + begin + if (cbKooperanti.ItemIndex>-1) then + begin + k := TKooperant (cbKooperanti.Items.Objects[cbKooperanti.ItemIndex]); + aktCisOrgKoop := k.CisloOrg; + aktIdOrgKoop := k.IdOrg; + end + else + begin + aktCisOrgKoop := -1; + aktIdOrgKoop := -1; + end; + end; + + + + + procedure TformGenKoopObj.edtBarcodeExit (Sender: TObject); + var lSQL, bc: string; + canCont: boolean; + tempSum1, tempSum2, tempSum3: extended; + begin + canCont:= true; + edtBarcode.Text := edtBarcode.Text.Trim; + + if (edtBarcode.Text<>'') then + begin + bc := edtBarcode.Text; + + if (typSkenKod=1) then + begin + if (bc.StartsWith('420')) then + begin + if not(bc.EndsWith('D')) then + bc := bc + 'D'; + if not(bc.StartsWith('D')) then + bc := 'D' + bc; + end; + + ksSum := 0; + + idDavka := 0; + idDavkaRodic := 0; + locIDDavka := 0; + locIDDavkaSelf := 0; + + if (bc.StartsWith('V')) and (bc.EndsWith('P')) then + begin + idPrikaz := TRegEx.Replace(bc.Trim, '\D', '').ToInteger; + lSQL := 'SELECT 1 FROM ' + tblVPr + ' WHERE ID=' + idPrikaz.ToString; + if not (helUtils.sqlExistsTestGeneral (Helios, lSQL)) then + idPrikaz := 0; + + if (idPrikaz>0) then + begin + if not (helUtils.sqlExistsTestGeneral (Helios, lSQL + ' AND StavPrikazu=30')) then + begin + Helios.Error (#1'Chyba: '#1 + 'vrobn pkaz nen ve stavu Zadno, NELZE pout'); + idPrikaz := 0; + idDavka := 0; + end + else + begin + typSkenKod := 2; + kodOp := ''; + ks := 0; + ksZive := 0; + idOperace := 0; + radaPrikaz := ''; + lblTypKodu.Caption := 'Kd OPERACE'; + skenPrikaz := true; + edtBarcode.Text := ''; + self.ActiveControl := edtBarcode; + end; + end; // idPrikaz >0 + + end // bc.startsWith V + bc.EndsWith P + else + begin + skenPrikaz := false; + if (bc.StartsWith('D420')) and (bc.EndsWith('D')) then + begin + lSQL := 'SELECT ID, IDRodic FROM ' + dataMod.tblDavky + ' WHERE KodDavky2=N' + bc.QuotedString + ' ORDER BY Pozice'; + with Helios.OpenSQL (lSQL) do + begin + locIDDavkaSelf := FieldByNameValues('ID'); + idDavka := locIDDavkaSelf; + idDavkaRodic := FieldByNameValues('IDRodic'); + locIdDavka := idDavkaRodic; + end; + + if (idDavka>0) then + begin + lSQL := 'SELECT 1 FROM ' + dataMod.tblDavky + ' d JOIN ' + tblVPr + ' p ON (d.IDPrikazVyssiVyssi=p.ID) WHERE p.StavPrikazu<>30 AND d.ID=' + idDavka.ToString; + if (helUtils.sqlExistsTestGeneral (Helios, lSQL)) then + begin + Helios.Error (#1'V dvce se nachz pedzpracovan/ukonen pkaz, NELZE pout'#1); + idDavka := 0; + edtBarcode.Text := ''; + self.ActiveControl := edtBarcode; + end + else + begin + lSQL := 'SELECT CONVERT(nvarchar, DruhDavky) + N''/'' + CONVERT(nvarchar, Rok) + N'' - '' + CONVERT(nvarchar, Cislo) FROM ' + dataMod.tblDavky + + ' WHERE ID=' + helUtils.IfThenInt (idDavkaRodic>0, idDavkaRodic, idDavka).ToString; + numDavka := helUtils.getHeliosStrVal (Helios, '', lSQL); + kodOp := ''; + ks := 0; + ksZive := 0; + ksSum := 0; + idOperace := 0; + idPrikaz := 0; + radaPrikaz := ''; + + typSkenKod := 2; + edtBarcode.Tag := 2; + lblTypKodu.Caption := 'Kd OPERACE'; + edtBarcode.Text := ''; + self.ActiveControl := edtBarcode; + end; + + end; // idDavka >0 + + end; // bc.startsWith D420 + bc.EndsWith D + end; // not bc.startsWith V + bc.EndsWith P + end // typSkenKod=1 + else + if (typSkenKod=2) then + begin + if (bc.StartsWith('A')) and (bc.EndsWith('B')) then + begin + jsemKooperace := false; + + ksSum := 0; + ksZive := 0; + + lSQL := 'SELECT p.ID, p.IDPrikaz, p.Kusy_pozadovane-p.KusyVKoop AS kzZive, k.RegCis, vp.RadaPrikaz, p.Doklad, p.Alt, p.IDkooperace, p.typ, k.ID AS idKmen' + + ', ck.Kod AS KodKoop, p.Splneno FROM ' + tblPrPost + ' p JOIN ' + tblVPr + ' vp ON (vp.ID=p.IDPrikaz) JOIN ' + tblKZ + ' k ON (k.ID=vp.IDTabKmen)' + + ' JOIN ' + tblCisKoop + ' ck ON (ck.ID=p.IDKooperace) WHERE p.IDOdchylkyDo IS NULL AND p.Priorita=0 AND p.BarCode=N' + bc.QuotedString; + if (idPrikaz>0) then + lSQL := lSQL + ' AND p.IDPrikaz=' + idPrikaz.ToString; + + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + canCont := true; + + ksZive := FieldByNameValues('kzZive'); + idKmen := FieldByNameValues('idKmen'); + typOper := FieldByNameValues('typ'); + operUzavrena := FieldByNameValues('Splneno'); + rc := FieldByNameValues('RegCis'); + radaPrikaz := FieldByNameValues('RadaPrikaz'); + dokladPrP := FieldByNameValues('Doklad'); + altPrP := FieldByNameValues('Alt'); + + kodKoop := ''; + idKoop := 0; + + jsemKooperace := (typOper=2); + if (jsemKooperace) then + begin + idKoop := FieldByNameValues('IDkooperace'); + kodKoop := FieldByNameValues('KodKoop'); + NactiKooperanty; + if (cbKooperanti.Items.Count=2) then + begin + cbKooperanti.ItemIndex := 1; + cbKooperanti.Enabled := false; + end; + end; + + + + if not(jsemKooperace) then + begin + Helios.Error (#1'Naskenovan operace nen kooperace nebude do objednvky pidna'#1); + canCont := false; + skipMe := true; + end; + + if (canCont) and (operUzavrena) then + begin + Helios.Error (#1'Naskenovan kooperace je uzavena, nebude do objednvky pidna'#1); + canCont := false; + skipMe := true; + end; + + if (canCont) and (ksZive<=0) then + begin + Helios.Error (#1'Naskenovan kooperace nem iv kusy, nebude do objednvky pidna'#1); + canCont := false; + skipMe := true; + end; + + if (canCont) then + begin + idOperace := FieldByNameValues('ID'); // idPrPostup + if (idPrikaz=0) then + idPrikaz := FieldByNameValues('IDPrikaz'); + + ksNaStrom := 1; + mjDavky := ''; + + if (skenPrikaz) then + begin + lSQL := 'SELECT TOP(1) k.MJEvidence FROM ' + tblVPr + ' p JOIN ' + tblKZ + ' k ON (k.ID=p.IDTabKmen) WHERE p.ID=' + idPrikaz.ToString; + mjDavky := helUtils.getHeliosStrVal (Helios, '', lSQL); + end + else + begin + mjDavky := helUtils.getHeliosStrVal (Helios, '', 'SELECT TOP(1) MJ FROM ' + tblDavky + ' WHERE ID=' + helUtils.IfThenInt (idDavkaRodic>0, idDavkaRodic, idDavka).ToString); + ksZive := helUtils.getHeliosFloatVal (Helios, 0, 'SELECT SUM(Mnozstvi-MnozstviVKoop) FROM ' + tblDavky + ' WHERE IDDavkyHlavni=' + idDavka.ToString); + end; + + if (mjDavky.ToLower='str') then + ksNaStrom := helUtils.getHeliosIntVal (Helios, 0, 'SELECT ISNULL(dbo.ef_HDC_PocetKsNaStromek (' + idKmen.ToString + ', NULL, NULL, NULL, NULL), 0)'); + + + if not(skenPrikaz) then + ksZive := helUtils.getHeliosFloatVal (Helios, 0, 'SELECT SUM(MnozstviKs-OdvedenoKs-MnozstviVKoop) FROM ' + tblDavky + ' WHERE IDDavkyHlavni=' + idDavka.ToString); + + if (ksZive<=0) and not(skenPrikaz) then + begin + Helios.Error ('V dvce '#1 + numDavka + #1 + ' nezbvaj na tuto operaci kusy.'); + edtBarcode.Text := ''; + canCont := false; + skipMe := true; + end + else + begin + if not(skenPrikaz) then + begin + lSQL := 'SELECT p.StavPrikazu FROM ' + tblVPr + ' p JOIN ' + tblDavky + ' d ON (d.IDPrikaz=p.ID) WHERE d.IDDavkyHlavni=' + idDavka.ToString; + stavVPr := helUtils.getHeliosIntVal (Helios, 0, lSQL); + if (stavVPr<>30) then + canCont := false; + end; + + if not(canCont) then + begin + Helios.Error (#1'Ne vechny pkazy tto dvky jsou ve stavu Zadno, NELZE pokraovat.'#1); + edtBarcode.Text := ''; + skipMe := true; + end + else + begin + if (idKoopNew=0) and (idKoop>0) then + idKoopNew := idKoop; + + radaPrikaz := helUtils.getHeliosStrVal (Helios, '', 'SELECT RadaPrikaz FROM ' + tblVPr + ' WHERE ID=' + idPrikaz.ToString); + + typDavky := 0; + if (radaPrikaz.StartsWith('224')) then + typDavky := 4; + + if not(skenPrikaz) then + tempSum3 := SumPolozkyDleDavky (locIDDavkaSelf) + else + tempSum3 := SumPolozkyDlePrikazu (idPrikaz); + + skipMe := false; + + lSQL := 'SELECT SUM(Kusy_pozadovane-KusyVKoop)-' + tempSum3.ToString.Replace(',', '.') + ' FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND Typ=2'; + if not(skenPrikaz) then + lSQL := lSQL + ' AND IDPrikaz IN (SELECT IDPrikazVyssiVyssi FROM ' + tblDavky + ' WHERE DruhDavky=4 And IDDavkyHlavni=' + idDavka.ToString + ')' + else + lSQL := lSQL + ' AND IDPrikaz=' + idPrikaz.ToString + ' AND ID=' + idOperace.ToString; + lSQL := lSQL + ' AND IDkooperace=' + idKoop.ToString; + + + if not(skipMe) then + begin + if not(dataMod.dm.tblKoopObjR.Active) then + dataMod.dm.tblKoopObjR.Open; + + if not(dataMod.dm.tblInsOperace.Active) then + dataMod.dm.tblInsOperace.Open; + dataMod.dm.tblInsOperace.Append; + try + try + dataMod.dm.tblInsOperace.FieldByName('IdPrPostup').AsInteger := idOperace; + dataMod.dm.tblInsOperace.FieldByName('IDVPr').AsInteger := idPrikaz; + dataMod.dm.tblInsOperace.FieldByName('Kusy').AsExtended := ksZive; + dataMod.dm.tblInsOperace.FieldByName('RegCis').AsString := rc; + dataMod.dm.tblInsOperace.FieldByName('RadaPrikaz').AsString := radaPrikaz; + dataMod.dm.tblInsOperace.FieldByName('Doklad').AsInteger := dokladPrP; + dataMod.dm.tblInsOperace.FieldByName('Alt').AsString := altPrP; + dataMod.dm.tblInsOperace.FieldByName('KsNaStr').AsInteger := ksNaStrom; + dataMod.dm.tblInsOperace.FieldByName('IDDavka').AsInteger := idDavka; + dataMod.dm.tblInsOperace.FieldByName('IDDavkaRodic').AsInteger := idDavkaRodic; + dataMod.dm.tblInsOperace.FieldByName('IDKooperace').AsInteger := idKoop; + dataMod.dm.tblInsOperace.FieldByName('KodKoop').AsString := kodKoop; + dataMod.dm.tblInsOperace.Post; + edtBarcode.Text := ''; + lblTypKodu.Caption := ''; + except + dataMod.dm.tblInsOperace.Cancel; + end; + finally + + end; + end; + + end; + + end; + + + end; + + + Next; + end; + end; + + + end; // bc.startsWith A + bc.EndsWith B + end; // typSkenKod=2 + + + + end; // edtBarcode.Text + end; + + + + + procedure TformGenKoopObj.FormShow (Sender: TObject); + begin + pgCtrl.ActivePage := shHlavicky; + shNovaObj.TabVisible := false; + + if not(dataMod.dm.tblKoopObjH.Active) then + dataMod.dm.tblKoopObjH.Open; + end; + + + + + procedure TformGenKoopObj.shNovaObjShow (Sender: TObject); + begin + typSkenKod := 1; + cOrgKooperant := -1; + dtPozadDodani.Date := IncDay (DateOf(Now), 1); + self.ActiveControl := dtPozadDodani; + edtBarcode.Visible := false; + end; + +end. diff --git a/frmGenTPV.pas b/frmGenTPV.pas index b8f0649..ddef1f4 100644 --- a/frmGenTPV.pas +++ b/frmGenTPV.pas @@ -92,50 +92,52 @@ uses System.StrUtils, helUtils; idKZ, idKZsub: integer; genVob, genVod: Boolean; i: integer; + wF: TForm; begin lSQL:= Testy; if (lSQL='') then begin - waitStart(self, 'Generovn karet...', 1, $0000FF ); - x:= ''; + wF := helUtils.waitStart (self, 'Generovn karet...', 1, $0000FF, true); + x := ''; - lSQL:= 'IF OBJECT_ID(N''dbo._temp_TabGenKartySTPV'') IS NOT NULL DELETE FROM dbo._temp_TabGenKartySTPV WHERE Autor=SUSER_SNAME()' + CRLF; - lSQL:= lSQL + 'IF OBJECT_ID(N''dbo._temp_TabGenKartySTPV'') IS NOT NULL IF NOT EXISTS(SELECT * FROM dbo._temp_TabGenKartySTPV)'; - lSQL:= lSQL + ' DROP TABLE dbo._temp_TabGenKartySTPV' + CRLF + 'DROP TABLE IF EXISTS #TabGenKartySTPV'; - Helios.ExecSQL(lSQL); + lSQL := 'IF OBJECT_ID(N''dbo._temp_TabGenKartySTPV'') IS NOT NULL DELETE FROM dbo._temp_TabGenKartySTPV WHERE Autor=SUSER_SNAME()' + CRLF; + lSQL := lSQL + 'IF OBJECT_ID(N''dbo._temp_TabGenKartySTPV'') IS NOT NULL IF NOT EXISTS(SELECT * FROM dbo._temp_TabGenKartySTPV)'; + lSQL := lSQL + ' DROP TABLE dbo._temp_TabGenKartySTPV' + CRLF + 'DROP TABLE IF EXISTS #TabGenKartySTPV'; + Helios.ExecSQL (lSQL); - lSQL:= 'CREATE TABLE #TabGenKartySTPV (RegCis NVARCHAR(30) NOT NULL, RegCisNizsi NVARCHAR(30), Nazev NVARCHAR(100) DEFAULT N'''', Technologie NCHAR(5) NOT NULL'; - lSQL:= lSQL + ', PrvniObal TINYINT NOT NULL, VzorCisloKarty NVARCHAR(33) NOT NULL, Sklad NVARCHAR(30), SkupZbo NVARCHAR(3) NOT NULL DEFAULT N'''', GenPxx BIT DEFAULT 1'; - lSQL:= lSQL + ', RCPxxFin BIT DEFAULT 1, KodMat NVARCHAR(5) DEFAULT N'''', Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME())' + CRLF; - lSQL:= lSQL + 'INSERT #TabGenKartySTPV (RegCis, RegCisNizsi, Nazev, Technologie, PrvniObal, VzorCisloKarty, SkupZbo, GenPxx, RCPxxFin, Sklad, KodMat) SELECT N'; - lSQL:= lSQL + edtRegC.Text.QuotedString + ', N' + edtRegCN.Text.QuotedString + ', N' + edtNazev.Text.QuotedString + ', N' + edtTech.Text.QuotedString + ', '; - lSQL:= lSQL + cboxPrvniObal.ItemIndex.ToString + ', N' + edtVzorTPV.Text.QuotedString + ', N' + cboxVOD.Text.QuotedString + ', ' + IfThen(cbGenSpodek.Checked, '1', '0'); - lSQL:= lSQL + ', ' + IfThen(cbRCdleFin.Checked, '1', '0'); + lSQL := 'CREATE TABLE #TabGenKartySTPV (RegCis NVARCHAR(30) NOT NULL, RegCisNizsi NVARCHAR(30), Nazev NVARCHAR(100) DEFAULT N'''', Technologie NCHAR(5) NOT NULL'; + lSQL := lSQL + ', PrvniObal TINYINT NOT NULL, VzorCisloKarty NVARCHAR(33) NOT NULL, Sklad NVARCHAR(30), SkupZbo NVARCHAR(3) NOT NULL DEFAULT N'''', GenPxx BIT DEFAULT 1'; + lSQL := lSQL + ', RCPxxFin BIT DEFAULT 1, KodMat NVARCHAR(5) DEFAULT N'''', Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME())' + CRLF; + lSQL := lSQL + 'INSERT #TabGenKartySTPV (RegCis, RegCisNizsi, Nazev, Technologie, PrvniObal, VzorCisloKarty, SkupZbo, GenPxx, RCPxxFin, Sklad, KodMat) SELECT N'; + lSQL := lSQL + edtRegC.Text.QuotedString + ', N' + edtRegCN.Text.QuotedString + ', N' + edtNazev.Text.QuotedString + ', N' + edtTech.Text.QuotedString + ', '; + lSQL := lSQL + cboxPrvniObal.ItemIndex.ToString + ', N' + edtVzorTPV.Text.QuotedString + ', N' + cboxVOD.Text.QuotedString + ', ' + IfThen(cbGenSpodek.Checked, '1', '0'); + lSQL := lSQL + ', ' + IfThen(cbRCdleFin.Checked, '1', '0'); for i:=0 to Helios.QueryBrowse.FieldCount-1 do begin - xx:= Helios.QueryBrowse.Fields(i).FieldName; + xx := Helios.QueryBrowse.Fields(i).FieldName; if (xx='IDSklad') then - x:= VarToStr(Helios.QueryBrowse.FieldByNameValues('IDSklad')); + x := VarToStr(Helios.QueryBrowse.FieldByNameValues('IDSklad')); end; - lSQL:= lSQL + ', ' + IfThen(x='', 'NULL', 'N' + x.QuotedString); - lSQL:= lSQL + ', N' + IfThen(edtMat.Text='', 'ULL', edtMat.Text.QuotedString); + lSQL := lSQL + ', ' + IfThen(x='', 'NULL', 'N' + x.QuotedString); + lSQL := lSQL + ', N' + IfThen(edtMat.Text='', 'ULL', edtMat.Text.QuotedString); try if (jeTest) then - lSQL:= StringReplace(lSQL, '#TabGenKar', 'dbo._temp_TabGenKar', [rfReplaceAll]); - Helios.ExecSQL(lSQL); + lSQL := StringReplace(lSQL, '#TabGenKar', 'dbo._temp_TabGenKar', [rfReplaceAll]); + Helios.ExecSQL (lSQL); if not(jeTest) then - Helios.ExecSQL('IF OBJECT_ID(N''dbo.ep_TPV_GenKarty'') IS NOT NULL EXEC dbo.ep_TPV_GenKarty'); + Helios.ExecSQL ('IF OBJECT_ID(N''dbo.ep_TPV_GenKarty'') IS NOT NULL EXEC dbo.ep_TPV_GenKarty'); Close; except on E:Exception do begin - waitEnd; - Helios.Error(#1 + 'CHYBA: ' + #1 + E.Message); + waitEnd (wF); + Helios.Error (#1 + 'CHYBA: ' + #1 + E.Message); end; end; - waitEnd; + if Assigned(wF) then + waitEnd (wF); end else - Helios.Error(#1 + 'CHYBA: ' + #1 + lSQL); + Helios.Error (#1 + 'CHYBA: ' + #1 + lSQL); end; diff --git a/frmOOPPohyb.pas b/frmOOPPohyb.pas index 6539102..1e97973 100644 --- a/frmOOPPohyb.pas +++ b/frmOOPPohyb.pas @@ -82,17 +82,17 @@ uses System.StrUtils, System.DateUtils, System.UITypes, - procedure TaskDlgOK(titulek, nadpis, textX: string; ikona: byte); + procedure TaskDlgOK (titulek, nadpis, textX: string; ikona: byte); begin with TTaskDialog.Create(nil) do begin try - Caption:= titulek; - Title:= nadpis; - Text:= textX; - MainIcon:= ikona; - DefaultButton:= tcbOK; - CommonButtons:= [tcbOk]; + Caption := titulek; + Title := nadpis; + Text := textX; + MainIcon := ikona; + DefaultButton := tcbOK; + CommonButtons := [tcbOk]; Execute; finally Free; @@ -102,19 +102,20 @@ uses System.StrUtils, System.DateUtils, System.UITypes, - function TaskDlgYesNo(titulek, nadpis, textX: string; ikona: byte; defBtn: TTaskDialogCommonButton): System.UITypes.TModalResult; + + function TaskDlgYesNo (titulek, nadpis, textX: string; ikona: byte; defBtn: TTaskDialogCommonButton): System.UITypes.TModalResult; begin with TTaskDialog.Create(nil) do begin try - Caption:= titulek; - Title:= nadpis; - Text:= textX; - MainIcon:= ikona; - DefaultButton:= defBtn; - CommonButtons:= [tcbYes, tcbNo]; + Caption := titulek; + Title := nadpis; + Text := textX; + MainIcon := ikona; + DefaultButton := defBtn; + CommonButtons := [tcbYes, tcbNo]; Execute; - result:= ModalResult; + result := ModalResult; finally Free; end; @@ -124,7 +125,6 @@ uses System.StrUtils, System.DateUtils, System.UITypes, - procedure TformOOPPohyb.DotazNaUkonceni; begin if ((TaskDlgYesNo('', 'Chcete ukončit zadávání ?', '(data nebudou uložena)', tdiInformation, tcbNo))=mrYes) then @@ -134,161 +134,162 @@ uses System.StrUtils, System.DateUtils, System.UITypes, - function TformOOPPohyb.NactiUdajeZamestnance(cisZam: Integer): Boolean; + function TformOOPPohyb.NactiUdajeZamestnance (cisZam: Integer): Boolean; begin - result:= false; + result := false; if (cisZam>0) then begin if (helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString)) then begin - idZam:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString); + idZam := helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString); if (idZam>0) and (helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM (VALUES(1)) t1(col1) WHERE COL_LENGTH(N' + tblCisZamE.QuotedString + ', N''_OOP_Profese'') IS NOT NULL')) then begin - idProf:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ISNULL(_OOP_Profese, 0) FROM ' + tblCisZamE + ' WHERE ID=' + idZam.ToString); + idProf := helUtils.getHeliosIntVal(Helios, 0, 'SELECT ISNULL(_OOP_Profese, 0) FROM ' + tblCisZamE + ' WHERE ID=' + idZam.ToString); if (idProf>0) then begin - edtProfese.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Profese FROM ' + tblOOPProfese + ' WHERE ID=' + idProf.ToString); - if (edtDatum.CanFocus) then - edtDatum.SetFocus; + edtProfese.Text := helUtils.getHeliosStrVal(Helios, '', 'SELECT Profese FROM ' + tblOOPProfese + ' WHERE ID=' + idProf.ToString); + self.ActiveControl := edtDatum; end else - edtProfese.Text:= ''; + edtProfese.Text := ''; end; - edtPrijmJm.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT PrijmeniJmeno FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString); - edtStredisko.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Stredisko FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString); - edtStrediskoText.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev FROM ' + tblStrom + ' WHERE Cislo=N' + edtStredisko.Text.QuotedString); - stredOld:= helUtils.getHeliosStrVal(Helios, '', 'SELECT TOP(1) StrediskoOld FROM ' + tblOOPProfese + ' WHERE Stredisko=N' + edtStredisko.Text.QuotedString); - edtStrediskoOld.Text:= stredOld; - result:= true; + edtPrijmJm.Text := helUtils.getHeliosStrVal (Helios, '', 'SELECT PrijmeniJmeno FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString); + edtStredisko.Text := helUtils.getHeliosStrVal (Helios, '', 'SELECT Stredisko FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString); + edtStrediskoText.Text := helUtils.getHeliosStrVal (Helios, '', 'SELECT Nazev FROM ' + tblStrom + ' WHERE Cislo=N' + edtStredisko.Text.QuotedString); + stredOld := helUtils.getHeliosStrVal (Helios, '', 'SELECT TOP(1) StrediskoOld FROM ' + tblOOPProfese + ' WHERE Stredisko=N' + edtStredisko.Text.QuotedString); + edtStrediskoOld.Text := stredOld; + result := true; end end else begin - TaskDlgOK('POZOR', 'CHYBA', 'Uvedený zaměstnanec nebyl nalezen nebo nemáte právo jej vybrat.', tdiError); - edtOsCislo.Text:= ''; - edtPrijmJm.Text:= ''; - cisZam:= 0; - idZam:= 0; + TaskDlgOK ('POZOR', 'CHYBA', 'Uvedený zaměstnanec nebyl nalezen nebo nemáte právo jej vybrat.', tdiError); + edtOsCislo.Text := ''; + edtPrijmJm.Text := ''; + cisZam := 0; + idZam := 0; end; end; - procedure TformOOPPohyb.btnOKClick(Sender: TObject); + + procedure TformOOPPohyb.btnOKClick (Sender: TObject); var lSQL: string; begin if (cisZam>0) and (idPolozka>0) then begin - lSQL:= 'INSERT ' + tblOOPPohyby + ' (IDPolozky, Datum, CisloZam, Mnozstvi, Poznamka, IDProfese) SELECT ' + idPolozka.ToString + ', CONVERT(date, N' - + edtDatum.DateTime.Format('').QuotedString + ', 104), ' + cisZam.ToString + ', ' + edtMnoz.Value.ToString + ', N' + IfThen(memoPozn.Text='', 'ULL', memoPozn.Text.QuotedString) - + ', ' + IfThen(idProf=0, 'NULL', idProf.ToString); - Helios.ExecSQL(lSQL); + lSQL := 'INSERT ' + tblOOPPohyby + ' (IDPolozky, Datum, CisloZam, Mnozstvi, Poznamka, IDProfese) SELECT ' + idPolozka.ToString + ', CONVERT(date, N' + + edtDatum.DateTime.Format('').QuotedString + ', 104), ' + cisZam.ToString + ', ' + edtMnoz.Value.ToString + ', N' + IfThen(memoPozn.Text='', 'ULL', memoPozn.Text.QuotedString) + + ', ' + IfThen(idProf=0, 'NULL', idProf.ToString); + Helios.ExecSQL (lSQL); Close; end else begin - TaskDlgOK('POZOR', 'CHYBA', 'Nebyly zadány všechny potřebné informace.', tdiWarning); - if (idPolozka=0) and (edtPolozka.CanFocus) then - edtPolozka.SetFocus; - if (cisZam=0) and (edtOsCislo.CanFocus) then - edtOsCislo.SetFocus; + TaskDlgOK ('POZOR', 'CHYBA', 'Nebyly zadány všechny potřebné informace.', tdiWarning); + if (idPolozka=0) then + self.ActiveControl := edtPolozka; + if (cisZam=0) then + self.ActiveControl := edtOsCislo; end; end; - procedure TformOOPPohyb.btnStornoClick(Sender: TObject); + + procedure TformOOPPohyb.btnStornoClick (Sender: TObject); begin Close; end; - procedure TformOOPPohyb.edtOsCisloButtonClick(Sender: TObject); + + procedure TformOOPPohyb.edtOsCisloButtonClick (Sender: TObject); var c: integer; podm: string; begin - podm:= IfThen(superUserOOP, '', 'TabCisZam.Stredisko LIKE N' + (strediskoUser + '%').QuotedString); - podm:= podm + IfThen(podm<>'', ' AND ', '') + 'TabCisZam.ID IN (SELECT ZamestnanecID FROM ' + tblZamMzd + ' WHERE StavES=0 AND IdObdobi=(SELECT ID FROM ' + tblMzdObd + ' WHERE Rok=' - + YearOf(Now).ToString + ' AND Mesic=' + MonthOf(Now).ToString + ') AND ISNULL(DatumUkonceniPP, N''20991231'')>GETDATE() )'; + podm := IfThen(superUserOOP, '', 'TabCisZam.Stredisko LIKE N' + (strediskoUser + '%').QuotedString); + podm := podm + IfThen(podm<>'', ' AND ', '') + 'TabCisZam.ID IN (SELECT ZamestnanecID FROM ' + tblZamMzd + ' WHERE StavES=0 AND IdObdobi=(SELECT ID FROM ' + tblMzdObd + ' WHERE Rok=' + + YearOf(Now).ToString + ' AND Mesic=' + MonthOf(Now).ToString + ') AND ISNULL(DatumUkonceniPP, N''20991231'')>GETDATE() )'; if (Helios.Prenos(bidCisZam, 'TabCisZam.Cislo', oVar1, podm, 'Zaměstnanec', true)) then begin - cisZam:= oVar1; - edtOsCislo.Text:= cisZam.ToString; + cisZam := oVar1; + edtOsCislo.Text := cisZam.ToString; if (edtOsCislo.Text<>'') then begin if not(TryStrToInt(edtOsCislo.Text, c)) then - c:= 0; - cisZam:= c; + c := 0; + cisZam := c; if (NactiUdajeZamestnance(cisZam)) then - if (edtProfese.CanFocus) then - edtProfese.SetFocus; + self.ActiveControl := edtProfese; end else - cisZam:= 0; + cisZam := 0; end; if (edtOsCislo.Modified) then begin - idPolozka:= 0; - edtPolozka.Text:= ''; - edtPolozkaText.Text:= ''; + idPolozka := 0; + edtPolozka.Text := ''; + edtPolozkaText.Text := ''; end; end; - procedure TformOOPPohyb.edtOsCisloExit(Sender: TObject); + + procedure TformOOPPohyb.edtOsCisloExit (Sender: TObject); var lSQL: string; c: integer; nulujZam: boolean; begin - nulujZam:= true; - edtOsCislo.Text:= edtOsCislo.Text.Trim; + nulujZam := true; + edtOsCislo.Text := edtOsCislo.Text.Trim; if (edtOsCislo.Text<>'') then begin - nulujZam:= false; + nulujZam := false; if not(TryStrToInt(edtOsCislo.Text, c)) then - c:= 0; - cisZam:= c; - idZam:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString); + c := 0; + cisZam := c; + idZam := helUtils.getHeliosIntVal (Helios, 0, 'SELECT ID FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString); if not(superUserOOP) then if not(helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString + ' AND Stredisko LIKE N' + (strediskoUser + '%').QuotedString)) then - nulujZam:= true; + nulujZam := true; - lSQL:= 'SELECT 1 FROM ' + tblZamMzd + ' WHERE ZamestnanecId=' + idZam.ToString + ' AND IdObdobi=(SELECT ID FROM ' + tblMzdObd + ' WHERE Rok=' + YearOf(Now).ToString - + ' AND Mesic=' + MonthOf(Now).ToString + ') AND StavES=0 AND ISNULL(DatumUkonceniPP, N''20991231'')>GETDATE()'; + lSQL := 'SELECT 1 FROM ' + tblZamMzd + ' WHERE ZamestnanecId=' + idZam.ToString + ' AND IdObdobi=(SELECT ID FROM ' + tblMzdObd + ' WHERE Rok=' + YearOf(Now).ToString + + ' AND Mesic=' + MonthOf(Now).ToString + ') AND StavES=0 AND ISNULL(DatumUkonceniPP, N''20991231'')>GETDATE()'; if not(helUtils.sqlExistsTestGeneral(Helios, lSQL)) then - nulujZam:= true; + nulujZam := true; if (nulujZam) then begin - cisZam:= 0; - idZam:= 0; - edtOsCislo.Text:= ''; - edtPrijmJm.Text:= ''; + cisZam := 0; + idZam := 0; + edtOsCislo.Text := ''; + edtPrijmJm.Text := ''; end; if (NactiUdajeZamestnance(cisZam)) then - if (edtProfese.CanFocus) then - edtProfese.SetFocus; + self.ActiveControl := edtProfese; end; if (edtOsCislo.Modified) then begin - idPolozka:= 0; - edtPolozka.Text:= ''; - edtPolozkaText.Text:= ''; + idPolozka := 0; + edtPolozka.Text := ''; + edtPolozkaText.Text := ''; end; if (nulujZam) then begin - cisZam:= 0; - idZam:= 0; - edtOsCislo.Text:= ''; - edtPrijmJm.Text:= ''; + cisZam := 0; + idZam := 0; + edtOsCislo.Text := ''; + edtPrijmJm.Text := ''; end; end; @@ -296,21 +297,21 @@ uses System.StrUtils, System.DateUtils, System.UITypes, - procedure TformOOPPohyb.edtPrijmJmKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure TformOOPPohyb.edtPrijmJmKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=VK_ESCAPE) then DotazNaUkonceni; end; - procedure TformOOPPohyb.edtPolozkaKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure TformOOPPohyb.edtPolozkaKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=VK_ESCAPE) then DotazNaUkonceni; end; - procedure TformOOPPohyb.edtOsCisloKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure TformOOPPohyb.edtOsCisloKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=VK_ESCAPE) then DotazNaUkonceni; @@ -319,76 +320,76 @@ uses System.StrUtils, System.DateUtils, System.UITypes, - function TformOOPPohyb.MamNarokNaPolozku(var outMsg: string): Boolean; + function TformOOPPohyb.MamNarokNaPolozku (var outMsg: string): Boolean; var lSQL, msg: string; poslVyd: TDateTime; duvod, zivotnostTxt: string; b: boolean; rozdilDnu, zivotnostDnu: integer; begin - result:= false; - outMsg:= ''; + result := false; + outMsg := ''; - stredisko:= edtStredisko.Text; - stredOld:= edtStrediskoOld.Text; + stredisko := edtStredisko.Text; + stredOld := edtStrediskoOld.Text; if (idPolozka=0) then - outMsg:= 'Nelze identifikovat ID položky' + outMsg := 'Nelze identifikovat ID položky' else if (cisZam=0) then - outMsg:= 'Není identifikován zaměstnanec' + outMsg := 'Není identifikován zaměstnanec' else begin - lSQL:= 'SELECT TOP(1) Datum FROM ' + tblOOPPohyby + ' WHERE IDPolozky=' + idPolozka.ToString + ' AND CisloZam=' + cisZam.ToString + ' ORDER BY Datum DESC'; - poslVyd:= helUtils.getHeliosDateTimeVal(Helios, 0, lSQL); // default 31.12.1899 = 0 + lSQL := 'SELECT TOP(1) Datum FROM ' + tblOOPPohyby + ' WHERE IDPolozky=' + idPolozka.ToString + ' AND CisloZam=' + cisZam.ToString + ' ORDER BY Datum DESC'; + poslVyd := helUtils.getHeliosDateTimeVal (Helios, 0, lSQL); // default 31.12.1899 = 0 - lSQL:= 'SELECT 1 FROM ' + tblOOPPotrebnost + ' WHERE IDPolozky=' + idPolozka.ToString + ' AND IDProfese=' + idProf.ToString + ' AND Stredisko=N' + stredisko.QuotedString; + lSQL := 'SELECT 1 FROM ' + tblOOPPotrebnost + ' WHERE IDPolozky=' + idPolozka.ToString + ' AND IDProfese=' + idProf.ToString + ' AND Stredisko=N' + stredisko.QuotedString; if (helUtils.sqlExistsTestGeneral(Helios, lSQL)) then begin - lSQL:= 'SELECT d.Kod FROM ' + tblOOPPotrebnost + ' p INNER JOIN ' + tblOOPDuvod + ' d ON (d.ID=p.IDDuvod) WHERE p.IDPolozky=' + idPolozka.ToString - + ' AND p.IDProfese=' + idProf.ToString + ' AND p.Stredisko=N' + stredisko.QuotedString; - duvod:= helUtils.getHeliosStrVal(Helios, '', lSQL); + lSQL := 'SELECT d.Kod FROM ' + tblOOPPotrebnost + ' p INNER JOIN ' + tblOOPDuvod + ' d ON (d.ID=p.IDDuvod) WHERE p.IDPolozky=' + idPolozka.ToString + + ' AND p.IDProfese=' + idProf.ToString + ' AND p.Stredisko=N' + stredisko.QuotedString; + duvod := helUtils.getHeliosStrVal(Helios, '', lSQL); if (duvod='1') then begin - outMsg:= 'Důvod výměny - IHNED'; - result:= true; + outMsg := 'Důvod výměny - IHNED'; + result := true; end else if (duvod='Z') and (1=0) then begin - outMsg:= 'Důvod výměny - SEZÓNNÍ POLOŽKA'; - result:= true; + outMsg := 'Důvod výměny - SEZÓNNÍ POLOŽKA'; + result := true; end else if (duvod='2') or (duvod='Z') then begin - outMsg:= ''; + outMsg := ''; - b:= false; - lSQL:= 'SELECT (ISNULL(ZivotnostMin, 0) * CONVERT(int, CASE ISNULL(ZivotnostMinDruh, N'''') WHEN N''D'' THEN 1 WHEN N''M'' THEN 31 WHEN N''R'' THEN 365 ELSE 0 END))' - + ' AS PocetDnu FROM ' + tblOOPPotrebnost + ' WHERE IDProfese=' + idProf.ToString + ' AND IDPolozky=' + idPolozka.ToString + ' AND Stredisko=N' + stredisko.QuotedString; - zivotnostDnu:= helUtils.getHeliosIntVal(Helios, 0, lSQL); + b := false; + lSQL := 'SELECT (ISNULL(ZivotnostMin, 0) * CONVERT(int, CASE ISNULL(ZivotnostMinDruh, N'''') WHEN N''D'' THEN 1 WHEN N''M'' THEN 31 WHEN N''R'' THEN 365 ELSE 0 END))' + + ' AS PocetDnu FROM ' + tblOOPPotrebnost + ' WHERE IDProfese=' + idProf.ToString + ' AND IDPolozky=' + idPolozka.ToString + ' AND Stredisko=N' + stredisko.QuotedString; + zivotnostDnu := helUtils.getHeliosIntVal(Helios, 0, lSQL); if (poslVyd>0) then begin - rozdilDnu:= DaysBetween(poslVyd, edtDatum.DateTime); + rozdilDnu := DaysBetween(poslVyd, edtDatum.DateTime); if (rozdilDnu'', ' (' + zivotnostTxt + ')', '') + CRLF + 'Chcete ji přesto vydat ?', tdiWarning, tcbNo)=mrYes) then begin result:= true; - btnOK.Enabled:= true; + btnOK.Enabled := true; end else - btnOK.Enabled:= false; + btnOK.Enabled := false; { with TTaskDialog.Create(nil) do begin @@ -419,94 +420,95 @@ uses System.StrUtils, System.DateUtils, System.UITypes, end else begin - outMsg:= 'Položka má nastavenu minimální životnost ale nebyl dohledán předešlý výdej.'; - result:= true; - btnOK.Enabled:= true; + outMsg := 'Položka má nastavenu minimální životnost ale nebyl dohledán předešlý výdej.'; + result := true; + btnOK.Enabled := true; end; end else begin - outMsg:= 'V tabulce Potřebnosti nebyl dohledán důvod výdeje položky'; + outMsg := 'V tabulce Potřebnosti nebyl dohledán důvod výdeje položky'; end; end else begin - outMsg:= 'Na položku nemá zaměstnanec právo, není zadána Potřebnost'; - idPolozka:= 0; - polozka:= ''; - polozkaNum:= ''; - edtPolozka.Text:= ''; - edtPolozkaText.Text:= ''; - if (edtPolozka.CanFocus) then - edtPolozka.SetFocus; + outMsg := 'Na položku nemá zaměstnanec právo, není zadána Potřebnost'; + idPolozka := 0; + polozka := ''; + polozkaNum := ''; + edtPolozka.Text := ''; + edtPolozkaText.Text := ''; + self.ActiveControl := edtPolozka; end; end; end; - procedure TformOOPPohyb.edtPolozkaButtonClick(Sender: TObject); + + procedure TformOOPPohyb.edtPolozkaButtonClick (Sender: TObject); var podm: string; begin - podm:= 'hvw_TabOOP_Polozky.ID IN (SELECT IDPolozky FROM ' + tblOOPPotrebnost + ' WHERE (StrediskoOld=N' + edtStrediskoOld.Text.QuotedString + ' OR Stredisko=N' + edtStredisko.Text.QuotedString - + ') AND IDProfese=' + idProf.ToString + ')'; + podm := 'hvw_TabOOP_Polozky.ID IN (SELECT IDPolozky FROM ' + tblOOPPotrebnost + ' WHERE (StrediskoOld=N' + edtStrediskoOld.Text.QuotedString + ' OR Stredisko=N' + edtStredisko.Text.QuotedString + + ') AND IDProfese=' + idProf.ToString + ')'; if (bidOOPPolozky>0) then if Helios.Prenos2(bidOOPPolozky, 'hvw_TabOOP_Polozky.ID', 'hvw_TabOOP_Polozky.Cislo', oVar1, oVar2, podm, 'Položka', false, true, false, 1) then begin - idPolozka:= oVar1; - polozkaNum:= VarToStr(oVar2); - edtPolozka.Text:= polozkaNum; + idPolozka := oVar1; + polozkaNum := VarToStr(oVar2); + edtPolozka.Text := polozkaNum; if (LeftStr(polozkaNum,2)='N''') and (RightStr(polozkaNum,1)='''') then begin - polozkaNum:= polozkaNum.Substring(2, 255); - polozkaNum:= polozkaNum.Substring(0, Length(polozkaNum)-1); + polozkaNum := polozkaNum.Substring(2, 255); + polozkaNum := polozkaNum.Substring(0, Length(polozkaNum)-1); end; - edtPolozkaExit(Sender); + edtPolozkaExit (Sender); end; end; - procedure TformOOPPohyb.edtPolozkaEnter(Sender: TObject); + procedure TformOOPPohyb.edtPolozkaEnter (Sender: TObject); begin - infoUkazano:= false; + infoUkazano := false; end; - procedure TformOOPPohyb.edtPolozkaExit(Sender: TObject); + + procedure TformOOPPohyb.edtPolozkaExit (Sender: TObject); begin - edtPolozka.Text:= edtPolozka.Text.Trim; + edtPolozka.Text := edtPolozka.Text.Trim; if (edtPolozka.Text<>'') then begin if not(TryStrToInt(edtPolozka.Text, idPolozka)) then - idPolozka:= 0; - edtPolozkaText.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev FROM ' + tblOOPPolozky + ' WHERE ID=' + idPolozka.ToString); - polozkaNum:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Cislo FROM ' + tblOOPPolozky + ' WHERE ID=' + idPolozka.ToString); - polozka:= edtPolozkaText.Text; + idPolozka := 0; + edtPolozkaText.Text := helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev FROM ' + tblOOPPolozky + ' WHERE ID=' + idPolozka.ToString); + polozkaNum := helUtils.getHeliosStrVal(Helios, '', 'SELECT Cislo FROM ' + tblOOPPolozky + ' WHERE ID=' + idPolozka.ToString); + polozka := edtPolozkaText.Text; if not(MamNarokNaPolozku(outMsg)) then begin - btnOK.Enabled:= false; - edtPolozka.Text:= ''; - edtPolozkaText.Text:= ''; - idPolozka:= 0; - polozka:= ''; + btnOK.Enabled := false; + edtPolozka.Text := ''; + edtPolozkaText.Text := ''; + idPolozka := 0; + polozka := ''; if (outMsg<>'') and not(infoUkazano) then begin - TaskDlgOK('POZOR', 'CHYBA', outMsg, tdiWarning); - infoUkazano:= true; - outMsg:= ''; + TaskDlgOK ('POZOR', 'CHYBA', outMsg, tdiWarning); + infoUkazano := true; + outMsg := ''; end; end else begin - btnOK.Enabled:= true; + btnOK.Enabled := true; if (outMsg<>'') and not(infoUkazano) then begin - TaskDlgOK('POZOR', 'INFORMACE', outMsg, tdiWarning); - infoUkazano:= true; - outMsg:= ''; + TaskDlgOK ('POZOR', 'INFORMACE', outMsg, tdiWarning); + infoUkazano := true; + outMsg := ''; end; end; end; @@ -515,88 +517,89 @@ uses System.StrUtils, System.DateUtils, System.UITypes, - procedure TformOOPPohyb.edtPrijmJmButtonClick(Sender: TObject); + procedure TformOOPPohyb.edtPrijmJmButtonClick (Sender: TObject); var c: integer; begin if Helios.Prenos2(bidCisZam, 'TabCisZam.Cislo', 'TabCisZam.PrijmeniJmeno', oVar1, oVar2, '', 'Zaměstnanec', false, true, false, 1) then begin - cisZam:= oVar1; - edtOsCislo.Text:= cisZam.ToString; + cisZam := oVar1; + edtOsCislo.Text := cisZam.ToString; if not(TryStrToInt(edtOsCislo.Text, c)) then - c:= 0; - cisZam:= c; + c := 0; + cisZam := c; if (NactiUdajeZamestnance(cisZam)) then - if (edtProfese.CanFocus) then - edtProfese.SetFocus; + self.ActiveControl := edtProfese; end; end; - procedure TformOOPPohyb.edtProfeseButtonClick(Sender: TObject); + + procedure TformOOPPohyb.edtProfeseButtonClick (Sender: TObject); var lSQL, podm: string; c: integer; begin - podm:= 'hvw_TabOOP_Profese.StrediskoOld=N' + stredOld.QuotedString; + podm := 'hvw_TabOOP_Profese.StrediskoOld=N' + stredOld.QuotedString; if (bidOOPProfese>0) then if Helios.Prenos2(bidOOPProfese, 'hvw_TabOOP_Profese.ID', 'hvw_TabOOP_Profese.Profese', oVar1, oVar2, podm, 'Profese', false, true, false, 1) then begin if not(TryStrToInt(VarToStr(oVar1), c)) then - c:= 0; - idProf:= c; + c := 0; + idProf := c; // pokud existuje ext.sloupec, profesi uloz if (idZam>0) and (helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM (VALUES(1)) t1(col1) WHERE COL_LENGTH(N' + tblCisZamE.QuotedString + ', N''_OOP_Profese'') IS NOT NULL')) then begin - lSQL:= 'UPDATE ' + tblCisZamE + ' SET _OOP_Profese=' + IfThen(idProf=0, 'NULL', idProf.ToString) + ' WHERE ID=' + idZam.ToString + CRLF; + lSQL := 'UPDATE ' + tblCisZamE + ' SET _OOP_Profese=' + IfThen(idProf=0, 'NULL', idProf.ToString) + ' WHERE ID=' + idZam.ToString + CRLF; if (idProf>0) then - lSQL:= lSQL + 'IF (@@ROWCOUNT=0) INSERT ' + tblCisZamE + ' (ID, _OOP_Profese) SELECT ' + idZam.ToString + ', ' + idProf.ToString; - Helios.ExecSQL(lSQL); + lSQL := lSQL + 'IF (@@ROWCOUNT=0) INSERT ' + tblCisZamE + ' (ID, _OOP_Profese) SELECT ' + idZam.ToString + ', ' + idProf.ToString; + Helios.ExecSQL (lSQL); end; - profese:= VarToStr(oVar2); + profese := VarToStr(oVar2); if (LeftStr(profese,2)='N''') and (RightStr(profese,1)='''') then begin - profese:= profese.Substring(2, 255); - profese:= profese.Substring(0, Length(profese)-1); + profese := profese.Substring(2, 255); + profese := profese.Substring(0, Length(profese)-1); end; - edtProfese.Text:= profese; - if (edtDatum.CanFocus) then - edtDatum.SetFocus; + edtProfese.Text := profese; + self.ActiveControl := edtDatum; end; end; - procedure TformOOPPohyb.edtStrediskoButtonClick(Sender: TObject); + + procedure TformOOPPohyb.edtStrediskoButtonClick (Sender: TObject); begin if (Helios.Prenos(bidCisZam, 'TabCisZam.Cislo', oVar1, '', 'Zaměstnanec', true)) then begin - stredisko:= VarToStr(oVar1); - edtStredisko.Text:= stredisko; - edtStrediskoText.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev FROM ' + tblStrom + ' WHERE Cislo=N' + edtStredisko.Text.QuotedString); - stredOld:= helUtils.getHeliosStrVal(Helios, '', 'SELECT TOP(1) StrediskoOld FROM ' + tblOOPProfese + ' WHERE Stredisko=N' + edtStredisko.Text.QuotedString); - edtStrediskoOld.Text:= stredOld; + stredisko := VarToStr(oVar1); + edtStredisko.Text := stredisko; + edtStrediskoText.Text := helUtils.getHeliosStrVal (Helios, '', 'SELECT Nazev FROM ' + tblStrom + ' WHERE Cislo=N' + edtStredisko.Text.QuotedString); + stredOld := helUtils.getHeliosStrVal (Helios, '', 'SELECT TOP(1) StrediskoOld FROM ' + tblOOPProfese + ' WHERE Stredisko=N' + edtStredisko.Text.QuotedString); + edtStrediskoOld.Text := stredOld; end; end; - procedure TformOOPPohyb.FormShow(Sender: TObject); + + procedure TformOOPPohyb.FormShow (Sender: TObject); begin - bidOOPProfese:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_TabOOP_Profese'''); - bidOOPPolozky:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_TabOOP_Polozky'''); + bidOOPProfese := helUtils.getHeliosIntVal (Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_TabOOP_Profese'''); + bidOOPPolozky := helUtils.getHeliosIntVal (Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_TabOOP_Polozky'''); - edtDatum.DateTime:= Now; + edtDatum.DateTime := Now; - strediskoUser:= helUtils.getHeliosStrVal(Helios, '', 'SELECT z.Stredisko FROM ' + tblCisZam + ' z INNER JOIN ' + tblUserCfg + ' u ON (u.LoginName=z.LoginId) WHERE u.LoginName=SUSER_SNAME()'); - idZamUser:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblCisZam + ' WHERE LoginId=SUSER_SNAME()'); - superUserOOP:= false; + strediskoUser := helUtils.getHeliosStrVal (Helios, '', 'SELECT z.Stredisko FROM ' + tblCisZam + ' z INNER JOIN ' + tblUserCfg + ' u ON (u.LoginName=z.LoginId) WHERE u.LoginName=SUSER_SNAME()'); + idZamUser := helUtils.getHeliosIntVal (Helios, 0, 'SELECT ID FROM ' + tblCisZam + ' WHERE LoginId=SUSER_SNAME()'); + superUserOOP := false; if (idZamUser>0) and (helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM (VALUES(1)) t1(col1) WHERE COL_LENGTH(N' + tblCisZamE.QuotedString + ', N''_OOP_SuperUser'') IS NOT NULL')) then - superUserOOP:= helUtils.getHeliosBoolVal(Helios, false, 'SELECT CONVERT(bit, ISNULL(_OOP_SuperUser, 0)) FROM ' + tblCisZamE + ' WHERE ID=' + idZamUser.ToString); + superUserOOP := helUtils.getHeliosBoolVal (Helios, false, 'SELECT CONVERT(bit, ISNULL(_OOP_SuperUser, 0)) FROM ' + tblCisZamE + ' WHERE ID=' + idZamUser.ToString); if (jeTest) then - superUserOOP:= jeTest; + superUserOOP := jeTest; end; diff --git a/frmOdvTavby.dfm b/frmOdvTavby.dfm index a5fad39..8e46369 100644 --- a/frmOdvTavby.dfm +++ b/frmOdvTavby.dfm @@ -79,7 +79,7 @@ object formOdvTavby: TformOdvTavby Top = 87 Width = 467 Height = 540 - ActivePage = shOdvStr + ActivePage = shTavba Anchors = [akLeft, akTop, akRight] TabOrder = 3 object shTavba: TTabSheet diff --git a/frmOdvTavby.pas b/frmOdvTavby.pas index eb5a882..910e308 100644 --- a/frmOdvTavby.pas +++ b/frmOdvTavby.pas @@ -344,7 +344,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils; - function TformOdvTavby.TestMamNaPrevod(const sklFrom: string): boolean; + function TformOdvTavby.TestMamNaPrevod (const sklFrom: string): boolean; var lSQL: string; ksSkl: Extended; begin @@ -1155,7 +1155,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils; edtOpTavba.Text:= helUtils.StripChars(edtOpTavba.Text, ['''', '"', '-', ';', ' ']); if (edtOpTavba.Text<>'') then begin - ZjistiVOp(edtOpTavba.Text, true); + ZjistiVOp (edtOpTavba.Text, true); if (prik.stav=0) or (prik.stav>30) then Helios.Error(#1'Výrobní příkaz operace je již uzavřen.'#1); @@ -1183,7 +1183,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils; // edtOpVibr.Text:= helUtils.RemoveWords(edtVibrator.Text, ['null']); if (edtOpVibr.Text<>'') then begin - ZjistiVOp(edtOpVibr.Text, true); + ZjistiVOp (edtOpVibr.Text, true); if (prik.stav>30) or (prik.stav=0) or (prik.stav=10) then Helios.Error(#1'Výrobní příkaz je ve stavu Pořízení nebo je již uzavřen'#1) @@ -1197,7 +1197,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils; btnOKNew.Enabled:= false; btnOK.Enabled:= false; Helios.Error(#1'Na operaci nezbývají žádné kusy k odvedení !!'#1); - with Helios.OpenSQL('SELECT Doklad, Alt FROM ' + tblPrPost + ' WHERE IdOdchylkyDo IS NULL AND ID1=' + idVOp.ToString) do + with Helios.OpenSQL('SELECT Doklad, Alt FROM ' + tblPrPost + ' WHERE IdOdchylkyDo IS NULL AND ID=' + idVOp.ToString) do begin doklad:= VarToStr(FieldValues(0)); alt:= VarToStr(FieldValues(1)); @@ -1208,7 +1208,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils; end else begin - idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND ID1=' + idVOp.ToString); + idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND ID=' + idVOp.ToString); NactiPrikaz; edtTavbaV.SetFocus; end; @@ -1793,9 +1793,9 @@ uses System.DateUtils, System.AnsiStrings, helUtils; procedure TformOdvTavby.NactiPrikaz; - var lSQL, skl, eMsg, prac, rc: string; + var lSQL, skl, eMsg, prac, rc, bc: string; z, k: Extended; - idKZ: integer; + idKZ, cnt: integer; canCont, pracOK: boolean; begin prik.id:= 0; @@ -1805,12 +1805,14 @@ uses System.DateUtils, System.AnsiStrings, helUtils; prik.sklad:= ''; prik.stav:= 0; prik.mamP30:= false; + bc:= 'A' + idVOp.ToString + 'B'; if (idVPr>0) then begin skl:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Sklad FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString); + prac:= ''; - lSQL:= 'SELECT k.RegCis, k.Nazev1, p.RadaPrikaz, CASE WHEN ISNULL(o.MamMatecniOdlitek,0)=1 THEN ISNULL(o1.KSnaStrom,0) ELSE ISNULL(o.KSnaStrom,0) END'; + lSQL:= 'SELECT k.RegCis, k.Nazev1, p.RadaPrikaz, CASE WHEN ISNULL(o.MamMatecniOdlitek,0)=1 THEN ISNULL(o1.KSnaStrom,0) ELSE ISNULL(o.KSnaStrom,0) END AS KsNaStr'; lSQL:= lSQL + ', k.ID, p.StavPrikazu, k.SkupZbo FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' k ON (k.ID=p.IDTabKmen)'; lSQL:= lSQL + ' LEFT JOIN ' + tblOdlitky + ' o ON (k.RegCis=o.Odlitek) LEFT JOIN ' + tblOdlitky + ' o1 ON (o1.Odlitek=o.MatecniOdlitek)'; lSQL:= lSQL + ' WHERE p.ID=' + idVPr.ToString; @@ -1831,8 +1833,70 @@ uses System.DateUtils, System.AnsiStrings, helUtils; if (idVOp>0) and (pgCtrl.ActivePageIndex=shTavba.PageIndex) or (pgCtrl.ActivePageIndex=shVibrovani.PageIndex) or (pgCtrl.ActivePageIndex=shOdvStr.PageIndex) then begin canCont:= (lblOperace.Caption<>''); - lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o INNER JOIN ' + tblCPrac + ' p ON (o.pracoviste=p.ID) WHERE o.ID=' + idVOp.ToString; - prac:= helUtils.getHeliosStrVal(Helios, '', lSQL); + + lSQL:= 'SELECT COUNT(ID) FROM ' + tblPrPost + ' WHERE BarCode=N' + bc.QuotedString; + cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL); + if (cnt=0) then + begin + lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID=' + idVOp.ToString; + prac:= helUtils.getHeliosStrVal (Helios, '', lSQL); + end; + if (cnt=1) then + begin + idVOp:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT ID FROM ' + tblPrPost + ' WHERE BarCode=N' + bc.QuotedString); + if (idVOp>0) then + begin + lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID=' + idVOp.ToString; + prac:= helUtils.getHeliosStrVal (Helios, '', lSQL); + end; + end; + if (cnt>1) then + begin + idVOp:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT TOP(1) ID FROM ' + tblPrPost + ' WHERE BarCode=N' + bc.QuotedString + + ' AND IDOdchylkyDo IS NULL AND Priorita=0 ORDER BY ID DESC'); + if (idVOp>0) then + begin + lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID=' + idVOp.ToString; + prac:= helUtils.getHeliosStrVal (Helios, '', lSQL); + end; + end; + + + + if (prac='') then + begin + lSQL:= 'SELECT COUNT(o.ID) AS Pocet FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.Barcode=N' + + ('A' + idVOp.ToString + 'B').QuotedString; + cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL); + if (cnt=1) then + begin + lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.Barcode=N' + ('A' + idVOp.ToString + 'B').QuotedString; + prac:= helUtils.getHeliosStrVal (Helios, '', lSQL); + end; + if (cnt>1) then + begin + lSQL:= 'SELECT TOP(1) p.Pracoviste FROM ' + tblPrPost + ' o JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.Barcode=N' + + ('A' + idVOp.ToString + 'B').QuotedString + ' AND o.IDOdchylkyDo IS NULL AND o.Priorita=0 ORDER BY o.DatPorizeni DESC'; + prac:= helUtils.getHeliosStrVal (Helios, '', lSQL); + end; + if (prac='') then + begin + lSQL:= 'SELECT COUNT(o.ID) AS Pocet FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID1=' + idVOp.ToString; + cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL); + if (cnt=1) then + begin + lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID1=' + idVOp.ToString; + prac:= helUtils.getHeliosStrVal(Helios, '', lSQL); + end; + if (cnt>1) then + begin + lSQL:= 'SELECT TOP(1) p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID1=' + idVOp.ToString + + ' ORDER BY o.DatPorizeni DESC'; + prac:= helUtils.getHeliosStrVal(Helios, '', lSQL); + end; + end; + end; + // T09/T11 - tavba pracOK:= (prac='T11') or (prac='T09'); @@ -1845,6 +1909,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils; Helios.Error(#1 + rc + ': Naskenovaná operace ' + idVOp.ToString + ' není ODLÉVÁNÍ.'#1); edtOpTavba.Text:= ''; end; + // T12 - vibrace nebo T15 - rucni pracOK:= (prac='T12') or (prac='T13') or (prac='T15'); if (pgCtrl.ActivePageIndex=shVibrovani.PageIndex) and not(pracOK) then @@ -1863,7 +1928,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils; if (canCont) then begin - if not TryStrToFloat(VarToStr(FieldValues(3)), k) then + if not TryStrToFloat(VarToStr(FieldByNameValues('KsNaStr')), k) then k:= 0; lblKsStrom.Caption:= k.ToString + ' ks/str'; ksStr:= k; @@ -1871,7 +1936,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils; if (idVOp>0) then begin z:= helUtils.getHeliosFloatVal(Helios, 0, 'SELECT kusy_zad FROM ' + tblPrPost + ' WHERE ID=' + idVOp.ToString); - lSQL:= 'SELECT ISNULL(SUM(m.kusy_odv + m.kusy_zmet_neopr),0) FROM ' + tblMzdZm + ' m INNER JOIN ' + tblPrPost + ' p ON (p.IDPrikaz=m.IDPrikaz AND '; + lSQL:= 'SELECT ISNULL(SUM(m.kusy_odv + m.kusy_zmet_neopr),0) FROM ' + tblMzdZm + ' m JOIN ' + tblPrPost + ' p ON (p.IDPrikaz=m.IDPrikaz AND '; lSQL:= lSQL + 'm.DokladPrPostup=p.Doklad AND ISNULL(m.AltPrPostup,N''Q'')=ISNULL(p.Alt,N''Q'')) WHERE p.ID=' + idVOp.ToString; z:= z-helUtils.getHeliosFloatVal(Helios, 0, lSQL); end; diff --git a/frmSchvaleniZak.dfm b/frmSchvaleniZak.dfm index e20593b..d7925c3 100644 --- a/frmSchvaleniZak.dfm +++ b/frmSchvaleniZak.dfm @@ -687,6 +687,7 @@ object formSchvaleniZak: TformSchvaleniZak Size = 50 end object tblcolJenVDO: TSmallintField + DefaultExpression = '0' FieldName = 'colJenVDO' Visible = False end @@ -694,6 +695,7 @@ object formSchvaleniZak: TformSchvaleniZak FieldName = 'colDatumOBR' end object tblcolVDOproOBR: TSmallintField + DefaultExpression = '0' FieldName = 'colVDOproOBR' end object tblcolOBRproVDO: TSmallintField @@ -709,6 +711,10 @@ object formSchvaleniZak: TformSchvaleniZak FieldName = 'colPoznamka2' Size = 500 end + object tblcolVDOproVZO: TSmallintField + DefaultExpression = '0' + FieldName = 'colVDOproVZO' + end end object ds: TDataSource DataSet = tbl diff --git a/frmSchvaleniZak.pas b/frmSchvaleniZak.pas index b7fa407..8b9b22c 100644 --- a/frmSchvaleniZak.pas +++ b/frmSchvaleniZak.pas @@ -68,6 +68,7 @@ const colVDOproOBR: TNxDBCheckBoxColumn6; tblcolPoznamkaR: TSmallintField; tblcolPoznamka2: TStringField; + tblcolVDOproVZO: TSmallintField; procedure FormShow (Sender: TObject); procedure FormClose (Sender: TObject; var Action: TCloseAction); procedure btnStornoClick (Sender: TObject); @@ -124,56 +125,59 @@ uses System.StrUtils, System.DateUtils, var lSQL, stavTxt, role, sTemp, pozn: string; akce: Byte; stavIdx: integer; - jenVDO, proOBR, lastRec: boolean; + jenVDO, proOBR, proVZO, lastRec: boolean; datumObrStr: string; rNum: integer; begin - prevRole:= ''; // promenna pro posledni roli v historii (kdo se vyjadril jako posledni) - lastRec:= false; + prevRole := ''; // promenna pro posledni roli v historii (kdo se vyjadril jako posledni) + lastRec := false; if (idZakazky<=0) then Exit; - lSQL:= 'SELECT z.CisloZakazky, z.Nazev, z.DruhyNazev, ISNULL(ze._SchvaleniZakazky_Lock,0) FROM ' + tblZak + ' z LEFT JOIN ' + tblZakE; - lSQL:= lSQL + ' ze ON (ze.ID=z.ID) WHERE z.ID=' + idZakazky.ToString; + + lSQL := 'SELECT z.CisloZakazky, z.Nazev, z.DruhyNazev, ISNULL(ze._SchvaleniZakazky_Lock,0) FROM ' + tblZak + ' z LEFT JOIN ' + tblZakE; + lSQL := lSQL + ' ze ON (ze.ID=z.ID) WHERE z.ID=' + idZakazky.ToString; with Helios.OpenSQL(lSQL) do if (RecordCount=1) then begin - edtZakazka.Text:= VarToStr(FieldValues(0)); - edtZakazkaNazev.Text:= VarToStr(FieldValues(1)) + ' ** ' + VarToStr(FieldValues(2)); + edtZakazka.Text := VarToStr(FieldValues(0)); + edtZakazkaNazev.Text := VarToStr(FieldValues(1)) + ' ** ' + VarToStr(FieldValues(2)); - lSQL:= 'SELECT TOP(1) p.RegCis FROM ' + tblPZ + ' p INNER JOIN ' + tblDZ + ' d ON (d.ID=p.IDDoklad) WHERE d.DruhPohybuZbo IN (9,6) AND '; - lSQL:= lSQL + 'ISNULL(p.CisloZakazky,d.CisloZakazky)=N' + QuotedStr(VarToStr(FieldValues(0))); + lSQL:= 'SELECT TOP(1) p.RegCis FROM ' + tblPZ + ' p INNER JOIN ' + tblDZ + ' d ON (d.ID=p.IDDoklad) WHERE d.DruhPohybuZbo IN (9,6) AND ' + + 'ISNULL(p.CisloZakazky,d.CisloZakazky)=N' + QuotedStr(VarToStr(FieldValues(0))); with Helios.OpenSQL(lSQL) do if (RecordCount>0) then - edtRegCis.Text:= VarToStr(FieldValues(0)); + edtRegCis.Text := VarToStr(FieldByNameValues('RegCis')); - stavTxt:= VarToStr(FieldValues(3)); - zamek:= true; - btnOK.Enabled:= false; - btnOK.Enabled:= true; + stavTxt := VarToStr(FieldValues(3)); + zamek := true; + btnOK.Enabled := false; + btnOK.Enabled := true; if (stavTxt='0') then begin - zamek:= false; - btnOK.Enabled:= true; + zamek := false; + btnOK.Enabled := true; end; - datumObrStr:= ''; - stavTxt:= ''; - role:= ''; - lblStav.Caption:= stavTxt; + datumObrStr := ''; + stavTxt := ''; + role := ''; + lblStav.Caption := stavTxt; // grd.DataSource.DataSet.ClearFields; tbl.EmptyDataSet; - histLoad:= true; - proOBR:= false; - zapisObr:= false; - lSQL:= 'SELECT DatPorizeni, Role, Akce, Poznamka, ID, Autor, ISNULL(JenVDO,0) AS JenVDO, ISNULL(VDOproOBR,0) AS VDOproOBR, DatumOBR, DatumKON FROM ' + tblSchvalZakHist; - lSQL:= lSQL + ' WHERE IDZakazky=' + idZakazky.ToString + ' ORDER BY DatPorizeni'; + histLoad := true; + proOBR := false; + proVZO := false; + zapisObr := false; + + lSQL := 'SELECT DatPorizeni, Role, Akce, Poznamka, ID, Autor, ISNULL(JenVDO,0) AS JenVDO, ISNULL(VDOproOBR,0) AS VDOproOBR, DatumOBR, DatumKON, ISNULL(VDOproVZO,0) AS VDOproVZO' + + ' FROM ' + tblSchvalZakHist + ' WHERE IDZakazky=' + idZakazky.ToString + ' ORDER BY DatPorizeni'; with Helios.OpenSQL(lSQL) do begin - lastRole:= ''; + lastRole := ''; First; - rNum:= 1; + rNum := 1; while not(EOF) do begin tbl.Append; @@ -204,9 +208,15 @@ uses System.StrUtils, System.DateUtils, sTemp:= VarToStr(FieldByNameValues('VDOproOBR')); if (role='VDO') and (StrToBool(sTemp)) then proOBR:= true; - tbl.FieldByName('colVDOproOBR').AsInteger:= IfThenInt(proOBR, 1, 0); + proVZO:= false; + sTemp:= VarToStr(FieldByNameValues('VDOproVZO')); + if (role='VDO') and (StrToBool(sTemp)) then + proVZO:= true; + tbl.FieldByName('colVDOproVZO').AsInteger:= IfThenInt(proVZO, 1, 0); + + akce:= StrToInt(VarToStr(FieldByNameValues('Akce'))); case akce of 1: stavIdx:= cbStav.Items.IndexOf('Souhlas'); @@ -254,6 +264,12 @@ uses System.StrUtils, System.DateUtils, if (proOBR) then stavTxt:= stavTxt + ' (OBR)'; + if (tbl.FieldByName('colVDOproVZO').AsInteger=1) then + if (akce=1) then + stavTxt:= stavTxt + ' (VZO)'; + + + tbl.FieldByName('colStav').AsString:= stavTxt; tbl.Post; Inc (rNum); @@ -414,6 +430,15 @@ uses System.StrUtils, System.DateUtils, tbl.FieldByName('colStav').AsString:= tbl.FieldByName('colStav').AsString + ' (pro VDO)';// IfThen(edtRole.Text='OBR', ' OBR', ' VDO'); end; + tbl.FieldByName('colVDOproVZO').AsInteger:= 0; + if (cbJenVDO.Caption.Contains('pro VZO')) and (cbJenVDO.Checked) then + begin + tbl.FieldByName('colVDOproVZO').AsInteger:= 1; + tbl.FieldByName('colJenVDO').AsInteger:= 1; + tbl.FieldByName('colStav').AsString:= tbl.FieldByName('colStav').AsString + ' (pro VZO)'; + end; + + if ((edtRole.Text='OBR') or (edtRole.Text='VDO')) and (cbZmenaDatumKonZakazka.Checked) then tbl.FieldByName('colDatumObr').AsDateTime:= edtDatObr.DateTime; @@ -458,10 +483,10 @@ uses System.StrUtils, System.DateUtils, lSQL:= lSQL + 'JenVDO'; if (edtRole.Text='OBR') then - lSQL:= lSQL + ', DatumOBR'; + lSQL:= lSQL + IfThen(not lSQL.Trim.EndsWith(','), ', ', '') + 'DatumOBR'; if (jeVzorek) and (VdoProVzo) then - lSQL:= lSQL + ', VDOProVZO'; + lSQL:= lSQL + IfThen(not lSQL.Trim.EndsWith(','), ', ', '') + 'VDOProVZO'; @@ -655,6 +680,8 @@ uses System.StrUtils, System.DateUtils, procedure TformSchvaleniZak.btnOKClick (Sender: TObject); var i, x: integer; begin + VdoProVzo:= (currRole='VDO') and (cbJenVDO.Checked) and (cbJenVDO.Caption.Contains('VZO',false)); + if (grd.RowCount>0) and (edtRole.Text<>'') then begin for i:=0 to grd.RowCount-1 do @@ -738,94 +765,94 @@ uses System.StrUtils, System.DateUtils, idZakazky:= 0; VdoProVzo:= false; - cbZmenaDatumKonZakazka.Visible:= false; + cbZmenaDatumKonZakazka.Visible := false; - jeTestDb:= false; + jeTestDb := false; if (helUtils.SQLObjectExists(Helios, Helios.SystemDB + '.dbo.TabDBHelios')) then - jeTestDb:= helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 FROM ' + Helios.SystemDB + '.dbo.TabDBHelios WHERE SysJmeno=N' + Helios.CurrentDB.QuotedString + ' AND TypDB=4'); - self.Caption:= ' Schvlen zakzky' + IfThen(jeTestDB, ' (TEST DB)', ''); + jeTestDb := helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 FROM ' + Helios.SystemDB + '.dbo.TabDBHelios WHERE SysJmeno=N' + Helios.CurrentDB.QuotedString + ' AND TypDB=4'); + self.Caption := ' Schvlen zakzky' + IfThen(jeTestDB, ' (TEST DB)', ''); - szKmeneSub:= ''; + szKmeneSub := ''; // zdroj ID jsou vyrobni prikazy if (id>0) and (Helios.BrowseID=bidVyrPrik) then - idZakazky:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDZakazka FROM ' + tblVPr + ' WHERE ID=' + id.ToString); + idZakazky := helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDZakazka FROM ' + tblVPr + ' WHERE ID=' + id.ToString); if (Length(arrID)>0) and (Helios.BrowseID=bidVyrPrik) then begin - sTemp:= helUtils.getHeliosStrVal (Helios, '', 'SELECT IDZakazka FROM ' + tblVPr + ' WHERE ID IN (' + helUtils.ArrayToString (arrID, ',', true) + ')'); - SetLength(arrID, 0); + sTemp := helUtils.getHeliosStrVal (Helios, '', 'SELECT IDZakazka FROM ' + tblVPr + ' WHERE ID IN (' + helUtils.ArrayToString (arrID, ',', true) + ')'); + SetLength (arrID, 0); if (sTemp<>'') then - arrID:= helUtils.StrToArrayInt (sTemp); + arrID := helUtils.StrToArrayInt (sTemp); end; // zdroj ID je vyrobni plan if (id>0) and (Helios.BrowseID=bidVyrPlan) then - idZakazky:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDZakazka FROM ' + tblPlan + ' WHERE ID=' + id.ToString); + idZakazky := helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDZakazka FROM ' + tblPlan + ' WHERE ID=' + id.ToString); if (Length(arrID)>0) and (Helios.BrowseID=bidVyrPlan) then begin - sTemp:= helUtils.getHeliosStrVal (Helios, '', 'SELECT IDZakazka FROM ' + tblPlan + ' WHERE ID IN (' + helUtils.ArrayToString (arrID, ',', true) + ')'); - SetLength(arrID, 0); + sTemp := helUtils.getHeliosStrVal (Helios, '', 'SELECT IDZakazka FROM ' + tblPlan + ' WHERE ID IN (' + helUtils.ArrayToString (arrID, ',', true) + ')'); + SetLength (arrID, 0); if (sTemp<>'') then - arrID:= helUtils.StrToArrayInt (sTemp); + arrID := helUtils.StrToArrayInt (sTemp); end; // zdroj ID jsou zakazky if (id>0) and (Helios.BrowseID=bidZak) then - idZakazky:= id; + idZakazky := id; - cisZakazky:= ''; + cisZakazky := ''; if (idZakazky>0) then - cisZakazky:= helUtils.getHeliosStrVal(Helios, '', 'SELECT CisloZakazky FROM ' + tblZak + ' WHERE ID=' + idZakazky.ToString); - jeVzorek:= helUtils.IfThenBool (LeftStr(cisZakazky,2).ToUpper='VZ', true, false); + cisZakazky := helUtils.getHeliosStrVal(Helios, '', 'SELECT CisloZakazky FROM ' + tblZak + ' WHERE ID=' + idZakazky.ToString); + jeVzorek := helUtils.IfThenBool (LeftStr(cisZakazky,2).ToUpper='VZ', true, false); - lSQL:= 'IF NOT EXISTS (SELECT 1 FROM ' + tblSchvalZak + ' WHERE IDZakazka=' + idZakazky.ToString + ') INSERT ' + tblSchvalZak; - lSQL:= lSQL + ' (IDZakazka' + IfThen(jeVzorek, ', TypZakazky', '') + ') SELECT ' + idZakazky.ToString + IfThen (jeVzorek, ', 13', ''); + lSQL := 'IF NOT EXISTS (SELECT 1 FROM ' + tblSchvalZak + ' WHERE IDZakazka=' + idZakazky.ToString + ') INSERT ' + tblSchvalZak + + ' (IDZakazka' + IfThen(jeVzorek, ', TypZakazky', '') + ') SELECT ' + idZakazky.ToString + IfThen (jeVzorek, ', 13', ''); Helios.ExecSQL (lSQL); - lSQL:= 'SELECT TOP(1) p.SkupZbo FROM ' + tblPZ + ' p INNER JOIN ' + tblDZ + ' d ON (d.ID=p.IDDoklad) INNER JOIN ' + tblZak + ' z ON (z.CisloZakazky='; - lSQL:= lSQL + 'ISNULL(p.CisloZakazky,d.CisloZakazky)) WHERE d.DruhPohybuZbo IN (9,6) AND z.ID=' + idZakazky.ToString; - szKmene:= helUtils.getHeliosStrVal(Helios, '', lSQL); - edtRegCis.EditLabel.Caption:= 'Reg.slo' + IfThen(szKmene<>'', ' (SK ' + szKmene + ')', '') + ':'; - jeObrobek:= (szKmene='VOB'); + lSQL := 'SELECT TOP(1) p.SkupZbo FROM ' + tblPZ + ' p INNER JOIN ' + tblDZ + ' d ON (d.ID=p.IDDoklad) INNER JOIN ' + tblZak + ' z ON (z.CisloZakazky=' + + 'ISNULL(p.CisloZakazky,d.CisloZakazky)) WHERE d.DruhPohybuZbo IN (9,6) AND z.ID=' + idZakazky.ToString; + szKmene := helUtils.getHeliosStrVal(Helios, '', lSQL); + edtRegCis.EditLabel.Caption := 'Reg.slo' + IfThen(szKmene<>'', ' (SK ' + szKmene + ')', '') + ':'; + jeObrobek := (szKmene='VOB'); - idPrikazFin:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT TOP(1) ID FROM ' + tblPrikaz + ' WHERE IDPrikazVyssi IS NULL AND IDZakazka=' + idZakazky.ToString); - lSQL:= 'SELECT TOP(1) p.ID FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' k ON (k.ID=p.IDTabKmen) WHERE p.IDPrikazVyssi=' + idPrikazFin.ToString + ' AND p.IDZakazka=' + idZakazky.ToString; - lSQL:= lSQL + ' AND k.SkupZbo NOT IN (N''VDO'')'; - idPrikazSub:= helUtils.getHeliosIntVal(Helios, 0, lSQL); - szKmeneSub:= helUtils.getHeliosStrVal(Helios, '', 'SELECT k.SkupZbo FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' k ON (k.ID=p.IDTabKmen) WHERE p.ID=' + idPrikazSub.ToString); + idPrikazFin := helUtils.getHeliosIntVal(Helios, 0, 'SELECT TOP(1) ID FROM ' + tblPrikaz + ' WHERE IDPrikazVyssi IS NULL AND IDZakazka=' + idZakazky.ToString); + lSQL := 'SELECT TOP(1) p.ID FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' k ON (k.ID=p.IDTabKmen) WHERE p.IDPrikazVyssi=' + idPrikazFin.ToString + ' AND p.IDZakazka=' + idZakazky.ToString; + lSQL := lSQL + ' AND k.SkupZbo NOT IN (N''VDO'')'; + idPrikazSub := helUtils.getHeliosIntVal(Helios, 0, lSQL); + szKmeneSub := helUtils.getHeliosStrVal(Helios, '', 'SELECT k.SkupZbo FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' k ON (k.ID=p.IDTabKmen) WHERE p.ID=' + idPrikazSub.ToString); - currRole:= ''; + currRole := ''; if (helUtils.HeliosObjectExists(Helios,helUtils.VratTableName(tblSchvalZakRole))) then begin - with Helios.OpenSQL('SELECT TOP(1) Role FROM ' + tblSchvalZakRole + ' WHERE Login=SUSER_SNAME() ORDER BY Priorita') do + with Helios.OpenSQL ('SELECT TOP(1) Role FROM ' + tblSchvalZakRole + ' WHERE Login=SUSER_SNAME() ORDER BY Priorita') do if (RecordCount=1) then - edtRole.Text:= VarToStr(FieldValues(0)); + edtRole.Text := VarToStr(FieldValues(0)); - currRole:= UpperCase(edtRole.Text); + currRole := UpperCase(edtRole.Text); if (szKmene<>'VOB') and (currRole='OBR') then - edtRole.Text:= ''; + edtRole.Text := ''; edtPoznamka.SetFocus; end; - cbJenVDO.Enabled:= false; + cbJenVDO.Enabled := false; if (currRole='REP') or (currRole='VZO') then - cbJenVDO.Enabled:= true; + cbJenVDO.Enabled := true; if (currRole='VDO') then begin - cbZmenaDatumKonZakazka.Visible:= true; - cbJenVDO.Enabled:= true; - cbJenVDO.Caption:= ' pro OBR'; - lblDatObr.Caption:= 'Datum ' + currRole; - lblDatObr.Visible:= true; + cbZmenaDatumKonZakazka.Visible := true; + cbJenVDO.Enabled := true; + cbJenVDO.Caption := ' pro OBR'; + lblDatObr.Caption := 'Datum ' + currRole; + lblDatObr.Visible := true; lSQL:= 'SELECT 1 FROM ' + tblVPr + ' WHERE IDPrikazVyssi IS NULL AND IDZakazka=' + idZakazky.ToString; if (helUtils.sqlExistsTestGeneral(Helios, lSQL)) then @@ -881,7 +908,7 @@ uses System.StrUtils, System.DateUtils, lSQL:= 'IF OBJECT_ID(''dbo.TabZakazka_EXT'', N''U'') IS NOT NULL' + CRLF + 'IF NOT EXISTS(SELECT ID FROM ' + tblZakE + ' WHERE ID=' + idZakazky.ToString + ')'; lSQL:= lSQL + CRLF + 'INSERT ' + tblZakE + ' (ID) VALUES (' + idZakazky.ToString + ')' + CRLF + 'UPDATE ' + tblZakE + ' SET _SchvaleniZakazky_Lock='; lSQL:= lSQL + uzivId.ToString + ' WHERE ID=' + idZakazky.ToString; - Helios.ExecSQL(lSQL); + Helios.ExecSQL (lSQL); lSQL:= 'SELECT 1 FROM ' + tblZak + ' z INNER JOIN ' + tblZakE + ' ze ON (ze.ID=z.ID) WHERE z.ID=' + idZakazky.ToString + ' AND ISNULL(ze._SchvaleniZakazky_Lock,0)<>' + uzivId.ToString; @@ -911,16 +938,21 @@ uses System.StrUtils, System.DateUtils, if (currRole='VDO') and not(jeObrobek) and (prevRole='VZO') and (jeVzorek) then begin cbJenVDO.Caption:= ' pro VZO'; - cbJenVDO.Enabled:= false; + cbJenVDO.Enabled:= true; cbJenVDO.Checked; - VdoProVzo:= true; +// VdoProVzo:= true; end; if (currRole='VDO') and (jeVzorek) and (jeObrobek) and (prevRole='VZO') then begin - cbJenVDO.Checked:= true; + cbJenVDO.Checked := true; end; + if (currRole='VDO') and not(zamek) then + if (szKmene='VOD') then // jenProVDO nezobrazuj u skupiny VOD + cbJenVDO.Enabled := false; + + infoTxt:= ''; diff --git a/frmVPrZmenaPlanuUkonceni.dfm b/frmVPrZmenaPlanuUkonceni.dfm new file mode 100644 index 0000000..264dd78 --- /dev/null +++ b/frmVPrZmenaPlanuUkonceni.dfm @@ -0,0 +1,205 @@ +object formVPrZmenaPlanuUkonceni: TformVPrZmenaPlanuUkonceni + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = ' Zm'#283'na pl'#225'novan'#233'ho ukon'#269'en'#237' v'#253'roby' + ClientHeight = 306 + ClientWidth = 496 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Segoe UI' + Font.Style = [] + Position = poOwnerFormCenter + RoundedCorners = rcOn + OnShow = FormShow + DesignSize = ( + 496 + 306) + TextHeight = 21 + object Label1: TLabel + Left = 16 + Top = 77 + Width = 191 + Height = 21 + Caption = 'Pl'#225'novan'#233' datum ukon'#269'en'#237':' + end + object lblPrikaz: TLabel + Left = 16 + Top = 20 + Width = 59 + Height = 21 + Caption = 'lblPrikaz' + end + object Label2: TLabel + Left = 16 + Top = 155 + Width = 171 + Height = 21 + Caption = 'Zm'#283'nit u ni'#382#353#237'ch p'#345#237'kaz'#367':' + end + object lblDilec: TLabel + Left = 16 + Top = 44 + Width = 51 + Height = 21 + Caption = 'lblDilec' + end + object grdPrikazy: TNextGrid6 + Left = 16 + Top = 185 + Width = 463 + Height = 54 + Anchors = [akLeft, akTop, akRight, akBottom] + ParentColor = False + TabOrder = 0 + StyleOptions = [soNativeStyles, soVCLStyles] + ActiveView = grdPrikazyView + ActiveViewIndex = 0 + RowHeight = 26 + ScrollBars = [sbVertical] + UserDefinedColorPalette.GeometryHoverColor = clBlack + object grdPrikazyView: TNxReportGridView6 + GridLines = True + end + object colZmena: TNxCheckBoxColumn6 + Alignment = taCenter + Editing = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Segoe UI' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -12 + Footer.Font.Name = 'Segoe UI' + Footer.Font.Style = [] + Footer.FormatMask = '#,##0.00' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -12 + Header.Font.Name = 'Segoe UI' + Header.Font.Style = [] + Index = 0 + PlaceholderText = 'True' + Position = 0 + Width = 30 + CheckedImageIndex = -1 + UncheckedImageIndex = -1 + InsertString = 'False' + end + object colRadaPrikaz: TNxTextColumn6 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Segoe UI' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -12 + Footer.Font.Name = 'Segoe UI' + Footer.Font.Style = [] + Footer.FormatMask = '#,##0.00' + Header.Caption = #344'ada / p'#345#237'kaz' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -16 + Header.Font.Name = 'Segoe UI' + Header.Font.Style = [] + Header.ParentFont = False + Index = 1 + PlaceholderText = 'Text Text' + Position = 1 + Width = 160 + end + object colNazev1: TNxTextColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Segoe UI' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -12 + Footer.Font.Name = 'Segoe UI' + Footer.Font.Style = [] + Footer.FormatMask = '#,##0.00' + Header.Caption = 'N'#225'zev 1' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -16 + Header.Font.Name = 'Segoe UI' + Header.Font.Style = [] + Header.ParentFont = False + Index = 2 + PlaceholderText = 'Text Text' + Position = 2 + Width = 250 + end + object colID: TNxIncrementColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Segoe UI' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -12 + Footer.Font.Name = 'Segoe UI' + Footer.Font.Style = [] + Footer.FormatMask = '#,##0.00' + Header.Caption = 'ID' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -12 + Header.Font.Name = 'Segoe UI' + Header.Font.Style = [] + Index = 3 + PlaceholderText = '1' + Position = 3 + Visible = False + InsertString = '-1' + end + end + object cbZmenaVPlanu: TCheckBox + Left = 16 + Top = 109 + Width = 205 + Height = 27 + Caption = 'Zm'#283'nit i v pl'#225'nu v'#253'roby' + TabOrder = 1 + end + object dtPlanUkonceni: TDateTimePicker + Left = 257 + Top = 73 + Width = 113 + Height = 29 + Date = 46148.000000000000000000 + Time = 0.410625856478873200 + TabOrder = 2 + end + object btnOK: TButton + Left = 16 + Top = 256 + Width = 119 + Height = 41 + Anchors = [akLeft, akBottom] + Caption = 'OK' + TabOrder = 3 + OnClick = btnOKClick + end + object btnStorno: TButton + Left = 360 + Top = 256 + Width = 119 + Height = 41 + Anchors = [akRight, akBottom] + Caption = 'Storno' + TabOrder = 4 + OnClick = btnStornoClick + end +end diff --git a/frmVPrZmenaPlanuUkonceni.pas b/frmVPrZmenaPlanuUkonceni.pas new file mode 100644 index 0000000..2a63650 --- /dev/null +++ b/frmVPrZmenaPlanuUkonceni.pas @@ -0,0 +1,171 @@ +unit frmVPrZmenaPlanuUkonceni; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, NxGridView6, NxColumns6, + NxControls6, NxCustomGrid6, NxVirtualGrid6, NxGrid6, + ddPlugin_TLB; + +type + TformVPrZmenaPlanuUkonceni = class(TForm) + grdPrikazy: TNextGrid6; + cbZmenaVPlanu: TCheckBox; + dtPlanUkonceni: TDateTimePicker; + Label1: TLabel; + lblPrikaz: TLabel; + Label2: TLabel; + btnOK: TButton; + btnStorno: TButton; + grdPrikazyView: TNxReportGridView6; + colZmena: TNxCheckBoxColumn6; + colRadaPrikaz: TNxTextColumn6; + colNazev1: TNxTextColumn6; + lblDilec: TLabel; + colID: TNxIncrementColumn6; + procedure FormShow (Sender: TObject); + procedure btnStornoClick (Sender: TObject); + procedure btnOKClick (Sender: TObject); + private + { Private declarations } + public + Helios: IHelios; + idVPr: integer; + end; + +var + formVPrZmenaPlanuUkonceni: TformVPrZmenaPlanuUkonceni; + + +implementation +uses System.StrUtils, + helUtils; + +{$R *.dfm} + + + + procedure TformVPrZmenaPlanuUkonceni.btnOKClick (Sender: TObject); + var lSQL: string; + i: integer; + zmeny, eMsg: string; + canCont: boolean; + begin + zmeny := ''; + for i:=0 to grdPrikazy.RowCount-1 do + zmeny := zmeny + IfThen(grdPrikazy.Cell[0, i].AsBoolean, '1', '0') + ','; + if (zmeny<>'') then + zmeny := LeftStr(zmeny, zmeny.Length-1); // odstran koncovou carku + + canCont := true; + if (zmeny.LastIndexOf('0')0) then + eMsg := FieldByNameValues('ErrMsg') + else + eMsg := 'Nemm zptnou vazbu z vpotu dat zahjen/ukonen'; + if (eMsg<>'') then + Helios.Error (#1 + eMsg + #1) + else + Close; + except on E:Exception do + Helios.Error (#1'Chyba zpracovn: '#1 + E.Message); + end; + end + else + Helios.Error (#1'V ad pkaz s povolenou zmnou plnovanho data ukonen nesm bt pkaz bez zmny.'#1); + end; + + + + + procedure TformVPrZmenaPlanuUkonceni.btnStornoClick (Sender: TObject); + begin + Close; + end; + + + + + procedure TformVPrZmenaPlanuUkonceni.FormShow (Sender: TObject); + var lSQL: string; + pSZ, pRC, pNazev1, pRPr: string; + pStav, pUroven: byte; + cnt: integer; + begin + grdPrikazy.RowCount := 0; + self.Height := 325; + lblPrikaz.Caption := ''; + lblDilec.Caption := ''; + + dtPlanUkonceni.Date := Now; + + if (idVPr>0) then + begin + pSZ := ''; + + lSQL := 'SELECT p.RadaPrikaz, k.SkupZbo, k.RegCis, k.Nazev1, p.StavPrikazu, p.UrovenVnoreni, p.Plan_ukonceni_X FROM ' + tblVPr + ' p JOIN ' + tblKZ + + ' k ON (k.ID=p.IDTabKmen) WHERE p.ID=' + idVPr.ToString; + with Helios.OpenSQL (lSQL) do + if not(EOF) then + begin + First; + pSZ := FieldByNameValues('SkupZbo'); + pRC := FieldByNameValues('RegCis'); + pNazev1 := FieldByNameValues('Nazev1'); + pRPr := FieldByNameValues('RadaPrikaz'); + pStav := FieldByNameValues('StavPrikazu'); + pUroven := FieldByNameValues('UrovenVnoreni'); + lblPrikaz.Caption := pRPr + ' ' + pRC; + lblDilec.Caption := pNazev1; + dtPlanUkonceni.Date := FieldByNameValues('Plan_ukonceni_X'); + end; + + if (pSZ<>'') then + begin + lSQL := 'SELECT p.RadaPrikaz, k.SkupZbo, k.RegCis, k.Nazev1, p.StavPrikazu, p.UrovenVnoreni FROM ' + tblVPr + ' p JOIN ' + tblKZ + ' k ON (k.ID=p.IDTabKmen) WHERE p.IDPrikazRidici=' + idVPr.ToString + + ' AND p.UrovenVnoreni>' + pUroven.ToString + ' AND p.StavPrikazu IN (20,30) /*AND k.SkupZbo LIKE N''P[45]%''*/ ORDER BY p.UrovenVnoreni, k.SkupZbo DESC'; + with Helios.OpenSQL (lSQL) do + if (RecordCount>0) then + begin + cnt := 0; + First; + while not(EOF) do + begin + Inc (cnt); + grdPrikazy.RowCount := cnt; + pSZ := FieldByNameValues('SkupZbo'); + if (LeftStr(pSZ,2)='P4') or (LeftStr(pSZ,2)='P5') then + grdPrikazy.Cell [0, cnt-1].AsBoolean := true; + + grdPrikazy.Cells [1, cnt-1] := FieldByNameValues('RadaPrikaz'); + grdPrikazy.Cells [2, cnt-1] := FieldByNameValues('Nazev1'); + grdPrikazy.Cells [3, cnt-1] := cnt.ToString; + self.Height := self.Height + 28; + Next; + end; + end; + end; + + end; + end; + + +end. diff --git a/plgKdynium.dpr b/plgKdynium.dpr index 719e124..b5cf29e 100644 --- a/plgKdynium.dpr +++ b/plgKdynium.dpr @@ -36,6 +36,7 @@ uses madListModules, System.Win.ComServ, ddPlugin_TLB, + dataMod in 'dataMod.pas' {dm: TDataModule}, ComObjekt in 'ComObjekt.pas', frmGenPolos in 'frmGenPolos.pas' {formGenPolos}, frmOdlitek in 'frmOdlitek.pas' {formOdlitek}, @@ -50,8 +51,9 @@ uses frmInputNum in 'frmInputNum.pas' {formInputNum}, frmHrOdvOperZmetky in 'frmHrOdvOperZmetky.pas' {formHrOdvOperZmetky}, frmKoopObjUprava in 'frmKoopObjUprava.pas' {formKoopObjUprava}, - dataMod in 'dataMod.pas' {dm: TDataModule}, - frmOOPPohyb in 'frmOOPPohyb.pas' {formOOPPohyb}; + frmOOPPohyb in 'frmOOPPohyb.pas' {formOOPPohyb}, + frmVPrZmenaPlanuUkonceni in 'frmVPrZmenaPlanuUkonceni.pas' {formVPrZmenaPlanuUkonceni}, + frmGenKoopObj in 'frmGenKoopObj.pas' {formGenKoopObj}; // ,frmPlanLis in 'frmPlanLis.pas' {formPlanLis}; diff --git a/plgKdynium.dproj b/plgKdynium.dproj index 2d6bbf9..91186e6 100644 --- a/plgKdynium.dproj +++ b/plgKdynium.dproj @@ -1,15 +1,15 @@  - {CDF713A9-2CCE-4031-A570-C2BDF2C725A4} + {D5956898-2F9A-4AA4-98A4-9C1AA1A57F31} plgKdynium.dpr True Release + plgKdynium 1 Library - None + VCL 20.3 Win32 - plgKdynium true @@ -34,6 +34,12 @@ Base true + + true + Cfg_1 + true + true + true Cfg_1 @@ -68,31 +74,23 @@ plgKdynium 1029 CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName= - System;Xml;Data;Datasnap;Web;Soap;Vcl;Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;Vcl.Imaging;Vcl.Samples;$(DCC_Namespace) + System;Xml;Data;Datasnap;Web;Soap;TMS;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png - package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=;minSdkVersion=23;targetSdkVersion=35 Debug - activity-1.1.0.dex.jar;annotation-1.2.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;biometric-1.1.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.1.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.1.0.dex.jar;core-runtime-2.1.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.2.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.2.0.dex.jar;lifecycle-runtime-2.2.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.2.0.dex.jar;lifecycle-viewmodel-savedstate-2.2.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;savedstate-1.0.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar + activity-1.7.2.dex.jar;annotation-experimental-1.4.1.dex.jar;annotation-jvm-1.8.1.dex.jar;annotations-13.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;billing-7.1.1.dex.jar;biometric-1.1.0.dex.jar;browser-1.4.0.dex.jar;cloud-messaging.dex.jar;collection-jvm-1.4.2.dex.jar;concurrent-futures-1.1.0.dex.jar;core-1.15.0.dex.jar;core-common-2.2.0.dex.jar;core-ktx-1.15.0.dex.jar;core-runtime-2.2.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;error_prone_annotations-2.9.0.dex.jar;exifinterface-1.3.6.dex.jar;firebase-annotations-16.2.0.dex.jar;firebase-common-20.3.1.dex.jar;firebase-components-17.1.0.dex.jar;firebase-datatransport-18.1.7.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-encoders-proto-16.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.1.3.dex.jar;firebase-installations-interop-17.1.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-23.1.2.dex.jar;fmx.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;kotlin-stdlib-1.8.22.dex.jar;kotlin-stdlib-common-1.8.22.dex.jar;kotlin-stdlib-jdk7-1.8.22.dex.jar;kotlin-stdlib-jdk8-1.8.22.dex.jar;kotlinx-coroutines-android-1.6.4.dex.jar;kotlinx-coroutines-core-jvm-1.6.4.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.6.2.dex.jar;lifecycle-livedata-2.6.2.dex.jar;lifecycle-livedata-core-2.6.2.dex.jar;lifecycle-runtime-2.6.2.dex.jar;lifecycle-service-2.6.2.dex.jar;lifecycle-viewmodel-2.6.2.dex.jar;lifecycle-viewmodel-savedstate-2.6.2.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;okio-jvm-3.4.0.dex.jar;play-services-ads-22.2.0.dex.jar;play-services-ads-base-22.2.0.dex.jar;play-services-ads-identifier-18.0.0.dex.jar;play-services-ads-lite-22.2.0.dex.jar;play-services-appset-16.0.1.dex.jar;play-services-base-18.5.0.dex.jar;play-services-basement-18.4.0.dex.jar;play-services-cloud-messaging-17.0.1.dex.jar;play-services-location-21.0.1.dex.jar;play-services-maps-18.1.0.dex.jar;play-services-measurement-base-20.1.2.dex.jar;play-services-measurement-sdk-api-20.1.2.dex.jar;play-services-stats-17.0.2.dex.jar;play-services-tasks-18.2.0.dex.jar;print-1.0.0.dex.jar;profileinstaller-1.3.0.dex.jar;room-common-2.2.5.dex.jar;room-runtime-2.2.5.dex.jar;savedstate-1.2.1.dex.jar;sqlite-2.1.0.dex.jar;sqlite-framework-2.1.0.dex.jar;startup-runtime-1.1.1.dex.jar;tracing-1.2.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.1.8.dex.jar;transport-runtime-3.1.8.dex.jar;user-messaging-platform-2.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.7.0.dex.jar $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png - activity-1.1.0.dex.jar;annotation-1.2.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;biometric-1.1.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.1.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.1.0.dex.jar;core-runtime-2.1.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.2.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.2.0.dex.jar;lifecycle-runtime-2.2.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.2.0.dex.jar;lifecycle-viewmodel-savedstate-2.2.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;savedstate-1.0.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar + activity-1.7.2.dex.jar;annotation-experimental-1.4.1.dex.jar;annotation-jvm-1.8.1.dex.jar;annotations-13.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;billing-7.1.1.dex.jar;biometric-1.1.0.dex.jar;browser-1.4.0.dex.jar;cloud-messaging.dex.jar;collection-jvm-1.4.2.dex.jar;concurrent-futures-1.1.0.dex.jar;core-1.15.0.dex.jar;core-common-2.2.0.dex.jar;core-ktx-1.15.0.dex.jar;core-runtime-2.2.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;error_prone_annotations-2.9.0.dex.jar;exifinterface-1.3.6.dex.jar;firebase-annotations-16.2.0.dex.jar;firebase-common-20.3.1.dex.jar;firebase-components-17.1.0.dex.jar;firebase-datatransport-18.1.7.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-encoders-proto-16.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.1.3.dex.jar;firebase-installations-interop-17.1.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-23.1.2.dex.jar;fmx.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;kotlin-stdlib-1.8.22.dex.jar;kotlin-stdlib-common-1.8.22.dex.jar;kotlin-stdlib-jdk7-1.8.22.dex.jar;kotlin-stdlib-jdk8-1.8.22.dex.jar;kotlinx-coroutines-android-1.6.4.dex.jar;kotlinx-coroutines-core-jvm-1.6.4.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.6.2.dex.jar;lifecycle-livedata-2.6.2.dex.jar;lifecycle-livedata-core-2.6.2.dex.jar;lifecycle-runtime-2.6.2.dex.jar;lifecycle-service-2.6.2.dex.jar;lifecycle-viewmodel-2.6.2.dex.jar;lifecycle-viewmodel-savedstate-2.6.2.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;okio-jvm-3.4.0.dex.jar;play-services-ads-22.2.0.dex.jar;play-services-ads-base-22.2.0.dex.jar;play-services-ads-identifier-18.0.0.dex.jar;play-services-ads-lite-22.2.0.dex.jar;play-services-appset-16.0.1.dex.jar;play-services-base-18.5.0.dex.jar;play-services-basement-18.4.0.dex.jar;play-services-cloud-messaging-17.0.1.dex.jar;play-services-location-21.0.1.dex.jar;play-services-maps-18.1.0.dex.jar;play-services-measurement-base-20.1.2.dex.jar;play-services-measurement-sdk-api-20.1.2.dex.jar;play-services-stats-17.0.2.dex.jar;play-services-tasks-18.2.0.dex.jar;print-1.0.0.dex.jar;profileinstaller-1.3.0.dex.jar;room-common-2.2.5.dex.jar;room-runtime-2.2.5.dex.jar;savedstate-1.2.1.dex.jar;sqlite-2.1.0.dex.jar;sqlite-framework-2.1.0.dex.jar;startup-runtime-1.1.1.dex.jar;tracing-1.2.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.1.8.dex.jar;transport-runtime-3.1.8.dex.jar;user-messaging-platform-2.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.7.0.dex.jar + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) Debug true - CompanyName=;FileDescription=Plugin Helios iNuvio pro Kdynium Kdyne;FileVersion=3.0.2024.1027;InternalName=plgKdynium;LegalCopyright=HD Consulting Stakonice, T. Buzin;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE11.3;ProgramID=com.embarcadero.$(MSBuildProjectName) - 3 - 2024 - 1027 + CompanyName=;FileDescription=Plugin Helios iNuvio pro Kdynium Kdyne;FileVersion=3.0.2025.819;InternalName=plgKdynium;LegalCopyright=HD Consulting Stakonice, T. Buzin;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE11.3;ProgramID=com.embarcadero.$(MSBuildProjectName) 1029 - true - (None) - none - D:\Data\Helios\HeliosMain.exe - D:\Data\Helios RELEASE;$(DCC_Define) @@ -100,17 +98,25 @@ false 0 + + Debug + + madExcept;$(DCC_Define) + true true 3 - 2025 - 514 + 2026 + 526 true - CompanyName=;FileDescription=Plugin Helios iNuvio pro Kdynium Kdyne;FileVersion=3.0.2025.514;InternalName=plgKdynium;LegalCopyright=HD Consulting Stakonice, T. Buzin;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE12.3.1;ProgramID=com.embarcadero.$(MSBuildProjectName);LastCompiledTime=2025.05.14 13:17:13 - madExcept;$(DCC_Define) + CompanyName=;FileDescription=Plugin Helios iNuvio pro Kdynium Kdyne;FileVersion=3.0.2026.526;InternalName=plgKdynium;LegalCopyright=HD Consulting Stakonice, T. Buzin;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE12.3.1;ProgramID=com.embarcadero.$(MSBuildProjectName);LastCompiledTime=2026.04.15 13:44:43 + (None) + none 3 2 true + D:\Data\Helios\HeliosMain.exe + D:\Data\Helios DEBUG;$(DCC_Define) @@ -123,15 +129,15 @@ Debug - true - CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=3.0.2024.1027;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);LastCompiledTime=2025.05.14 13:12:34 + D:\Data\Helios\HeliosMain.EXE + D:\Data\Helios true true - true - 3 - 2024 - 1027 - true + true + 1029 + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=3.0.2025.819;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);LastCompiledTime=2025.07.01 11:56:21 + (None) + none madExcept;$(DCC_Define) 3 @@ -139,6 +145,10 @@ MainSource + +
dm
+ TDataModule +
formGenPolos
@@ -179,13 +189,17 @@
formKoopObjUprava
- -
dm
- TDataModule -
formOOPPohyb
+ +
formVPrZmenaPlanuUkonceni
+ dfm +
+ +
formGenKoopObj
+ dfm +
Base @@ -210,10 +224,11 @@ Ethea SVGIconImageList VCL components TurboPack Essentials Delphi Runtime package Png Components for Delphi - DMVCFramework - CopyRight (2010-2024) Daniele Teti and the DMVCFramework Team - Ethea SVGIconImageList FMX components - Helios Orange Components + DMVCFramework - CopyRight (2010-2025) Daniele Teti and the DMVCFramework Team Express Cross Platform Library Icon Library by Developer Express Inc. + (untitled) + File C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\VirtualTreesDD290.bpl not found + Helios Orange Components TurboPack LockBox 3 Delphi runtime package Embarcadero Standard Components TurboPack Orpheus Delphi datataware designtime package @@ -223,6 +238,8 @@ Ethea IconFontsImageList FMX components Microsoft Office 2000 Sample Automation Server Wrapper Components Microsoft Office XP Sample Automation Server Wrapper Components + File D:\Data\_komponenty\TeeGrid\Compiled\Delphi29.win32\Bin\DCLVCLTeeGrid29.bpl not found + File D:\Data\_komponenty\TeeGrid\Compiled\Delphi29.win32\Bin\DCLFMXTeeGrid29.bpl not found @@ -232,9 +249,875 @@ True False + + + + plgKdynium.dll + true + + + + + plgKdynium.dll + true + + + + + 1 + + + 0 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v21 + 1 + + + res\drawable-anydpi-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values-v31 + 1 + + + res\values-v31 + 1 + + + + + res\values-v35 + 1 + + + res\values-v35 + 1 + + + + + res\drawable-anydpi-v26 + 1 + + + res\drawable-anydpi-v26 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v33 + 1 + + + res\drawable-anydpi-v33 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-night-v21 + 1 + + + res\values-night-v21 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable-anydpi-v24 + 1 + + + res\drawable-anydpi-v24 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-night-anydpi-v21 + 1 + + + res\drawable-night-anydpi-v21 + 1 + + + + + res\drawable-anydpi-v31 + 1 + + + res\drawable-anydpi-v31 + 1 + + + + + res\drawable-night-anydpi-v31 + 1 + + + res\drawable-night-anydpi-v31 + 1 + + + + + 1 + + + 1 + + + 0 + + + + + 1 + .framework + + + 1 + .framework + + + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 1 + + + 1 + + + + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + + + + 1 + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + + + + + + + + + + + 12 +
diff --git a/plgKdynium.res b/plgKdynium.res index 8427757cbf20387a3e35b879de9a3f9e930e95bc..83309e3f67712ccbfdf8aece8d28d31cb6facfba 100644 GIT binary patch delta 65 zcmaFE{)T-*2{RwltBvLCjGSf+dJLuvMhs?~+Zp#W%7eHD3?@L*5GbqwB#jxYfP51$ KX*@ZVxg7xX5)9!0 delta 65 zcmaFE{)T-*2{RMZ%Z=sijGU$ndJLuvh72Z~+Zp#W%7eHDKmk3F5Q74cG-j{@lIB3t LfWd5XDswvk@IVaC