Files
Rootvin-pluginHDCRTN/frmZahajeniVyrobyPalety.pas
2025-05-21 21:06:33 +02:00

128 lines
4.2 KiB
ObjectPascal

unit frmZahajeniVyrobyPalety;
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,
ddPlugin_TLB;
type
TformZahajeniVyrobyPalety = class(TForm)
GridPanel1: TGridPanel;
grdZahajeniVyrobyPalety: TDBGrid;
procedure FormShow(Sender: TObject);
procedure grdZahajeniVyrobyPaletyDblClick(Sender: TObject);
private
public
Helios: IHelios;
end;
var
formZahajeniVyrobyPalety: TformZahajeniVyrobyPalety;
implementation
uses System.StrUtils, System.DateUtils,
datMod, helUtils, helTabsBIDs,
frmTiskKAStitku;
{$R *.dfm}
procedure TformZahajeniVyrobyPalety.FormShow(Sender: TObject);
begin
dm.NactiZahajeniVyrobyPalety (self);
helUtils.waitEnd;
end;
procedure TformZahajeniVyrobyPalety.grdZahajeniVyrobyPaletyDblClick (Sender: TObject);
var msg, podm, lSQL, lSQL2: string;
novyZaznam, canCont: boolean;
idVPr, idKZPrikaz, idPrP, idStroj, idPrac, idEvROp, prpD: integer;
prpA: string;
f2: TformTiskKAStitku;
begin
idVPr:= grdZahajeniVyrobyPalety.DataSource.DataSet.FieldByName('colIDPrikaz').AsInteger;
idStroj:= grdZahajeniVyrobyPalety.DataSource.DataSet.FieldByName('colIDStroj').AsInteger;
idEvROp:= 0;
try
novyZaznam:= true;
if (dm.vtStroje.FieldByName('fCinnost').AsString='Výroba') then
begin
idEvROp:= dm.vtStroje.FieldByName('fIDEvidRozpOper').AsInteger;
msg:= 'Na stroji ' + #1 + dm.vtStroje.FieldByName('fStroj').AsString + #1 + ' je ve výrobě paleta ' + dm.vtStroje.FieldByName('fAktPaletList').AsString + '.' + CRLF;
msg:= msg +'Pokud na ní chcete pokračovat, zadejte z Rozpracovanosti.' + CRLF + 'Pokračovat v zadání nové palety ?';
if not(Helios.YesNo(msg, false)) then
novyZaznam:= false;
end;
if (novyZaznam) then
begin
dm.UkonciEvidRozpracOper (idEvROp, msg);
idKZPrikaz:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IdTabKmen FROM ' + tblVPr + ' WHERE ID=' + idVPr.ToString);
idPrac:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrac FROM ' + tblCStroju + ' WHERE ID=' + idStroj.ToString);
lSQL:= 'SELECT pp.ID FROM ' + tblPrPost + ' pp INNER JOIN ' + tblCStroju + ' s ON (s.ID=pp.IDStroje) INNER JOIN ' + tblVPr + ' vp ON (vp.ID=pp.IDPrikaz)';
lSQL:= lSQL + ' WHERE vp.StavPrikazu=30 AND pp.Splneno=0 AND pp.IDOdchylkyDo IS NULL AND s.ID=' + idStroj.ToString;
idPrP:= helUtils.getHeliosIntVal(Helios, 0, lSQL + ' AND vp.ID=' + idVPr.ToString);
canCont:= false;
f2:= TformTiskKAStitku.Create(nil);
try
try
f2.Caption:= ' Zahájení výroby palety';
f2.btnTiskZaloha.Visible:= true;
f2.retVal:= 0;
f2.Helios:= Helios;
f2.idKmen:= idKZPrikaz;
f2.ShowModal;
if (f2.retVal=1) then
canCont:= true;
except
end;
finally
f2.Free;
end;
if (canCont) then
begin
prpD:= helUtils.getHeliosIntVal(Helios, 1, 'SELECT Doklad FROM ' + tblPrPost + ' WHERE ID=' + idPrP.ToString);
prpA:= helUtils.getHeliosStrVal(Helios, 'A', 'SELECT Alt FROM ' + tblPrPost + ' WHERE ID=' + idPrP.ToString);
lSQL:= 'INSERT ' + tblRozpracOper + ' (IDZamestnance, CasZahajeni, IDPracoviste, IDStroje) SELECT ' + datMod.idZamMistr.ToString;
lSQL:= lSQL + ', GETDATE(), ' + idPrac.ToString + ', ' + idStroj.ToString + CRLF + 'SELECT SCOPE_IDENTITY() AS newid';
idEvROp:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
if (idEvROp>0) then
begin
lSQL:= ' INSERT ' + tblRozpracOperR + ' (IDEvidRozpracOper, IDPrikaz, DokladPrPostup, AltPrPostup, IDVyrCis, Mnoz_odv, Sk_cas, Sk_cas_T, Sk_cas_Obsluhy, Sk_cas_Obsluhy_T)';
lSQL:= lSQL + ' SELECT ' + idEvROp.ToString + ', ' + idVPr.ToString + ', ' + prpD.ToString + ' , N' + prpA.QuotedString + ', NULL, 0, 0, 1, 0, 1';
Helios.ExecSQL(lSQL);
end;
end;
end;
except on E:Exception do
begin
msg:= E.Message;
Helios.Error(#1'Chyba'#1 + CRLF + msg);
end;
end;
end;
end.