Pridana funkcnost zmeny planovaneho ukonceni prikazu podle tabulky (comObject akce 36) + prvni verze generovani KoopObj dle stare HDC funkcnosti ctecky

This commit is contained in:
2026-05-26 08:39:00 +02:00
parent b1cd64bb32
commit 078d77028a
17 changed files with 3380 additions and 490 deletions
+1
View File
@@ -83,3 +83,4 @@ __recovery/
*.7z
bak/
bak2/
x/
+201 -146
View File
@@ -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<TArray<string>>;
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<TArray<string>>;
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<TArray<string>>;
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<TArray<string>>;
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<TArray<string>>;
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<string>;
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<TArray<string>>;
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<TArray<string>>;
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<System.Integer>);
procedure TplgKdynium.ZakazkaZobrazAtestyTaveb (const Helios: IHelios; ids: TArray<System.Integer>);
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<integer>);
procedure TplgKdynium.RozpRezii_PseudoAutomat (const Helios: IHelios; const arrID: TArray<integer>);
var lSQL, nazRozp, vstStr, denikIDs, utvarVst, cisStredOper: string;
idPreuct, idx, rozpNr, idRozpRez, idObd, mObd, rObd: integer;
ctiZak, ctiUtvar: Boolean;
celkemHod, zakazkaHod: extended;
arrVstStr: TArray<string>;
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<nTemp4) then
Helios.ExecSQL ('INSERT #TabRadkyProVyber (ID) SELECT ' + iTemp3.ToString)
@@ -2967,7 +3000,7 @@ var oVar1, oVar2: OleVariant;
begin
if (nTemp3-nTemp4<nTemp2) then
Helios.ExecSQL ('INSERT #TabRadkyProVyber (ID) SELECT ' + iTemp3.ToString);
canCont:= false;
canCont := false;
end;
Next;
@@ -2978,13 +3011,35 @@ var oVar1, oVar2: OleVariant;
35: ImportObedy (Helios);
36: begin
fVPrZmenaUkonceni := TformVPrZmenaPlanuUkonceni.Create (nil);
try
fVPrZmenaUkonceni.Helios := Helios;
fVPrZmenaUkonceni.idVPr := cRec;
fVPrZmenaUkonceni.ShowModal;
finally
FreeAndNil (fVPrZmenaUkonceni);
end;
end;
37: begin
fGenKObj := TformGenKoopObj.Create (nil);
try
fGenKObj.typObj := 1;
fGenKObj.Helios := Helios;
fGenKObj.ShowModal;
finally
FreeAndNil (fGenKObj);
end;
end;
end; // case
Helios.Refresh(true);
if (contInfo='NULL') then
Helios.ExecSQL('SET CONTEXT_INFO 0x')
Helios.ExecSQL ('SET CONTEXT_INFO 0x')
else
Helios.ExecSQL('SET CONTEXT_INFO 0x' + contInfo);
Helios.ExecSQL ('SET CONTEXT_INFO 0x' + contInfo);
if not(term) then
if helUtils.HeliosExistsTest(Helios, '#TabExtKom', '') then
+209 -1
View File
@@ -1,5 +1,213 @@
object dm: Tdm
Height = 480
Width = 640
PixelsPerInch = 96
object tblKoopObjH: 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 = 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
+94 -1
View File
@@ -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.
+547
View File
@@ -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
+617
View File
@@ -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 položku?', 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('Zmìna množství (bylo ' + mnOrig.ToString + ')', 'Nové množství', 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Á OJEDNÁVKA', 'Vaše oznaèení:', '');
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 := 'Kód DÁVKY / PØÍKAZU';
edtBarcode.Visible := true;
self.ActiveControl := edtBarcode;
end;
procedure TformGenKoopObj.btnPolSmazClick (Sender: TObject);
begin
if Helios.YesNo('Opravdu smazat zadané položky ?', 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'Objednávka nemá žádné položky.'#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 + 'výrobní pøíkaz není ve stavu Zadáno, NELZE použít');
idPrikaz := 0;
idDavka := 0;
end
else
begin
typSkenKod := 2;
kodOp := '';
ks := 0;
ksZive := 0;
idOperace := 0;
radaPrikaz := '';
lblTypKodu.Caption := 'Kód 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 dávce se nachází pøedzpracovaný/ukonèený pøíkaz, NELZE použít'#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 := 'Kód 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 objednávky pøidána'#1);
canCont := false;
skipMe := true;
end;
if (canCont) and (operUzavrena) then
begin
Helios.Error (#1'Naskenovaná kooperace je uzavøena, nebude do objednávky pøidána'#1);
canCont := false;
skipMe := true;
end;
if (canCont) and (ksZive<=0) then
begin
Helios.Error (#1'Naskenovaná kooperace nemá živé kusy, nebude do objednávky pøidána'#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 dávce '#1 + numDavka + #1 + ' nezbývají 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 všechny pøíkazy této dávky jsou ve stavu Zadáno, NELZE pokraèovat.'#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.
+26 -24
View File
@@ -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, 'Generování karet...', 1, $0000FF );
x:= '';
wF := helUtils.waitStart (self, 'Generování 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;
+188 -185
View File
@@ -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'
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);
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='
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
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
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);
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))'
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);
zivotnostDnu := helUtils.getHeliosIntVal(Helios, 0, lSQL);
if (poslVyd>0) then
begin
rozdilDnu:= DaysBetween(poslVyd, edtDatum.DateTime);
rozdilDnu := DaysBetween(poslVyd, edtDatum.DateTime);
if (rozdilDnu<zivotnostDnu) then
begin
if (duvod='2') then
msg:= 'POLOŽKA S MINIMÁLNÍ ŽIVOTNOSTÍ';
msg := 'POLOŽKA S MINIMÁLNÍ ŽIVOTNOSTÍ';
if (duvod='Z') then
msg:= 'SEZÓNNÍ POLOŽKA S ŽIVOTNOSTÍ';
lSQL:= 'SELECT CASE WHEN ISNULL(ZivotnostMin,0)>0 THEN CONVERT(nvarchar, ZivotnostMin) + N'' '' + ISNULL(ZivotnostMinDruh, N'''') ELSE N'''' END AS ZivotnostTxt FROM '
msg := 'SEZÓNNÍ POLOŽKA S ŽIVOTNOSTÍ';
lSQL := 'SELECT CASE WHEN ISNULL(ZivotnostMin,0)>0 THEN CONVERT(nvarchar, ZivotnostMin) + N'' '' + ISNULL(ZivotnostMinDruh, N'''') ELSE N'''' END AS ZivotnostTxt FROM '
+ tblOOPPotrebnost + ' WHERE IDProfese=' + idProf.ToString + ' AND IDPolozky=' + idPolozka.ToString + ' AND Stredisko=N' + stredisko.QuotedString;
zivotnostTxt:= helUtils.getHeliosStrVal(Helios, '', lSQL);
zivotnostTxt := helUtils.getHeliosStrVal(Helios, '', lSQL);
if (TaskDlgYesNo('POZOR', msg, 'Dříve vydaná položka ještě nedosáhla své životnosti' + IfThen(zivotnostTxt<>'', ' (' + 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
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;
+1 -1
View File
@@ -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
+76 -11
View File
@@ -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;
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;
+6
View File
@@ -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
+107 -75
View File
@@ -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:= ' Schválení zakázky' + 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 := ' Schválení zakázky' + 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:= '';
+205
View File
@@ -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
+171
View File
@@ -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')<zmeny.LastIndexOf('1')) then
canCont := false;
if (canCont) then
begin
eMsg := '';
lSQL := 'DECLARE @eMsg NVARCHAR(500)=N''''' + CRLF + 'DROP TABLE IF EXISTS #TabPrikazyZmenaUkonceni' + CRLF
+ 'CREATE TABLE #TabPrikazyZmenaUkonceni (ID INT IDENTITY(1,1) NOT NULL, RadaPrikaz NVARCHAR(50) NOT NULL)' + CRLF;
for i:=0 to grdPrikazy.RowCount-1 do
if (grdPrikazy.Cell [0, i].AsBoolean) then
lSQL := lSQL + 'INSERT #TabPrikazyZmenaUkonceni (RadaPrikaz) SELECT N' + grdPrikazy.Cells [1, i].QuotedString + CRLF;
lSQL := lSQL + 'IF OBJECT_ID(N''dbo.ep_HDC_Vyroba_Prikazy_ZmenaPlanuUkonceni'', ''P'') IS NOT NULL EXEC dbo.ep_HDC_Vyroba_Prikazy_ZmenaPlanuUkonceni @idPrikaz=' + idVpr.ToString
+ ', @datPlanUkonceni=N' + FormatDateTime('dd.mm.yyyy', dtPlanUkonceni.Date).QuotedString + ', @zmenaDoPlanu=' + IfThen(cbZmenaVPlanu.Checked, '1', '0')
+ ', @errMsg=@eMsg OUT' + CRLF + 'SELECT @eMsg AS ErrMsg';
try
with Helios.OpenSQL (lSQL) do
if (RecordCount>0) then
eMsg := FieldByNameValues('ErrMsg')
else
eMsg := 'Nemám zpìtnou vazbu z výpoètu dat zahájení/ukonèení';
if (eMsg<>'') then
Helios.Error (#1 + eMsg + #1)
else
Close;
except on E:Exception do
Helios.Error (#1'Chyba zpracování: '#1 + E.Message);
end;
end
else
Helios.Error (#1'V øadì pøíkazù s povolenou zmìnou plánovaného data ukonèení nesmí být pøíkaz bez zmìny.'#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.
+4 -2
View File
@@ -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};
+918 -35
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.