Files
Rootvin-pluginHDCRTN/frmUkonceniPalety.pas
2025-06-10 19:43:13 +02:00

1026 lines
42 KiB
ObjectPascal

unit frmUkonceniPalety;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Mask, Vcl.Buttons,
IdHTTP, IdSSLOpenSSL, REST.Json,
ddPlugin_TLB, JsonDataObjects, ColorButton, uPing;
{$I iConsts.inc}
type
TformUkonceniPalety = class(TForm)
btnZapisPaletyATisk: TButton;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
edtNazev1: TLabeledEdit;
edtPaleta: TLabeledEdit;
edtSarze: TLabeledEdit;
edtSZ: TLabeledEdit;
edtRegCis: TLabeledEdit;
edtStroj: TLabeledEdit;
edtDatVyroby: TLabeledEdit;
edtSmena: TLabeledEdit;
edtKs: TLabeledEdit;
edtKA: TLabeledEdit;
GroupBox1: TGroupBox;
edtPlneKA: TLabeledEdit;
edtKsVPoslednimKA: TLabeledEdit;
pnlTiskKopie1: TPanel;
rbTiskKopie1: TRadioButton;
pnlTiskKopie2: TPanel;
rbTiskKopie2: TRadioButton;
GridPanel1: TGridPanel;
Label1: TLabel;
LabeledEdit2: TLabeledEdit;
edtPokrac: TLabeledEdit;
pnlPokracujAno: TPanel;
rbPokracujAno: TRadioButton;
pnlPokracujNe: TPanel;
rbPokracujNe: TRadioButton;
Label2: TLabel;
Label3: TLabel;
GridPanel2: TGridPanel;
pnlTiskarna: TPanel;
pnlObrazovka: TPanel;
btnTiskarna: TColorButton;
btnObrazovka: TColorButton;
procedure FormShow(Sender: TObject);
procedure btnObrazovkaClick(Sender: TObject);
procedure btnTiskarnaClick(Sender: TObject);
procedure rbTiskKopie1Click(Sender: TObject);
procedure rbTiskKopie2Click(Sender: TObject);
procedure rbPokracujAnoClick(Sender: TObject);
procedure rbPokracujNeClick(Sender: TObject);
procedure btnZapisPaletyATiskClick(Sender: TObject);
procedure edtKsExit(Sender: TObject);
procedure edtKAExit(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
function NactiPocetKAZEvidRozpOperR: extended;
function GenerujJSON (idMzdy: integer): TJSONObject;
procedure NactiParemetry;
procedure BarvyBtnDleParam;
public
Helios: IHelios;
idVPr: integer;
idVyrCisPrikaz: integer;
idStroj: integer;
paleta, sarze, denSmena: string;
idEvEOp: integer;
[Default(false)]
prerusit: boolean;
end;
var
formUkonceniPalety: TformUkonceniPalety;
tiskNa: byte;
idKmen, idPalety, idFormKA, idFormPL, idFormPS: integer;
mjEvid: string;
jeFinal, jePolotovar: boolean;
pocKA, pocKS, ksVKA: Extended;
prepKA2ks, prepKA2pal: Extended;
implementation
uses DateUtils, Math, StrUtils,
datMod, helUtils, helTabsBIDs,
frmSarzeVydej;
{$R *.dfm}
function TformUkonceniPalety.GenerujJSON (idMzdy: Integer): TJsonObject;
var lSQL, jsonOut: string;
idPrikaz, idDoklad, idPZ: integer;
mn: Extended;
oMain, oPrikaz, oVydejka, oPrijemka, oPolozka, oVyrCislo: TJsonObject;
aVydejky, aPrijemky, aPolozky, aVyrCisla: TJsonArray;
begin
oMain:= TJsonObject.Create;
try
if (idMzdy>0) then
begin
// prikaz
oPrikaz:= oMain.O['prikaz'];
oPrikaz.S['akce']:= 'stop';
idPrikaz:= 0;
mn:= 0;
lSQL:= 'SELECT IDPrikaz, kusy_odv FROM ' + tblPMZ + ' WHERE ID=' + idMzdy.ToString;
with Helios.OpenSQL(lSQL) do
begin
idPrikaz:= VarToStr(FieldByNameValues('IDPrikaz')).ToInteger;
mn:= VarToStr(FieldByNameValues('kusy_odv')).ToExtended;
end;
lSQL:= 'SELECT p.ID, p.Rada, p.Prikaz, ISNULL(zm.Rada,N'''') AS RadaZM, ISNULL(zm.Kod,N'''') AS Kod, p.IDTabKmen, k.CisloZbozi, k.Nazev1'
+ ', ISNULL(k.MJEvidence,N'''') AS MJ FROM ' + tblPrikaz + ' p LEFT JOIN ' + tblZakazModif + ' zm ON (zm.ID=p.IDZakazModif) INNER JOIN '
+ tblKZ + ' k ON (k.ID=p.IDTabKmen) WHERE p.ID=' + idPrikaz.ToString;
with Helios.OpenSQL (lSQL) do
begin
oPrikaz.I['id']:= VarToStr(FieldByNameValues('ID')).ToInteger;
oPrikaz.S['rada']:= VarToStr(FieldByNameValues('Rada'));
oPrikaz.I['prikaz']:= VarToStr(FieldByNameValues('Prikaz')).ToInteger;
oPrikaz.I['id_dilce']:= VarToStr(FieldByNameValues('IDTabKmen')).ToInteger;
oPrikaz.S['cislo_zbozi']:= VarToStr(FieldByNameValues('CisloZbozi'));
oPrikaz.S['nazev']:= VarToStr(FieldByNameValues('Nazev1'));
oPrikaz.S['mj']:= VarToStr(FieldByNameValues('MJ'));
oPrikaz.F['mnozstvi']:= mn;
oPrikaz.S['modif_rada']:= VarToStr(FieldByNameValues('RadaZM'));
oPrikaz.S['modif_kod']:= VarToStr(FieldByNameValues('Kod'));
oPrikaz.Values['caszahajeni']:= null;
oPrikaz.D['casukonceni']:= Now;
end;
// vydejka
if (helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 FROM ' + tblPMZGenPZ + ' WHERE TypGen=0 AND IDPohybu IS NOT NULL AND IDMzdy=' + idMzdy.ToString)) then
begin
lSQL:= 'SELECT DISTINCT(IDDoklad) AS IDDoklad FROM ' + tblPZ + ' WHERE ID IN (SELECT IDPohybu FROM ' + tblPMZGenPZ + ' WHERE TypGen=0 AND IDPohybu IS NOT NULL AND IDMzdy='
+ idMzdy.ToString + ') GROUP BY IDDoklad';
with Helios.OpenSQL (lSQL) do
begin
aVydejky:= oMain.A['vydejky'];
First;
while not(EOF) do
begin
oVydejka:= aVydejky.AddObject;
idDoklad:= VarToStr(FieldByNameValues('IDDoklad')).ToInteger;
oVydejka.I['id']:= idDoklad;
lSQL:= 'SELECT IDSklad, RadaDokladu, PoradoveCislo, DatPorizeni FROM ' + tblDZ + ' WHERE ID=' + idDoklad.ToString;
with Helios.OpenSQL (lSQL) do
if (RecordCount=1) then
begin
oVydejka.S['rada_dokladu']:= VarToStr(FieldByNameValues('RadaDokladu'));
oVydejka.I['poradove_cislo']:= VarToStr(FieldByNameValues('PoradoveCislo')).ToInteger;
if not VarIsNull(FieldByNameValues('DatPorizeni')) then
oVydejka.D['dat_porizeni']:= StrToDateTime (VarToStr(FieldByNameValues('DatPorizeni')))
else
oVydejka.Values['dat_porizeni']:= Null;
oVydejka.S['sklad']:= VarToStr(FieldByNameValues('IDSklad'));
end;
lSQL:= 'SELECT p.ID, p.SkupZbo, p.RegCis, p.Nazev1, p.Mnozstvi, p.MJ, p.Mnozstvi*p.PrepMnozstvi AS MnozPrep, k.MJEvidence FROM ' + tblPZ + 'p INNER JOIN ' + tblSS
+ ' s ON (s.ID=p.IDZboSklad) INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi) WHERE p.IDDoklad=' + idDoklad.ToString
+ ' AND p.ID IN (SELECT IDPohybu FROM ' + tblPMZGenPZ + ' WHERE TypGen=0 AND IDPohybu IS NOT NULL AND IDMzdy=' + idMzdy.ToString + ')';
with Helios.OpenSQL (lSQL) do
if (RecordCount>0) then
begin
aPolozky:= oVydejka.A['polozky'];
First;
while not(EOF) do
begin
oPolozka:= aPolozky.AddObject;
oPolozka.S['skup_zbo']:= VarToStr(FieldByNameValues('SkupZbo'));
oPolozka.S['reg_cis']:= VarToStr(FieldByNameValues('RegCis'));
oPolozka.S['nazev1']:= VarToStr(FieldByNameValues('Nazev1'));
oPolozka.F['mnozstvi']:= VarToStr(FieldByNameValues('Mnozstvi')).ToDouble;
if not VarIsNull(FieldByNameValues('MJ')) then
oPolozka.S['mj']:= VarToStr(FieldByNameValues('MJ'))
else
oPolozka.Values['mj']:= Null;
oPolozka.F['mnozstvi_prepoctene']:= VarToStr(FieldByNameValues('MnozPrep')).ToDouble;
if not VarIsNull(FieldByNameValues('MJEvidence')) then
oPolozka.S['mjevid']:= VarToStr(FieldByNameValues('MJEvidence'))
else
oPolozka.Values['mjevid']:= Null;
idPZ:= VarToStr(FieldByNameValues('ID')).ToInteger;
lSQL:= 'SELECT vcp.Nazev, vcs.Nazev1, vcs.Nazev2, vcp.Mnozstvi, vcp.DatExpirace FROM ' + tblVyrCP + ' vcp INNER JOIN ' + tblVyrCS
+ ' vcs ON (vcs.ID=vcp.IDVyrCis) WHERE vcp.IDPolozkaDokladu=' + idPZ.ToString;
with Helios.OpenSQL (lSQL) do
begin
aVyrCisla:= oPolozka.A['vyrobni_cisla'];
First;
while not(EOF) do
begin
oVyrCislo:= aVyrCisla.AddObject;
if not VarIsNull(FieldByNameValues('Nazev1')) then
oVyrCislo.S['paletovy_list']:= VarToStr(FieldByNameValues('Nazev1'))
else
oVyrCislo.Values['paletovy_list']:= Null;
if not VarIsNull(FieldByNameValues('Nazev')) then
oVyrCislo.S['sarze']:= VarToStr(FieldByNameValues('Nazev')) // vcs.Nazev2
else
oVyrCislo.Values['sarze']:= Null;
oVyrCislo.F['mnozstvi']:= VarToStr(FieldByNameValues('Mnozstvi')).ToDouble;
if not VarIsNull(FieldByNameValues('DatExpirace')) then
oVydejka.D['dat_expirace']:= FieldByNameValues('DatExpirace')
else
oVydejka.Values['dat_expirace']:= Null;
Next;
end;
end;
Next;
end;
end;
Next;
end;
end;
end;
// prijemka
if (helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 FROM ' + tblPMZGenPZ + ' WHERE TypGen IN (2,3) AND IDPohybu IS NOT NULL AND IDMzdy=' + idMzdy.ToString)) then
begin
lSQL:= 'SELECT DISTINCT(IDDoklad) AS IDDoklad FROM ' + tblPZ + ' WHERE ID IN (SELECT IDPohybu FROM ' + tblPMZGenPZ + ' WHERE TypGen IN (2,3) AND IDPohybu IS NOT NULL AND IDMzdy='
+ idMzdy.ToString + ') GROUP BY IDDoklad';
with Helios.OpenSQL (lSQL) do
begin
aPrijemky:= oMain.A['prijemky'];
First;
while not(EOF) do
begin
oPrijemka:= aPrijemky.AddObject;
idDoklad:= VarToStr(FieldByNameValues('IDDoklad')).ToInteger;
oPrijemka.I['id']:= idDoklad;
lSQL:= 'SELECT IDSklad, RadaDokladu, PoradoveCislo, DatPorizeni FROM ' + tblDZ + ' WHERE ID=' + idDoklad.ToString;
with Helios.OpenSQL (lSQL) do
begin
oPrijemka.S['rada_dokladu']:= VarToStr(FieldByNameValues('RadaDokladu'));
oPrijemka.I['poradove_cislo']:= VarToStr(FieldByNameValues('PoradoveCislo')).ToInteger;
oPrijemka.S['dat_porizeni']:= VarToStr(FieldByNameValues('DatPorizeni'));
oPrijemka.S['sklad']:= VarToStr(FieldByNameValues('IDSklad'));
end;
lSQL:= 'SELECT p.ID, p.SkupZbo, p.RegCis, p.Nazev1, p.Mnozstvi, p.MJ, p.Mnozstvi*p.PrepMnozstvi AS MnozPrep, k.MJEvidence FROM ' + tblPZ + 'p INNER JOIN ' + tblSS
+ ' s ON (s.ID=p.IDZboSklad) INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi) WHERE p.IDDoklad=' + idDoklad.ToString
+ ' AND p.ID IN (SELECT IDPohybu FROM ' + tblPMZGenPZ + ' WHERE TypGen IN (2,3) AND IDPohybu IS NOT NULL AND IDMzdy=' + idMzdy.ToString + ')';
with Helios.OpenSQL (lSQL) do
begin
aPolozky:= oPrijemka.A['polozky'];
First;
while not(EOF) do
begin
oPolozka:= aPolozky.AddObject;
oPolozka.S['skup_zbo']:= VarToStr(FieldByNameValues('SkupZbo'));
oPolozka.S['reg_cis']:= VarToStr(FieldByNameValues('RegCis'));
oPolozka.S['nazev1']:= VarToStr(FieldByNameValues('Nazev1'));
oPolozka.F['mnozstvi']:= VarToStr(FieldByNameValues('Mnozstvi')).ToDouble;
oPolozka.S['mj']:= VarToStr(FieldByNameValues('MJ'));
oPolozka.F['mnozstvi_prepoctene']:= VarToStr(FieldByNameValues('MnozPrep')).ToDouble;
oPolozka.S['mjevid']:= VarToStr(FieldByNameValues('MJEvidence'));
idPZ:= VarToStr(FieldByNameValues('ID')).ToInteger;
lSQL:= 'SELECT vcp.Nazev, vcs.Nazev1, vcs.Nazev2, vcp.Mnozstvi, vcp.DatExpirace FROM ' + tblVyrCP + ' vcp INNER JOIN ' + tblVyrCS
+ ' vcs ON (vcs.ID=vcp.IDVyrCis) WHERE vcp.IDPolozkaDokladu=' + idPZ.ToString;
with Helios.OpenSQL (lSQL) do
begin
aVyrCisla:= oPolozka.A['vyrobni_cisla'];
First;
while not(EOF) do
begin
oVyrCislo:= aVyrCisla.AddObject;
oVyrCislo.S['paletovy_list']:= VarToStr(FieldByNameValues('Nazev1'));
oVyrCislo.S['sarze']:= VarToStr(FieldByNameValues('Nazev')); // vcs.Nazev2
oVyrCislo.F['mnozstvi']:= VarToStr(FieldByNameValues('Mnozstvi')).ToDouble;
oVyrCislo.S['dat_expirace']:= VarToStr(FieldByNameValues('DatExpirace'));
Next;
end;
end;
Next;
end;
end;
Next;
end;
end;
end;
end;
jsonOut:= oMain.ToJSON(false);
finally
{
if (oPolozka<>nil) then
FreeAndNil (oPolozka);
if (oPrijemka<>nil) then
FreeAndNil (oPrijemka);
if (oVydejka<>nil) then
FreeAndNil (oVydejka);
if (aPrijemky<>nil) then
FreeAndNil (aPrijemky);
if (aVydejky<>nil) then
FreeAndNil (aVydejky);
}
end;
oMain:= TJsonObject.Create;
oMain.FromUtf8JSON(jsonOut);
result:= oMain;
end;
function TformUkonceniPalety.NactiPocetKAZEvidRozpOperR: Extended;
var lSQL: string;
begin
result:= 0;
if (idEvEOp>0) then
begin
lSQL:= 'SELECT TOP(1) vc.Mnozstvi-vc.Odvedeno-vc.Zmetky AS Zbytek FROM ' + tblRozpracOperR + ' eor INNER JOIN ' + tblRozpracOper + ' eo ON (eo.ID=eor.IDEvidRozpracOper) LEFT JOIN ';
lSQL:= lSQL + tblPrikazVC + ' vc ON (vc.ID=eor.IDVyrCis) WHERE eor.IDPrikaz=' + idVPr.ToString + ' AND eo.ID=' + idEvEOp.ToString;
with Helios.OpenSQL(lSQL) do
if (RecordCount=1) then
result:= VarToStr(FieldByNameValues('Zbytek')).ToExtended;
end;
end;
procedure TformUkonceniPalety.NactiParemetry;
var lSQL: string;
begin
idKmen:= 0;
mjEvid:= '';
jeFinal:= false;
jePolotovar:= false;
if (idVPr>0) then
begin
with Helios.OpenSQL('SELECT k.SkupZbo, k.RegCis, k.Nazev1, vp.IDTabKmen, k.MJEvidence FROM ' + tblVPr + ' vp INNER JOIN ' + tblKZ + ' k ON (k.ID=vp.IDTabKmen) WHERE vp.ID=' + idVPr.ToString) do
begin
idKmen:= VarToStr(FieldByNameValues('IDTabKmen')).ToInteger;
mjEvid:= VarToStr(FieldByNameValues('MJEvidence'));
edtSZ.Text:= VarToStr(FieldByNameValues('SkupZbo'));
edtRegCis.Text:= VarToStr(FieldByNameValues('RegCis'));
edtNazev1.Text:= VarToStr(FieldByNameValues('Nazev1'));
jeFinal:= helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 FROM ' + tblParKZ + ' WHERE IDKmenZbozi=' + idKmen.ToString + ' AND TypDilce=0');
jePolotovar:= helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 FROM ' + tblParKZ + ' WHERE IDKmenZbozi=' + idKmen.ToString + ' AND TypDilce=1');
end;
pocKA:= NactiPocetKAZEvidRozpOperR;
edtKA.Text:= pocKA.ToString.Replace('.', ',');
prepKA2ks:= 0;
prepKA2pal:= 0;
if (mjEvid.ToUpper='KA') then
begin
ksVKA:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT PocetOdvozene FROM ' + tblMJZbo + ' WHERE KodMJ1=N''KA'' AND KodMJ2=N''Ks'' AND IDKmenZbozi=' + idKmen.ToString);
prepKA2ks:= ksVKA;
edtKs.Text:= (pocKA * ksVKA).ToString.Replace('.', ',');
prepKA2pal:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT PocetHlavni FROM ' + tblMJZbo + ' WHERE KodMJ1=N''KA'' AND KodMJ2=N''pal'' AND IDKmenZbozi=' + idKmen.ToString);
end;
end;
idPalety:= 0;
if (paleta<>'') and (sarze<>'') then
idPalety:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT TOP(1) ID FROM ' + tblPalety + ' WHERE CisloPalety=N' + paleta.QuotedString + ' AND Sarze=N' + sarze.QuotedString);
end;
procedure TformUkonceniPalety.BarvyBtnDleParam;
begin
if (rbTiskKopie1.Checked) then
begin
pnlTiskKopie1.Color:= clMoneyGreen;
rbTiskKopie1.Color:= clMoneyGreen;
end
else
begin
pnlTiskKopie1.Color:= clBtnFace;
rbTiskKopie1.Color:= clBtnFace;
end;
if (rbTiskKopie2.Checked) then
begin
pnlTiskKopie2.Color:= $005B5BFF;
rbTiskKopie2.Color:= $005B5BFF;
// pnlTiskKopie2.Color:= clMoneyGreen;
// rbTiskKopie2.Color:= clMoneyGreen;
end
else
begin
pnlTiskKopie2.Color:= clBtnFace;
rbTiskKopie2.Color:= clBtnFace;
end;
if (rbPokracujAno.Checked) then
begin
edtPokrac.Text:= '1';
pnlPokracujAno.Color:= clMoneyGreen;
rbPokracujAno.Color:= clMoneyGreen;
end
else
begin
pnlPokracujAno.Color:= clBtnFace;
rbPokracujAno.Color:= clBtnFace;
end;
if (rbPokracujNe.Checked) then
begin
edtPokrac.Text:= '2';
pnlPokracujNe.Color:= $005B5BFF;
rbPokracujNe.Color:= $005B5BFF;
// pnlPokracujNe.Color:= clMoneyGreen;
// rbPokracujNe.Color:= clMoneyGreen;
end
else
begin
pnlPokracujNe.Color:= clBtnFace;
rbPokracujNe.Color:= clBtnFace;
end;
end;
procedure TformUkonceniPalety.rbPokracujAnoClick (Sender: TObject);
begin
if (rbPokracujAno.Checked) then
rbPokracujNe.Checked:= false;
BarvyBtnDleParam;
end;
procedure TformUkonceniPalety.rbPokracujNeClick (Sender: TObject);
begin
if (rbPokracujNe.Checked) then
rbPokracujAno.Checked:= false;
BarvyBtnDleParam;
end;
procedure TformUkonceniPalety.rbTiskKopie1Click (Sender: TObject);
begin
if (rbTiskKopie1.Checked) then
rbTiskKopie2.Checked:= false;
BarvyBtnDleParam;
end;
procedure TformUkonceniPalety.rbTiskKopie2Click (Sender: TObject);
begin
if (rbTiskKopie2.Checked) then
rbTiskKopie1.Checked:= false;
BarvyBtnDleParam;
end;
procedure TformUkonceniPalety.btnObrazovkaClick (Sender: TObject);
begin
btnObrazovka.BackColor:= clMoneyGreen;
btnObrazovka.HoverColor:= clMoneyGreen;
btnTiskarna.BackColor:= clBtnFace;
btnTiskarna.HoverColor:= clBtnFace;
Label2.Visible:= false;
pnlTiskKopie1.Visible:= false;
pnlTiskKopie2.Visible:= false;
tiskNa:= 2;
end;
procedure TformUkonceniPalety.btnTiskarnaClick (Sender: TObject);
begin
btnTiskarna.BackColor:= clMoneyGreen;
btnTiskarna.HoverColor:= clMoneyGreen;
btnObrazovka.BackColor:= clBtnFace;
btnObrazovka.HoverColor:= clBtnFace;
Label2.Visible:= true;
pnlTiskKopie1.Visible:= true;
pnlTiskKopie2.Visible:= true;
tiskNa:= 1;
end;
procedure TformUkonceniPalety.btnZapisPaletyATiskClick (Sender: TObject);
var lSQL, lSQL2, podm, errMsg, a, novyPL, idMzdyS, idMezdS, skSubPrikaz, sTemp, sRnd, sklVyd, radaVyd: string;
nazevOp, mjDilce: string;
pocKA, pocKAOld, pocKS, noveMnoz, NPalPocKA, NPalPocKS, prepKA2ks, mnozProKoef, koefMn : extended;
casPrace, idEvOpR, idMzdy, locIdVPr, d, d2, cnt, iPing: integer;
bid, idF, idPalUkonceni, idPrac, idDZ, idDZVyd: integer;
spotrebaTesto, spotreba702, vydejOK: boolean;
fSarzeVydej: TformSarzeVydej;
doJedneVydejky: Boolean;
lHTTP: TIdHTTP;
ssl: TIdSSLIOHandlerSocketOpenSSL;
lParamList, respStream: TStringStream;
resp: string;
joOut, joIn, itemsObj: TJSONObject;
begin
idMezdS:= '';
idPalUkonceni:= 0;
SetClassLong (TForm(Sender).Handle, GCL_HCURSOR, Screen.Cursors[crHourGlass]);
Screen.Cursor:= crHourglass;
helUtils.ReseedTable(Helios, tblPMZ);
helUtils.ReseedTable(Helios, tblPalety);
helUtils.ReseedTable(Helios, tblPaletyUkonceni);
if not(TryStrToFloat(edtKs.Text.Replace(' ','').Trim, pocKS)) then
pocKS:= 0;
if not(TryStrToFloat(edtKA.Text.Replace(' ','').Trim, pocKA)) then
pocKA:= 0;
if not(TryStrToFloat(edtPlneKA.Text.Replace(' ','').Trim, NPalPocKA)) then
NPalPocKA:= 0;
if not(TryStrToFloat(edtKsVPoslednimKA.Text.Replace(' ','').Trim, NPalPocKS)) then
NPalPocKS:= 0;
pocKAOld:= pocKA;
pocKA:= pocKA + NPalPocKA;
if (NPalPocKS>0) and (prepKA2ks<>0) then
pocKA:= pocKA + (NPalPocKS/prepKA2ks);
if (idEvEOp>0) and (pocKA>0) then
begin
spotrebaTesto:= false;
lSQL:= 'SELECT 1 FROM ' + tblVPr + ' p INNER JOIN ' + tblKZ + ' k ON (p.IDTabKmen=k.ID) WHERE p.IDPrikazVyssi=' + idVPr.ToString + ' AND k.SkupZbo=N''701''';
if (helUtils.sqlExistsTestGeneral (Helios, lSQL)) then
spotrebaTesto:= true;
// spotreba tisicikus (SK 702), na kterem je testo
spotreba702:= false;
if not(spotrebaTesto) then
begin
lSQL:= 'SELECT 1 FROM ' + tblVPr + ' p INNER JOIN ' + tblKZ + ' k ON (p.IDTabKmen=k.ID) WHERE p.IDPrikazVyssi=' + idVPr.ToString + ' AND k.SkupZbo=N''702''';
if (helUtils.sqlExistsTestGeneral (Helios, lSQL)) then
spotreba702:= true;
end;
lSQL:= 'INSERT ' + tblPaletyUkonceni + ' (IDPalety, PocetKs, PocetKA, NeuplnaPalPocetKA, NeuplnaPalKsVPoslKA, IDPrikaz) SELECT ' + idPalety.ToString + ', ' + pocKS.ToString.Replace(',', '.') + ', ';
if (NPalPocKA>0) then
lSQL:= lSQL + NPalPocKA.ToString.Replace(',', '.')
else
lSQL:= lSQL + pocKAOld.ToString.Replace(',', '.');
lSQL:= lSQL + ', ' + NPalPocKA.ToString.Replace(',', '.') + ', ' + NPalPocKS.ToString.Replace(',', '.') + ', ' + idVPr.ToString + CRLF;
lSQL:= lSQL + 'SELECT SCOPE_IDENTITY() AS newID';
with Helios.OpenSQL(lSQL) do
if (RecordCount=1) then
idPalUkonceni:= VarToStr(FieldByNameValues('newID')).ToInteger;
idPrac:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDStroje FROM ' + tblRozpracOper + ' WHERE ID=' + idEvEOp.ToString);
if (helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblRozpracOper + ' WHERE Stav=20 AND ID=' + idEvEOp.ToString)) then
begin
lSQL:= 'UPDATE ' + tblRozpracOper + ' SET CasUkonceni=GETDATE() WHERE ID=' + idEvEOp.ToString;
Helios.ExecSQL(lSQL);
casPrace:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT DATEDIFF(second, CasZahajeni, CasUkonceni) FROM ' + tblRozpracOper + ' WHERE ID=' + idEvEOp.ToString);
if (casPrace=0) then
casPrace:= 60;
// uprava odvadeneho mnozstvi v evidenci rozpracovanych operaci podle zadaneho poctu KA na neuplne palete, bez kusu v poslednim KA
if ((NPalPocKA>0) and (NPalPocKS=0)) or (1=1) then
begin
koefMn:= 0;
d:= 0;
lSQL:= 'SELECT r.ID, r.Mnoz_odv, ISNULL(re._KoefMnoz, 1) AS Koef, pp.Nazev, k.MJEvidence, r.DokladPrPostup FROM ' + tblRozpracOperR + ' r INNER JOIN ' + tblPrPost
+ ' pp ON (pp.IDPrikaz=r.IDPrikaz AND pp.Doklad=r.DokladPrPostup AND pp.Alt=r.AltPrPostup AND pp.IDOdchylkyDo IS NULL) INNER JOIN ' + tblKZ
+ ' k ON (k.ID=pp.Dilec) LEFT JOIN ' + tblRozpracOperRE + ' re ON (re.ID=r.ID) WHERE r.IDEvidRozpracOper='
+ idEvEOp.ToString + ' ORDER BY r.DokladPrPostup DESC';
with Helios.OpenSQL(lSQL) do
begin
First;
if (recordCount=1) then
begin
nazevOp:= VarToStr(FieldByNameValues('Nazev'));
mjDilce:= VarToStr(FieldByNameValues('MJEvidence'));
mnozProKoef:= VarToStr(FieldByNameValues('Mnoz_odv')).ToExtended;
d:= VarToStr(FieldByNameValues('DokladPrPostup')).ToInteger;
koefMn:= helUtils.RoundToEX (pocKAOld / mnozProKoef, -4);
end;
if (RecordCount>1) then
begin
while not(EOF) do
begin
nazevOp:= VarToStr(FieldByNameValues('Nazev'));
mjDilce:= VarToStr(FieldByNameValues('MJEvidence'));
mnozProKoef:= VarToStr(FieldByNameValues('Mnoz_odv')).ToExtended;
if (nazevOp.ToLower.Contains('balení')) and (mjDilce.ToLower='ka') and (mnozProKoef<>0) then
begin
d:= VarToStr(FieldByNameValues('DokladPrPostup')).ToInteger;
koefMn:= helUtils.RoundToEX (pocKAOld / mnozProKoef, -4);
end;
Next;
end;
end;
end;
if (koefMn<>0) and (d<>0) then
begin
lSQL:= 'SELECT ID, Mnoz_odv, DokladPrPostup FROM ' + tblRozpracOperR + ' WHERE IDEvidRozpracOper=' + idEvEOp.ToString + 'ORDER BY DokladPrPostup';
with Helios.OpenSQL(lSQL) do
if (RecordCount>0) then
begin
First;
while not(EOF) do
begin
d2:= VarToStr(FieldByNameValues('DokladPrPostup')).ToInteger;
if (d=d2) then
Helios.ExecSQL('UPDATE ' + tblRozpracOperR + ' SET Mnoz_odv=' + pocKAOld.ToString + ' WHERE ID=' + VarToStr(FieldByNameValues('ID')))
else
Helios.ExecSQL('UPDATE ' + tblRozpracOperR + ' SET Mnoz_odv=ROUND(Mnoz_odv * ' + koefMn.ToString.Replace(',', '.') + ', 2) WHERE ID=' + VarToStr(FieldByNameValues('ID')));
Next;
end;
end;
end;
end;
lSQL:= 'EXEC dbo.hp_EvidRozpracOper_AktualizaceCasuOper @IDEvidRozpracOper=' + idEvEOp.ToString + ', @CelkovyCas_S=' + casPrace.ToString + ', @KVO=1';
Helios.ExecSQL(lSQL);
if (idPrac>0) then
lSQL:= 'EXEC dbo.hp_EvidRozpracOper_Uzavreni @IDEvidRozpracOper=' + idEvEOp.ToString + ', @GenerovatEvidenciOperaci=1'
else
lSQL:= 'EXEC dbo.hp_EvidRozpracOper_Uzavreni @IDEvidRozpracOper=' + idEvEOp.ToString + ', @GenerovatEvidenciOperaci=0';
Helios.ExecSQL(lSQL);
// na sklad 261 nemusim delat jednu vydejku
doJedneVydejky:= false;
lSQL:= 'SELECT ID FROM ' + tblRozpracOperR + ' WHERE IDEvidRozpracOper=' + idEvEOp.ToString;
with Helios.OpenSQL (lSQL) do
if (RecordCount>0) then
begin
First;
while not(EOF) do
begin
idEvOpR:= VarToStr(FieldByNameValues('ID')).ToInteger;
lSQL:= 'SELECT ISNULL(IDVyrCis,0) FROM ' + tblRozpracOperR + ' WHERE ID=' + idEvOpR.ToString;
idVyrCisPrikaz:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
{
lSQL:= 'UPDATE eor SET eor.Mnoz_odv=' + pocKA.ToString.Replace(',', '.') + ' FROM ' + tblRozpracOper + ' eo INNER JOIN ' + tblRozpracOperR + ' eor ON (eor.IDEvidRozpracOper=eo.ID)';
lSQL:= lSQL + ' WHERE eo.ID=' + idEvEOp.ToString;
Helios.ExecSQL(lSQL);
}
lSQL:= 'SELECT ID FROM ' + tblPMZ + ' WHERE IDEvidRozpracOperR=' + idEvOpR.ToString;
idMzdy:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
if (idMzdy>0) then
begin
idMezdS:= idMezdS + idMzdy.ToString + ',';
idDZVyd:= 0;
if (doJedneVydejky) then
begin
locIdVPr:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDPrikaz FROM ' + tblPMZ + ' WHERE ID=' + idMzdyS);
lSQL:= 'SELECT ISNULL(pkz.VychoziSklad, r.VydejMatPol_SkladProGenHlavDZ) FROM ' + tblPrikazRada + ' r INNER JOIN ' + tblVPr + ' p ON (p.Rada=r.Rada) LEFT JOIN ' + tblParamKZ;
lSQL:= lSQL + ' pkz ON (pkz.IDKmenZbozi=p.IDTabKmen) WHERE p.ID=' + locIdVPr.ToString;
sklVyd:= helUtils.getHeliosStrVal(Helios, '261', lSQL);
sklVyd:= '261';
lSQL:= 'SELECT r.RadaDokl_GenerRezVyd_Mat FROM ' + tblPrikazRada + ' r INNER JOIN ' + tblVPr + ' p ON (p.Rada=r.Rada) WHERE p.ID=' + locIdVPr.ToString;
radaVyd:= helUtils.getHeliosStrVal(Helios, '223', lSQL);
// radaVyd:= '223';
lSQL:= 'SELECT TOP(1) d.ID FROM ' + tblDZ + ' d INNER JOIN ' + tblDZe + ' de ON (d.ID=de.ID) WHERE d.DruhPohybuZbo=4 AND d.Realizovano=0 AND d.IDSklad=N' + sklVyd.QuotedString;
lSQL:= lSQL + ' AND d.RadaDokladu=N' + radaVyd.QuotedString + ' AND de._Vyroba_DenSmena=N' + denSmena.QuotedString + ' ORDER BY d.ID DESC';
idDZVyd:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
end;
// vydejka z evidence mzdy
helUtils.ReseedTable (Helios, tblDZ);
helUtils.ReseedTable (Helios, tblPZ);
sRnd:= '[dbo].[' + helUtils.RandomString(6, '_PekPohOZ') + ']';
lSQL:= 'SET NOCOUNT ON' + CRLF + 'DROP TABLE IF EXISTS ' + sRnd + CRLF + 'CREATE TABLE ' + sRnd + ' (ID INT, IDPohZbo INT, IDKmen INT, IDSklad NVARCHAR(30), IDDoklad INT )' + CRLF;
lSQL:= lSQL + 'DECLARE @e NVARCHAR(500)=N''''' + CRLF + 'IF OBJECT_ID(N''dbo.ep_Vyroba_GenVydejZeMzdy'', N''P'') IS NOT NULL EXEC dbo.ep_Vyroba_GenVydejZeMzdy @IDMzdy=' + idMzdy.ToString;
lSQL:= lSQL + ', @IDDoklad=' + IfThen(idDZVyd=0, 'NULL', idDZVyd.ToString) + ', @realizujVydej=1, @respExistDokl=1, @spotrebaTesto=' + IfThen(spotrebaTesto, '1', '0');
lSQL:= lSQL + ', @errMsg=@e OUT, @extTab=N' + sRnd.QuotedString + ', @vydejAll=0, @denSmena=N' + denSmena.QuotedString + ', @smazVydejTesto=' + IfThen(spotrebaTesto, '1', '0');
if (spotreba702) then
lSQL:= lSQL + ', @spotreba702=1';
lSQL:= lSQL + CRLF + 'SELECT @e';
errMsg:= helUtils.getHeliosStrVal (Helios, '', lSQL); // cannot insert NULL to IDSklad (TabStavSkladu)
if (errMsg<>'') then
begin
Helios.ExecSQL ('UPDATE ' + tblPaletyUkonceni + ' SET ErrMsg=LEFT(N' + errMsg.QuotedString + ',255) WHERE ID=' + idPalUkonceni.ToString);
lSQL:= 'DELETE FROM ' + tblPZ + ' WHERE ID IN (SELECT IDPohZbo FROM ' + sRnd + ' WHERE IDPohZbo IS NOT NULL)';
Helios.ExecSQL (lSQL);
helUtils.ReseedTable (Helios, tblPZ);
end
else
begin
// kontrola na zadavani sarzi - vypnuto
if (1=0) then
begin
{$IFDEF DEBUG}
lSQL:= 'MERGE ' + sRnd + ' AS T USING (SELECT p.ID, p.IDDoklad, s.IDSklad, s.IDKmenZbozi FROM ' + tblPZ + ' p INNER JOIN ' + tblSS + ' s ON (s.ID=p.IDZboSklad)) AS S ON (T.IDPohZbo=S.ID)';
lSQL:= lSQL + ' WHEN MATCHED THEN UPDATE SET T.IDKmen=s.IDKmenZbozi, T.IDDoklad=S.IDDoklad, T.IDSklad=S.IDSklad;';
Helios.ExecSQL (lSQL);
{$ENDIF}
lSQL:= 'SELECT p.ID FROM ' + tblPZ + ' p INNER JOIN ' + tblSS + ' s ON (s.ID=p.IDZboSklad) INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi) INNER JOIN ' + tblKZe;
lSQL:= lSQL + ' ke ON (ke.ID=k.ID) WHERE p.ID IN (SELECT IDPohZbo FROM ' + sRnd + ' WHERE IDPohZbo IS NOT NULL) AND ke._Vyroba_ZadavatSarzi=1';
cnt:= helUtils.SQLGetRowCount(Helios, lSQL);
if (cnt>0) then
begin
sTemp:= getHeliosRowToStringDelim (Helios, lSQL, ',');
if (sTemp='') then
sTemp:= helUtils.getHeliosStrVal(Helios, '', lSQL.Replace('T p.ID F', 'T STRING_AGG(p.ID,N'','') F'));
fSarzeVydej:= TformSarzeVydej.Create(nil);
try
fSarzeVydej.Helios:= Helios;
fSarzeVydej.idVydejka:= idDZVyd;
fSarzeVydej.sIdPohybuOZ:= sTemp;
fSarzeVydej.ShowModal;
vydejOK:= fSarzeVydej.retOK;
finally
fSarzeVydej.Free;
end;
end;
end;
end;
if (sRnd<>'') then
Helios.ExecSQL('DROP TABLE IF EXISTS ' + sRnd);
// prijemka z evidence mzdy
lSQL:= '';
{
lSQL:= 'DROP TABLE IF EXISTS #HDCTabGenOdvodZeMzdyKonfig' + CRLF + 'CREATE TABLE #HDCTabGenOdvodZeMzdyKonfig (RadaOdvodNaSklad NVARCHAR(3), SkladProOdvod NVARCHAR(30)';
lSQL:= lSQL + ', BezVyrobnichCisel BIT DEFAULT 0)' + CRLF + 'INSERT #HDCTabGenOdvodZeMzdyKonfig (SkladProOdvod) SELECT N''211''' + CRLF;
}
lSQL:= lSQL + 'DECLARE @e NVARCHAR(500)=N''''; IF OBJECT_ID(N''dbo.ep_Vyroba_GenOdvodZeMzdy'', N''P'') IS NOT NULL EXEC dbo.ep_Vyroba_GenOdvodZeMzdy @IDMzdy=' + idMzdy.ToString
+ ', @bezVyrCis=0, @realizujPrijem=1, @errMsg=@e OUT'; // @kopiiNaTechSklad=0,
if (edtNazev1.Text.Contains('polotovar')) or (jePolotovar) then
lSQL:= lSQL + ', @skladOdvod=N''311'''
else
lSQL:= lSQL + ', @skladOdvod=N''312''';
lSQL:= lSQL + CRLF + 'SELECT @e';
errMsg:= helUtils.getHeliosStrVal (Helios, '', lSQL);
// posli JSON o vyrobene palete
try
resp:= GenerujJSON (idMzdy).ToJSON (false).Replace(#10, '').Replace(#9, '').Replace('''', '');
if (resp<>'') then
begin
resp:= TJSON.JsonEncode(resp);
lSQL:= 'UPDATE ' + tblPalety + ' SET JSONDataKonec=N' + resp.QuotedString + ' WHERE ID=' + idPalety.ToString;
Helios.ExecSQL(lSQL);
try
lParamList:= TStringStream.Create('');
lParamList.WriteString (resp);
// http klient je stejny
lHTTP:= TIdHTTP.Create;
if (datMod.phServer.Contains('https')) then
begin
ssl:= TIdSSLIOHandlerSocketOpenSSL.Create(nil);
ssl.SSLOptions.Method:= sslvTLSv1_2;
ssl.SSLOptions.Mode:= sslmUnassigned;
lHTTP.IOHandler:= ssl;
end;
lHTTP.HTTPOptions:= [hoKeepOrigProtocol, hoForceEncodeParams, hoNoProtocolErrorException, hoWantProtocolErrorContent];
lHTTP.Request.ContentType := 'application/ld+json';
lHTTP.Request.Accept := 'application/ld+json, text/javascript, */*; q=0.01';
resp:= '';
respStream:= TStringStream.Create('');
iPing:= uPing.Ping (datMod.getDomainName (datMod.phServer), resp);
// if (helUtils.PingHost (helUtils.NetGetHostName(datMod.phServer))) then
if (iPing=0) then
begin
lHTTP.Post (datMod.phServer + IfThen(datMod.phServer.EndsWith('/'), '', '/') + 'prikaz', lParamList, respStream);
resp:= respStream.DataString.Replace('\/', '/');
Helios.ExecSQL('UPDATE ' + tblPalety + ' SET JSONKonecResp=N' + resp.QuotedString + ' WHERE ID=' + idPalety.ToString);
end;
finally
respStream.Free;
lParamList.Free;
if (ssl<>nil) then
ssl.Free;
lHTTP.Free;
end;
end;
finally
end;
{
if (errMsg='') then
begin
lSQL:= 'SELECT TOP(1) d.ID FROM ' + tblPMZGenPZ + ' pmzg INNER JOIN ' + tblPZ + ' p ON (p.ID=pmzg.IDPohybu) INNER JOIN ' + tblDZ + ' d ON (d.ID=p.IDDoklad)';
lSQL:= lSQL + ' WHERE p.TypVyrobnihoDokladu=0 AND d.DruhPohybuZbo=0 AND d.Realizovano=0 AND pmzg.TypGen=2 AND pmzg.IDMzdy=' + idMzdyS;
idDZ:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
if (idDZ>0) then
begin
vydejOK:= true;
lSQL:= 'SELECT 1 FROM ' + tblDZe + ' WHERE ID=' + idDZ.ToString + ' AND _Vyroba_ZadatSarze=1';
if (helUtils.sqlExistsTestGeneral(Helios, lSQL)) then
begin
fSarzeVydej:= TformSarzeVydej.Create(nil);
try
fSarzeVydej.Helios:= Helios;
fSarzeVydej.idVydejka:= idDZ;
fSarzeVydej.ShowModal;
vydejOK:= fSarzeVydej.retOK;
finally
fSarzeVydej.Free;
end;
end;
if (vydejOK) then
begin
lSQL:= 'DECLARE @b BIT, @i INT' + CRLF + 'SET @i=' + Helios.UserId.ToString + CRLF;
lSQL:= lSQL + 'EXEC dbo.hp_Realizuj_Prijem @ID=' + idDZ.ToString + ', @DatumRealizace=NULL, @Uzivatel=@i, @BylaChyba=@b OUT';
Helios.ExecSQL(lSQL);
end;
end;
end;
}
end;
Next;
end;
end;
if (idPalUkonceni>0) and (idMezdS<>'') then
begin
if (RightStr(idMezdS,1)=',') then
idMezdS:= LeftStr(idMezdS, idMezdS.Length-1);
lSQL:= 'UPDATE ' + tblPaletyUkonceni + ' SET IDMezd=N' + idMzdyS.QuotedString + ' WHERE ID=' + idPalUkonceni.ToString;
Helios.ExecSQL(lSQL);
end;
bid:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Vyroba_Palety''');
// idF:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblFormDef + ' WHERE Nazev2=N''PEK-2''');
if (bid>100000) then
begin
if (idFormPL>0) then
begin
podm:= 'hvw_Vyroba_Palety.CisloPalety=N' + edtPaleta.Text.QuotedString;
Helios.PrintForm3 (bid, idFormPL, podm);
end;
end;
if (rbPokracujAno.Checked) then
begin
helUtils.ReseedTable(Helios, tblRozpracOper);
helUtils.ReseedTable(Helios, tblRozpracOperR);
d:= 0;
a:= '';
lSQL:= 'SELECT TOP(1) pp.Doklad, pp.Alt FROM ' + tblPrPost + ' pp INNER JOIN ' + tblCPrac + ' p ON (pp.pracoviste=p.Id) INNER JOIN ' + tblCStroju + ' s ON (s.IDPrac=p.ID)';
lSQL:= lSQL + ' WHERE pp.Typ=1 AND pp.IDOdchylkyDo IS NULL AND pp.IDPrikaz=' + idVPr.ToString + ' AND s.ID=' + idStroj.ToString;
with Helios.OpenSQL(lSQL) do
if (RecordCount=1) then
begin
d:= VarToStr(FieldByNameValues('Doklad')).ToInteger;
a:= VarToStr(FieldByNameValues('Alt'));
end;
if (d>0) then
begin
novyPL:= '';
noveMnoz:= 0;
lSQL:= 'SELECT ID FROM ' + tblPrikazVC + ' WHERE ID>' + idVyrCisPrikaz.ToString + ' AND IDPrikaz=' + idVPr.ToString + ' AND (Mnozstvi-Odvedeno-Zmetky)>0';
idVyrCisPrikaz:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
if (idVyrCisPrikaz>0) then
begin
lSQL:= 'SELECT VyrCislo, Mnozstvi-Odvedeno-Zmetky AS Zbytek FROM ' + tblPrikazVC + ' WHERE ID=' + idVyrCisPrikaz.ToString;
with Helios.OpenSQL(lSQL) do
if (RecordCount=1) then
begin
novyPL:= VarToStr(FieldByNameValues('VyrCislo'));
noveMnoz:= VarToStr(FieldByNameValues('Zbytek')).ToExtended;
end;
end;
if (noveMnoz>0) then
begin
lSQL:= 'DECLARE @i INT, @i2 INT' + CRLF + 'EXEC @i=dbo.ep_Vyroba_InsertEvidRozpracOper @IDZamestnance=' + datMod.idZamMistr.ToString + ', @IDStroje=' + idStroj.ToString + CRLF;
lSQL:= lSQL + 'IF (@i IS NOT NULL) EXEC @i2=dbo.ep_Vyroba_InsertEvidRozpracOperPol @IdEvidRozpOper=@i, @IdPrikaz=' + idVPr.ToString + ', @doklPrPost=' + d.ToString + ', @altPrPost=N' + a.QuotedString;
lSQL:= lSQL + ', @cisloPL=N' + novyPL.QuotedString + ', @sarze=N' + edtSarze.Text.QuotedString + IfThen(noveMnoz>0, ', @mnozOdv=' + noveMnoz.ToString, '');
Helios.ExecSQL(lSQL);
end;
end;
end;
Close;
end; // mam Evidenci rozprac. oper.
Helios.ExecSQL('UPDATE ' + tblPalety + ' SET DatUkonceni=GETDATE() WHERE ID=' + idPalety.ToString);
if (prerusit) and (idVPr>0) then
Helios.ExecSQL('UPDATE ' + tblPrikaz + ' SET StavPrikazu=40 WHERE ID=' + idVPr.ToString);
end;
Screen.Cursor:= crDefault;
SetClassLong(TForm(Sender).Handle, GCL_HCURSOR, Screen.Cursors[crDefault]);
end;
procedure TformUkonceniPalety.edtKAExit (Sender: TObject);
begin
edtKA.Text:= edtKA.Text.Trim;
if not(TryStrToFloat(edtKA.Text, pocKA)) then
pocKA:= 0;
pocKS:= pocKA * ksVKA;
edtKs.Text:= FormatFloat('##,##0.##', pocKS);
end;
procedure TformUkonceniPalety.edtKsExit (Sender: TObject);
begin
edtKs.Text:= edtKs.Text.Trim;
if not(TryStrToFloat(edtKs.Text, pocKS)) then
pocKS:= 0;
pocKA:= pocKS/ksVKA;
edtKA.Text:= FormatFloat('#,##0.##', pocKA);
end;
procedure TformUkonceniPalety.FormClose (Sender: TObject; var Action: TCloseAction);
begin
Action:= TCloseAction.caFree;
end;
procedure TformUkonceniPalety.FormShow (Sender: TObject);
var lSQL: string;
begin
NactiParemetry;
tiskNa:= 1;
lSQL:= 'SELECT ISNULL(_KL,0) FROM ' + tblKZe + ' WHERE ID=' + idKmen.ToString;
idFormKA:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
// lblWarnStitekKA.Visible:= (idFormKA=0);
lSQL:= 'SELECT ISNULL(_PalStitek,0) FROM ' + tblKZe + ' WHERE ID=' + idKmen.ToString;
idFormPS:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
lSQL:= 'SELECT ISNULL(_PLKK,0) FROM ' + tblKZe + ' WHERE ID=' + idKmen.ToString;
idFormPL:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
// lblWarnStitekPL.Visible:= (idFormPL=0);
SetWindowLong(btnZapisPaletyATisk.Handle, GWL_STYLE, GetWindowLong((btnZapisPaletyATisk as TWinControl).Handle, GWL_STYLE) or BS_MULTILINE);
edtPaleta.Text:= paleta;
edtSarze.Text:= sarze;
edtStroj.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev FROM ' + tblCStroju + ' WHERE ID=' + idStroj.ToString);
edtDatVyroby.Text:= FormatDateTime('dd.mm.yyyy', Now);
lSQL:= 'DECLARE @d DATETIME=GETDATE(); SELECT Smena FROM dbo.ef_GetDatumASmenu (@d)';
with Helios.OpenSQL(lSQL) do
edtSmena.Text:= VarToStr(FieldByNameValues('Smena'));
edtPokrac.Text:= '1';
if (edtKA.CanFocus) then
edtKA.SetFocus;
LabeledEdit2.EditLabel.Caption:= '';
end;
end.