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
+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;
ksSkl: Extended;
begin
@@ -1155,7 +1155,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
edtOpTavba.Text:= helUtils.StripChars(edtOpTavba.Text, ['''', '"', '-', ';', ' ']);
if (edtOpTavba.Text<>'') then
begin
ZjistiVOp(edtOpTavba.Text, true);
ZjistiVOp (edtOpTavba.Text, true);
if (prik.stav=0) or (prik.stav>30) then
Helios.Error(#1'Výrobní příkaz operace je již uzavřen.'#1);
@@ -1183,7 +1183,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
// edtOpVibr.Text:= helUtils.RemoveWords(edtVibrator.Text, ['null']);
if (edtOpVibr.Text<>'') then
begin
ZjistiVOp(edtOpVibr.Text, true);
ZjistiVOp (edtOpVibr.Text, true);
if (prik.stav>30) or (prik.stav=0) or (prik.stav=10) then
Helios.Error(#1'Výrobní příkaz je ve stavu Pořízení nebo je již uzavřen'#1)
@@ -1197,7 +1197,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
btnOKNew.Enabled:= false;
btnOK.Enabled:= false;
Helios.Error(#1'Na operaci nezbývají žádné kusy k odvedení !!'#1);
with Helios.OpenSQL('SELECT Doklad, Alt FROM ' + tblPrPost + ' WHERE IdOdchylkyDo IS NULL AND ID1=' + idVOp.ToString) do
with Helios.OpenSQL('SELECT Doklad, Alt FROM ' + tblPrPost + ' WHERE IdOdchylkyDo IS NULL AND ID=' + idVOp.ToString) do
begin
doklad:= VarToStr(FieldValues(0));
alt:= VarToStr(FieldValues(1));
@@ -1208,7 +1208,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
end
else
begin
idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND ID1=' + idVOp.ToString);
idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND ID=' + idVOp.ToString);
NactiPrikaz;
edtTavbaV.SetFocus;
end;
@@ -1793,9 +1793,9 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
procedure TformOdvTavby.NactiPrikaz;
var lSQL, skl, eMsg, prac, rc: string;
var lSQL, skl, eMsg, prac, rc, bc: string;
z, k: Extended;
idKZ: integer;
idKZ, cnt: integer;
canCont, pracOK: boolean;
begin
prik.id:= 0;
@@ -1805,12 +1805,14 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
prik.sklad:= '';
prik.stav:= 0;
prik.mamP30:= false;
bc:= 'A' + idVOp.ToString + 'B';
if (idVPr>0) then
begin
skl:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Sklad FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
prac:= '';
lSQL:= 'SELECT k.RegCis, k.Nazev1, p.RadaPrikaz, CASE WHEN ISNULL(o.MamMatecniOdlitek,0)=1 THEN ISNULL(o1.KSnaStrom,0) ELSE ISNULL(o.KSnaStrom,0) END';
lSQL:= 'SELECT k.RegCis, k.Nazev1, p.RadaPrikaz, CASE WHEN ISNULL(o.MamMatecniOdlitek,0)=1 THEN ISNULL(o1.KSnaStrom,0) ELSE ISNULL(o.KSnaStrom,0) END AS KsNaStr';
lSQL:= lSQL + ', k.ID, p.StavPrikazu, k.SkupZbo FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' k ON (k.ID=p.IDTabKmen)';
lSQL:= lSQL + ' LEFT JOIN ' + tblOdlitky + ' o ON (k.RegCis=o.Odlitek) LEFT JOIN ' + tblOdlitky + ' o1 ON (o1.Odlitek=o.MatecniOdlitek)';
lSQL:= lSQL + ' WHERE p.ID=' + idVPr.ToString;
@@ -1831,8 +1833,70 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
if (idVOp>0) and (pgCtrl.ActivePageIndex=shTavba.PageIndex) or (pgCtrl.ActivePageIndex=shVibrovani.PageIndex) or (pgCtrl.ActivePageIndex=shOdvStr.PageIndex) then
begin
canCont:= (lblOperace.Caption<>'');
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o INNER JOIN ' + tblCPrac + ' p ON (o.pracoviste=p.ID) WHERE o.ID=' + idVOp.ToString;
prac:= helUtils.getHeliosStrVal(Helios, '', lSQL);
lSQL:= 'SELECT COUNT(ID) FROM ' + tblPrPost + ' WHERE BarCode=N' + bc.QuotedString;
cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
if (cnt=0) then
begin
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID=' + idVOp.ToString;
prac:= helUtils.getHeliosStrVal (Helios, '', lSQL);
end;
if (cnt=1) then
begin
idVOp:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT ID FROM ' + tblPrPost + ' WHERE BarCode=N' + bc.QuotedString);
if (idVOp>0) then
begin
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID=' + idVOp.ToString;
prac:= helUtils.getHeliosStrVal (Helios, '', lSQL);
end;
end;
if (cnt>1) then
begin
idVOp:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT TOP(1) ID FROM ' + tblPrPost + ' WHERE BarCode=N' + bc.QuotedString
+ ' AND IDOdchylkyDo IS NULL AND Priorita=0 ORDER BY ID DESC');
if (idVOp>0) then
begin
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID=' + idVOp.ToString;
prac:= helUtils.getHeliosStrVal (Helios, '', lSQL);
end;
end;
if (prac='') then
begin
lSQL:= 'SELECT COUNT(o.ID) AS Pocet FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.Barcode=N'
+ ('A' + idVOp.ToString + 'B').QuotedString;
cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
if (cnt=1) then
begin
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.Barcode=N' + ('A' + idVOp.ToString + 'B').QuotedString;
prac:= helUtils.getHeliosStrVal (Helios, '', lSQL);
end;
if (cnt>1) then
begin
lSQL:= 'SELECT TOP(1) p.Pracoviste FROM ' + tblPrPost + ' o JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.Barcode=N'
+ ('A' + idVOp.ToString + 'B').QuotedString + ' AND o.IDOdchylkyDo IS NULL AND o.Priorita=0 ORDER BY o.DatPorizeni DESC';
prac:= helUtils.getHeliosStrVal (Helios, '', lSQL);
end;
if (prac='') then
begin
lSQL:= 'SELECT COUNT(o.ID) AS Pocet FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID1=' + idVOp.ToString;
cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
if (cnt=1) then
begin
lSQL:= 'SELECT p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID1=' + idVOp.ToString;
prac:= helUtils.getHeliosStrVal(Helios, '', lSQL);
end;
if (cnt>1) then
begin
lSQL:= 'SELECT TOP(1) p.Pracoviste FROM ' + tblPrPost + ' o WITH(NOLOCK) JOIN ' + tblCPrac + ' p WITH(NOLOCK) ON (p.ID=o.pracoviste) WHERE o.ID1=' + idVOp.ToString
+ ' ORDER BY o.DatPorizeni DESC';
prac:= helUtils.getHeliosStrVal(Helios, '', lSQL);
end;
end;
end;
// T09/T11 - tavba
pracOK:= (prac='T11') or (prac='T09');
@@ -1845,6 +1909,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
Helios.Error(#1 + rc + ': Naskenovaná operace ' + idVOp.ToString + ' není ODLÉVÁNÍ.'#1);
edtOpTavba.Text:= '';
end;
// T12 - vibrace nebo T15 - rucni
pracOK:= (prac='T12') or (prac='T13') or (prac='T15');
if (pgCtrl.ActivePageIndex=shVibrovani.PageIndex) and not(pracOK) then
@@ -1863,7 +1928,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
if (canCont) then
begin
if not TryStrToFloat(VarToStr(FieldValues(3)), k) then
if not TryStrToFloat(VarToStr(FieldByNameValues('KsNaStr')), k) then
k:= 0;
lblKsStrom.Caption:= k.ToString + ' ks/str';
ksStr:= k;
@@ -1871,7 +1936,7 @@ uses System.DateUtils, System.AnsiStrings, helUtils;
if (idVOp>0) then
begin
z:= helUtils.getHeliosFloatVal(Helios, 0, 'SELECT kusy_zad FROM ' + tblPrPost + ' WHERE ID=' + idVOp.ToString);
lSQL:= 'SELECT ISNULL(SUM(m.kusy_odv + m.kusy_zmet_neopr),0) FROM ' + tblMzdZm + ' m INNER JOIN ' + tblPrPost + ' p ON (p.IDPrikaz=m.IDPrikaz AND ';
lSQL:= 'SELECT ISNULL(SUM(m.kusy_odv + m.kusy_zmet_neopr),0) FROM ' + tblMzdZm + ' m JOIN ' + tblPrPost + ' p ON (p.IDPrikaz=m.IDPrikaz AND ';
lSQL:= lSQL + 'm.DokladPrPostup=p.Doklad AND ISNULL(m.AltPrPostup,N''Q'')=ISNULL(p.Alt,N''Q'')) WHERE p.ID=' + idVOp.ToString;
z:= z-helUtils.getHeliosFloatVal(Helios, 0, lSQL);
end;