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/
+82 -27
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,6 +337,7 @@ 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;
@@ -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
@@ -441,7 +443,9 @@ var oVar1, oVar2: OleVariant;
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');
@@ -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,11 +528,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;
ClearForma (forma); ClearForma (forma);
@@ -623,7 +628,8 @@ 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);
@@ -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;
@@ -699,11 +706,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;
ClearForma (forma); ClearForma (forma);
@@ -799,7 +806,9 @@ 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);
@@ -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,7 +972,9 @@ 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'Import ' + cntIns.ToString + ' nových karet' + CRLF + 'Aktualizací karet: ' + cntAkt.ToString + #1); Helios.Info (#1'Import ' + cntIns.ToString + ' nových karet' + CRLF + 'Aktualizací karet: ' + cntAkt.ToString + #1);
@@ -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,11 +1052,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 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);
@@ -1243,7 +1256,9 @@ 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: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1); Helios.Info (#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1);
@@ -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
@@ -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,7 +1838,9 @@ var oVar1, oVar2: OleVariant;
errMsg:= E.Message + CRLF + lSQL; errMsg:= E.Message + CRLF + lSQL;
end; end;
end; end;
waitEnd;
if Assigned(wF) then
helUtils.waitEnd (wF);
Helios.Refresh (true); Helios.Refresh (true);
Helios.Info (#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1); Helios.Info (#1'Nových karet: ' + cntIns.ToString + CRLF + 'Upravených karet: ' + cntAkt.ToString + #1);
@@ -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,7 +2012,9 @@ var oVar1, oVar2: OleVariant;
errMsg:= E.Message + CRLF + lSQL; errMsg:= E.Message + CRLF + lSQL;
end; end;
end; end;
waitEnd;
if Assigned(wF) then
helUtils.waitEnd (wF);
Helios.Refresh (true); Helios.Refresh (true);
Helios.Info (#1'Nových karet VČ: ' + cntIns.ToString + CRLF + 'Upravených karet VČ: ' + cntAkt.ToString + #1); Helios.Info (#1'Nových karet VČ: ' + cntIns.ToString + CRLF + 'Upravených karet VČ: ' + cntAkt.ToString + #1);
@@ -1999,6 +2023,8 @@ var oVar1, oVar2: OleVariant;
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;
@@ -2243,6 +2269,7 @@ var oVar1, oVar2: OleVariant;
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
@@ -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
@@ -2978,6 +3011,28 @@ 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);
+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.
+5 -3
View File
@@ -92,11 +92,12 @@ 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;
@@ -128,11 +129,12 @@ uses System.StrUtils, helUtils;
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);
+20 -17
View File
@@ -102,6 +102,7 @@ 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
@@ -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
@@ -149,8 +149,7 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
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 := '';
@@ -175,6 +174,7 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
procedure TformOOPPohyb.btnOKClick (Sender: TObject); procedure TformOOPPohyb.btnOKClick (Sender: TObject);
var lSQL: string; var lSQL: string;
begin begin
@@ -189,15 +189,16 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
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;
@@ -205,6 +206,7 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
procedure TformOOPPohyb.edtOsCisloButtonClick (Sender: TObject); procedure TformOOPPohyb.edtOsCisloButtonClick (Sender: TObject);
var c: integer; var c: integer;
podm: string; podm: string;
@@ -222,8 +224,7 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
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;
@@ -239,6 +240,7 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
procedure TformOOPPohyb.edtOsCisloExit (Sender: TObject); procedure TformOOPPohyb.edtOsCisloExit (Sender: TObject);
var lSQL: string; var lSQL: string;
c: integer; c: integer;
@@ -272,8 +274,7 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
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
@@ -437,14 +438,14 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
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
@@ -475,6 +476,7 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
procedure TformOOPPohyb.edtPolozkaExit (Sender: TObject); procedure TformOOPPohyb.edtPolozkaExit (Sender: TObject);
begin begin
edtPolozka.Text := edtPolozka.Text.Trim; edtPolozka.Text := edtPolozka.Text.Trim;
@@ -526,13 +528,13 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
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;
@@ -561,13 +563,13 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
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
@@ -582,6 +584,7 @@ uses System.StrUtils, System.DateUtils, System.UITypes,
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''');
+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
+73 -8
View File
@@ -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;
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); 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
+47 -15
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,7 +125,7 @@ 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
@@ -133,6 +134,7 @@ uses System.StrUtils, System.DateUtils,
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 := '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 := lSQL + ' ze ON (ze.ID=z.ID) WHERE z.ID=' + idZakazky.ToString;
with Helios.OpenSQL(lSQL) do with Helios.OpenSQL(lSQL) do
@@ -141,11 +143,11 @@ uses System.StrUtils, System.DateUtils,
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;
@@ -166,9 +168,11 @@ uses System.StrUtils, System.DateUtils,
histLoad := true; histLoad := true;
proOBR := false; proOBR := false;
proVZO := false;
zapisObr := false; zapisObr := false;
lSQL:= 'SELECT DatPorizeni, Role, Akce, Poznamka, ID, Autor, ISNULL(JenVDO,0) AS JenVDO, ISNULL(VDOproOBR,0) AS VDOproOBR, DatumOBR, DatumKON FROM ' + tblSchvalZakHist;
lSQL:= lSQL + ' WHERE IDZakazky=' + idZakazky.ToString + ' ORDER BY DatPorizeni'; 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 := '';
@@ -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
@@ -784,13 +811,13 @@ uses System.StrUtils, System.DateUtils,
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');
@@ -911,9 +938,9 @@ 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
@@ -921,6 +948,11 @@ uses System.StrUtils, System.DateUtils,
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.