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 *.7z
bak/ bak/
bak2/ bak2/
x/
+201 -146
View File
@@ -85,7 +85,8 @@ uses System.Variants, Vcl.Controls, System.Generics.Collections, System.Generics
{$IFDEF MadExcept} {$IFDEF MadExcept}
madExcept, madExcept,
{$ENDIF} {$ENDIF}
frmHrOdvOper, frmSchvaleniZak, frmOOPPohyb; frmHrOdvOper, frmSchvaleniZak, frmOOPPohyb, frmVPrZmenaPlanuUkonceni, frmGenKoopObj,
dataMod;
var oVar1, oVar2: OleVariant; var oVar1, oVar2: OleVariant;
LocalFormatSettings: TFormatSettings; LocalFormatSettings: TFormatSettings;
@@ -336,43 +337,44 @@ var oVar1, oVar2: OleVariant;
arrRadky: TArray<TArray<string>>; arrRadky: TArray<TArray<string>>;
cont: Boolean; cont: Boolean;
proc1, proc2: Double; proc1, proc2: Double;
wF: TForm;
begin begin
overRadek:= 0; overRadek := 0;
posunSl:= 0; posunSl := 0;
if (Clipboard.HasFormat(CF_TEXT)) then if (Clipboard.HasFormat(CF_TEXT)) then
begin begin
errMsg:= ''; errMsg := '';
cont:= true; cont := true;
radky:= ''; radky := '';
try try
radky:= Clipboard.AsText; radky := Clipboard.AsText;
sl:= PosCount(#9, LeftStr(radky, Pos(#13, radky)-1)) + 1; // pocet sloupcu sl := PosCount(#9, LeftStr(radky, Pos(#13, radky)-1)) + 1; // pocet sloupcu
except on E:Exception do except on E:Exception do
cont:= false; cont := false;
end; end;
if (radky<>'') and (cont) then if (radky<>'') and (cont) then
begin begin
cont:= true; cont := true;
cntIns:= 0; cntIns := 0;
cntAkt:= 0; cntAkt := 0;
cnt:= Length(radky)-Length(StringReplace(radky, Chr(13),'',[rfReplaceAll]))+1; 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 SetLength (arrRadky, cnt, 5); // index od 0, napevno 5 sloupcu, kdyby nepsali nadpis pro SZn a procentaN
if (Pos(#13, radky)>0) then 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 else
zaznam:= radky; zaznam := radky;
if Helios.YesNo('Má importovaná oblast hlavičku ?', false) then if Helios.YesNo('Má importovaná oblast hlavičku ?', false) then
begin begin
Delete(radky,1,Pos(#13,radky)+1); // smaze hlavicku Delete (radky,1,Pos(#13,radky)+1); // smaze hlavicku
SetLength(arrRadky,Length(arrRadky)-1); SetLength (arrRadky,Length(arrRadky)-1);
end; end;
for idxR:=0 to High(arrRadky)-1 do for idxR:=0 to High(arrRadky)-1 do
begin begin
if (Pos(#13,radky)>0) then if (Pos(#13,radky)>0) then
zaznam:= LeftStr(radky,Pos(#13,radky)-1) zaznam := LeftStr(radky,Pos(#13,radky)-1)
else else
zaznam:= radky; zaznam := radky;
zaznam:= Trim(StringReplace(zaznam, #9#9, #9' '#9,[rfReplaceAll])); zaznam := Trim(StringReplace(zaznam, #9#9, #9' '#9,[rfReplaceAll]));
if (zaznam<>'') then if (zaznam<>'') then
for idxS:=0 to sl-1 do for idxS:=0 to sl-1 do
begin begin
@@ -380,13 +382,13 @@ var oVar1, oVar2: OleVariant;
begin begin
if (Pos(#9, zaznam)>0) then if (Pos(#9, zaznam)>0) then
begin begin
arrRadky[idxR,idxS]:= LeftStr(zaznam, Pos(#9, zaznam)-1); arrRadky[idxR,idxS] := LeftStr(zaznam, Pos(#9, zaznam)-1);
Delete(zaznam,1,Pos(#9, zaznam)); Delete (zaznam,1,Pos(#9, zaznam));
end end
else else
begin begin
arrRadky[idxR,idxS]:= zaznam; arrRadky[idxR,idxS] := zaznam;
zaznam:= ''; zaznam := '';
end; end;
end; end;
end; end;
@@ -399,7 +401,7 @@ var oVar1, oVar2: OleVariant;
lSQL:= lSQL.Replace('#TabImp', 'dbo._TabImp'); lSQL:= lSQL.Replace('#TabImp', 'dbo._TabImp');
Helios.ExecSQL(lSQL); 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 for idxR:=0 to High(arrRadky)-1 do
begin begin
arrRadky[idxR, 0]:= helUtils.sqlSanitize(arrRadky[idxR, 0].Trim); // sz arrRadky[idxR, 0]:= helUtils.sqlSanitize(arrRadky[idxR, 0].Trim); // sz
@@ -420,36 +422,38 @@ var oVar1, oVar2: OleVariant;
begin begin
try try
if (arrRadky[idxR, 2]='') then if (arrRadky[idxR, 2]='') then
proc1:= 0 proc1 := 0
else else
if not(TryStrToFloat(arrRadky[idxR, 2].Replace(' ', '').Replace('.', ','), proc1)) then if not(TryStrToFloat(arrRadky[idxR, 2].Replace(' ', '').Replace('.', ','), proc1)) then
proc1:= 0; proc1 := 0;
if (arrRadky[idxR, 4]='') then if (arrRadky[idxR, 4]='') then
proc2:= 0 proc2 := 0
else else
if not(TryStrToFloat(arrRadky[idxR, 4].Replace(' ', '').Replace('.', ','), proc2)) then 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 := '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 := lSQL + ', N' + arrRadky[idxR, 1].QuotedString + ', ' + proc1.ToString.Replace(',', '.') + ', N' + arrRadky[idxR, 3].QuotedString + ', ' + proc2.ToString.Replace(',', '.');
if (jeTest) then if (jeTest) then
lSQL:= lSQL.Replace('#TabImp', 'dbo._TabImp'); lSQL := lSQL.Replace ('#TabImp', 'dbo._TabImp');
Helios.ExecSQL(lSQL); Helios.ExecSQL (lSQL);
except on E:Exception do except on E:Exception do
errMsg:= E.Message + CRLF + lSQL; errMsg := E.Message + CRLF + lSQL;
end; end;
end; end;
end; end;
waitEnd;
if Assigned(wF) then
waitEnd (wF);
if not(jeTest) then 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 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); // Helios.Info(#1'Nových karet forem: ' + cntIns.ToString + CRLF + 'Upravených karet forem: ' + cntAkt.ToString + #1);
end; end;
end; end;
@@ -465,6 +469,7 @@ var oVar1, oVar2: OleVariant;
arrRadky: TArray<TArray<string>>; arrRadky: TArray<TArray<string>>;
forma: TForma; forma: TForma;
cont: Boolean; cont: Boolean;
wF: TForm;
begin begin
overRadek:= 0; overRadek:= 0;
posunSl:= 0; posunSl:= 0;
@@ -523,14 +528,14 @@ var oVar1, oVar2: OleVariant;
Delete(radky,1,Pos(#13, radky)+1); Delete(radky,1,Pos(#13, radky)+1);
end; 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 for idxR:=0 to High(arrRadky)-1 do
begin begin
if (idxR mod 10=0) then if (idxR mod 10=0) then
waitSetProgBar(idxR); helUtils.waitSetProgBar (idxR, wF);
try try
idKZ:= 0; idKZ:= 0;
ClearForma(forma); ClearForma (forma);
forma.sz:= Trim(arrRadky[idxR, 0]); forma.sz:= Trim(arrRadky[idxR, 0]);
posunSl:= 0; posunSl:= 0;
@@ -549,13 +554,13 @@ var oVar1, oVar2: OleVariant;
if (forma.regCis='') then if (forma.regCis='') then
continue; continue;
forma.nazev1:= Trim(arrRadky[idxR, 1 + posunSl]); forma.nazev1 := Trim(arrRadky[idxR, 1 + posunSl]);
forma.vc:= Trim(arrRadky[idxR, 2 + posunSl]); forma.vc := Trim(arrRadky[idxR, 2 + posunSl]);
forma.popisVc:= Trim(arrRadky[idxR, 3 + posunSl]); forma.popisVc := Trim(arrRadky[idxR, 3 + posunSl]);
forma.skutPopVc:= Trim(arrRadky[idxR, 4 + posunSl]); forma.skutPopVc := Trim(arrRadky[idxR, 4 + posunSl]);
forma.vykres:= Trim(arrRadky[idxR, 5 + posunSl]); forma.vykres := Trim(arrRadky[idxR, 5 + posunSl]);
forma.cilSklad:= Trim(arrRadky[idxR, 7 + posunSl]); forma.cilSklad := Trim(arrRadky[idxR, 7 + posunSl]);
forma.jcena:= 0; forma.jcena := 0;
with Helios.OpenSQL('SELECT ID FROM ' + tblKZ + ' WHERE SkupZbo=N' + QuotedStr(forma.sz) + ' AND RegCis=N' + QuotedStr(forma.regCis)) do with Helios.OpenSQL('SELECT ID FROM ' + tblKZ + ' WHERE SkupZbo=N' + QuotedStr(forma.sz) + ' AND RegCis=N' + QuotedStr(forma.regCis)) do
if (RecordCount=1) then if (RecordCount=1) then
@@ -573,11 +578,11 @@ var oVar1, oVar2: OleVariant;
// lSQL:= lSQL + 'SELECT SCOPE_IDENTITY()'; // lSQL:= lSQL + 'SELECT SCOPE_IDENTITY()';
try try
with Helios.OpenSQL(lSQL) do with Helios.OpenSQL(lSQL) do
idKZ:= StrToInt(VarToStr(FieldValues(0))); idKZ := StrToInt(VarToStr(FieldValues(0)));
Inc(cntIns); Inc (cntIns);
except on E:Exception do except on E:Exception do
begin begin
Helios.Error(#1'Chyba INS: ' + e.Message +#1); Helios.Error (#1'Chyba INS: ' + e.Message +#1);
idKZ:= 0; idKZ:= 0;
end; end;
end; end;
@@ -592,9 +597,9 @@ var oVar1, oVar2: OleVariant;
lSQL:= lSQL + forma.cilSklad.QuotedString + ', @IDZboSklad=@idSS OUT' + CRLF + 'SELECT @idSS'; lSQL:= lSQL + forma.cilSklad.QuotedString + ', @IDZboSklad=@idSS OUT' + CRLF + 'SELECT @idSS';
try try
with Helios.OpenSQL(lSQL) do with Helios.OpenSQL(lSQL) do
idSS:= StrToInt(VarToStr(FieldValues(0))); idSS := StrToInt(VarToStr(FieldValues(0)));
except except
idSS:= 0; idSS := 0;
end; end;
if (idSS>0) and (forma.vc<>'') then if (idSS>0) and (forma.vc<>'') then
begin 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 + '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'; lSQL:= lSQL + ', @Nazev1=N' + forma.vc.QuotedString + CRLF + 'SELECT @idVC';
try try
with Helios.OpenSQL(lSQL) do with Helios.OpenSQL (lSQL) do
idVC:= StrToInt(VarToStr(FieldValues(0))); idVC:= StrToInt (VarToStr(FieldValues(0)));
except except
idVC:= 0; idVC:= 0;
end; end;
@@ -613,7 +618,7 @@ var oVar1, oVar2: OleVariant;
begin begin
lSQL:= 'UPDATE ' + tblVyrCSE + ' SET _SkutecnyPopis=N' + forma.skutPopVc.QuotedString + ' WHERE ID=' + idVC.ToString + CRLF + 'IF (@@ROWCOUNT=0)' + CRLF; 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; lSQL:= lSQL + ' INSERT ' + tblVyrCSE + ' (ID, _SkutecnyPopis) SELECT ' + idVC.ToString + ', N' + forma.skutPopVc.QuotedString;
Helios.ExecSQL(lSQL); Helios.ExecSQL (lSQL);
end; end;
end; end;
end; end;
@@ -623,10 +628,11 @@ var oVar1, oVar2: OleVariant;
errMsg:= E.Message + CRLF + lSQL; errMsg:= E.Message + CRLF + lSQL;
end; end;
end; end;
waitEnd; if Assigned(wF) then
waitEnd (wF);
Helios.Refresh(true); Helios.Refresh (true);
Helios.Info(#1'Nových karet forem: ' + cntIns.ToString + CRLF + 'Upravených karet forem: ' + cntAkt.ToString + #1); Helios.Info (#1'Nových karet forem: ' + cntIns.ToString + CRLF + 'Upravených karet forem: ' + cntAkt.ToString + #1);
end; end;
end; end;
end; end;
@@ -641,6 +647,7 @@ var oVar1, oVar2: OleVariant;
arrRadky: TArray<TArray<string>>; arrRadky: TArray<TArray<string>>;
forma: TForma; forma: TForma;
cont: Boolean; cont: Boolean;
wF: TForm;
begin begin
overRadek:= 0; overRadek:= 0;
posunSl:= 0; posunSl:= 0;
@@ -662,7 +669,7 @@ var oVar1, oVar2: OleVariant;
cntIns:= 0; cntIns:= 0;
cntAkt:= 0; cntAkt:= 0;
cnt:= Length(radky)-Length(StringReplace(radky, Chr(13),'',[rfReplaceAll]))+1; 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 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 else
@@ -699,14 +706,14 @@ var oVar1, oVar2: OleVariant;
Delete(radky,1,Pos(#13, radky)+1); Delete(radky,1,Pos(#13, radky)+1);
end; 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 for idxR:=0 to High(arrRadky)-1 do
begin begin
if (idxR mod 10=0) then if (idxR mod 10=0) then
waitSetProgBar(idxR); helUtils.waitSetProgBar (idxR, wF);
try try
idKZ:= 0; idKZ := 0;
ClearForma(forma); ClearForma (forma);
forma.sz:= Trim(arrRadky[idxR, 0]); forma.sz:= Trim(arrRadky[idxR, 0]);
posunSl:= 0; posunSl:= 0;
@@ -744,11 +751,11 @@ var oVar1, oVar2: OleVariant;
lSQL:= lSQL + 'SELECT SCOPE_IDENTITY()'; lSQL:= lSQL + 'SELECT SCOPE_IDENTITY()';
try try
with Helios.OpenSQL(lSQL) do with Helios.OpenSQL(lSQL) do
idKZ:= StrToInt(VarToStr(FieldValues(0))); idKZ:= StrToInt (VarToStr(FieldValues(0)));
Inc(cntIns); Inc(cntIns);
except on E:Exception do except on E:Exception do
begin begin
Helios.Error(#1'Chyba INS: ' + e.Message +#1); Helios.Error (#1'Chyba INS: ' + e.Message +#1);
idKZ:= 0; idKZ:= 0;
end; end;
end; end;
@@ -790,19 +797,21 @@ var oVar1, oVar2: OleVariant;
idVC:= 0; idVC:= 0;
end; end;
if (idVC>0) then 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; end;
end; end;
except on E:Exception do except on E:Exception do
errMsg:= E.Message + CRLF + lSQL; errMsg := E.Message + CRLF + lSQL;
end; end;
end; end;
waitEnd;
Helios.Refresh(true); if Assigned(wF) then
Helios.Info(#1'Nových karet forem: ' + cntIns.ToString + CRLF + 'Upravených karet forem: ' + cntAkt.ToString + #1); 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; end;
end; end;
@@ -817,6 +826,7 @@ var oVar1, oVar2: OleVariant;
arrRadky: TArray<TArray<string>>; arrRadky: TArray<TArray<string>>;
forma: TForma; forma: TForma;
cont, jsemNew: Boolean; cont, jsemNew: Boolean;
wF: Tform;
begin begin
overRadek:= 0; overRadek:= 0;
posunSl:= 0; posunSl:= 0;
@@ -875,11 +885,11 @@ var oVar1, oVar2: OleVariant;
Delete(radky,1,Pos(#13, radky)+1); Delete(radky,1,Pos(#13, radky)+1);
end; 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 for idxR:=0 to High(arrRadky)-1 do
begin begin
if (idxR mod 10=0) then if (idxR mod 10=0) then
waitSetProgBar(idxR); helUtils.waitSetProgBar (idxR, wF);
try try
idKZ:= 0; idKZ:= 0;
jsemNew:= false; jsemNew:= false;
@@ -962,10 +972,12 @@ var oVar1, oVar2: OleVariant;
errMsg:= E.Message + CRLF + lSQL; errMsg:= E.Message + CRLF + lSQL;
end; end;
end; end;
waitEnd;
Helios.Refresh(true); if Assigned(wF) then
Helios.Info(#1'Import ' + cntIns.ToString + ' nových karet' + CRLF + 'Aktualizací karet: ' + cntAkt.ToString + #1); waitEnd (wF);
Helios.Refresh (true);
Helios.Info (#1'Import ' + cntIns.ToString + ' nových karet' + CRLF + 'Aktualizací karet: ' + cntAkt.ToString + #1);
end; end;
end; end;
end; end;
@@ -979,6 +991,7 @@ var oVar1, oVar2: OleVariant;
arrRadky: TArray<TArray<string>>; arrRadky: TArray<TArray<string>>;
kmen: TKmen; kmen: TKmen;
cont: Boolean; cont: Boolean;
wF: TForm;
begin begin
posunSl:= 0; posunSl:= 0;
@@ -1039,14 +1052,14 @@ var oVar1, oVar2: OleVariant;
Delete(radky,1,Pos(#13, radky)+1); Delete(radky,1,Pos(#13, radky)+1);
end; 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 for idxR:=0 to High(arrRadky)-1 do
begin begin
if (idxR mod 10=0) then if (idxR mod 10=0) then
waitSetProgBar(idxR); helUtils.waitSetProgBar (idxR, wF);
try try
idKZ:= 0; idKZ:= 0;
clearKmen(kmen); clearKmen (kmen);
{ {
if Trim(arrRadky[idxR, 0])<>Trim(arrRadky[idxR, 1]) then if Trim(arrRadky[idxR, 0])<>Trim(arrRadky[idxR, 1]) then
kmen.sz:= Trim(arrRadky[idxR, 0]); kmen.sz:= Trim(arrRadky[idxR, 0]);
@@ -1243,10 +1256,12 @@ var oVar1, oVar2: OleVariant;
errMsg:= E.Message + CRLF + lSQL; errMsg:= E.Message + CRLF + lSQL;
end; end;
end; end;
waitEnd;
Helios.Refresh(true); if Assigned(wF) then
Helios.Info(#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1); waitEnd (wF);
Helios.Refresh (true);
Helios.Info (#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1);
end; end;
end; end;
end; end;
@@ -1264,6 +1279,7 @@ var oVar1, oVar2: OleVariant;
supps: TArray<string>; supps: TArray<string>;
fndIdx: integer; fndIdx: integer;
doplnNulu: boolean; doplnNulu: boolean;
wF: TForm;
begin begin
xls:= TXLSWorkbook.Create; xls:= TXLSWorkbook.Create;
try 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 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)' + '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; + ', 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:= xls.Sheets.Add;
shSupp.Name:= 'Suppliers'; shSupp.Name:= 'Suppliers';
@@ -1456,14 +1472,14 @@ var oVar1, oVar2: OleVariant;
with Helios.OpenSQL(lSQL) do with Helios.OpenSQL(lSQL) do
begin begin
i:=RecordCount; i:=RecordCount;
waitStart(nil, 'Export položek', i, clRed); wF := helUtils.waitStart (nil, 'Export položek', i, clRed, true);
First; First;
i:= 1; i:= 1;
while not(EOF) do while not(EOF) do
begin begin
if (i mod 10=0) then if (i mod 10=0) then
waitSetProgBar(i); helUtils.waitSetProgBar (i, wF);
idKZ:= StrToInt(VarToStr(FieldValues(8))); idKZ:= StrToInt(VarToStr(FieldValues(8)));
sTypPol:= 'E'; sTypPol:= 'E';
@@ -1569,7 +1585,8 @@ var oVar1, oVar2: OleVariant;
Next; Next;
end; end;
waitEnd; if Assigned(wF) then
waitEnd (wF);
end; end;
@@ -1616,6 +1633,7 @@ var oVar1, oVar2: OleVariant;
arrRadky: TArray<TArray<string>>; arrRadky: TArray<TArray<string>>;
kmen: TKmen; kmen: TKmen;
cont: Boolean; cont: Boolean;
wF: TForm;
begin begin
posunSl:= 2; posunSl:= 2;
@@ -1674,11 +1692,11 @@ var oVar1, oVar2: OleVariant;
Delete(radky,1,Pos(#13, radky)+1); Delete(radky,1,Pos(#13, radky)+1);
end; 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 for idxR:=0 to High(arrRadky)-1 do
begin begin
if (idxR mod 10=0) then if (idxR mod 10=0) then
waitSetProgBar(idxR); helUtils.waitSetProgBar (idxR, wF);
try try
idKZ:= 0; idKZ:= 0;
clearKmen(kmen); clearKmen(kmen);
@@ -1820,10 +1838,12 @@ var oVar1, oVar2: OleVariant;
errMsg:= E.Message + CRLF + lSQL; errMsg:= E.Message + CRLF + lSQL;
end; end;
end; end;
waitEnd;
Helios.Refresh(true); if Assigned(wF) then
Helios.Info(#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1); helUtils.waitEnd (wF);
Helios.Refresh (true);
Helios.Info (#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1);
end; end;
end; end;
end; end;
@@ -1838,6 +1858,7 @@ var oVar1, oVar2: OleVariant;
arrRadky: TArray<TArray<string>>; arrRadky: TArray<TArray<string>>;
kmen: TKmen; kmen: TKmen;
cont, prvniPrazdne: Boolean; cont, prvniPrazdne: Boolean;
wF: TForm;
begin begin
overRadek:= 0; overRadek:= 0;
@@ -1901,11 +1922,12 @@ var oVar1, oVar2: OleVariant;
posunSl:= 0; posunSl:= 0;
if (prvniPrazdne) then if (prvniPrazdne) then
posunSl:= -1; 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 for idxR:=0 to High(arrRadky)-1 do
begin begin
if (idxR mod 10=0) then if (idxR mod 10=0) then
waitSetProgBar(idxR); helUtils.waitSetProgBar (idxR, wF);
try try
idKZ:= 0; idKZ:= 0;
idVC:= 0; idVC:= 0;
@@ -1990,16 +2012,20 @@ var oVar1, oVar2: OleVariant;
errMsg:= E.Message + CRLF + lSQL; errMsg:= E.Message + CRLF + lSQL;
end; end;
end; end;
waitEnd;
Helios.Refresh(true); if Assigned(wF) then
Helios.Info(#1'Nových karet VČ: ' + cntIns.ToString + CRLF + 'Upravených karet VČ: ' + cntAkt.ToString + #1); 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; 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; var lSQL, idsX: string;
bidRozbory, i: integer; bidRozbory, i: integer;
begin 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; var lSQL, nazRozp, vstStr, denikIDs, utvarVst, cisStredOper: string;
idPreuct, idx, rozpNr, idRozpRez, idObd, mObd, rObd: integer; idPreuct, idx, rozpNr, idRozpRez, idObd, mObd, rObd: integer;
ctiZak, ctiUtvar: Boolean; ctiZak, ctiUtvar: Boolean;
celkemHod, zakazkaHod: extended; celkemHod, zakazkaHod: extended;
arrVstStr: TArray<string>; arrVstStr: TArray<string>;
wF: TForm;
begin begin
if (Length(arrID)>0) then if (Length(arrID)>0) then
begin begin
@@ -2298,7 +2325,7 @@ var oVar1, oVar2: OleVariant;
if (idObd>0) then if (idObd>0) then
begin 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:= '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'; 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); helUtils.ReseedTable(Helios, tblRozpRezDet);
Helios.ExecSQL('INSERT ' + tblRozpRezDet + ' (CisloZakazky, IdFIARozpusteniRezii, Podil) ' + lSQL); Helios.ExecSQL('INSERT ' + tblRozpRezDet + ' (CisloZakazky, IdFIARozpusteniRezii, Podil) ' + lSQL);
waitEnd; if Assigned(wF) then
helUtils.waitEnd (wF);
{ {
with Helios.OpenSQL(lSQL) do with Helios.OpenSQL(lSQL) do
@@ -2331,7 +2359,7 @@ var oVar1, oVar2: OleVariant;
end; // idRozpRez>0 end; // idRozpRez>0
end; // for rozpNr end; // for rozpNr
end; end;
Helios.Refresh(true); Helios.Refresh (true);
end; end;
@@ -2341,9 +2369,9 @@ var oVar1, oVar2: OleVariant;
procedure TplgKdynium.VytvorTempExtKomPar (const Helios: IHelios; id: integer); procedure TplgKdynium.VytvorTempExtKomPar (const Helios: IHelios; id: integer);
var lSQL: string; var lSQL: string;
begin 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 := '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; lSQL := lSQL + 'DELETE FROM #TabExtKomPar' + CRLF + 'INSERT #TabExtKomPar (Popis, Cislo) SELECT N''STVlastID'', ' + id.ToString;
Helios.ExecSQL(lSQL); Helios.ExecSQL (lSQL);
end; end;
@@ -2351,7 +2379,7 @@ var oVar1, oVar2: OleVariant;
procedure TplgKdynium.Run (const Helios: IHelios); procedure TplgKdynium.Run (const Helios: IHelios);
const MinVerzeHelios = $030020250106; const MinVerzeHelios = $030020260114;
var typAkce: byte; var typAkce: byte;
browID, cRec, cntID, l_loop, idDZ, dpz, cOrg, newBid: integer; browID, cRec, cntID, l_loop, idDZ, dpz, cOrg, newBid: integer;
lSQL, autor, radDokl, IDcka, params, paramsBak, vlastPar, vlastPar2, contInfo, sz, podm, sTemp: string; lSQL, autor, radDokl, IDcka, params, paramsBak, vlastPar, vlastPar2, contInfo, sz, podm, sTemp: string;
@@ -2368,6 +2396,8 @@ var oVar1, oVar2: OleVariant;
fHrOdvOp: TformHrOdvOper; fHrOdvOp: TformHrOdvOper;
fSchvalZak: TformSchvaleniZak; fSchvalZak: TformSchvaleniZak;
fOOPPohyb: TformOOPPohyb; fOOPPohyb: TformOOPPohyb;
fVPrZmenaUkonceni: TformVPrZmenaPlanuUkonceni;
fGenKObj: TformGenKoopObj;
term, canCont, plusJeden: boolean; term, canCont, plusJeden: boolean;
begin begin
@@ -2384,6 +2414,9 @@ var oVar1, oVar2: OleVariant;
raise Exception.Create('Plugin vyžaduje min verzi Heliosu ' + IntToHex(MinVerzeHelios, 12)) raise Exception.Create('Plugin vyžaduje min verzi Heliosu ' + IntToHex(MinVerzeHelios, 12))
else else
begin begin
if (dataMod.dm=nil) then
dataMod.dm := Tdm.Create (nil);
with Helios.OpenSQL('SELECT CONVERT(nvarchar(128),CONTEXT_INFO(),2)') do with Helios.OpenSQL('SELECT CONVERT(nvarchar(128),CONTEXT_INFO(),2)') do
if VarIsNull(FieldValues(0)) then if VarIsNull(FieldValues(0)) then
@@ -2879,20 +2912,20 @@ var oVar1, oVar2: OleVariant;
end; end;
end; end;
26: ImportKmenMeridla(Helios); 26: ImportKmenMeridla (Helios);
27: ImportKmenMeridlaVC(Helios); 27: ImportKmenMeridlaVC (Helios);
28: ZakazkaZobrazTavby(Helios, arrID); 28: ZakazkaZobrazTavby (Helios, arrID);
29: ZakazkaZobrazAtestyTaveb(Helios, arrID); 29: ZakazkaZobrazAtestyTaveb (Helios, arrID);
30: begin 30: begin
fSchvalZak:= TformSchvaleniZak.Create(nil); fSchvalZak := TformSchvaleniZak.Create(nil);
try try
fSchvalZak.Helios:= Helios; fSchvalZak.Helios := Helios;
fSchvalZak.id:= 0; fSchvalZak.id := 0;
if (Length(arrId)>1) then if (Length(arrId)>1) then
fSchvalZak.arrID:= arrId fSchvalZak.arrID := arrId
else else
fSchvalZak.id:= cRec; fSchvalZak.id := cRec;
fSchvalZak.ShowModal; fSchvalZak.ShowModal;
finally finally
fSchvalZak.Free; fSchvalZak.Free;
@@ -2901,30 +2934,30 @@ var oVar1, oVar2: OleVariant;
31: ImportProcentaZtrat(Helios); 31: ImportProcentaZtrat(Helios);
32: begin 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 if (iTemp>0) then
begin 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 if (Length(arrID)=1) then
begin 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 if (iTemp2>0) then
podm:= podm + ' AND hvw_ObdobiStavu.DatumOd_Y=' + iTemp2.ToString; podm := podm + ' AND hvw_ObdobiStavu.DatumOd_Y=' + iTemp2.ToString;
end; end;
if Helios.Prenos(iTemp, 'hvw_ObdobiStavu.ID', oVar, podm, 'Vyberte období ' + IfThen(iTemp2>0, ' roku ' + iTemp2.ToString, ' (M/R)'), true) then if Helios.Prenos(iTemp, 'hvw_ObdobiStavu.ID', oVar, podm, 'Vyberte období ' + IfThen(iTemp2>0, ' roku ' + iTemp2.ToString, ' (M/R)'), true) then
begin begin
Helios.ExecSQL('DROP TABLE IF EXISTS #TabObdobiRozpRez' + CRLF + 'CREATE TABLE #TabObdobiRozpRez (IdObd INT)' + CRLF + 'INSERT #TabObdobiRozpRez (IdObd) SELECT ' + VarToStr(oVar)); Helios.ExecSQL ('DROP TABLE IF EXISTS #TabObdobiRozpRez' + CRLF + 'CREATE TABLE #TabObdobiRozpRez (IdObd INT)' + CRLF + 'INSERT #TabObdobiRozpRez (IdObd) SELECT ' + VarToStr(oVar));
RozpRezii_PseudoAutomat(Helios, arrID); RozpRezii_PseudoAutomat (Helios, arrID);
end; end;
end; end;
Helios.ExecSQL('DROP TABLE IF EXISTS #TabObdobiRozpRez'); Helios.ExecSQL ('DROP TABLE IF EXISTS #TabObdobiRozpRez');
end; end;
33: begin // OOP zadani pohybu 33: begin // OOP zadani pohybu
fOOPPohyb:= TformOOPPohyb.Create(nil); fOOPPohyb := TformOOPPohyb.Create(nil);
try try
fOOPPohyb.Helios:= Helios; fOOPPohyb.Helios := Helios;
fOOPPohyb.jeTest:= jeTest; fOOPPohyb.jeTest := jeTest;
fOOPPohyb.ShowModal; fOOPPohyb.ShowModal;
finally finally
fOOPPohyb.Free; fOOPPohyb.Free;
@@ -2932,34 +2965,34 @@ var oVar1, oVar2: OleVariant;
end; end;
34: begin 34: begin
iTemp:= StrToInt (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('ID'))); // radek vydejky iTemp := StrToInt (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('ID'))); // radek vydejky
iTemp2:= StrToInt (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('IDZboSklad'))); // idZboSklad iTemp2 := StrToInt (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('IDZboSklad'))); // idZboSklad
nTemp:= StrToFloat (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('Mnozstvi'))); // mnozstvi radku nTemp := StrToFloat (VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('Mnozstvi'))); // mnozstvi radku
nTemp4:= helUtils.getHeliosFloatVal (Helios, 0, 'SELECT Mnozstvi FROM ' + tblSS + ' WHERE ID=' + iTemp2.ToString); nTemp4 := helUtils.getHeliosFloatVal (Helios, 0, 'SELECT Mnozstvi FROM ' + tblSS + ' WHERE ID=' + iTemp2.ToString);
nTemp3:= 0; nTemp3 := 0;
VytvorTempExtKomPar (Helios, iTemp); VytvorTempExtKomPar (Helios, iTemp);
lSQL:= 'DROP TABLE IF EXISTS #TabRadkyProVyber' + CRLF + 'CREATE TABLE #TabRadkyProVyber (IDX INT IDENTITY(1,1) NOT NULL, ID INT NOT NULL)'; lSQL := 'DROP TABLE IF EXISTS #TabRadkyProVyber' + CRLF + 'CREATE TABLE #TabRadkyProVyber (IDX INT IDENTITY(1,1) NOT NULL, ID INT NOT NULL)';
Helios.ExecSQL(lSQL); 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 := '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 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 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 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 + ' AND p.ID>=ISNULL( (SELECT ID FROM ' + tblPZe + ' WHERE ISNULL(_Expedice_VazbaPrijemVydejHranice,0)=1), 0)';
lSQL:= lSQL + ' ORDER BY p.DatPorizeni DESC'; lSQL := lSQL + ' ORDER BY p.DatPorizeni DESC';
with Helios.OpenSQL(lSQL) do with Helios.OpenSQL(lSQL) do
if (RecordCount>0) then if (RecordCount>0) then
begin begin
canCont:= true; canCont := true;
plusJeden:= false; plusJeden := false;
First; First;
while not(EOF) and (canCont) do while not(EOF) and (canCont) do
begin begin
iTemp3:= StrToInt (VarToStr(FieldByNameValues('ID'))); iTemp3 := StrToInt (VarToStr(FieldByNameValues('ID')));
nTemp2:= StrToFloat (VarToStr(FieldByNameValues('Mnozstvi'))); nTemp2 := StrToFloat (VarToStr(FieldByNameValues('Mnozstvi')));
nTemp3:= nTemp3 + nTemp2; nTemp3 := nTemp3 + nTemp2;
if (nTemp3<nTemp4) then if (nTemp3<nTemp4) then
Helios.ExecSQL ('INSERT #TabRadkyProVyber (ID) SELECT ' + iTemp3.ToString) Helios.ExecSQL ('INSERT #TabRadkyProVyber (ID) SELECT ' + iTemp3.ToString)
@@ -2967,7 +3000,7 @@ var oVar1, oVar2: OleVariant;
begin begin
if (nTemp3-nTemp4<nTemp2) then if (nTemp3-nTemp4<nTemp2) then
Helios.ExecSQL ('INSERT #TabRadkyProVyber (ID) SELECT ' + iTemp3.ToString); Helios.ExecSQL ('INSERT #TabRadkyProVyber (ID) SELECT ' + iTemp3.ToString);
canCont:= false; canCont := false;
end; end;
Next; Next;
@@ -2978,13 +3011,35 @@ var oVar1, oVar2: OleVariant;
35: ImportObedy (Helios); 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 end; // case
Helios.Refresh(true); Helios.Refresh(true);
if (contInfo='NULL') then if (contInfo='NULL') then
Helios.ExecSQL('SET CONTEXT_INFO 0x') Helios.ExecSQL ('SET CONTEXT_INFO 0x')
else else
Helios.ExecSQL('SET CONTEXT_INFO 0x' + contInfo); Helios.ExecSQL ('SET CONTEXT_INFO 0x' + contInfo);
if not(term) then if not(term) then
if helUtils.HeliosExistsTest(Helios, '#TabExtKom', '') then if helUtils.HeliosExistsTest(Helios, '#TabExtKom', '') then
+209 -1
View File
@@ -1,5 +1,213 @@
object dm: Tdm object dm: Tdm
Height = 480 Height = 480
Width = 640 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 end
+94 -1
View File
@@ -3,10 +3,92 @@
interface interface
uses 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 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) 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 private
public public
end; end;
@@ -15,9 +97,20 @@ var
dm: Tdm; dm: Tdm;
implementation implementation
uses helUtils;
{%CLASSGROUP 'Vcl.Controls.TControl'} {%CLASSGROUP 'Vcl.Controls.TControl'}
{$R *.dfm} {$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. 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; idKZ, idKZsub: integer;
genVob, genVod: Boolean; genVob, genVod: Boolean;
i: integer; i: integer;
wF: TForm;
begin begin
lSQL:= Testy; lSQL:= Testy;
if (lSQL='') then if (lSQL='') then
begin begin
waitStart(self, 'Generování karet...', 1, $0000FF ); wF := helUtils.waitStart (self, 'Generování karet...', 1, $0000FF, true);
x:= ''; x := '';
lSQL:= 'IF OBJECT_ID(N''dbo._temp_TabGenKartySTPV'') IS NOT NULL DELETE FROM dbo._temp_TabGenKartySTPV WHERE Autor=SUSER_SNAME()' + CRLF; 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 + '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'; lSQL := lSQL + ' DROP TABLE dbo._temp_TabGenKartySTPV' + CRLF + 'DROP TABLE IF EXISTS #TabGenKartySTPV';
Helios.ExecSQL(lSQL); 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 := '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 + ', 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 + ', 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 + '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 + 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 + cboxPrvniObal.ItemIndex.ToString + ', N' + edtVzorTPV.Text.QuotedString + ', N' + cboxVOD.Text.QuotedString + ', ' + IfThen(cbGenSpodek.Checked, '1', '0');
lSQL:= lSQL + ', ' + IfThen(cbRCdleFin.Checked, '1', '0'); lSQL := lSQL + ', ' + IfThen(cbRCdleFin.Checked, '1', '0');
for i:=0 to Helios.QueryBrowse.FieldCount-1 do for i:=0 to Helios.QueryBrowse.FieldCount-1 do
begin begin
xx:= Helios.QueryBrowse.Fields(i).FieldName; xx := Helios.QueryBrowse.Fields(i).FieldName;
if (xx='IDSklad') then if (xx='IDSklad') then
x:= VarToStr(Helios.QueryBrowse.FieldByNameValues('IDSklad')); x := VarToStr(Helios.QueryBrowse.FieldByNameValues('IDSklad'));
end; end;
lSQL:= lSQL + ', ' + IfThen(x='', 'NULL', 'N' + x.QuotedString); lSQL := lSQL + ', ' + IfThen(x='', 'NULL', 'N' + x.QuotedString);
lSQL:= lSQL + ', N' + IfThen(edtMat.Text='', 'ULL', edtMat.Text.QuotedString); lSQL := lSQL + ', N' + IfThen(edtMat.Text='', 'ULL', edtMat.Text.QuotedString);
try try
if (jeTest) then if (jeTest) then
lSQL:= StringReplace(lSQL, '#TabGenKar', 'dbo._temp_TabGenKar', [rfReplaceAll]); lSQL := StringReplace(lSQL, '#TabGenKar', 'dbo._temp_TabGenKar', [rfReplaceAll]);
Helios.ExecSQL(lSQL); Helios.ExecSQL (lSQL);
if not(jeTest) then 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; Close;
except on E:Exception do except on E:Exception do
begin begin
waitEnd; waitEnd (wF);
Helios.Error(#1 + 'CHYBA: ' + #1 + E.Message); Helios.Error (#1 + 'CHYBA: ' + #1 + E.Message);
end; end;
end; end;
waitEnd; if Assigned(wF) then
waitEnd (wF);
end end
else else
Helios.Error(#1 + 'CHYBA: ' + #1 + lSQL); Helios.Error (#1 + 'CHYBA: ' + #1 + lSQL);
end; end;
+196 -193
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 begin
with TTaskDialog.Create(nil) do with TTaskDialog.Create(nil) do
begin begin
try try
Caption:= titulek; Caption := titulek;
Title:= nadpis; Title := nadpis;
Text:= textX; Text := textX;
MainIcon:= ikona; MainIcon := ikona;
DefaultButton:= tcbOK; DefaultButton := tcbOK;
CommonButtons:= [tcbOk]; CommonButtons := [tcbOk];
Execute; Execute;
finally finally
Free; 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 begin
with TTaskDialog.Create(nil) do with TTaskDialog.Create(nil) do
begin begin
try try
Caption:= titulek; Caption := titulek;
Title:= nadpis; Title := nadpis;
Text:= textX; Text := textX;
MainIcon:= ikona; MainIcon := ikona;
DefaultButton:= defBtn; DefaultButton := defBtn;
CommonButtons:= [tcbYes, tcbNo]; CommonButtons := [tcbYes, tcbNo];
Execute; Execute;
result:= ModalResult; result := ModalResult;
finally finally
Free; Free;
end; end;
@@ -124,7 +125,6 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
procedure TformOOPPohyb.DotazNaUkonceni; procedure TformOOPPohyb.DotazNaUkonceni;
begin begin
if ((TaskDlgYesNo('', 'Chcete ukončit zadávání ?', '(data nebudou uložena)', tdiInformation, tcbNo))=mrYes) then 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 begin
result:= false; result := false;
if (cisZam>0) then if (cisZam>0) then
begin begin
if (helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString)) then if (helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString)) then
begin 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 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 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 if (idProf>0) then
begin begin
edtProfese.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Profese FROM ' + tblOOPProfese + ' WHERE ID=' + idProf.ToString); edtProfese.Text := helUtils.getHeliosStrVal(Helios, '', 'SELECT Profese FROM ' + tblOOPProfese + ' WHERE ID=' + idProf.ToString);
if (edtDatum.CanFocus) then self.ActiveControl := edtDatum;
edtDatum.SetFocus;
end end
else else
edtProfese.Text:= ''; edtProfese.Text := '';
end; end;
edtPrijmJm.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT PrijmeniJmeno FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString); 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); 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); 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); stredOld := helUtils.getHeliosStrVal (Helios, '', 'SELECT TOP(1) StrediskoOld FROM ' + tblOOPProfese + ' WHERE Stredisko=N' + edtStredisko.Text.QuotedString);
edtStrediskoOld.Text:= stredOld; edtStrediskoOld.Text := stredOld;
result:= true; result := true;
end end
end end
else else
begin begin
TaskDlgOK('POZOR', 'CHYBA', 'Uvedený zaměstnanec nebyl nalezen nebo nemáte právo jej vybrat.', tdiError); TaskDlgOK ('POZOR', 'CHYBA', 'Uvedený zaměstnanec nebyl nalezen nebo nemáte právo jej vybrat.', tdiError);
edtOsCislo.Text:= ''; edtOsCislo.Text := '';
edtPrijmJm.Text:= ''; edtPrijmJm.Text := '';
cisZam:= 0; cisZam := 0;
idZam:= 0; idZam := 0;
end; end;
end; end;
procedure TformOOPPohyb.btnOKClick(Sender: TObject);
procedure TformOOPPohyb.btnOKClick (Sender: TObject);
var lSQL: string; var lSQL: string;
begin begin
if (cisZam>0) and (idPolozka>0) then if (cisZam>0) and (idPolozka>0) then
begin 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) + edtDatum.DateTime.Format('').QuotedString + ', 104), ' + cisZam.ToString + ', ' + edtMnoz.Value.ToString + ', N' + IfThen(memoPozn.Text='', 'ULL', memoPozn.Text.QuotedString)
+ ', ' + IfThen(idProf=0, 'NULL', idProf.ToString); + ', ' + IfThen(idProf=0, 'NULL', idProf.ToString);
Helios.ExecSQL(lSQL); Helios.ExecSQL (lSQL);
Close; Close;
end end
else else
begin begin
TaskDlgOK('POZOR', 'CHYBA', 'Nebyly zadány všechny potřebné informace.', tdiWarning); TaskDlgOK ('POZOR', 'CHYBA', 'Nebyly zadány všechny potřebné informace.', tdiWarning);
if (idPolozka=0) and (edtPolozka.CanFocus) then if (idPolozka=0) then
edtPolozka.SetFocus; self.ActiveControl := edtPolozka;
if (cisZam=0) and (edtOsCislo.CanFocus) then if (cisZam=0) then
edtOsCislo.SetFocus; self.ActiveControl := edtOsCislo;
end; end;
end; end;
procedure TformOOPPohyb.btnStornoClick(Sender: TObject);
procedure TformOOPPohyb.btnStornoClick (Sender: TObject);
begin begin
Close; Close;
end; end;
procedure TformOOPPohyb.edtOsCisloButtonClick(Sender: TObject);
procedure TformOOPPohyb.edtOsCisloButtonClick (Sender: TObject);
var c: integer; var c: integer;
podm: string; podm: string;
begin begin
podm:= IfThen(superUserOOP, '', 'TabCisZam.Stredisko LIKE N' + (strediskoUser + '%').QuotedString); 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 := 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() )'; + 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 if (Helios.Prenos(bidCisZam, 'TabCisZam.Cislo', oVar1, podm, 'Zaměstnanec', true)) then
begin begin
cisZam:= oVar1; cisZam := oVar1;
edtOsCislo.Text:= cisZam.ToString; edtOsCislo.Text := cisZam.ToString;
if (edtOsCislo.Text<>'') then if (edtOsCislo.Text<>'') then
begin begin
if not(TryStrToInt(edtOsCislo.Text, c)) then if not(TryStrToInt(edtOsCislo.Text, c)) then
c:= 0; c := 0;
cisZam:= c; cisZam := c;
if (NactiUdajeZamestnance(cisZam)) then if (NactiUdajeZamestnance(cisZam)) then
if (edtProfese.CanFocus) then self.ActiveControl := edtProfese;
edtProfese.SetFocus;
end end
else else
cisZam:= 0; cisZam := 0;
end; end;
if (edtOsCislo.Modified) then if (edtOsCislo.Modified) then
begin begin
idPolozka:= 0; idPolozka := 0;
edtPolozka.Text:= ''; edtPolozka.Text := '';
edtPolozkaText.Text:= ''; edtPolozkaText.Text := '';
end; end;
end; end;
procedure TformOOPPohyb.edtOsCisloExit(Sender: TObject);
procedure TformOOPPohyb.edtOsCisloExit (Sender: TObject);
var lSQL: string; var lSQL: string;
c: integer; c: integer;
nulujZam: boolean; nulujZam: boolean;
begin begin
nulujZam:= true; nulujZam := true;
edtOsCislo.Text:= edtOsCislo.Text.Trim; edtOsCislo.Text := edtOsCislo.Text.Trim;
if (edtOsCislo.Text<>'') then if (edtOsCislo.Text<>'') then
begin begin
nulujZam:= false; nulujZam := false;
if not(TryStrToInt(edtOsCislo.Text, c)) then if not(TryStrToInt(edtOsCislo.Text, c)) then
c:= 0; c := 0;
cisZam:= c; cisZam := c;
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 not(superUserOOP) then if not(superUserOOP) then
if not(helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblCisZam + ' WHERE Cislo=' + cisZam.ToString + ' AND Stredisko LIKE N' + (strediskoUser + '%').QuotedString)) 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()'; + ' AND Mesic=' + MonthOf(Now).ToString + ') AND StavES=0 AND ISNULL(DatumUkonceniPP, N''20991231'')>GETDATE()';
if not(helUtils.sqlExistsTestGeneral(Helios, lSQL)) then if not(helUtils.sqlExistsTestGeneral(Helios, lSQL)) then
nulujZam:= true; nulujZam := true;
if (nulujZam) then if (nulujZam) then
begin begin
cisZam:= 0; cisZam := 0;
idZam:= 0; idZam := 0;
edtOsCislo.Text:= ''; edtOsCislo.Text := '';
edtPrijmJm.Text:= ''; edtPrijmJm.Text := '';
end; end;
if (NactiUdajeZamestnance(cisZam)) then if (NactiUdajeZamestnance(cisZam)) then
if (edtProfese.CanFocus) then self.ActiveControl := edtProfese;
edtProfese.SetFocus;
end; end;
if (edtOsCislo.Modified) then if (edtOsCislo.Modified) then
begin begin
idPolozka:= 0; idPolozka := 0;
edtPolozka.Text:= ''; edtPolozka.Text := '';
edtPolozkaText.Text:= ''; edtPolozkaText.Text := '';
end; end;
if (nulujZam) then if (nulujZam) then
begin begin
cisZam:= 0; cisZam := 0;
idZam:= 0; idZam := 0;
edtOsCislo.Text:= ''; edtOsCislo.Text := '';
edtPrijmJm.Text:= ''; edtPrijmJm.Text := '';
end; end;
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 begin
if (Key=VK_ESCAPE) then if (Key=VK_ESCAPE) then
DotazNaUkonceni; DotazNaUkonceni;
end; end;
procedure TformOOPPohyb.edtPolozkaKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure TformOOPPohyb.edtPolozkaKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
begin begin
if (Key=VK_ESCAPE) then if (Key=VK_ESCAPE) then
DotazNaUkonceni; DotazNaUkonceni;
end; end;
procedure TformOOPPohyb.edtOsCisloKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure TformOOPPohyb.edtOsCisloKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
begin begin
if (Key=VK_ESCAPE) then if (Key=VK_ESCAPE) then
DotazNaUkonceni; 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; var lSQL, msg: string;
poslVyd: TDateTime; poslVyd: TDateTime;
duvod, zivotnostTxt: string; duvod, zivotnostTxt: string;
b: boolean; b: boolean;
rozdilDnu, zivotnostDnu: integer; rozdilDnu, zivotnostDnu: integer;
begin begin
result:= false; result := false;
outMsg:= ''; outMsg := '';
stredisko:= edtStredisko.Text; stredisko := edtStredisko.Text;
stredOld:= edtStrediskoOld.Text; stredOld := edtStrediskoOld.Text;
if (idPolozka=0) then if (idPolozka=0) then
outMsg:= 'Nelze identifikovat ID položky' outMsg := 'Nelze identifikovat ID položky'
else else
if (cisZam=0) then if (cisZam=0) then
outMsg:= 'Není identifikován zaměstnanec' outMsg := 'Není identifikován zaměstnanec'
else else
begin begin
lSQL:= 'SELECT TOP(1) Datum FROM ' + tblOOPPohyby + ' WHERE IDPolozky=' + idPolozka.ToString + ' AND CisloZam=' + cisZam.ToString + ' ORDER BY Datum DESC'; 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 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 if (helUtils.sqlExistsTestGeneral(Helios, lSQL)) then
begin 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; + ' 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 if (duvod='1') then
begin begin
outMsg:= 'Důvod výměny - IHNED'; outMsg := 'Důvod výměny - IHNED';
result:= true; result := true;
end end
else else
if (duvod='Z') and (1=0) then if (duvod='Z') and (1=0) then
begin begin
outMsg:= 'Důvod výměny - SEZÓNNÍ POLOŽKA'; outMsg := 'Důvod výměny - SEZÓNNÍ POLOŽKA';
result:= true; result := true;
end end
else else
if (duvod='2') or (duvod='Z') then if (duvod='2') or (duvod='Z') then
begin begin
outMsg:= ''; outMsg := '';
b:= false; 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))' 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; + ' 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 if (poslVyd>0) then
begin begin
rozdilDnu:= DaysBetween(poslVyd, edtDatum.DateTime); rozdilDnu := DaysBetween(poslVyd, edtDatum.DateTime);
if (rozdilDnu<zivotnostDnu) then if (rozdilDnu<zivotnostDnu) then
begin begin
if (duvod='2') then if (duvod='2') then
msg:= 'POLOŽKA S MINIMÁLNÍ ŽIVOTNOSTÍ'; msg := 'POLOŽKA S MINIMÁLNÍ ŽIVOTNOSTÍ';
if (duvod='Z') then if (duvod='Z') then
msg:= 'SEZÓNNÍ POLOŽKA S ŽIVOTNOSTÍ'; 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 ' 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; + 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 + ')', '') 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 + CRLF + 'Chcete ji přesto vydat ?', tdiWarning, tcbNo)=mrYes) then
begin begin
result:= true; result:= true;
btnOK.Enabled:= true; btnOK.Enabled := true;
end end
else else
btnOK.Enabled:= false; btnOK.Enabled := false;
{ {
with TTaskDialog.Create(nil) do with TTaskDialog.Create(nil) do
begin begin
@@ -419,94 +420,95 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
end end
else else
begin begin
outMsg:= 'Položka má nastavenu minimální životnost ale nebyl dohledán předešlý výdej.'; outMsg := 'Položka má nastavenu minimální životnost ale nebyl dohledán předešlý výdej.';
result:= true; result := true;
btnOK.Enabled:= true; btnOK.Enabled := true;
end; end;
end end
else else
begin 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;
end end
else else
begin begin
outMsg:= 'Na položku nemá zaměstnanec právo, není zadána Potřebnost'; outMsg := 'Na položku nemá zaměstnanec právo, není zadána Potřebnost';
idPolozka:= 0; idPolozka := 0;
polozka:= ''; polozka := '';
polozkaNum:= ''; polozkaNum := '';
edtPolozka.Text:= ''; edtPolozka.Text := '';
edtPolozkaText.Text:= ''; edtPolozkaText.Text := '';
if (edtPolozka.CanFocus) then self.ActiveControl := edtPolozka;
edtPolozka.SetFocus;
end; end;
end; end;
end; end;
procedure TformOOPPohyb.edtPolozkaButtonClick(Sender: TObject);
procedure TformOOPPohyb.edtPolozkaButtonClick (Sender: TObject);
var podm: string; var podm: string;
begin 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 + ')'; + ') AND IDProfese=' + idProf.ToString + ')';
if (bidOOPPolozky>0) then 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 if Helios.Prenos2(bidOOPPolozky, 'hvw_TabOOP_Polozky.ID', 'hvw_TabOOP_Polozky.Cislo', oVar1, oVar2, podm, 'Položka', false, true, false, 1) then
begin begin
idPolozka:= oVar1; idPolozka := oVar1;
polozkaNum:= VarToStr(oVar2); polozkaNum := VarToStr(oVar2);
edtPolozka.Text:= polozkaNum; edtPolozka.Text := polozkaNum;
if (LeftStr(polozkaNum,2)='N''') and (RightStr(polozkaNum,1)='''') then if (LeftStr(polozkaNum,2)='N''') and (RightStr(polozkaNum,1)='''') then
begin begin
polozkaNum:= polozkaNum.Substring(2, 255); polozkaNum := polozkaNum.Substring(2, 255);
polozkaNum:= polozkaNum.Substring(0, Length(polozkaNum)-1); polozkaNum := polozkaNum.Substring(0, Length(polozkaNum)-1);
end; end;
edtPolozkaExit(Sender); edtPolozkaExit (Sender);
end; end;
end; end;
procedure TformOOPPohyb.edtPolozkaEnter(Sender: TObject); procedure TformOOPPohyb.edtPolozkaEnter (Sender: TObject);
begin begin
infoUkazano:= false; infoUkazano := false;
end; end;
procedure TformOOPPohyb.edtPolozkaExit(Sender: TObject);
procedure TformOOPPohyb.edtPolozkaExit (Sender: TObject);
begin begin
edtPolozka.Text:= edtPolozka.Text.Trim; edtPolozka.Text := edtPolozka.Text.Trim;
if (edtPolozka.Text<>'') then if (edtPolozka.Text<>'') then
begin begin
if not(TryStrToInt(edtPolozka.Text, idPolozka)) then if not(TryStrToInt(edtPolozka.Text, idPolozka)) then
idPolozka:= 0; idPolozka := 0;
edtPolozkaText.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev FROM ' + tblOOPPolozky + ' WHERE ID=' + idPolozka.ToString); 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); polozkaNum := helUtils.getHeliosStrVal(Helios, '', 'SELECT Cislo FROM ' + tblOOPPolozky + ' WHERE ID=' + idPolozka.ToString);
polozka:= edtPolozkaText.Text; polozka := edtPolozkaText.Text;
if not(MamNarokNaPolozku(outMsg)) then if not(MamNarokNaPolozku(outMsg)) then
begin begin
btnOK.Enabled:= false; btnOK.Enabled := false;
edtPolozka.Text:= ''; edtPolozka.Text := '';
edtPolozkaText.Text:= ''; edtPolozkaText.Text := '';
idPolozka:= 0; idPolozka := 0;
polozka:= ''; polozka := '';
if (outMsg<>'') and not(infoUkazano) then if (outMsg<>'') and not(infoUkazano) then
begin begin
TaskDlgOK('POZOR', 'CHYBA', outMsg, tdiWarning); TaskDlgOK ('POZOR', 'CHYBA', outMsg, tdiWarning);
infoUkazano:= true; infoUkazano := true;
outMsg:= ''; outMsg := '';
end; end;
end end
else else
begin begin
btnOK.Enabled:= true; btnOK.Enabled := true;
if (outMsg<>'') and not(infoUkazano) then if (outMsg<>'') and not(infoUkazano) then
begin begin
TaskDlgOK('POZOR', 'INFORMACE', outMsg, tdiWarning); TaskDlgOK ('POZOR', 'INFORMACE', outMsg, tdiWarning);
infoUkazano:= true; infoUkazano := true;
outMsg:= ''; outMsg := '';
end; end;
end; 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; var c: integer;
begin begin
if Helios.Prenos2(bidCisZam, 'TabCisZam.Cislo', 'TabCisZam.PrijmeniJmeno', oVar1, oVar2, '', 'Zaměstnanec', false, true, false, 1) then if Helios.Prenos2(bidCisZam, 'TabCisZam.Cislo', 'TabCisZam.PrijmeniJmeno', oVar1, oVar2, '', 'Zaměstnanec', false, true, false, 1) then
begin begin
cisZam:= oVar1; cisZam := oVar1;
edtOsCislo.Text:= cisZam.ToString; edtOsCislo.Text := cisZam.ToString;
if not(TryStrToInt(edtOsCislo.Text, c)) then if not(TryStrToInt(edtOsCislo.Text, c)) then
c:= 0; c := 0;
cisZam:= c; cisZam := c;
if (NactiUdajeZamestnance(cisZam)) then if (NactiUdajeZamestnance(cisZam)) then
if (edtProfese.CanFocus) then self.ActiveControl := edtProfese;
edtProfese.SetFocus;
end; end;
end; end;
procedure TformOOPPohyb.edtProfeseButtonClick(Sender: TObject);
procedure TformOOPPohyb.edtProfeseButtonClick (Sender: TObject);
var lSQL, podm: string; var lSQL, podm: string;
c: integer; c: integer;
begin begin
podm:= 'hvw_TabOOP_Profese.StrediskoOld=N' + stredOld.QuotedString; podm := 'hvw_TabOOP_Profese.StrediskoOld=N' + stredOld.QuotedString;
if (bidOOPProfese>0) then 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 if Helios.Prenos2(bidOOPProfese, 'hvw_TabOOP_Profese.ID', 'hvw_TabOOP_Profese.Profese', oVar1, oVar2, podm, 'Profese', false, true, false, 1) then
begin begin
if not(TryStrToInt(VarToStr(oVar1), c)) then if not(TryStrToInt(VarToStr(oVar1), c)) then
c:= 0; c := 0;
idProf:= c; idProf := c;
// pokud existuje ext.sloupec, profesi uloz // 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 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 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 if (idProf>0) then
lSQL:= lSQL + 'IF (@@ROWCOUNT=0) INSERT ' + tblCisZamE + ' (ID, _OOP_Profese) SELECT ' + idZam.ToString + ', ' + idProf.ToString; lSQL := lSQL + 'IF (@@ROWCOUNT=0) INSERT ' + tblCisZamE + ' (ID, _OOP_Profese) SELECT ' + idZam.ToString + ', ' + idProf.ToString;
Helios.ExecSQL(lSQL); Helios.ExecSQL (lSQL);
end; end;
profese:= VarToStr(oVar2); profese := VarToStr(oVar2);
if (LeftStr(profese,2)='N''') and (RightStr(profese,1)='''') then if (LeftStr(profese,2)='N''') and (RightStr(profese,1)='''') then
begin begin
profese:= profese.Substring(2, 255); profese := profese.Substring(2, 255);
profese:= profese.Substring(0, Length(profese)-1); profese := profese.Substring(0, Length(profese)-1);
end; end;
edtProfese.Text:= profese; edtProfese.Text := profese;
if (edtDatum.CanFocus) then self.ActiveControl := edtDatum;
edtDatum.SetFocus;
end; end;
end; end;
procedure TformOOPPohyb.edtStrediskoButtonClick(Sender: TObject);
procedure TformOOPPohyb.edtStrediskoButtonClick (Sender: TObject);
begin begin
if (Helios.Prenos(bidCisZam, 'TabCisZam.Cislo', oVar1, '', 'Zaměstnanec', true)) then if (Helios.Prenos(bidCisZam, 'TabCisZam.Cislo', oVar1, '', 'Zaměstnanec', true)) then
begin begin
stredisko:= VarToStr(oVar1); stredisko := VarToStr(oVar1);
edtStredisko.Text:= stredisko; edtStredisko.Text := stredisko;
edtStrediskoText.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev FROM ' + tblStrom + ' WHERE Cislo=N' + edtStredisko.Text.QuotedString); 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); stredOld := helUtils.getHeliosStrVal (Helios, '', 'SELECT TOP(1) StrediskoOld FROM ' + tblOOPProfese + ' WHERE Stredisko=N' + edtStredisko.Text.QuotedString);
edtStrediskoOld.Text:= stredOld; edtStrediskoOld.Text := stredOld;
end; end;
end; end;
procedure TformOOPPohyb.FormShow(Sender: TObject);
procedure TformOOPPohyb.FormShow (Sender: TObject);
begin begin
bidOOPProfese:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_TabOOP_Profese'''); 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'''); 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()'); 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()'); idZamUser := helUtils.getHeliosIntVal (Helios, 0, 'SELECT ID FROM ' + tblCisZam + ' WHERE LoginId=SUSER_SNAME()');
superUserOOP:= false; 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 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 if (jeTest) then
superUserOOP:= jeTest; superUserOOP := jeTest;
end; end;
+1 -1
View File
@@ -79,7 +79,7 @@ object formOdvTavby: TformOdvTavby
Top = 87 Top = 87
Width = 467 Width = 467
Height = 540 Height = 540
ActivePage = shOdvStr ActivePage = shTavba
Anchors = [akLeft, akTop, akRight] Anchors = [akLeft, akTop, akRight]
TabOrder = 3 TabOrder = 3
object shTavba: TTabSheet object shTavba: TTabSheet
+77 -12
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; var lSQL: string;
ksSkl: Extended; ksSkl: Extended;
begin begin
@@ -1155,7 +1155,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
edtOpTavba.Text:= helUtils.StripChars(edtOpTavba.Text, ['''', '"', '-', ';', ' ']); edtOpTavba.Text:= helUtils.StripChars(edtOpTavba.Text, ['''', '"', '-', ';', ' ']);
if (edtOpTavba.Text<>'') then if (edtOpTavba.Text<>'') then
begin begin
ZjistiVOp(edtOpTavba.Text, true); ZjistiVOp (edtOpTavba.Text, true);
if (prik.stav=0) or (prik.stav>30) then if (prik.stav=0) or (prik.stav>30) then
Helios.Error(#1'Výrobní příkaz operace je již uzavřen.'#1); 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']); // edtOpVibr.Text:= helUtils.RemoveWords(edtVibrator.Text, ['null']);
if (edtOpVibr.Text<>'') then if (edtOpVibr.Text<>'') then
begin begin
ZjistiVOp(edtOpVibr.Text, true); ZjistiVOp (edtOpVibr.Text, true);
if (prik.stav>30) or (prik.stav=0) or (prik.stav=10) then 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) 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; btnOKNew.Enabled:= false;
btnOK.Enabled:= false; btnOK.Enabled:= false;
Helios.Error(#1'Na operaci nezbývají žádné kusy k odvedení !!'#1); 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 begin
doklad:= VarToStr(FieldValues(0)); doklad:= VarToStr(FieldValues(0));
alt:= VarToStr(FieldValues(1)); alt:= VarToStr(FieldValues(1));
@@ -1208,7 +1208,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
end end
else else
begin 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; NactiPrikaz;
edtTavbaV.SetFocus; edtTavbaV.SetFocus;
end; end;
@@ -1793,9 +1793,9 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
procedure TformOdvTavby.NactiPrikaz; procedure TformOdvTavby.NactiPrikaz;
var lSQL, skl, eMsg, prac, rc: string; var lSQL, skl, eMsg, prac, rc, bc: string;
z, k: Extended; z, k: Extended;
idKZ: integer; idKZ, cnt: integer;
canCont, pracOK: boolean; canCont, pracOK: boolean;
begin begin
prik.id:= 0; prik.id:= 0;
@@ -1805,12 +1805,14 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
prik.sklad:= ''; prik.sklad:= '';
prik.stav:= 0; prik.stav:= 0;
prik.mamP30:= false; prik.mamP30:= false;
bc:= 'A' + idVOp.ToString + 'B';
if (idVPr>0) then if (idVPr>0) then
begin begin
skl:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Sklad FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString); 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 + ', 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 + ' 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; 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 if (idVOp>0) and (pgCtrl.ActivePageIndex=shTavba.PageIndex) or (pgCtrl.ActivePageIndex=shVibrovani.PageIndex) or (pgCtrl.ActivePageIndex=shOdvStr.PageIndex) then
begin begin
canCont:= (lblOperace.Caption<>''); canCont:= (lblOperace.Caption<>'');
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o INNER JOIN ' + tblCPrac + ' p ON (o.pracoviste=p.ID) WHERE o.ID=' + idVOp.ToString;
prac:= helUtils.getHeliosStrVal(Helios, '', lSQL); lSQL:= 'SELECT COUNT(ID) FROM ' + tblPrPost + ' WHERE BarCode=N' + bc.QuotedString;
cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
if (cnt=0) then
begin
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID=' + idVOp.ToString;
prac:= helUtils.getHeliosStrVal (Helios, '', lSQL);
end;
if (cnt=1) then
begin
idVOp:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT ID FROM ' + tblPrPost + ' WHERE BarCode=N' + bc.QuotedString);
if (idVOp>0) then
begin
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID=' + idVOp.ToString;
prac:= helUtils.getHeliosStrVal (Helios, '', lSQL);
end;
end;
if (cnt>1) then
begin
idVOp:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT TOP(1) ID FROM ' + tblPrPost + ' WHERE BarCode=N' + bc.QuotedString
+ ' AND IDOdchylkyDo IS NULL AND Priorita=0 ORDER BY ID DESC');
if (idVOp>0) then
begin
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID=' + idVOp.ToString;
prac:= helUtils.getHeliosStrVal (Helios, '', lSQL);
end;
end;
if (prac='') then
begin
lSQL:= 'SELECT COUNT(o.ID) AS Pocet FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.Barcode=N'
+ ('A' + idVOp.ToString + 'B').QuotedString;
cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
if (cnt=1) then
begin
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.Barcode=N' + ('A' + idVOp.ToString + 'B').QuotedString;
prac:= helUtils.getHeliosStrVal (Helios, '', lSQL);
end;
if (cnt>1) then
begin
lSQL:= 'SELECT TOP(1) p.Pracoviste FROM ' + tblPrPost + ' o JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.Barcode=N'
+ ('A' + idVOp.ToString + 'B').QuotedString + ' AND o.IDOdchylkyDo IS NULL AND o.Priorita=0 ORDER BY o.DatPorizeni DESC';
prac:= helUtils.getHeliosStrVal (Helios, '', lSQL);
end;
if (prac='') then
begin
lSQL:= 'SELECT COUNT(o.ID) AS Pocet FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID1=' + idVOp.ToString;
cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
if (cnt=1) then
begin
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID1=' + idVOp.ToString;
prac:= helUtils.getHeliosStrVal(Helios, '', lSQL);
end;
if (cnt>1) then
begin
lSQL:= 'SELECT TOP(1) p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID1=' + idVOp.ToString
+ ' ORDER BY o.DatPorizeni DESC';
prac:= helUtils.getHeliosStrVal(Helios, '', lSQL);
end;
end;
end;
// T09/T11 - tavba // T09/T11 - tavba
pracOK:= (prac='T11') or (prac='T09'); 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); Helios.Error(#1 + rc + ': Naskenovaná operace ' + idVOp.ToString + ' není ODLÉVÁNÍ.'#1);
edtOpTavba.Text:= ''; edtOpTavba.Text:= '';
end; end;
// T12 - vibrace nebo T15 - rucni // T12 - vibrace nebo T15 - rucni
pracOK:= (prac='T12') or (prac='T13') or (prac='T15'); pracOK:= (prac='T12') or (prac='T13') or (prac='T15');
if (pgCtrl.ActivePageIndex=shVibrovani.PageIndex) and not(pracOK) then if (pgCtrl.ActivePageIndex=shVibrovani.PageIndex) and not(pracOK) then
@@ -1863,7 +1928,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
if (canCont) then if (canCont) then
begin begin
if not TryStrToFloat(VarToStr(FieldValues(3)), k) then if not TryStrToFloat(VarToStr(FieldByNameValues('KsNaStr')), k) then
k:= 0; k:= 0;
lblKsStrom.Caption:= k.ToString + ' ks/str'; lblKsStrom.Caption:= k.ToString + ' ks/str';
ksStr:= k; ksStr:= k;
@@ -1871,7 +1936,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
if (idVOp>0) then if (idVOp>0) then
begin begin
z:= helUtils.getHeliosFloatVal(Helios, 0, 'SELECT kusy_zad FROM ' + tblPrPost + ' WHERE ID=' + idVOp.ToString); 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; 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); z:= z-helUtils.getHeliosFloatVal(Helios, 0, lSQL);
end; end;
+6
View File
@@ -687,6 +687,7 @@ object formSchvaleniZak: TformSchvaleniZak
Size = 50 Size = 50
end end
object tblcolJenVDO: TSmallintField object tblcolJenVDO: TSmallintField
DefaultExpression = '0'
FieldName = 'colJenVDO' FieldName = 'colJenVDO'
Visible = False Visible = False
end end
@@ -694,6 +695,7 @@ object formSchvaleniZak: TformSchvaleniZak
FieldName = 'colDatumOBR' FieldName = 'colDatumOBR'
end end
object tblcolVDOproOBR: TSmallintField object tblcolVDOproOBR: TSmallintField
DefaultExpression = '0'
FieldName = 'colVDOproOBR' FieldName = 'colVDOproOBR'
end end
object tblcolOBRproVDO: TSmallintField object tblcolOBRproVDO: TSmallintField
@@ -709,6 +711,10 @@ object formSchvaleniZak: TformSchvaleniZak
FieldName = 'colPoznamka2' FieldName = 'colPoznamka2'
Size = 500 Size = 500
end end
object tblcolVDOproVZO: TSmallintField
DefaultExpression = '0'
FieldName = 'colVDOproVZO'
end
end end
object ds: TDataSource object ds: TDataSource
DataSet = tbl DataSet = tbl
+107 -75
View File
@@ -68,6 +68,7 @@ const
colVDOproOBR: TNxDBCheckBoxColumn6; colVDOproOBR: TNxDBCheckBoxColumn6;
tblcolPoznamkaR: TSmallintField; tblcolPoznamkaR: TSmallintField;
tblcolPoznamka2: TStringField; tblcolPoznamka2: TStringField;
tblcolVDOproVZO: TSmallintField;
procedure FormShow (Sender: TObject); procedure FormShow (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction); procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure btnStornoClick (Sender: TObject); procedure btnStornoClick (Sender: TObject);
@@ -124,56 +125,59 @@ uses System.StrUtils, System.DateUtils,
var lSQL, stavTxt, role, sTemp, pozn: string; var lSQL, stavTxt, role, sTemp, pozn: string;
akce: Byte; akce: Byte;
stavIdx: integer; stavIdx: integer;
jenVDO, proOBR, lastRec: boolean; jenVDO, proOBR, proVZO, lastRec: boolean;
datumObrStr: string; datumObrStr: string;
rNum: integer; rNum: integer;
begin begin
prevRole:= ''; // promenna pro posledni roli v historii (kdo se vyjadril jako posledni) prevRole := ''; // promenna pro posledni roli v historii (kdo se vyjadril jako posledni)
lastRec:= false; lastRec := false;
if (idZakazky<=0) then if (idZakazky<=0) then
Exit; 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 with Helios.OpenSQL(lSQL) do
if (RecordCount=1) then if (RecordCount=1) then
begin begin
edtZakazka.Text:= VarToStr(FieldValues(0)); edtZakazka.Text := VarToStr(FieldValues(0));
edtZakazkaNazev.Text:= VarToStr(FieldValues(1)) + ' ** ' + VarToStr(FieldValues(2)); 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:= '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))); + 'ISNULL(p.CisloZakazky,d.CisloZakazky)=N' + QuotedStr(VarToStr(FieldValues(0)));
with Helios.OpenSQL(lSQL) do with Helios.OpenSQL(lSQL) do
if (RecordCount>0) then if (RecordCount>0) then
edtRegCis.Text:= VarToStr(FieldValues(0)); edtRegCis.Text := VarToStr(FieldByNameValues('RegCis'));
stavTxt:= VarToStr(FieldValues(3)); stavTxt := VarToStr(FieldValues(3));
zamek:= true; zamek := true;
btnOK.Enabled:= false; btnOK.Enabled := false;
btnOK.Enabled:= true; btnOK.Enabled := true;
if (stavTxt='0') then if (stavTxt='0') then
begin begin
zamek:= false; zamek := false;
btnOK.Enabled:= true; btnOK.Enabled := true;
end; end;
datumObrStr:= ''; datumObrStr := '';
stavTxt:= ''; stavTxt := '';
role:= ''; role := '';
lblStav.Caption:= stavTxt; lblStav.Caption := stavTxt;
// grd.DataSource.DataSet.ClearFields; // grd.DataSource.DataSet.ClearFields;
tbl.EmptyDataSet; tbl.EmptyDataSet;
histLoad:= true; histLoad := true;
proOBR:= false; proOBR := false;
zapisObr:= false; proVZO := false;
lSQL:= 'SELECT DatPorizeni, Role, Akce, Poznamka, ID, Autor, ISNULL(JenVDO,0) AS JenVDO, ISNULL(VDOproOBR,0) AS VDOproOBR, DatumOBR, DatumKON FROM ' + tblSchvalZakHist; zapisObr := false;
lSQL:= lSQL + ' WHERE IDZakazky=' + idZakazky.ToString + ' ORDER BY DatPorizeni';
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 with Helios.OpenSQL(lSQL) do
begin begin
lastRole:= ''; lastRole := '';
First; First;
rNum:= 1; rNum := 1;
while not(EOF) do while not(EOF) do
begin begin
tbl.Append; tbl.Append;
@@ -204,9 +208,15 @@ uses System.StrUtils, System.DateUtils,
sTemp:= VarToStr(FieldByNameValues('VDOproOBR')); sTemp:= VarToStr(FieldByNameValues('VDOproOBR'));
if (role='VDO') and (StrToBool(sTemp)) then if (role='VDO') and (StrToBool(sTemp)) then
proOBR:= true; proOBR:= true;
tbl.FieldByName('colVDOproOBR').AsInteger:= IfThenInt(proOBR, 1, 0); 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'))); akce:= StrToInt(VarToStr(FieldByNameValues('Akce')));
case akce of case akce of
1: stavIdx:= cbStav.Items.IndexOf('Souhlas'); 1: stavIdx:= cbStav.Items.IndexOf('Souhlas');
@@ -254,6 +264,12 @@ uses System.StrUtils, System.DateUtils,
if (proOBR) then if (proOBR) then
stavTxt:= stavTxt + ' (OBR)'; stavTxt:= stavTxt + ' (OBR)';
if (tbl.FieldByName('colVDOproVZO').AsInteger=1) then
if (akce=1) then
stavTxt:= stavTxt + ' (VZO)';
tbl.FieldByName('colStav').AsString:= stavTxt; tbl.FieldByName('colStav').AsString:= stavTxt;
tbl.Post; tbl.Post;
Inc (rNum); 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'); tbl.FieldByName('colStav').AsString:= tbl.FieldByName('colStav').AsString + ' (pro VDO)';// IfThen(edtRole.Text='OBR', ' OBR', ' VDO');
end; 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 if ((edtRole.Text='OBR') or (edtRole.Text='VDO')) and (cbZmenaDatumKonZakazka.Checked) then
tbl.FieldByName('colDatumObr').AsDateTime:= edtDatObr.DateTime; tbl.FieldByName('colDatumObr').AsDateTime:= edtDatObr.DateTime;
@@ -458,10 +483,10 @@ uses System.StrUtils, System.DateUtils,
lSQL:= lSQL + 'JenVDO'; lSQL:= lSQL + 'JenVDO';
if (edtRole.Text='OBR') then if (edtRole.Text='OBR') then
lSQL:= lSQL + ', DatumOBR'; lSQL:= lSQL + IfThen(not lSQL.Trim.EndsWith(','), ', ', '') + 'DatumOBR';
if (jeVzorek) and (VdoProVzo) then 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); procedure TformSchvaleniZak.btnOKClick (Sender: TObject);
var i, x: integer; var i, x: integer;
begin begin
VdoProVzo:= (currRole='VDO') and (cbJenVDO.Checked) and (cbJenVDO.Caption.Contains('VZO',false));
if (grd.RowCount>0) and (edtRole.Text<>'') then if (grd.RowCount>0) and (edtRole.Text<>'') then
begin begin
for i:=0 to grd.RowCount-1 do for i:=0 to grd.RowCount-1 do
@@ -738,94 +765,94 @@ uses System.StrUtils, System.DateUtils,
idZakazky:= 0; idZakazky:= 0;
VdoProVzo:= false; VdoProVzo:= false;
cbZmenaDatumKonZakazka.Visible:= false; cbZmenaDatumKonZakazka.Visible := false;
jeTestDb:= false; jeTestDb := false;
if (helUtils.SQLObjectExists(Helios, Helios.SystemDB + '.dbo.TabDBHelios')) then 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'); 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)', ''); self.Caption := ' Schválení zakázky' + IfThen(jeTestDB, ' (TEST DB)', '');
szKmeneSub:= ''; szKmeneSub := '';
// zdroj ID jsou vyrobni prikazy // zdroj ID jsou vyrobni prikazy
if (id>0) and (Helios.BrowseID=bidVyrPrik) then 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 if (Length(arrID)>0) and (Helios.BrowseID=bidVyrPrik) then
begin begin
sTemp:= helUtils.getHeliosStrVal (Helios, '', 'SELECT IDZakazka FROM ' + tblVPr + ' WHERE ID IN (' + helUtils.ArrayToString (arrID, ',', true) + ')'); sTemp := helUtils.getHeliosStrVal (Helios, '', 'SELECT IDZakazka FROM ' + tblVPr + ' WHERE ID IN (' + helUtils.ArrayToString (arrID, ',', true) + ')');
SetLength(arrID, 0); SetLength (arrID, 0);
if (sTemp<>'') then if (sTemp<>'') then
arrID:= helUtils.StrToArrayInt (sTemp); arrID := helUtils.StrToArrayInt (sTemp);
end; end;
// zdroj ID je vyrobni plan // zdroj ID je vyrobni plan
if (id>0) and (Helios.BrowseID=bidVyrPlan) then 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 if (Length(arrID)>0) and (Helios.BrowseID=bidVyrPlan) then
begin begin
sTemp:= helUtils.getHeliosStrVal (Helios, '', 'SELECT IDZakazka FROM ' + tblPlan + ' WHERE ID IN (' + helUtils.ArrayToString (arrID, ',', true) + ')'); sTemp := helUtils.getHeliosStrVal (Helios, '', 'SELECT IDZakazka FROM ' + tblPlan + ' WHERE ID IN (' + helUtils.ArrayToString (arrID, ',', true) + ')');
SetLength(arrID, 0); SetLength (arrID, 0);
if (sTemp<>'') then if (sTemp<>'') then
arrID:= helUtils.StrToArrayInt (sTemp); arrID := helUtils.StrToArrayInt (sTemp);
end; end;
// zdroj ID jsou zakazky // zdroj ID jsou zakazky
if (id>0) and (Helios.BrowseID=bidZak) then if (id>0) and (Helios.BrowseID=bidZak) then
idZakazky:= id; idZakazky := id;
cisZakazky:= ''; cisZakazky := '';
if (idZakazky>0) then if (idZakazky>0) then
cisZakazky:= helUtils.getHeliosStrVal(Helios, '', 'SELECT CisloZakazky FROM ' + tblZak + ' WHERE ID=' + idZakazky.ToString); cisZakazky := helUtils.getHeliosStrVal(Helios, '', 'SELECT CisloZakazky FROM ' + tblZak + ' WHERE ID=' + idZakazky.ToString);
jeVzorek:= helUtils.IfThenBool (LeftStr(cisZakazky,2).ToUpper='VZ', true, false); 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 := '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', ''); + ' (IDZakazka' + IfThen(jeVzorek, ', TypZakazky', '') + ') SELECT ' + idZakazky.ToString + IfThen (jeVzorek, ', 13', '');
Helios.ExecSQL (lSQL); 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 := '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; + 'ISNULL(p.CisloZakazky,d.CisloZakazky)) WHERE d.DruhPohybuZbo IN (9,6) AND z.ID=' + idZakazky.ToString;
szKmene:= helUtils.getHeliosStrVal(Helios, '', lSQL); szKmene := helUtils.getHeliosStrVal(Helios, '', lSQL);
edtRegCis.EditLabel.Caption:= 'Reg.èíslo' + IfThen(szKmene<>'', ' (SK ' + szKmene + ')', '') + ':'; edtRegCis.EditLabel.Caption := 'Reg.èíslo' + IfThen(szKmene<>'', ' (SK ' + szKmene + ')', '') + ':';
jeObrobek:= (szKmene='VOB'); jeObrobek := (szKmene='VOB');
idPrikazFin:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT TOP(1) ID FROM ' + tblPrikaz + ' WHERE IDPrikazVyssi IS NULL AND IDZakazka=' + idZakazky.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 := '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'')'; lSQL := lSQL + ' AND k.SkupZbo NOT IN (N''VDO'')';
idPrikazSub:= helUtils.getHeliosIntVal(Helios, 0, lSQL); 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); 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 if (helUtils.HeliosObjectExists(Helios,helUtils.VratTableName(tblSchvalZakRole))) then
begin 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 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 if (szKmene<>'VOB') and (currRole='OBR') then
edtRole.Text:= ''; edtRole.Text := '';
edtPoznamka.SetFocus; edtPoznamka.SetFocus;
end; end;
cbJenVDO.Enabled:= false; cbJenVDO.Enabled := false;
if (currRole='REP') or (currRole='VZO') then if (currRole='REP') or (currRole='VZO') then
cbJenVDO.Enabled:= true; cbJenVDO.Enabled := true;
if (currRole='VDO') then if (currRole='VDO') then
begin begin
cbZmenaDatumKonZakazka.Visible:= true; cbZmenaDatumKonZakazka.Visible := true;
cbJenVDO.Enabled:= true; cbJenVDO.Enabled := true;
cbJenVDO.Caption:= ' pro OBR'; cbJenVDO.Caption := ' pro OBR';
lblDatObr.Caption:= 'Datum ' + currRole; lblDatObr.Caption := 'Datum ' + currRole;
lblDatObr.Visible:= true; lblDatObr.Visible := true;
lSQL:= 'SELECT 1 FROM ' + tblVPr + ' WHERE IDPrikazVyssi IS NULL AND IDZakazka=' + idZakazky.ToString; lSQL:= 'SELECT 1 FROM ' + tblVPr + ' WHERE IDPrikazVyssi IS NULL AND IDZakazka=' + idZakazky.ToString;
if (helUtils.sqlExistsTestGeneral(Helios, lSQL)) then 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:= '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 + CRLF + 'INSERT ' + tblZakE + ' (ID) VALUES (' + idZakazky.ToString + ')' + CRLF + 'UPDATE ' + tblZakE + ' SET _SchvaleniZakazky_Lock=';
lSQL:= lSQL + uzivId.ToString + ' WHERE ID=' + idZakazky.ToString; 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 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; + ' 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 if (currRole='VDO') and not(jeObrobek) and (prevRole='VZO') and (jeVzorek) then
begin begin
cbJenVDO.Caption:= ' pro VZO'; cbJenVDO.Caption:= ' pro VZO';
cbJenVDO.Enabled:= false; cbJenVDO.Enabled:= true;
cbJenVDO.Checked; cbJenVDO.Checked;
VdoProVzo:= true; // VdoProVzo:= true;
end; end;
if (currRole='VDO') and (jeVzorek) and (jeObrobek) and (prevRole='VZO') then if (currRole='VDO') and (jeVzorek) and (jeObrobek) and (prevRole='VZO') then
begin begin
cbJenVDO.Checked:= true; cbJenVDO.Checked := true;
end; end;
if (currRole='VDO') and not(zamek) then
if (szKmene='VOD') then // jenProVDO nezobrazuj u skupiny VOD
cbJenVDO.Enabled := false;
infoTxt:= ''; 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, madListModules,
System.Win.ComServ, System.Win.ComServ,
ddPlugin_TLB, ddPlugin_TLB,
dataMod in 'dataMod.pas' {dm: TDataModule},
ComObjekt in 'ComObjekt.pas', ComObjekt in 'ComObjekt.pas',
frmGenPolos in 'frmGenPolos.pas' {formGenPolos}, frmGenPolos in 'frmGenPolos.pas' {formGenPolos},
frmOdlitek in 'frmOdlitek.pas' {formOdlitek}, frmOdlitek in 'frmOdlitek.pas' {formOdlitek},
@@ -50,8 +51,9 @@ uses
frmInputNum in 'frmInputNum.pas' {formInputNum}, frmInputNum in 'frmInputNum.pas' {formInputNum},
frmHrOdvOperZmetky in 'frmHrOdvOperZmetky.pas' {formHrOdvOperZmetky}, frmHrOdvOperZmetky in 'frmHrOdvOperZmetky.pas' {formHrOdvOperZmetky},
frmKoopObjUprava in 'frmKoopObjUprava.pas' {formKoopObjUprava}, 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}; // ,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.