2202 lines
86 KiB
ObjectPascal
2202 lines
86 KiB
ObjectPascal
unit frmOdvTavby;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, System.StrUtils,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, RzEdit, TBPackageU, ddPlugin_TLB, Vcl.ExtCtrls,
|
|
Vcl.ComCtrls, RzDTP, Data.DB, MemDS, VirtualTable, Vcl.Grids, Vcl.DBGrids,
|
|
RzDBGrid;
|
|
|
|
const
|
|
tblTavby = '[dbo].[_hdc_TabTavby]';
|
|
tblOdlitky = '[dbo].[_hdc_TabOdlitky]';
|
|
tblDavky = '[dbo].[_hdc_TabDavky]';
|
|
tblDavkyDU = '[dbo].[_hdc_TabDavkyDruhUziv]';
|
|
|
|
type
|
|
TcfgVosk = record
|
|
sklVosk, sklObal, radaVPrVosk: string;
|
|
end;
|
|
|
|
TOperace = record
|
|
id, idPrikaz, idPrac: integer;
|
|
bc: string;
|
|
ksZive, ksPozad, ksReal, ksOdv, ksZmetIO, ksZmetOpr, ksZmetIOKdy, ksZmetNeopr: Extended;
|
|
{$IF CompilerVersion>=34} // Sydney a vys
|
|
class operator Initialize(out Dest: TOperace);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
TPrikaz = record
|
|
id, idKZ, stav: integer;
|
|
sz, regC, sklad: string;
|
|
ksZive: Extended;
|
|
mamP30: boolean;
|
|
{$IF CompilerVersion>=34} // Sydney a vys
|
|
class operator Initialize(out Dest: TPrikaz);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
TformOdvTavby = class(TForm)
|
|
btnOK: TButton;
|
|
btnStorno: TButton;
|
|
edtOpTavba: TLabeledEdit;
|
|
selOpTavba: TButtonedEdit;
|
|
edtTavba: TLabeledEdit;
|
|
selTavba: TButtonedEdit;
|
|
edtPocetStr: TRzNumericEdit;
|
|
Label1: TLabel;
|
|
lblVyrOp: TLabel;
|
|
lblPocetStr: TLabel;
|
|
pgCtrl: TPageControl;
|
|
shTavba: TTabSheet;
|
|
shVibrovani: TTabSheet;
|
|
edtFormir: TLabeledEdit;
|
|
selFormir: TButtonedEdit;
|
|
edtOpVibr: TLabeledEdit;
|
|
selOpVibr: TButtonedEdit;
|
|
edtTavbaV: TLabeledEdit;
|
|
selTavbaV: TButtonedEdit;
|
|
edtVibrator: TLabeledEdit;
|
|
selVibrator: TButtonedEdit;
|
|
lblPopis: TLabel;
|
|
lblPrikaz: TLabel;
|
|
Label3: TLabel;
|
|
edtStrCelk: TRzNumericEdit;
|
|
lblKsStrom: TLabel;
|
|
edtStrZmetky: TRzNumericEdit;
|
|
Label4: TLabel;
|
|
Label2: TLabel;
|
|
lblZapisDat: TLabel;
|
|
lblVibrator: TLabel;
|
|
lblFormir: TLabel;
|
|
lblLidiZTavby: TLabel;
|
|
lblLidiZTavby2: TLabel;
|
|
shOdvStr: TTabSheet;
|
|
edtOpStr: TLabeledEdit;
|
|
selOpStr: TButtonedEdit;
|
|
edtZamStr: TLabeledEdit;
|
|
selZamStr: TButtonedEdit;
|
|
edtStrStr: TRzNumericEdit;
|
|
Label5: TLabel;
|
|
Label6: TLabel;
|
|
lblZamest: TLabel;
|
|
lblStromKs: TLabel;
|
|
Label7: TLabel;
|
|
edtDavka: TEdit;
|
|
selDavka: TButtonedEdit;
|
|
Label8: TLabel;
|
|
edtDavkaStr: TEdit;
|
|
selDavkaStr: TButtonedEdit;
|
|
lblOperace: TLabel;
|
|
shPrevodVosk: TTabSheet;
|
|
edtVoskPrikaz: TEdit;
|
|
selVoskPrikaz: TButtonedEdit;
|
|
Label10: TLabel;
|
|
Label11: TLabel;
|
|
edtVoskStr: TRzNumericEdit;
|
|
datVoskDatum: TRzDateTimePicker;
|
|
Label9: TLabel;
|
|
lblVoskDavka: TLabel;
|
|
lblVoskZbyva: TLabel;
|
|
btnOKNew: TButton;
|
|
shDavkaObec: TTabSheet;
|
|
Label12: TLabel;
|
|
edtPrikazObec: TEdit;
|
|
selPrikazObec: TButtonedEdit;
|
|
edtStrObec: TRzNumericEdit;
|
|
Label14: TLabel;
|
|
datDavkaObec: TRzDateTimePicker;
|
|
Label15: TLabel;
|
|
edtDavkaObec: TEdit;
|
|
selDavkaObec: TButtonedEdit;
|
|
lblObecZbyva: TLabel;
|
|
cbMJObec: TComboBox;
|
|
lblStrDavka: TLabel;
|
|
gbEvidPrace: TGroupBox;
|
|
grdEvidPrace: TRzDBGrid;
|
|
vTab: TVirtualTable;
|
|
vDs: TDataSource;
|
|
vTabcolDatum: TStringField;
|
|
vTabcolAutor: TStringField;
|
|
vTabcolMnoz: TFloatField;
|
|
vTabcolMJ: TStringField;
|
|
shP42: TTabSheet;
|
|
Label13: TLabel;
|
|
edtOperP42: TEdit;
|
|
selOperP42: TButtonedEdit;
|
|
Label16: TLabel;
|
|
edtKsP42: TRzNumericEdit;
|
|
Label17: TLabel;
|
|
edtDavkaObr: TEdit;
|
|
selDavkaObr: TButtonedEdit;
|
|
lblOperaceP42: TLabel;
|
|
lblDavkaObr: TLabel;
|
|
selZamP42: TButtonedEdit;
|
|
Label18: TLabel;
|
|
edtZamP42: TRzNumericEdit;
|
|
lblZamP42: TLabel;
|
|
Label19: TLabel;
|
|
edtStrZmetky2: TRzNumericEdit;
|
|
cbZmetky: TCheckBox;
|
|
cbStrNenalite: TCheckBox;
|
|
cbZmetky2: TCheckBox;
|
|
edtStrZmetky3: TRzNumericEdit;
|
|
Label20: TLabel;
|
|
procedure FormShow(Sender: TObject);
|
|
procedure selTavbaClick(Sender: TObject);
|
|
procedure selOpTavbaClick(Sender: TObject);
|
|
procedure selFormirClick(Sender: TObject);
|
|
procedure edtFormirExit(Sender: TObject);
|
|
procedure edtVibratorExit(Sender: TObject);
|
|
procedure selVibratorClick(Sender: TObject);
|
|
procedure btnStornoClick(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure btnOKClick(Sender: TObject);
|
|
procedure edtTavbaVExit(Sender: TObject);
|
|
procedure edtTavbaExit(Sender: TObject);
|
|
procedure selOpVibrClick(Sender: TObject);
|
|
procedure selTavbaVClick(Sender: TObject);
|
|
procedure edtOpTavbaExit(Sender: TObject);
|
|
procedure edtOpVibrExit(Sender: TObject);
|
|
procedure edtPocetStrExit(Sender: TObject);
|
|
procedure edtPocetStrChange(Sender: TObject);
|
|
procedure edtZamStrExit(Sender: TObject);
|
|
procedure edtOpStrExit(Sender: TObject);
|
|
procedure selOpStrClick(Sender: TObject);
|
|
procedure selDavkaClick(Sender: TObject);
|
|
procedure edtDavkaExit(Sender: TObject);
|
|
procedure selDavkaStrClick(Sender: TObject);
|
|
procedure edtDavkaStrExit(Sender: TObject);
|
|
procedure selZamStrClick(Sender: TObject);
|
|
procedure selVoskPrikazClick(Sender: TObject);
|
|
procedure edtVoskPrikazExit(Sender: TObject);
|
|
procedure edtVoskStrExit(Sender: TObject);
|
|
procedure btnOKNewClick(Sender: TObject);
|
|
procedure selPrikazObecClick(Sender: TObject);
|
|
procedure edtPrikazObecExit(Sender: TObject);
|
|
procedure selDavkaObecClick(Sender: TObject);
|
|
procedure edtOperP42Exit(Sender: TObject);
|
|
procedure selDavkaObrClick(Sender: TObject);
|
|
procedure selOperP42Click(Sender: TObject);
|
|
procedure selZamP42Click(Sender: TObject);
|
|
procedure edtZamP42Exit(Sender: TObject);
|
|
procedure selZamP42Exit(Sender: TObject);
|
|
procedure FormResize(Sender: TObject);
|
|
private
|
|
function TestMamNaPrevod(const sklFrom: string): boolean;
|
|
function VyrPrikazMaOperaciPracoviste(const idVPr: Integer; prac: string): boolean;
|
|
function getTextDruhDavky(const idD: integer): string;
|
|
procedure NactiPrikaz; safecall;
|
|
procedure NactiTavbu(const idTavby: integer); safecall;
|
|
procedure ZjistiVOp(bc: string; const nactiVP: boolean); safecall;
|
|
function getParamOperace(const idVOp: integer; const param: string; const defVal: string=''): string; overload;
|
|
function getParamOperace(const idVOp: integer; const param: string; const defVal: Integer=-999999): integer; overload;
|
|
function getParamOperace(const idVOp: integer; const param: string; const defVal: Extended=-999999): Extended; overload;
|
|
public
|
|
Helios: IHelios;
|
|
typ: integer;
|
|
druhDavky: integer;
|
|
jeTest: Boolean;
|
|
rada: string;
|
|
end;
|
|
|
|
var
|
|
formOdvTavby: TformOdvTavby;
|
|
idVPr, idVPrV, idVOp, idDavka, idDavkaRodic, cDavky: integer;
|
|
oVar, oVar2: OleVariant;
|
|
bidTavby, bidDavky: integer;
|
|
stred, rc, davkaMJ, sklFrom, sklTo, pozn, prac: string;
|
|
btnNew, tavbaCalamari, opakovanaTavba: boolean;
|
|
ksStr, ksZive: Extended;
|
|
prik: TPrikaz;
|
|
oper: TOperace;
|
|
mnP31max: Extended;
|
|
|
|
|
|
implementation
|
|
uses System.DateUtils, System.AnsiStrings, helUtils;
|
|
{$R *.dfm}
|
|
|
|
|
|
{$IF CompilerVersion>=34} // Sydney a vys
|
|
class operator TOperace.Initialize (out Dest: TOperace);
|
|
begin
|
|
Dest.id:= 0;
|
|
Dest.idPrikaz:= 0;
|
|
Dest.idPrac:= 0;
|
|
Dest.bc:= '';
|
|
Dest.ksZive:= 0;
|
|
Dest.ksPozad:= 0;
|
|
Dest.ksReal:= 0;
|
|
Dest.ksOdv:= 0;
|
|
Dest.ksZmetIO:= 0;
|
|
Dest.ksZmetOpr:= 0;
|
|
Dest.ksZmetIOKdy:= 0;
|
|
Dest.ksZmetNeopr:= 0;
|
|
end;
|
|
|
|
class operator TPrikaz.Initialize (out Dest: TPrikaz);
|
|
begin
|
|
Dest.id:= 0;
|
|
Dest.idKZ:= 0;
|
|
Dest.stav:= 10;
|
|
Dest.sz:= '';
|
|
Dest.regC:= '';
|
|
Dest.sklad:= '';
|
|
Dest.ksZive:= 0;
|
|
Dest.mamP30:= false;
|
|
end;
|
|
|
|
{$ENDIF}
|
|
|
|
|
|
|
|
|
|
function TformOdvTavby.getParamOperace (const idVOp: integer; const param: string; const defVal: string=''): string;
|
|
var lSQL: string;
|
|
begin
|
|
result:= defVal;
|
|
if (idVOp>0) and (param<>'') then
|
|
begin
|
|
lSQL:= 'SELECT TOP(1) <selCol> FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND (ID=' + idVOp.ToString + ' OR ID1=' + idVOp.ToString + ')';
|
|
lSQL:= lSQL.Replace('<selCol>', param);
|
|
result:= helUtils.getHeliosStrVal(Helios, defVal, lSQL);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
function TformOdvTavby.getParamOperace (const idVOp: integer; const param: string; const defVal: integer=-999999): integer;
|
|
var lSQL: string;
|
|
begin
|
|
result:= defVal;
|
|
if (idVOp>0) and (param<>'') then
|
|
begin
|
|
lSQL:= 'SELECT TOP(1) <selCol> FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND (ID=' + idVOp.ToString + ' OR ID1=' + idVOp.ToString + ')';
|
|
lSQL:= lSQL.Replace('<selCol>', param);
|
|
result:= helUtils.getHeliosIntVal(Helios, defVal, lSQL);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
function TformOdvTavby.getParamOperace (const idVOp: integer; const param: string; const defVal: Extended=-999999): Extended;
|
|
var lSQL: string;
|
|
begin
|
|
result:= defVal;
|
|
if (idVOp>0) and (param<>'') then
|
|
begin
|
|
lSQL:= 'SELECT TOP(1) <selCol> FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND (ID=' + idVOp.ToString + ' OR ID1=' + idVOp.ToString + ')';
|
|
{
|
|
if (param='kusy_pozadovane') then
|
|
lSQL:= lSQL.Replace('<selCol>', 'CONVERT(numeric(19,6), CASE WHEN Kusy_nepotrebne>kusy_zad THEN 0.0 ELSE kusy_zad-kusy_nepotrebne END)')
|
|
else
|
|
}
|
|
lSQL:= lSQL.Replace('<selCol>', param);
|
|
result:= helUtils.getHeliosFloatVal(Helios, defVal, lSQL);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
function TformOdvTavby.getTextDruhDavky (const idD: Integer): string;
|
|
var x: integer;
|
|
begin
|
|
result:= '';
|
|
if (idD>0) then
|
|
begin
|
|
x:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DruhDavky FROM ' + tblDavky + ' WHERE ID=' + idD.ToString);
|
|
case x of
|
|
1: result:= 'VOSK';
|
|
2: result:= 'OBALOVNA';
|
|
3: result:= 'TAVÍRNA';
|
|
4: result:= 'KONEČNÁ';
|
|
5: result:= 'OBECNÁ';
|
|
6: result:= 'OBROBNA';
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TformOdvTavby.VyrPrikazMaOperaciPracoviste (const idVPr: Integer; prac: string): boolean;
|
|
var lSQL: string;
|
|
begin
|
|
result:= false;
|
|
prac:= Trim(prac);
|
|
if (idVPr>0) and (prac<>'') then
|
|
begin
|
|
lSQL:= 'SELECT p.ID FROM ' + tblPrPost + ' p INNER JOIN ' + tblCPrac + ' pr ON (pr.ID=p.pracoviste) WHERE p.IDPrikaz=' + idVPr.ToString;
|
|
lSQL:= lSQL + ' AND pr.Blokovano=0 AND pr.Pracoviste=N' + QuotedStr(prac);
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
result:= true;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
function TformOdvTavby.TestMamNaPrevod(const sklFrom: string): boolean;
|
|
var lSQL: string;
|
|
ksSkl: Extended;
|
|
begin
|
|
result:= false;
|
|
if (idVPr>0) and (sklFrom<>'') then
|
|
begin
|
|
rc:= helUtils.getHeliosStrVal(Helios, '', 'SELECT k.RegCis FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' k ON (k.Id=p.IdTabKmen) WHERE p.ID=' + idVPr.ToString);
|
|
ksStr:= 0;
|
|
ksSkl:= 0;
|
|
try
|
|
lSQL:= 'SELECT CASE WHEN ISNULL(o.MamMatecniOdlitek,0)=1 THEN ISNULL(o1.KSnaStrom,0) ELSE ISNULL(o.KSnaStrom,0) END FROM ' + tblOdlitky;
|
|
lSQL:= lSQL + ' o LEFT JOIN ' + tblOdlitky + ' o1 ON (o1.Odlitek=o.MatecniOdlitek) WHERE o.Odlitek=N' + QuotedStr(rc);
|
|
ksStr:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
lSQL:= 'SELECT s.Mnozstvi FROM ' + tblSS + ' s INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi) WHERE k.SkupZbo=N''P12'' AND s.IDSklad=N' + QuotedStr(sklFrom);
|
|
lSQL:= lSQL + ' AND k.RegCis=N' + QuotedStr(rc);
|
|
ksSkl:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
except
|
|
end;
|
|
if (ksSkl>=edtVoskStr.Value) then
|
|
result:= true
|
|
else
|
|
Helios.Error(#1'Na skladě Vosk/modely nemáte dost kusů P12 pro převod.'#1);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.btnOKClick (Sender: TObject);
|
|
var lSQL, radaVPr: string;
|
|
canCont: boolean;
|
|
begin
|
|
canCont:= true;
|
|
davkaMJ:= '';
|
|
edtFormir.Text:= Trim(edtFormir.Text);
|
|
edtVibrator.Text:= Trim(edtVibrator.Text);
|
|
edtTavba.Text:= Trim(edtTavba.Text);
|
|
edtTavbaV.Text:= Trim(edtTavbaV.Text);
|
|
edtDavka.Text:= Trim(edtDavka.Text);
|
|
edtDavkaStr.Text:= Trim(edtDavkaStr.Text);
|
|
|
|
lblZapisDat.Visible:= true;
|
|
Self.Repaint;
|
|
btnOK.Enabled:= false;
|
|
btnStorno.Enabled:= false;
|
|
|
|
if (idVPr>0) then
|
|
begin
|
|
radaVPr:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Rada FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
|
|
if (rada='') then
|
|
davkaMJ:= '';
|
|
end;
|
|
|
|
// TAVBA
|
|
if (pgCtrl.ActivePageIndex=shTavba.PageIndex) and (idVPr>0) then
|
|
begin
|
|
canCont:= true;
|
|
if (LeftStr(edtTavba.Text,1).ToUpper<>'T') then
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error('Označení tavby nezačíná písmenem T, vyberte tavbu z číselníku.');
|
|
end;
|
|
|
|
if (canCont) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo._temp_TabEvidenceTavby'') IS NOT NULL DELETE FROM dbo._temp_TabEvidenceTavby WHERE Autor=SUSER_SNAME()' + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo._temp_TabEvidenceTavby'') IS NOT NULL IF NOT EXISTS(SELECT * FROM dbo._temp_TabEvidenceTavby) DROP TABLE ';
|
|
lSQL:= lSQL + 'dbo._temp_TabEvidenceTavby';
|
|
Helios.ExecSQL(lSQL);
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabEvidenceTavby'') IS NOT NULL DROP TABLE #TabEvidenceTavby' + CRLF + 'CREATE TABLE #TabEvidenceTavby (BarCodeOperace NVARCHAR(15) NOT NULL';
|
|
lSQL:= lSQL + ', CisloTavby NVARCHAR(11) NOT NULL, Opakovana BIT DEFAULT 0, Formir INT NULL, PocetStromu SMALLINT NOT NULL, JeCalamari BIT DEFAULT 0, Autor NVARCHAR(80) DEFAULT SUSER_SNAME())' + CRLF;
|
|
lSQL:= lSQL + 'INSERT #TabEvidenceTavby (BarCodeOperace, CisloTavby, Formir, PocetStromu, JeCalamari, Opakovana) SELECT N' + QuotedStr(edtOpTavba.Text) + ', N' + QuotedStr(edtTavba.Text);
|
|
lSQL:= lSQL + ', ' + IfThen(edtFormir.Text='', 'NULL', edtFormir.Text) + ', ' + StringReplace(edtPocetStr.Value.ToString, ',', '.', [rfReplaceAll]);
|
|
lSQL:= lSQL + ', ' + IfThen(tavbaCalamari, '1', '0') + ', ' + IfThen(opakovanaTavba, '1', '0') + CRLF;
|
|
if (jeTest) then
|
|
begin
|
|
lSQL:= StringReplace(lSQL, '#TabEvi', 'dbo._temp_TabEvi', [rfReplaceAll]);
|
|
lSQL:= StringReplace(lSQL, 'tempdb..', '', [rfReplaceAll]);
|
|
end;
|
|
Helios.ExecSQL(lSQL);
|
|
if not(jeTest) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo.ep_Tavirna_EvidenceTavby'') IS NOT NULL EXEC dbo.ep_Tavirna_EvidenceTavby';
|
|
try
|
|
Helios.ExecSQL(lSQL);
|
|
except on E:Exception do
|
|
Helios.Error(#1 + E.Message + #1);
|
|
end;
|
|
end;
|
|
if (btnNew) then
|
|
begin
|
|
NactiPrikaz;
|
|
lblLidiZTavby.Caption:= '';
|
|
edtPocetStr.Value:= 0;
|
|
lblPocetStr.Caption:= '';
|
|
lblVyrOp.Caption:= '';
|
|
lblKsStrom.Caption:= '';
|
|
edtTavba.Text:= '';
|
|
edtTavba.SetFocus;
|
|
end;
|
|
end;
|
|
|
|
end;
|
|
|
|
// VIBROVANI
|
|
if (pgCtrl.ActivePageIndex=shVibrovani.PageIndex) and (idVPr>0) and (edtTavbaV.Text<>'') then
|
|
begin
|
|
canCont:= true;
|
|
if (LeftStr(edtTavbaV.Text,1).ToUpper<>'T') then
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error('Označení tavby nezačíná písmenem T, vyberte tabvu z číselníku.');
|
|
if (edtTavbaV.CanFocus) then
|
|
edtTavbaV.SetFocus;
|
|
end;
|
|
|
|
if (canCont) then
|
|
if (edtVibrator.Text.Trim='') then
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error('Musíte vybrat zaměstnance, který práci provedl.');
|
|
if (edtVibrator.CanFocus) then
|
|
edtVibrator.SetFocus;
|
|
end;
|
|
|
|
if (canCont) then
|
|
if (edtDavka.Text.Trim='') then
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error('Musíte vybrat/založit výrobní Dávku.');
|
|
if (edtDavka.CanFocus) then
|
|
edtDavka.SetFocus;
|
|
end;
|
|
|
|
|
|
if (canCont) then
|
|
begin
|
|
if (cbZmetky.Checked or cbStrNenalite.Checked) and (edtStrZmetky.Value=0) then
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error('Pokud evidujete zmetky, musíte uvést jejich počet.');
|
|
if (edtStrZmetky.CanFocus) then
|
|
edtStrZmetky.SetFocus;
|
|
end;
|
|
if (canCont) and (cbZmetky.Checked) and (edtStrZmetky2.Value=0) then
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error('Pokud evidujete zmetky, musíte uvést jejich počet.');
|
|
if (edtStrZmetky2.CanFocus) then
|
|
edtStrZmetky2.SetFocus;
|
|
end;
|
|
end;
|
|
|
|
|
|
if (canCont) then
|
|
begin
|
|
davkaMJ:= 'STR';
|
|
lSQL:= 'IF OBJECT_ID(N''dbo._temp_TabEvidenceVibrovani'') IS NOT NULL DELETE FROM dbo._temp_TabEvidenceVibrovani WHERE Autor=SUSER_SNAME()' + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo._temp_TabEvidenceVibrovani'') IS NOT NULL IF NOT EXISTS(SELECT * FROM dbo._temp_TabEvidenceVibrovani) DROP TABLE ';
|
|
lSQL:= lSQL + 'dbo._temp_TabEvidenceVibrovani';
|
|
Helios.ExecSQL(lSQL);
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabEvidenceVibrovani'') IS NOT NULL DROP TABLE #TabEvidenceVibrovani' + CRLF + 'CREATE TABLE #TabEvidenceVibrovani (BarCodeOperace NVARCHAR(15) NOT NULL';
|
|
lSQL:= lSQL + ', CisloTavby NVARCHAR(11) NOT NULL, Vibrovac INT, PocetStromuOK SMALLINT DEFAULT 0, PocetStromuZmetky SMALLINT DEFAULT 0, cbObalovna BIT DEFAULT 0, IDDavka INT';
|
|
lSQL:= lSQL + ', cbStrNenalite BIT DEFAULT 0, PocetStromuZmetky2 SMALLINT DEFAULT 0, cbObalovna2 BIT DEFAULT 0, PocetStromuZmetky3 SMALLINT DEFAULT 0, cbObalovna3 BIT DEFAULT 0';
|
|
lSQL:= lSQL + ', Autor NVARCHAR(80) DEFAULT SUSER_SNAME(), IDPrikaz INT)' + CRLF;
|
|
lSQL:= lSQL + 'INSERT #TabEvidenceVibrovani (BarCodeOperace, CisloTavby, Vibrovac, PocetStromuOK, PocetStromuZmetky, cbObalovna, cbStrNenalite, PocetStromuZmetky2';
|
|
lSQL:= lSQL + ', cbObalovna2, PocetStromuZmetky3, IDPrikaz)';
|
|
lSQL:= lSQL + ' SELECT N' + edtOpVibr.Text.QuotedString + ', N' + edtTavbaV.Text.QuotedString + ', ' + IfThen(edtVibrator.Text='', 'NULL', edtVibrator.Text);
|
|
lSQL:= lSQL + ', ' + FloatToStr(edtStrCelk.Value-edtStrZmetky.Value-edtStrZmetky2.Value).Replace(',', '.');
|
|
lSQL:= lSQL + ', ' + edtStrZmetky.Value.ToString.Replace(',', '.') + ', ' + IfThen(cbZmetky.Checked, '1', '0') + ', ' + IfThen(cbStrNenalite.Checked, '1', '0');
|
|
lSQL:= lSQL + ', ' + edtStrZmetky2.Value.ToString.Replace(',', '.') + ', ' + IfThen(cbZmetky2.Checked, '1', '0');
|
|
lSQL:= lSQL + ', ' + edtStrZmetky3.Value.ToString.Replace(',', '.') + ', ' + idVPr.ToString + CRLF;
|
|
if (jeTest) then
|
|
begin
|
|
lSQL:= lSQL.Replace('#TabEvi', 'dbo._temp_TabEvi', [rfReplaceAll]);
|
|
lSQL:= lSQL.Replace('tempdb..', '', [rfReplaceAll]);
|
|
end;
|
|
Helios.ExecSQL(lSQL);
|
|
if (idDavka>0) then
|
|
begin
|
|
lSQL:= 'UPDATE #TabEvidenceVibrovani SET IDDavka=' + idDavka.ToString + ' WHERE Autor=SUSER_SNAME()';
|
|
if (jeTest) then
|
|
lSQL:= lSQL.Replace('#TabEvi', 'dbo._temp_TabEvi', [rfReplaceAll]);
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
lSQL:= 'UPDATE ' + tblDavky + ' SET IDPrikaz=' + idVPr.ToString + ', MJ=N' + QuotedStr(davkaMJ) + ', Tavba=N' + QuotedStr(edtTavbaV.Text) + ', Mnozstvi=';
|
|
lSQL:= lSQL + StringReplace(FloatToStr((edtStrCelk.Value-edtStrZmetky.Value-edtStrZmetky2.Value){*ksStr}), ',', '.', [rfReplaceAll]) + ' WHERE Uzavreno=0 AND ID=' + idDavka.ToString;
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
if not(jeTest) then
|
|
begin
|
|
lSQL:= 'DECLARE @retVal INT=1; IF OBJECT_ID(N''dbo.ep_Tavirna_EvidenceVibrovani'') IS NOT NULL EXEC @retVal=dbo.ep_Tavirna_EvidenceVibrovani' + CRLF;
|
|
lSQL:= lSQL + 'SELECT @retVal';
|
|
// lSQL:= lSQL + 'IF OBJECT_ID(N''tempdb..#TabExtKom'') IS NOT NULL SELECT CASE WHEN EXISTS(SELECT * FROM #TabExtKom) THEN 1 ELSE 0 END ELSE SELECT 0';
|
|
try
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount=1) then
|
|
begin
|
|
lSQL:= 'Typ=7 AND IDPomoc=' + edtOpVibr.Text.Replace('A', '').Replace('B', '');
|
|
if (VarToStr(FieldValues(0))='1') then
|
|
if (helUtils.HeliosExistsTest(Helios, '_hdc_TabLog', lSQL)) then
|
|
Helios.OpenBrowse(helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_HDCLog'''), lSQL)
|
|
else
|
|
Helios.Error(#1'Nespecifikovaná chyba při evidenci Vibrování, operaci zaevidujte ručně.'#1);
|
|
end;
|
|
except on E:Exception do
|
|
Helios.Error(#1 + E.Message + #1);
|
|
end;
|
|
end;
|
|
if (btnNew) then
|
|
begin
|
|
NactiPrikaz;
|
|
lblLidiZTavby2.Caption:= '';
|
|
edtStrCelk.Value:= 0;
|
|
edtStrZmetky.Value:= 0;
|
|
edtStrZmetky2.Value:= 0;
|
|
cbZmetky.Checked:= false;
|
|
cbZmetky2.Checked:= false;
|
|
edtTavbaV.Text:= '';
|
|
edtTavbaV.SetFocus;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
// TAVBA
|
|
if (pgCtrl.ActivePageIndex=shOdvStr.PageIndex) and (idVPr>0) and (edtStrStr.Value>0) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo._temp_TabEvidenceOperStromky'') IS NOT NULL DELETE FROM dbo._temp_TabEvidenceOperStromky WHERE Autor=SUSER_SNAME()' + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo._temp_TabEvidenceOperStromky'') IS NOT NULL IF NOT EXISTS(SELECT * FROM dbo._temp_TabEvidenceOperStromky) DROP TABLE ';
|
|
lSQL:= lSQL + 'dbo._temp_TabEvidenceOperStromky';
|
|
Helios.ExecSQL(lSQL);
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabEvidenceOperStromky'') IS NOT NULL DROP TABLE #TabEvidenceOperStromky' + CRLF + 'CREATE TABLE #TabEvidenceOperStromky (BarCodeOperace NVARCHAR(15) NOT NULL';
|
|
lSQL:= lSQL + ', Zamestnanec INT, PocetStromuOK SMALLINT DEFAULT 0, PocetStromuZmetky SMALLINT DEFAULT 0, IDDavka INT, Autor NVARCHAR(80) DEFAULT SUSER_SNAME(),';
|
|
lSQL:= lSQL + ' Poznamka NVARCHAR(max) DEFAULT N'''')' + CRLF;
|
|
lSQL:= lSQL + 'INSERT #TabEvidenceOperStromky (BarCodeOperace, Zamestnanec, PocetStromuOK, PocetStromuZmetky, Poznamka) SELECT N' + QuotedStr(edtOpStr.Text);
|
|
lSQL:= lSQL + ', ' + IfThen(edtZamStr.Text='', 'NULL', edtZamStr.Text) + ', ' + StringReplace(FloatToStr(edtStrStr.Value), ',', '.', [rfReplaceAll]) + ', 0';
|
|
lSQL:= lSQL + ', N' + QuotedStr(pozn);
|
|
if (jeTest) then
|
|
begin
|
|
lSQL:= StringReplace(lSQL, '#TabEvi', 'dbo._temp_TabEvi', [rfReplaceAll]);
|
|
lSQL:= StringReplace(lSQL, 'tempdb..', '', [rfReplaceAll]);
|
|
end;
|
|
Helios.ExecSQL(lSQL);
|
|
if (idDavka>0) then
|
|
begin
|
|
davkaMj:= 'STR';
|
|
lSQL:= 'UPDATE #TabEvidenceOperStromky SET IDDavka=' + idDavka.ToString + ' WHERE Autor=SUSER_SNAME()';
|
|
if (jeTest) then
|
|
lSQL:= StringReplace(lSQL, '#TabEvi', 'dbo._temp_TabEvi', [rfReplaceAll]);
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
lSQL:= 'UPDATE ' + tblDavky + ' SET IDPrikaz=' + idVPr.ToString + ', MJ=N' + QuotedStr(davkaMJ) + ', Mnozstvi=';
|
|
lSQL:= lSQL + StringReplace(FloatToStr(edtStrStr.Value{*ksStr}),',','.',[rfReplaceAll]) + ' WHERE Uzavreno=0 AND ID=' + idDavka.ToString;
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
if not(jeTest) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo.ep_Tavirna_EvidenceOperStromky'') IS NOT NULL EXEC dbo.ep_Tavirna_EvidenceOperStromky';
|
|
try
|
|
Helios.ExecSQL(lSQL);
|
|
except on E:Exception do
|
|
Helios.Error(#1 + E.Message + #1);
|
|
end;
|
|
end;
|
|
if (btnNew) then
|
|
begin
|
|
NactiPrikaz;
|
|
edtStrStr.Value:= 0;
|
|
edtStrStr.SetFocus;
|
|
end;
|
|
edtDavkaStr.Text:= '';
|
|
idDavka:= 0;
|
|
end;
|
|
|
|
|
|
|
|
|
|
// VOSK NA OBALOVNU
|
|
if (pgCtrl.ActivePageIndex=shPrevodVosk.PageIndex) and (idVPr>0) and (edtVoskStr.Value>0) and (1=0) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo._temp_TabPrevodVosk2Obal'') IS NOT NULL DELETE FROM dbo._temp_TabPrevodVosk2Obal WHERE Autor=SUSER_SNAME()' + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo._temp_TabPrevodVosk2Obal'') IS NOT NULL IF NOT EXISTS(SELECT * FROM dbo._temp_TabPrevodVosk2Obal) DROP TABLE ';
|
|
lSQL:= lSQL + 'dbo._temp_TabPrevodVosk2Obal';
|
|
Helios.ExecSQL(lSQL);
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabPrevodVosk2Obal'') IS NOT NULL DROP TABLE #TabPrevodVosk2Obal' + CRLF + 'CREATE TABLE #TabPrevodVosk2Obal (IDPrikaz INT NOT NULL';
|
|
lSQL:= lSQL + ', Pozice TINYINT DEFAULT 1, PocetStromu SMALLINT DEFAULT 0, DatPrevodu DATETIME, Autor NVARCHAR(80) DEFAULT SUSER_SNAME())' + CRLF;
|
|
lSQL:= lSQL + 'INSERT #TabPrevodVosk2Obal (IDPrikaz, PocetStromu, DatPrevodu, Pozice) SELECT ' + idVPr.ToString + ', ' + StringReplace(FloatToStr(edtVoskStr.Value), ',', '.', [rfReplaceAll]);
|
|
lSQL:= lSQL + ', CONVERT(datetime, N' + QuotedStr(FormatDateTime('dd.mm.yyyy hh:nn:ss', datVoskDatum.DateTime)) + ', 104), ';
|
|
if (lblVoskDavka.Caption<>'') then
|
|
lSQL:= lSQL + StringReplace(lblVoskDavka.Caption, 'Dávka č. ', '', [rfReplaceAll])
|
|
else
|
|
lSQL:= lSQL + 'NULL';
|
|
if (jeTest) then
|
|
begin
|
|
lSQL:= StringReplace(lSQL, '#TabPrevodV', 'dbo._temp_TabPrevodV', [rfReplaceAll]);
|
|
lSQL:= StringReplace(lSQL, 'tempdb..', '', [rfReplaceAll]);
|
|
end;
|
|
Helios.ExecSQL(lSQL);
|
|
if not(jeTest) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo.ep_Vosk_GenerujOdvodStromecku'') IS NOT NULL EXEC dbo.ep_Vosk_GenerujOdvodStromecku';
|
|
try
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
{ //
|
|
lSQL:= 'IF OBJECT_ID(N''dbo.ep_Vosk_PrevodNaObalovnu'') IS NOT NULL EXEC dbo.ep_Vosk_PrevodNaObalovnu';
|
|
try
|
|
Helios.ExecSQL(lSQL);
|
|
idVPrV:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikazVyssi FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
|
|
if (idVPrV>0) then
|
|
begin
|
|
lblZapisDat.Caption:= 'Tisk dokladů...';
|
|
// }
|
|
{
|
|
lSQL:= 'IF OBJECT_ID(N''dbo._temp_TiskPomoc'') IS NULL CREATE TABLE dbo._temp_TiskPomoc (ID INT IDENTITY(1,1) NOT NULL, IDPrikazNizsi INT, Pozice INT, ';
|
|
lSQL:= lSQL + 'Mnozstvi NUMERIC(19,6), Autor NVARCHAR(80) DEFAULT SUSER_SNAME())';
|
|
Helios.ExecSQL(lSQL);
|
|
lSQL:= 'INSERT dbo._temp_TiskPomoc (Mnozstvi, IDPrikazNizsi, Pozice) VALUES (' + StringReplace(FloatToStr(edtVoskStr.Value), ',', '.', [rfReplaceAll]) + ', ';
|
|
lSQL:= lSQL + idVPr.ToString + ', ' + IfThen(lblVoskDavka.Caption='', '0', lblVoskDavka.Caption) + ')';
|
|
Helios.ExecSQL(lSQL);
|
|
}
|
|
{ //
|
|
Sleep(1000);
|
|
Helios.PrintForm3(100097, 84, 'hvw_Davky.Pozice=' + cDavky.ToString + ' AND hvw_Davky.Rok=DATEPART(year,GETDATE()) AND hvw_Davky.IDPrikaz=' + idVPr.ToString);
|
|
// }
|
|
|
|
// Helios.ExecSQL('IF OBJECT_ID(N''dbo._temp_TiskPomoc'') IS NOT NULL DELETE FROM dbo._temp_TiskPomoc WHERE Autor=SUSER_SNAME()');
|
|
// Helios.ExecSQL('IF OBJECT_ID(N''dbo._temp_TiskPomoc'') IS NOT NULL IF NOT EXISTS(SELECT * FROM dbo._temp_TiskPomoc) DROP TABLE dbo._temp_TiskPomoc');
|
|
//// end;
|
|
except on E:Exception do
|
|
Helios.Error(#1 + E.Message + #1);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
// DAVKA OBECNA
|
|
if (pgCtrl.ActivePageIndex=shDavkaObec.PageIndex) and (idVPr>0) AND (edtStrObec.Value>0) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo._temp_TabDavkaObecna'') IS NOT NULL DELETE FROM dbo._temp_TabDavkaObecna WHERE Autor=SUSER_SNAME()' + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo._temp_TabDavkaObecna'') IS NOT NULL IF NOT EXISTS(SELECT * FROM dbo._temp_TabDavkaObecna) DROP TABLE ';
|
|
lSQL:= lSQL + 'dbo._temp_TabDavkaObecna';
|
|
Helios.ExecSQL(lSQL);
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabDavkaObecna'') IS NOT NULL DROP TABLE #TabDavkaObecna' + CRLF + 'CREATE TABLE #TabDavkaObecna (IDPrikaz INT NOT NULL';
|
|
lSQL:= lSQL + ', IDDavka INT, MJ NVARCHAR(10), Pozice TINYINT DEFAULT 1, PocetStromu SMALLINT DEFAULT 0, DatPrevodu DATETIME, Autor NVARCHAR(80) DEFAULT SUSER_SNAME())' + CRLF;
|
|
|
|
lSQL:= lSQL + 'INSERT #TabDavkaObecna (IDPrikaz, PocetStromu, DatPrevodu, IDDavka, MJ) SELECT ' + idVPr.ToString + ', ' + StringReplace(FloatToStr(edtStrObec.Value), ',', '.', [rfReplaceAll]);
|
|
lSQL:= lSQL + ', CONVERT(datetime, N' + QuotedStr(FormatDateTime('dd.mm.yyyy hh:nn:ss', datVoskDatum.DateTime)) + ', 104), ' + idDavka.ToString + ', N';
|
|
lSQL:= lSQL + IfThen(cbMJObec.ItemIndex=-1,'ks', cbMJObec.Text);
|
|
if (jeTest) then
|
|
begin
|
|
lSQL:= StringReplace(lSQL, '#TabDavkaObe', 'dbo._temp_TabDavkaObe', [rfReplaceAll]);
|
|
lSQL:= StringReplace(lSQL, 'tempdb..', '', [rfReplaceAll]);
|
|
end;
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
if (idDavka>0) then
|
|
begin
|
|
lSQL:= 'UPDATE #TabDavkaObecna SET IDDavka=' + idDavka.ToString + ' WHERE Autor=SUSER_SNAME()';
|
|
if (jeTest) then
|
|
lSQL:= StringReplace(lSQL, '#TabDav', 'dbo._temp_TabDav', [rfReplaceAll]);
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
|
|
if not(jeTest) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo.ep_Davky_ObecnyPrevod'') IS NOT NULL EXEC dbo.ep_Davky_ObecnyPrevod';
|
|
try
|
|
Helios.ExecSQL(lSQL);
|
|
except on E:Exception do
|
|
Helios.Error(#1 + E.Message + #1);
|
|
end;
|
|
end;
|
|
idDavka:= 0;
|
|
edtDavkaObec.Text:= '';
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
// PREVOD P42/P43 -> OBROBNA
|
|
if (pgCtrl.ActivePageIndex=shP42.PageIndex) and (idVOp>0) AND (edtKsP42.Value>0) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo._temp_TabPrevodKon2Obr'') IS NOT NULL DELETE FROM dbo._temp_TabPrevodKon2Obr WHERE Autor=SUSER_SNAME()' + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo._temp_TabPrevodKon2Obr'') IS NOT NULL IF NOT EXISTS(SELECT * FROM dbo._temp_TabPrevodKon2Obr) DROP TABLE ';
|
|
lSQL:= lSQL + 'dbo._temp_TabPrevodKon2Obr';
|
|
Helios.ExecSQL(lSQL);
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabPrevodKon2Obr'') IS NOT NULL DROP TABLE #TabPrevodKon2Obr' + CRLF + 'CREATE TABLE #TabPrevodKon2Obr (IDPrPostup INT NOT NULL';
|
|
lSQL:= lSQL + ', IDDavka INT NULL, MJ NVARCHAR(10) DEFAULT N''ks'', Pozice TINYINT DEFAULT 1, Mnozstvi SMALLINT DEFAULT 0, DatPrevodu DATETIME DEFAULT GETDATE()';
|
|
lSQL:= lSQL + ', CisZam INT, Autor NVARCHAR(80) DEFAULT SUSER_SNAME())' + CRLF;
|
|
|
|
lSQL:= lSQL + 'INSERT #TabPrevodKon2Obr (IDPrPostup, Mnozstvi, CisZam) SELECT ' + idVOp.ToString + ', ' + StringReplace(FloatToStr(edtKsP42.Value), ',', '.', [rfReplaceAll]);
|
|
lSQL:= lSQL + ', ' + edtZamP42.IntValue.ToString;
|
|
|
|
if (jeTest) then
|
|
begin
|
|
lSQL:= StringReplace(lSQL, '#TabPrevodKon2Obr', 'dbo._temp_TabPrevodKon2Obr', [rfReplaceAll]);
|
|
lSQL:= StringReplace(lSQL, 'tempdb..', '', [rfReplaceAll]);
|
|
end;
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
if (idDavka>0) then
|
|
begin
|
|
lSQL:= 'UPDATE #TabPrevodKon2Obr SET IDDavka=' + idDavka.ToString + ', MJ=N''ks'' WHERE Autor=SUSER_SNAME()';
|
|
if (jeTest) then
|
|
lSQL:= StringReplace(lSQL, '#TabPrev', 'dbo._temp_TabPrev', [rfReplaceAll]);
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
|
|
if not(jeTest) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo.ep_Konecna_PrevodNaObrobnu'') IS NOT NULL EXEC dbo.ep_Konecna_PrevodNaObrobnu';
|
|
try
|
|
Helios.ExecSQL(lSQL);
|
|
except on E:Exception do
|
|
Helios.Error(#1 + E.Message + #1);
|
|
end;
|
|
end;
|
|
idDavka:= 0;
|
|
edtDavkaObr.Text:= '';
|
|
end;
|
|
|
|
|
|
|
|
|
|
lblZapisDat.Visible:= false;
|
|
Self.Repaint;
|
|
btnOK.Enabled:= true;
|
|
btnStorno.Enabled:= true;
|
|
if not(btnNew) and (canCont) then
|
|
Close;
|
|
btnNew:= false;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.btnOKNewClick(Sender: TObject);
|
|
begin
|
|
btnNew:= true;
|
|
btnOKClick(Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.btnStornoClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtDavkaExit(Sender: TObject);
|
|
var lSQL: string;
|
|
begin
|
|
lSQL:= '';
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtDavkaStrExit (Sender: TObject);
|
|
var lSQL, rD, cD: string;
|
|
begin
|
|
if (idVPr>0) and (idDavka>0) then
|
|
begin
|
|
rD:= YearOf(Now).ToString;
|
|
cD:= '1';
|
|
with Helios.OpenSQL('SELECT Rok, Cislo FROM ' + tblDavky + ' WHERE ID=' + idDavka.ToString) do
|
|
begin
|
|
rD:= VarToStr(FieldValues(0));
|
|
cD:= VarToStr(FieldValues(1));
|
|
end;
|
|
lSQL:= 'SELECT COUNT(*) FROM ' + tblDavky + ' WHERE DruhDavky=4 AND Rok=' + rD + ' AND Cislo=' + cD + ' GROUP BY RegCis';
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (VarToStr(FieldValues(0))='1') then
|
|
begin
|
|
lSQL:= 'TabVyrCisPrikaz.IDPrikaz IN (SELECT ID FROM ' + tblPrikaz + ' WHERE IDPrikazVyssi=' + idVPr.ToString + ')';
|
|
if Helios.Prenos2(bidVyrPrikVC, 'VyrCislo', '', oVar, oVar2, lSQL, 'Vyberte Tavby', True, True, False, 1) then
|
|
pozn:= StringReplace(StringReplace(StringReplace(VarToStr(oVar), ',', '*', [rfReplaceAll]), 'N''', '', [rfReplaceAll]), '''', '', [rfReplaceAll]);
|
|
|
|
lblStrDavka.Caption:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Rok FROM ' + tblDavky + ' WHERE ID=' + idDavka.ToString) + ' KONEČNÁ';
|
|
btnOK.SetFocus;
|
|
end
|
|
else
|
|
begin
|
|
Helios.Error(#1'Do jedné dávky KONEČNÁ nesmíte míchat víc druhů odlitků'#1);
|
|
lblStrDavka.Caption:= '';
|
|
edtDavkaStr.Text:= '';
|
|
selDavkaStr.SetFocus;
|
|
idDavka:= 0;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtFormirExit (Sender: TObject);
|
|
begin
|
|
edtFormir.Text:= StringReplace(Trim(edtFormir.Text), ' ', '', [rfReplaceAll]);
|
|
edtFormir.Text:= helUtils.StripChars(edtFormir.Text, ['''', '"', '-', ';', ' ']);
|
|
edtFormir.Text:= helUtils.RemoveWords(edtFormir.Text, ['null']);
|
|
edtFormir.Text:= helUtils.RemoveAlphas(edtFormir.Text);
|
|
if (edtFormir.Text<>'') then
|
|
begin
|
|
if (helUtils.getHeliosIntVal(Helios, -1, 'SELECT ID FROM ' + tblCZam + ' WHERE Cislo=' + edtFormir.Text)<0) then
|
|
begin
|
|
Helios.Error(#1'Osobní číslo zaměstnance nebylo nalezeno.'#1 + CRLF + edtFormir.Text);
|
|
edtFormir.Text:= '';
|
|
lblFormir.Caption:= '';
|
|
edtFormir.SetFocus;
|
|
end
|
|
else
|
|
begin
|
|
edtFormir.Text:= StringOfChar('0', 6-Length(edtFormir.Text)) + edtFormir.Text;
|
|
lblFormir.Caption:= helUtils.getHeliosStrVal(Helios, '', 'SELECT PrijmeniJmeno FROM ' + tblCZam + ' WHERE Cislo=' + edtFormir.Text);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtOperP42Exit (Sender: TObject);
|
|
var lSQL, rVPr, sz, rc: string;
|
|
ksZive, ksStrom: Extended;
|
|
mon: TMonitor;
|
|
jeP43: Boolean;
|
|
begin
|
|
btnOKNew.Enabled:= true;
|
|
btnOK.Enabled:= true;
|
|
|
|
self.Height:= 645;
|
|
if not(vTab.Active) then
|
|
vTab.Open;
|
|
vTab.Clear;
|
|
|
|
edtOperP42.Text:= StringReplace(Trim(edtOperP42.Text), ' ', '', [rfReplaceAll]);
|
|
edtOperP42.Text:= helUtils.StripChars(edtOperP42.Text, ['''', '"', '-', ';', ' ']);
|
|
ZjistiVOp(edtOperP42.Text, True);
|
|
|
|
sz:= '';
|
|
rc:= '';
|
|
idVPr:= 0;
|
|
pozn:= '';
|
|
|
|
lSQL:= 'SELECT k.SkupZbo, k.RegCis, vp.ID FROM ' + tblPrikaz + ' vp INNER JOIN ' + tblPrPost + ' p ON (p.IDPrikaz=vp.ID) INNER JOIN ' + tblKZ;
|
|
lSQL:= lSQL + ' k ON (k.ID=vp.IDTabKmen) WHERE p.BarCode=N' + QuotedStr(edtOperP42.Text);
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount=1) then
|
|
begin
|
|
sz:= VarToStr(FieldValues(0));
|
|
rc:= VarToStr(FieldValues(1));
|
|
idVPr:= StrToInt(VarToStr(FieldValues(2)));
|
|
pozn:= ''; // helUtils.getHeliosStrVal(Helios, '', 'SELECT STRING_AGG(VyrCislo, N''*'') FROM ' + tblPrikazVC + ' WHERE IDPrikaz=' + idVPr.ToString);
|
|
end;
|
|
|
|
lSQL:= 'SELECT CASE WHEN ISNULL(o.MamMatecniOdlitek,0)=1 THEN ISNULL(o1.KSnaStrom,0) ELSE ISNULL(o.KSnaStrom,0) END FROM ' + tblOdlitky;
|
|
lSQL:= lSQL + ' o LEFT JOIN ' + tblOdlitky + ' o1 ON (o1.Odlitek=o.MatecniOdlitek) WHERE o.Odlitek=N' + QuotedStr(rc);
|
|
ksStrom:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
|
|
jeP43:= false;
|
|
if (sz='P43') then
|
|
jeP43:= true;
|
|
|
|
// btnOK.Top:= 535;
|
|
// btnOKNew.Top:= 535;
|
|
// btnStorno.Top:= 535;
|
|
|
|
if (idVOp>0) then
|
|
begin
|
|
// idVOp:= helUtils.getHeliosIntVal(Helios, 'SELECT ID FROM ' + tblPrPost + ' WHERE Barcode=N' + QuotedStr(edtOpVibr.Text));
|
|
ksZive:= getParamOperace(idVOp, 'Kusy_zive', -999999);
|
|
|
|
// A17209B
|
|
lSQL:= 'SELECT mz.ID, mz.DatPorizeni, mz.Autor, mz.kusy_odv' + IfThen(ksStrom>0, '/' + ksStrom.ToString, '') + ', kz.MJEvidence FROM ' + tblPrPost;
|
|
lSQL:= lSQL + ' pp INNER JOIN ' + tblMzdZm + ' mz ON (mz.DokladPrPostup=pp.Doklad AND mz.AltPrPostup=pp.Alt';
|
|
lSQL:= lSQL + ' AND mz.IDPrikaz=pp.IDPrikaz) INNER JOIN ' + tblPrikaz + ' p ON (p.ID=pp.IDPrikaz) INNER JOIN ' + tblKZ;
|
|
lSQL:= lSQL + ' kz ON (kz.ID=p.IdTabKmen) WHERE pp.ID=' + idVOp.ToString + ' ORDER BY mz.DatPorizeni';
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
self.Height:= 845;
|
|
// btnOK.Top:= 600;
|
|
// btnOKNew.Top:= 600;
|
|
// btnStorno.Top:= 600;
|
|
mon:= Screen.MonitorFromPoint(Mouse.CursorPos);
|
|
self.Left:= mon.Left + ((mon.Width - self.Width) div 2);
|
|
self.Top:= mon.Top + ((mon.Height - self.Height) div 2);
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
vTab.Append;
|
|
vTab.FieldByName('colDatum').AsString:= FormatDateTime('d.m.yyyy h:nn', StrToDateTime(VarToStr(FieldValues(1))));
|
|
vTab.FieldByName('colAutor').AsString:= VarToStr(FieldValues(2));
|
|
vTab.FieldByName('colMnoz').AsFloat:= StrToFloat(VarToStr(FieldValues(3)));
|
|
vTab.FieldByName('colMJ').AsString:= 'ks'; // VarToStr(FieldValues(4));
|
|
vTab.Post;
|
|
Next;
|
|
end;
|
|
end;
|
|
|
|
if (ksZive=0) then
|
|
begin
|
|
btnOKNew.Enabled:= false;
|
|
btnOK.Enabled:= false;
|
|
Helios.Error(#1'Na operaci nezbývají žádné kusy k odvedení !!'#1);
|
|
edtOperP42.SelectAll;
|
|
edtOperP42.SetFocus;
|
|
end
|
|
else
|
|
begin
|
|
lblOperaceP42.Caption:= lblOperace.Caption + ' (živé ks ' + ksZive.ToString + ')';
|
|
|
|
// idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrPost + ' WHERE Barcode=N' + QuotedStr(edtOpStr.Text));
|
|
NactiPrikaz;
|
|
rVPr:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Rada FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
|
|
lSQL:= 'ID=' + idVOp.ToString + ' AND Doklad=(SELECT MAX(Doklad) FROM ' + tblPrPost + ' WHERE IDPrikaz=' + idVPr.ToString + ')';
|
|
if (helUtils.HeliosExistsTest(Helios, tblPrPost, lSQL)) AND ((rVPr='223-42') OR (rVPr='223-43')) then
|
|
begin
|
|
edtDavkaObr.Enabled:= true;
|
|
selDavkaObr.Enabled:= true;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtOpStrExit (Sender: TObject);
|
|
var lSQL, rVPr, sz, rc: string;
|
|
ksZive, ksStrom: Extended;
|
|
mon: TMonitor;
|
|
jeP31: Boolean;
|
|
begin
|
|
|
|
edtOpStr.Text:= StringReplace(Trim(edtOpStr.Text), ' ', '', [rfReplaceAll]);
|
|
edtOpStr.Text:= helUtils.StripChars(edtOpStr.Text, ['''', '"', '-', ';', ' ']);
|
|
if (edtOpStr.Text='') then
|
|
Exit;
|
|
|
|
btnOKNew.Enabled:= true;
|
|
btnOK.Enabled:= true;
|
|
|
|
self.Height:= 645;
|
|
if not(vTab.Active) then
|
|
vTab.Open;
|
|
vTab.Clear;
|
|
|
|
ZjistiVOp(edtOpStr.Text, True);
|
|
if (prik.stav=0) or (prik.stav>30) then
|
|
Helios.Error(#1'Výrobní příkaz operace je již uzavřen.'#1);
|
|
|
|
sz:= '';
|
|
rc:= '';
|
|
idVPr:= 0;
|
|
pozn:= '';
|
|
|
|
lSQL:= 'SELECT k.SkupZbo, k.RegCis, vp.ID FROM ' + tblPrikaz + ' vp INNER JOIN ' + tblPrPost + ' p ON (p.IDPrikaz=vp.ID) INNER JOIN ' + tblKZ;
|
|
lSQL:= lSQL + ' k ON (k.ID=vp.IDTabKmen) WHERE p.IDOdchylkyDo IS NULL AND p.BarCode=N' + QuotedStr(edtOpStr.Text);
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount=1) then
|
|
begin
|
|
sz:= VarToStr(FieldValues(0));
|
|
rc:= VarToStr(FieldValues(1));
|
|
idVPr:= StrToInt(VarToStr(FieldValues(2)));
|
|
pozn:= helUtils.getHeliosStrVal(Helios, '', 'SELECT STRING_AGG(VyrCislo, N''*'') FROM ' + tblPrikazVC + ' WHERE IDPrikaz=' + idVPr.ToString);
|
|
end;
|
|
|
|
lSQL:= 'SELECT CASE WHEN ISNULL(o.MamMatecniOdlitek,0)=1 THEN ISNULL(o1.KSnaStrom,0) ELSE ISNULL(o.KSnaStrom,0) END FROM ' + tblOdlitky;
|
|
lSQL:= lSQL + ' o LEFT JOIN ' + tblOdlitky + ' o1 ON (o1.Odlitek=o.MatecniOdlitek) WHERE o.Odlitek=N' + QuotedStr(rc);
|
|
ksStrom:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
|
|
jeP31:= false;
|
|
if (sz='P31') then
|
|
jeP31:= true;
|
|
|
|
// btnOK.Top:= 535;
|
|
// btnOKNew.Top:= 535;
|
|
// btnStorno.Top:= 535;
|
|
|
|
if (idVOp>0) then
|
|
begin
|
|
// idVOp:= helUtils.getHeliosIntVal(Helios, 'SELECT ID FROM ' + tblPrPost + ' WHERE Barcode=N' + QuotedStr(edtOpVibr.Text));
|
|
ksZive:= getParamOperace(idVOp, 'Kusy_zive', -999999);
|
|
|
|
// A17209B
|
|
lSQL:= 'SELECT mz.ID, mz.DatPorizeni, mz.Autor, mz.kusy_odv' + IfThen(ksStrom>0, '/' + ksStrom.ToString, '') + ', kz.MJEvidence FROM ' + tblPrPost;
|
|
lSQL:= lSQL + ' pp INNER JOIN ' + tblMzdZm + ' mz ON (mz.DokladPrPostup=pp.Doklad AND mz.AltPrPostup=pp.Alt';
|
|
lSQL:= lSQL + ' AND mz.IDPrikaz=pp.IDPrikaz) INNER JOIN ' + tblPrikaz + ' p ON (p.ID=pp.IDPrikaz) INNER JOIN ' + tblKZ;
|
|
lSQL:= lSQL + ' kz ON (kz.ID=p.IdTabKmen) WHERE pp.IDOdchylkyDo IS NULL AND pp.ID1=' + idVOp.ToString + ' ORDER BY mz.DatPorizeni';
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
self.Height:= 845;
|
|
mon:= Screen.MonitorFromPoint(Mouse.CursorPos);
|
|
self.Left:= mon.Left + ((mon.Width - self.Width) div 2);
|
|
self.Top:= mon.Top + ((mon.Height - self.Height) div 2);
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
vTab.Append;
|
|
vTab.FieldByName('colDatum').AsString:= FormatDateTime('d.m.yyyy h:nn', StrToDateTime(VarToStr(FieldValues(1))));
|
|
vTab.FieldByName('colAutor').AsString:= VarToStr(FieldValues(2));
|
|
vTab.FieldByName('colMnoz').AsFloat:= StrToFloat(VarToStr(FieldValues(3)));
|
|
vTab.FieldByName('colMJ').AsString:= 'STR'; // VarToStr(FieldValues(4));
|
|
vTab.Post;
|
|
Next;
|
|
end;
|
|
// btnOK.Top:= 600;
|
|
// btnOKNew.Top:= 600;
|
|
// btnStorno.Top:= 600;
|
|
end;
|
|
|
|
if (ksZive=0) then
|
|
begin
|
|
btnOKNew.Enabled:= false;
|
|
btnOK.Enabled:= false;
|
|
Helios.Error(#1'Na operaci nezbývají žádné kusy k odvedení !!'#1);
|
|
edtOpStr.SelectAll;
|
|
end
|
|
else
|
|
begin
|
|
if (ksStrom=0) then
|
|
ksStrom:= 1;
|
|
lblOperace.Caption:= lblOperace.Caption + ' (živé ks ' + ksZive.ToString + ' = ' + helUtils.RoundToEx(ksZive/ksStrom,-2).ToString + ' str)';
|
|
|
|
// idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrPost + ' WHERE Barcode=N' + QuotedStr(edtOpStr.Text));
|
|
NactiPrikaz;
|
|
rVPr:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Rada FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
|
|
lSQL:= 'ID1=' + idVOp.ToString + ' AND IDOdchylkyDo IS NULL AND ' + SQLTryConvertNumNullDefVal('int', 'operace', -1) + '=(SELECT MAX(';
|
|
lSQL:= lSQL + SQLTryConvertNumNullDefVal('int', 'operace', -1) + ') FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString + ')';
|
|
if (helUtils.HeliosExistsTest(Helios, tblPrPost, lSQL)) AND (rVPr='223-31') then
|
|
begin
|
|
edtDavkaStr.Enabled:= true;
|
|
selDavkaStr.Enabled:= true;
|
|
end;
|
|
edtZamStr.SetFocus;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.ZjistiVOp (bc: string; const nactiVP: boolean);
|
|
var lSQL: string;
|
|
begin
|
|
bc:= StringReplace(Trim(bc), ' ', '', [rfReplaceAll]);
|
|
bc:= helUtils.StripChars(Trim(bc), ['''', '"', '-', ';', ' ']);
|
|
if (bc<>'') then
|
|
begin
|
|
// idVOp:= helUtils.getHeliosIntVal(Helios, 'SELECT ID FROM ' + tblPrPost + ' WHERE Barcode=N' + QuotedStr(edtOpVibr.Text));
|
|
idVOp:= StrToInt(StringReplace(StringReplace(bc, 'A', '', [rfReplaceAll]), 'B', '', [rfReplaceAll]));
|
|
lSQL:= 'SELECT cp.Pracoviste FROM ' + tblPrPost + ' p INNER JOIN ' + tblCPrac + ' cp ON (cp.ID=p.pracoviste) WHERE p.IDOdchylkyDo IS NULL AND p.ID1=' + idVOp.ToString;
|
|
prac:= UpperCase(helUtils.getHeliosStrVal(Helios, '', lSQL));
|
|
if (prac.ToLower='t09') then
|
|
tavbaCalamari:= true;
|
|
lblOperace.Caption:= helUtils.getHeliosStrVal(Helios, '', 'SELECT nazev FROM ' + tblPrPost + ' WHERE IdOdchylkyDo IS NULL AND ID1=' + idVOp.ToString);
|
|
ksZive:= getParamOperace(idVOp, 'Kusy_zive', -999999);
|
|
idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND ID1=' + idVOp.ToString);
|
|
|
|
oper.id:= idVOp;
|
|
oper.idPrikaz:= idVPr;
|
|
oper.bc:= bc;
|
|
oper.ksZive:= ksZive;
|
|
oper.ksPozad:= getParamOperace(idVOp, 'kusy_pozadovane', -999999);
|
|
oper.idPrac:= getParamOperace(idVOp, 'pracoviste', 0);
|
|
|
|
end
|
|
else
|
|
begin
|
|
idVOp:= 0;
|
|
prac:= '';
|
|
idVPr:= 0;
|
|
ksZive:= 0;
|
|
|
|
oper.id:= 0;
|
|
oper.idPrikaz:= 0;
|
|
oper.ksZive:= 0;
|
|
oper.ksPozad:= 0;
|
|
oper.ksReal:= 0;
|
|
oper.ksOdv:= 0;
|
|
oper.ksZmetIO:= 0;
|
|
oper.ksZmetOpr:= 0;
|
|
oper.ksZmetIOKdy:= 0;
|
|
oper.ksZmetNeopr:= 0;
|
|
|
|
end;
|
|
|
|
if (nactiVP) then
|
|
NactiPrikaz;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtOpTavbaExit (Sender: TObject);
|
|
begin
|
|
tavbaCalamari:= false;
|
|
edtOpTavba.Text:= Trim(edtOpTavba.Text);
|
|
edtOpTavba.Text:= helUtils.StripChars(edtOpTavba.Text, ['''', '"', '-', ';', ' ']);
|
|
if (edtOpTavba.Text<>'') then
|
|
begin
|
|
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);
|
|
|
|
if not(prik.mamP30) then
|
|
Helios.Error(#1'Na výrobním příkazu není tavenina, nutno doplnit.'#1);
|
|
|
|
end;
|
|
if not(tavbaCalamari) then
|
|
edtFormir.EditLabel.Caption:= 'Formíř (os.č.):'
|
|
else
|
|
edtFormir.EditLabel.Caption:= 'Tavič/odlévač (os.č.):'
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtOpVibrExit (Sender: TObject);
|
|
var lSQL, doklad, operace, alt: string;
|
|
begin
|
|
btnOKNew.Enabled:= true;
|
|
btnOK.Enabled:= true;
|
|
|
|
edtOpVibr.Text:= StringReplace(Trim(edtOpVibr.Text), ' ', '', [rfReplaceAll]);
|
|
edtOpVibr.Text:= helUtils.StripChars(edtOpVibr.Text, ['''', '"', '-', ';', ' ']);
|
|
// edtOpVibr.Text:= helUtils.RemoveWords(edtVibrator.Text, ['null']);
|
|
if (edtOpVibr.Text<>'') then
|
|
begin
|
|
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)
|
|
else
|
|
begin
|
|
if (prac='T23') and (VyrPrikazMaOperaciPracoviste(idVPr, 'T12') or VyrPrikazMaOperaciPracoviste(idVPr, 'T13')) then
|
|
Helios.Info(#1'Snímáte operaci Chlazení ale příkaz má i operaci Vibrování'#1);
|
|
|
|
if (ksZive=0) then
|
|
begin
|
|
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
|
|
begin
|
|
doklad:= VarToStr(FieldValues(0));
|
|
alt:= VarToStr(FieldValues(1));
|
|
Helios.OpenBrowse(bidEvidOp, 'IDPrikaz=' + idVPr.ToString + ' AND DokladPrPostup=' + doklad + ' AND AltPrPostup=N' + QuotedStr(alt));
|
|
end;
|
|
edtOpVibr.SelectAll;
|
|
edtOpVibr.SetFocus;
|
|
end
|
|
else
|
|
begin
|
|
idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND ID1=' + idVOp.ToString);
|
|
NactiPrikaz;
|
|
edtTavbaV.SetFocus;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtPocetStrChange (Sender: TObject);
|
|
begin
|
|
edtPocetStrExit(Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtPocetStrExit (Sender: TObject);
|
|
begin
|
|
lblKsStrom.Caption:= ksStr.ToString + ' ks/str -> ' + (ksStr*edtPocetStr.Value).ToString + ' ks';
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtPrikazObecExit (Sender: TObject);
|
|
var idRodicDavka: integer;
|
|
ksPrikaz, ksDavky: extended;
|
|
begin
|
|
edtPrikazObec.Text:= Trim(edtPrikazObec.Text);
|
|
edtPrikazObec.Text:= helUtils.StripChars(edtPrikazObec.Text, ['''', '"', ';']);
|
|
if (edtPrikazObec.Text<>'') then
|
|
begin
|
|
if (helUtils.PosCount('-',edtPrikazObec.Text)=0) then
|
|
begin
|
|
case druhDavky of
|
|
1: edtPrikazObec.Text:= '223-31 - ' + edtPrikazObec.Text;
|
|
end;
|
|
end;
|
|
idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblPrikaz + ' WHERE RadaPrikaz=N' + QuotedStr(edtPrikazObec.Text));
|
|
if (idVPr>0) then
|
|
begin
|
|
NactiPrikaz;
|
|
ksPrikaz:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT kusy_zad FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
|
|
ksDavky:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT SUM(Mnozstvi) FROM ' + tblDavky + ' WHERE DruhDavky=4 AND IDPrikaz=' + idVPr.ToString);
|
|
lblObecZbyva.Caption:= 'Zbývá předat: ' + (ksPrikaz-ksDavky).ToString;
|
|
edtVoskStr.SetFocus;
|
|
end
|
|
else
|
|
begin
|
|
lblObecZbyva.Caption:= '';
|
|
Helios.Error(#1'Výrobní příkaz nebyl dohledán.'#1);
|
|
edtPrikazObec.SelectAll;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtTavbaExit(Sender: TObject);
|
|
var lSQL: string;
|
|
idVPrN: integer;
|
|
begin
|
|
opakovanaTavba:= false;
|
|
btnOKNew.Enabled:= true;
|
|
btnOK.Enabled:= true;
|
|
edtTavba.Text:= Trim(edtTavba.Text);
|
|
edtTavba.Text:= helUtils.StripChars(edtTavba.Text, ['''', '"', '-', ';', ' ']);
|
|
if (edtTavba.Text<>'') then
|
|
if (LeftStr(edtTavba.Text,1).ToUpper<>'T') then
|
|
Helios.Error('Označení tavby nezačíná písmenem T, vyberte tabvu z číselníku.')
|
|
else
|
|
begin
|
|
// if (edtTavba.Text<>'') then
|
|
if (edtTavba.Text<>'') and (idVPr>0) then
|
|
begin
|
|
lSQL:= 'DECLARE @p1 NVARCHAR(100), @p2 NVARCHAR(100)' + CRLF + 'SELECT @p1=Prijmeni FROM ' + tblCZam + ' WHERE Cislo=(SELECT TOP(1) CisZamTavic FROM ' + tblTavby;
|
|
lSQL:= lSQL + ' WHERE CisloTavby=N' + edtTavba.Text.QuotedString + ' ORDER BY Datum DESC)' + CRLF;
|
|
lSQL:= lSQL + 'SELECT @p2=Prijmeni FROM ' + tblCZam + ' WHERE Cislo=(SELECT TOP(1) CisZamOdlevac FROM ' + tblTavby;
|
|
lSQL:= lSQL + ' WHERE CisloTavby=N' + edtTavba.Text.QuotedString + ' ORDER BY Datum DESC)' + CRLF + 'SELECT @p1 + N'' / '' + @p2' + CRLF;
|
|
lblLidiZTavby.Caption:= helUtils.getHeliosStrVal(Helios, '', lSQL);
|
|
|
|
lSQL:= 'SELECT p.ID FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' k ON (k.ID=p.IdTabKmen) WHERE p.IDPrikazVyssi=' + idVPr.ToString + ' AND k.SkupZbo=N''P30''';
|
|
idVPrN:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
|
|
mnP31max:= 0;
|
|
if (idVOp>0) then
|
|
mnP31max:= getParamOperace(idVOp, 'kusy_pozadovane', -999999);
|
|
|
|
// A333662B
|
|
|
|
|
|
lSQL:= 'SELECT pz.ID FROM ' + tblVyrCP + ' pvc INNER JOIN ' + tblPZ + ' pz ON (pvc.IDPolozkaDokladu=pz.ID) INNER JOIN ' + tblVyrCS + ' vc ON (vc.ID=IDVyrCis)';
|
|
lSQL:= lSQL + ' WHERE ISNULL(pz.IDPrikaz,0)=' + idVPrN.ToString + ' AND pz.SkupZbo=N''P30'' AND pz.DruhPohybuZbo=0 AND pz.TypVyrobnihoDokladu=0 AND vc.Nazev1=N';
|
|
lSQL:= lSQL + edtTavba.Text.QuotedString;
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
if not(Helios.YesNo(#1'Pozor, tato tavba již byla na podřízený příkaz P30 použita.' + CRLF + 'Chcete ji použít znovu ?' + #1, false)) then
|
|
begin
|
|
btnOKNew.Enabled:= false;
|
|
btnOK.Enabled:= false;
|
|
edtTavba.Text:= '';
|
|
edtTavba.SetFocus;
|
|
end
|
|
else
|
|
opakovanaTavba:= true;
|
|
|
|
end;
|
|
end
|
|
else
|
|
lblLidiZTavby.Caption:= '';
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtTavbaVExit(Sender: TObject);
|
|
var lSQL: string;
|
|
begin
|
|
edtTavbaV.Text:= Trim(edtTavbaV.Text);
|
|
edtTavbaV.Text:= helUtils.StripChars(edtTavbaV.Text, ['''', '"', '-', ';', ' ']);
|
|
if (edtTavbaV.Text<>'') then
|
|
if (LeftStr(edtTavbaV.Text,1).ToUpper<>'T') then
|
|
Helios.Error('Označení tavby nezačíná písmenem T, vyberte tabvu z číselníku.')
|
|
else
|
|
begin
|
|
if (edtTavbaV.Text<>'') then
|
|
begin
|
|
lSQL:= 'DECLARE @p1 NVARCHAR(100), @p2 NVARCHAR(100)' + CRLF + 'SELECT @p1=Prijmeni FROM ' + tblCZam + ' WHERE Cislo=(SELECT TOP(1) CisZamTavic FROM ' + tblTavby;
|
|
lSQL:= lSQL + ' WHERE CisloTavby=N' + QuotedStr(edtTavbaV.Text) + ' ORDER BY Datum DESC)' + CRLF;
|
|
lSQL:= lSQL + 'SELECT @p2=Prijmeni FROM ' + tblCZam + ' WHERE Cislo=(SELECT TOP(1) CisZamOdlevac FROM ' + tblTavby;
|
|
lSQL:= lSQL + ' WHERE CisloTavby=N' + QuotedStr(edtTavbaV.Text) + ' ORDER BY Datum DESC)' + CRLF + 'SELECT @p1 + N'' / '' + @p2' + CRLF;
|
|
lblLidiZTavby2.Caption:= helUtils.getHeliosStrVal(Helios, '', lSQL);
|
|
|
|
if (helUtils.HeliosObjectExists(Helios, 'dbo._hdc_konfig')) then
|
|
if (helUtils.getHeliosStrVal(Helios, '0', 'SELECT TOP(1) Hodnota FROM dbo._hdc_konfig WHERE Parametr=N''TavirnaKontrola''')='1') then
|
|
if not(helUtils.HeliosExistsTest(Helios, 'dbo._hdc_TabTavby', 'KontrolaStav=1 AND CisloTavby=N' + edtTavbaV.Text.QuotedString)) then
|
|
Helios.Error(#1'POZOR - tato TAVBA NEBYLA ZATÍM UVOLNĚNA !'#1 + CRLF + '(odlitky z ní nepůjou převést na další sklad)');
|
|
{
|
|
lSQL:= 'SELECT ID FROM ' + tblTavby + ' WHERE CisloTavby=N' + edtTavbaV.Text.QuotedString + ' AND KontrolaStav<>1';
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
Helios.Error(#1'!! Pozor, tavba ' + edtTavbaV.Text + ' NENÍ zatím UVOLNĚNA !!' + #1);
|
|
}
|
|
end
|
|
else
|
|
lblLidiZTavby2.Caption:= '';
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtVibratorExit(Sender: TObject);
|
|
begin
|
|
edtVibrator.Text:= StringReplace(Trim(edtVibrator.Text), ' ', '', [rfReplaceAll]);
|
|
edtVibrator.Text:= helUtils.StripChars(edtVibrator.Text, ['''', '"', '-', ';', ' ']);
|
|
edtVibrator.Text:= helUtils.RemoveWords(edtVibrator.Text, ['null']);
|
|
edtVibrator.Text:= helUtils.RemoveAlphas(edtVibrator.Text);
|
|
if (edtVibrator.Text<>'') then
|
|
begin
|
|
if (helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblCZam + ' WHERE Cislo=' + edtVibrator.Text)=0) then
|
|
begin
|
|
Helios.Error(#1'Osobní číslo zaměstnance nebylo nalezeno.'#1 + CRLF + edtVibrator.Text);
|
|
edtVibrator.Text:= '';
|
|
lblVibrator.Caption:= '';
|
|
edtVibrator.SetFocus;
|
|
end
|
|
else
|
|
begin
|
|
edtVibrator.Text:= StringOfChar('0', 6-Length(edtVibrator.Text)) + edtVibrator.Text;
|
|
lblVibrator.Caption:= helUtils.getHeliosStrVal(Helios, '', 'SELECT PrijmeniJmeno FROM ' + tblCZam + ' WHERE Cislo=' + edtVibrator.Text);
|
|
edtStrCelk.SelectAll;
|
|
edtStrCelk.SetFocus;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtVoskPrikazExit(Sender: TObject);
|
|
var lSQL: string;
|
|
cnt: integer;
|
|
ksPrikaz, ksDavky: integer;
|
|
begin
|
|
edtVoskPrikaz.Text:= Trim(edtVoskPrikaz.Text);
|
|
edtVoskPrikaz.Text:= helUtils.StripChars(edtVoskPrikaz.Text, ['''', '"', ';']);
|
|
if (edtVoskPrikaz.Text<>'') then
|
|
begin
|
|
if (helUtils.PosCount('-',edtVoskPrikaz.Text)=0) then
|
|
edtVoskPrikaz.Text:= '221-12 - ' + edtVoskPrikaz.Text;
|
|
idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblPrikaz + ' WHERE RadaPrikaz=N' + QuotedStr(edtVoskPrikaz.Text));
|
|
if (idVPr>0) then
|
|
begin
|
|
NactiPrikaz;
|
|
cnt:= 1 + helUtils.getHeliosIntVal(Helios, 0, 'SELECT MAX(Pozice) FROM ' + tblDavky + ' WHERE DruhDavky=1 AND IDPrikaz=' + idVPr.ToString);
|
|
cDavky:= cnt;
|
|
lblVoskDavka.Caption:= 'Dávka č. ' + cnt.ToString;
|
|
ksPrikaz:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT kusy_zad FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
|
|
ksDavky:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT SUM(Mnozstvi) FROM ' + tblDavky + ' WHERE DruhDavky=1 AND IDPrikaz=' + idVPr.ToString);
|
|
lblVoskZbyva.Caption:= 'Zbývá předat: ' + (ksPrikaz-ksDavky).ToString;
|
|
edtVoskStr.SetFocus;
|
|
end
|
|
else
|
|
begin
|
|
lblVoskDavka.Caption:= '';
|
|
Helios.Error(#1'Výrobní příkaz nebyl dohledán.'#1);
|
|
edtVoskPrikaz.SelectAll;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtVoskStrExit(Sender: TObject);
|
|
begin
|
|
if not(TestMamNaPrevod('00100100221400')) then
|
|
edtVoskStr.Value:= 0;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtZamP42Exit(Sender: TObject);
|
|
begin
|
|
edtZamP42.Text:= StringReplace(Trim(edtZamP42.Text), ' ', '', [rfReplaceAll]);
|
|
edtZamP42.Text:= helUtils.StripChars(edtZamP42.Text, ['''', '"', '-', ';', ' ']);
|
|
edtZamP42.Text:= helUtils.RemoveWords(edtZamP42.Text, ['null']);
|
|
edtZamP42.Text:= helUtils.RemoveAlphas(edtZamP42.Text);
|
|
if (edtZamP42.Text<>'0') then
|
|
begin
|
|
if (helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblCZam + ' WHERE Cislo=' + edtZamP42.Text)=0) then
|
|
begin
|
|
Helios.Error(#1'Osobní číslo zaměstnance nebylo nalezeno.'#1 + CRLF + edtZamP42.Text);
|
|
edtZamP42.Text:= '';
|
|
edtZamP42.SetFocus;
|
|
lblZamP42.Caption:= '';
|
|
end
|
|
else
|
|
begin
|
|
edtZamP42.Text:= StringOfChar('0', 6-Length(edtZamP42.Text)) + edtZamP42.Text;
|
|
lblZamP42.Caption:= helUtils.getHeliosStrVal(Helios, '', 'SELECT PrijmeniJmeno FROM ' + tblCZam + ' WHERE Cislo=' + edtZamP42.Text);
|
|
edtDavkaObr.SelectAll;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.edtZamStrExit(Sender: TObject);
|
|
begin
|
|
edtZamStr.Text:= Trim(edtZamStr.Text);
|
|
edtZamStr.Text:= StringReplace(edtZamStr.Text, ' ', '', [rfReplaceAll]);
|
|
edtZamStr.Text:= helUtils.StripChars(edtZamStr.Text, ['''', '"', '-', ';', ' ']);
|
|
edtZamStr.Text:= helUtils.RemoveWords(edtZamStr.Text, ['null']);
|
|
edtZamStr.Text:= helUtils.RemoveAlphas(edtZamStr.Text);
|
|
if (edtZamStr.Text<>'') then
|
|
begin
|
|
if (helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblCZam + ' WHERE Cislo=' + edtZamStr.Text)=0) then
|
|
begin
|
|
Helios.Error(#1'Osobní číslo zaměstnance nebylo nalezeno.'#1 + CRLF + edtZamStr.Text);
|
|
edtZamStr.Text:= '';
|
|
lblZamest.Caption:= '';
|
|
edtZamStr.SetFocus;
|
|
end
|
|
else
|
|
begin
|
|
edtZamStr.Text:= StringOfChar('0', 6-Length(edtZamStr.Text)) + edtZamStr.Text;
|
|
lblZamest.Caption:= helUtils.getHeliosStrVal(Helios, '', 'SELECT PrijmeniJmeno FROM ' + tblCZam + ' WHERE Cislo=' + edtZamStr.Text);
|
|
edtStrStr.SelectAll;
|
|
edtStrStr.SetFocus;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
if (vTab.Active) then
|
|
vTab.Close;
|
|
Action:= caFree;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.FormResize(Sender: TObject);
|
|
begin
|
|
btnOK.Top:= pgCtrl.Top + pgCtrl.Height + 15;
|
|
btnOKNew.Top:= btnOK.Top;
|
|
btnStorno.Top:= btnOK.Top;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.FormShow(Sender: TObject);
|
|
var lSQL: string;
|
|
i: integer;
|
|
begin
|
|
self.ParentWindow:= Helios.MainApplicationHandle;
|
|
self.Height:= 645;
|
|
self.Icon.Handle:= Helios.MainApplicationIconHandle;
|
|
|
|
pgCtrl.Height:= 435;
|
|
gbEvidPrace.Top:= 627;
|
|
|
|
if (jeTest) then
|
|
self.Caption:= self.Caption + ' TEST ';
|
|
|
|
{
|
|
for i:=0 to Self.ComponentCount-1 do
|
|
begin
|
|
if (Self.Components[i] is TButton) then
|
|
begin
|
|
(Self.Components[i] as TButton).Font.Name:= Helios.Font;
|
|
(Self.Components[i] as TButton).Font.Height:= Helios.FontHeight;
|
|
end;
|
|
if (Self.Components[i] is TTB_3Button) then
|
|
begin
|
|
// (Self.Components[i] as TTB_3Button).Width:= 30;
|
|
// (Self.Components[i] as TTB_3Button).Height:= 30;
|
|
end;
|
|
end;
|
|
}
|
|
idVPr:= 0;
|
|
idVOp:= 0;
|
|
edtStrStr.Value:= 0;
|
|
edtTavba.Text:= '';
|
|
tavbaCalamari:= false;
|
|
edtTavbaV.Text:= '';
|
|
edtOperP42.Text:= '';
|
|
|
|
pgCtrl.Height:= 435;
|
|
|
|
btnNew:= false;
|
|
|
|
bidTavby:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT 100000+Cislo FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_TavbyPosledniData''');
|
|
bidDavky:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT 100000+Cislo FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Davky''');
|
|
|
|
case typ of
|
|
1: begin
|
|
Self.Caption:= 'Evidence práce Tavení';
|
|
pgCtrl.ActivePageIndex:= shTavba.PageIndex;
|
|
edtOpTavba.SetFocus;
|
|
pgCtrl.Pages[shVibrovani.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shOdvStr.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shPrevodVosk.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shDavkaObec.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shP42.PageIndex].TabVisible:= false;
|
|
end;
|
|
2: begin
|
|
Self.Caption:= 'Evidence práce Vibrování';
|
|
self.Height:= 760;
|
|
pgCtrl.Height:= 540;
|
|
gbEvidPrace.Top:= 735;
|
|
pgCtrl.ActivePageIndex:= shVibrovani.PageIndex;
|
|
edtOpVibr.SetFocus;
|
|
pgCtrl.Pages[shTavba.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shOdvStr.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shPrevodVosk.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shDavkaObec.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shP42.PageIndex].TabVisible:= false;
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabDruhDavky'') IS NOT NULL DROP TABLE #TabDruhDavky' + CRLF + 'CREATE TABLE #TabDruhDavky (DruhDavky TINYINT NOT NULL)';
|
|
lSQL:= lSQL + 'INSERT #TabDruhDavky (DruhDavky) VALUES (3)';
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
3: begin
|
|
Self.Caption:= 'Evidence práce STR';
|
|
pgCtrl.ActivePageIndex:= shOdvStr.PageIndex;
|
|
edtOpStr.SetFocus;
|
|
pgCtrl.Pages[shTavba.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shVibrovani.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shPrevodVosk.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shDavkaObec.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shP42.PageIndex].TabVisible:= false;
|
|
edtDavkaStr.Enabled:= false;
|
|
selDavkaStr.Enabled:= false;
|
|
Label8.Enabled:= false;
|
|
end;
|
|
4: begin
|
|
Self.Caption:= 'Dávka VOSK->OBALOVNA';
|
|
pgCtrl.ActivePageIndex:= shPrevodVosk.PageIndex;
|
|
edtVoskPrikaz.SetFocus;
|
|
pgCtrl.Pages[shTavba.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shVibrovani.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shOdvStr.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shDavkaObec.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shP42.PageIndex].TabVisible:= false;
|
|
datVoskDatum.DateTime:= Now;
|
|
end;
|
|
5: begin
|
|
Self.Caption:= 'Dávka obecná';
|
|
case druhDavky of
|
|
1: begin
|
|
Self.Caption:= 'Dávka KONEČNÁ';
|
|
cbMJObec.ItemIndex:= cbMJObec.Items.IndexOf('ks');
|
|
end;
|
|
end;
|
|
pgCtrl.ActivePageIndex:= shDavkaObec.PageIndex;
|
|
edtPrikazObec.SetFocus;
|
|
pgCtrl.Pages[shTavba.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shVibrovani.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shOdvStr.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shPrevodVosk.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shP42.PageIndex].TabVisible:= false;
|
|
datDavkaObec.DateTime:= Now;
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabDruhDavky'') IS NOT NULL DROP TABLE #TabDruhDavky' + CRLF + 'CREATE TABLE #TabDruhDavky (DruhDavky TINYINT NOT NULL)';
|
|
lSQL:= lSQL + 'INSERT #TabDruhDavky (DruhDavky) VALUES (4)';
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
6: begin
|
|
Self.Caption:= 'Dávka KONEČNÁ->OBRÁBĚNÍ';
|
|
pgCtrl.ActivePageIndex:= shP42.PageIndex;
|
|
edtOperP42.SetFocus;
|
|
pgCtrl.Pages[shTavba.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shVibrovani.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shOdvStr.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shPrevodVosk.PageIndex].TabVisible:= false;
|
|
pgCtrl.Pages[shDavkaObec.PageIndex].TabVisible:= false;
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabDruhDavky'') IS NOT NULL DROP TABLE #TabDruhDavky' + CRLF + 'CREATE TABLE #TabDruhDavky (DruhDavky TINYINT NOT NULL)' + CRLF;
|
|
lSQL:= lSQL + 'INSERT #TabDruhDavky (DruhDavky) VALUES (6)';
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
|
|
end;
|
|
pgCtrl.Repaint;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.NactiTavbu(const idTavby: Integer);
|
|
var lSQL: string;
|
|
begin
|
|
if (idTavby>0) then
|
|
begin
|
|
lSQL:= '';
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selTavbaClick(Sender: TObject);
|
|
var podm: string;
|
|
begin
|
|
// oVar:= helUtils.getHeliosIntVal(Helios, 'SELECT ID FROM ' + tblTavby + ' WHERE CisloTavby=N' + QuotedStr(edtTavba.Text));
|
|
oVar:= Trim(edtTavba.Text);
|
|
podm:= 'DATEDIFF(month,hvw_TavbyPosledniData.Datum,GETDATE())<3';
|
|
if (tavbaCalamari) then
|
|
podm:= podm + ' AND hvw_TavbyPosledniData.CisloPece IN (21,22)';
|
|
// if Helios.Prenos(bidTavby, 'hvw_TavbyPosledniData.ID', oVar, '', 'Vyberte tavbu', true) then
|
|
if Helios.Prenos(bidTavby, 'hvw_TavbyPosledniData.CisloTavby', oVar, podm, 'Vyberte tavbu', true) then
|
|
begin
|
|
// edtTavba.Text:= helUtils.getHeliosStrVal(Helios, 'SELECT CisloTavby FROM ' + tblTavby + ' WHERE ID=' + VarToStr(oVar));
|
|
edtTavba.Text:= VarToStr(oVar);
|
|
edtTavbaExit(Sender);
|
|
end;
|
|
if (btnOK.Enabled) then
|
|
edtFormir.SetFocus;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selTavbaVClick(Sender: TObject);
|
|
var podm: string;
|
|
begin
|
|
// oVar:= helUtils.getHeliosIntVal(Helios, 'SELECT ID FROM ' + tblTavby + ' WHERE CisloTavby=N' + QuotedStr(edtTavba.Text));
|
|
podm:= 'DATEDIFF(month,hvw_TavbyPosledniData.Datum,GETDATE())<3';
|
|
if (tavbaCalamari) then
|
|
podm:= podm + ' AND hvw_TavbyPosledniData.CisloPece IN (21,22)';
|
|
oVar:= edtTavbaV.Text;
|
|
if Helios.Prenos(bidTavby, 'hvw_TavbyPosledniData.CisloTavby', oVar, podm, 'Vyberte tavbu', true) then
|
|
begin
|
|
edtTavbaV.Text:= VarToStr(oVar);
|
|
edtTavbaVExit(Sender);
|
|
end;
|
|
edtVibrator.SetFocus;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selVibratorClick(Sender: TObject);
|
|
var podm, selMes: string;
|
|
cM, cR: integer;
|
|
begin
|
|
// ziskej ID mzdObd za tento a predchozi mesic
|
|
cM:= MonthOf(Now);
|
|
cR:= YearOf(Now);
|
|
selMes:= helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + cR.ToString + ' AND Mesic=' + cM.ToString);
|
|
if (cM=1) then
|
|
selMes:= selMes + IfThen(selMes<>'', ', ', '') + helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + (cR-1).ToString + ' AND Mesic=12')
|
|
else
|
|
selMes:= selMes + IfThen(selMes<>'', ', ', '') + helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + cR.ToString + ' AND Mesic=' + (cM-1).ToString);
|
|
|
|
podm:= 'TabCisZam.ID IN (SELECT z.ZamestnanecID FROM ' + tblZamDopl + ' z INNER JOIN ' + tblProfes + ' p ON (p.Cislo=z.Profese) INNER JOIN ' + tblZamMzd;
|
|
podm:= podm + ' m ON (m.ZamestnanecID=z.ZamestnanecID AND z.IDObdobi=m.IDObdobi) WHERE m.StavES=0 AND m.Stredisko=N''00100100223''';
|
|
podm:= podm + ' AND z.IDObdobi IN (' + selMes + '))';
|
|
|
|
oVar:= edtVibrator.Text;
|
|
if Helios.Prenos(bidCisZam, 'TabCisZam.Cislo', oVar, podm, 'Vyberte Vibrovače', true) then
|
|
edtVibrator.Text:= StringOfChar('0', 6-Length(VarToStr(oVar))) + VarToStr(oVar);
|
|
edtStrCelk.SetFocus;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selVoskPrikazClick(Sender: TObject);
|
|
var lSQL, podm, id: string;
|
|
begin
|
|
podm:= 'TabPrikaz.StavPrikazu IN (30,50,60) AND TabPrikaz.Rada=N''221-12''';
|
|
if Helios.Prenos(bidVyrPrik, 'TabPrikaz.ID', oVar, podm, 'Vyberte příkaz', true) then
|
|
begin
|
|
id:= VarToStr(oVar);
|
|
edtVoskPrikaz.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT RadaPrikaz FROM ' + tblPrikaz + ' WHERE ID=' + id);
|
|
edtVoskPrikazExit(Sender);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selZamP42Click(Sender: TObject);
|
|
var podm, selMes: string;
|
|
cM, cR: integer;
|
|
begin
|
|
// ziskej ID mzdObd za tento a predchozi mesic
|
|
cM:= MonthOf(Now);
|
|
cR:= YearOf(Now);
|
|
selMes:= helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + cR.ToString + ' AND Mesic=' + cM.ToString);
|
|
if (cM=1) then
|
|
selMes:= selMes + IfThen(selMes<>'', ', ', '') + helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + (cR-1).ToString + ' AND Mesic=12')
|
|
else
|
|
selMes:= selMes + IfThen(selMes<>'', ', ', '') + helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + cR.ToString + ' AND Mesic=' + (cM-1).ToString);
|
|
|
|
podm:= 'TabCisZam.ID IN (SELECT z.ZamestnanecID FROM ' + tblZamDopl + ' z INNER JOIN ' + tblProfes + ' p ON (p.Cislo=z.Profese) INNER JOIN ' + tblZamMzd;
|
|
podm:= podm + ' m ON (m.ZamestnanecID=z.ZamestnanecID AND z.IDObdobi=m.IDObdobi) WHERE m.StavES=0 AND m.Stredisko=N''00100100224''';
|
|
podm:= podm + ' AND z.IDObdobi IN (' + selMes + '))';
|
|
|
|
oVar:= edtZamP42.Text;
|
|
if Helios.Prenos(bidCisZam, 'TabCisZam.Cislo', oVar, podm, 'Vyberte zaměstnance', true) then
|
|
edtZamP42.Text:= StringOfChar('0', 6-Length(VarToStr(oVar))) + VarToStr(oVar);
|
|
edtZamP42Exit(Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selZamP42Exit(Sender: TObject);
|
|
begin
|
|
if (edtZamP42.Value>0) then
|
|
edtDavkaObr.SetFocus;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selZamStrClick(Sender: TObject);
|
|
var podm, selMes: string;
|
|
cM, cR: integer;
|
|
begin
|
|
// ziskej ID mzdObd za tento a predchozi mesic
|
|
cM:= MonthOf(Now);
|
|
cR:= YearOf(Now);
|
|
selMes:= helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + cR.ToString + ' AND Mesic=' + cM.ToString);
|
|
if (cM=1) then
|
|
selMes:= selMes + IfThen(selMes<>'', ', ', '') + helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + (cR-1).ToString + ' AND Mesic=12')
|
|
else
|
|
selMes:= selMes + IfThen(selMes<>'', ', ', '') + helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + cR.ToString + ' AND Mesic=' + (cM-1).ToString);
|
|
|
|
podm:= 'TabCisZam.ID IN (SELECT z.ZamestnanecID FROM ' + tblZamDopl + ' z INNER JOIN ' + tblProfes + ' p ON (p.Cislo=z.Profese) INNER JOIN ' + tblZamMzd;
|
|
podm:= podm + ' m ON (m.ZamestnanecID=z.ZamestnanecID AND z.IDObdobi=m.IDObdobi) WHERE m.StavES=0 /* AND m.Stredisko=N''00100100223'' */';
|
|
podm:= podm + ' AND z.IDObdobi IN (' + selMes + '))';
|
|
|
|
oVar:= edtZamStr.Text;
|
|
if Helios.Prenos(bidCisZam, 'TabCisZam.Cislo', oVar, podm, 'Vyberte zaměstnance', true) then
|
|
edtZamStr.Text:= StringOfChar('0', 6-Length(VarToStr(oVar))) + VarToStr(oVar);
|
|
edtZamStrExit(Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.NactiPrikaz;
|
|
var lSQL, skl, eMsg, prac, rc: string;
|
|
z, k: Extended;
|
|
idKZ: integer;
|
|
canCont, pracOK: boolean;
|
|
begin
|
|
prik.id:= 0;
|
|
prik.regC:= '';
|
|
prik.sz:= '';
|
|
prik.idKZ:= 0;
|
|
prik.sklad:= '';
|
|
prik.stav:= 0;
|
|
prik.mamP30:= false;
|
|
|
|
if (idVPr>0) then
|
|
begin
|
|
skl:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Sklad FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
|
|
|
|
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:= 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;
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount=1) then
|
|
begin
|
|
rc:= VarToStr(FieldByNameValues('RegCis'));
|
|
idKZ:= StrToInt(VarToStr(FieldByNameValues('ID')));
|
|
lblPopis.Caption:= rc + ' ' + VarToStr(FieldByNameValues('Nazev1'));
|
|
|
|
prik.id:= idVPr;
|
|
prik.regC:= rc;
|
|
prik.sz:= VarToStr(FieldByNameValues('SkupZbo'));
|
|
prik.idKZ:= idKZ;
|
|
prik.sklad:= skl;
|
|
prik.mamP30:= false;
|
|
|
|
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);
|
|
|
|
// T09/T11 - tavba
|
|
pracOK:= (prac='T11') or (prac='T09');
|
|
if (pgCtrl.ActivePageIndex=shTavba.PageIndex) and not(pracOK) then
|
|
begin
|
|
canCont:= false;
|
|
if (tavbaCalamari) then
|
|
Helios.Error(#1 + rc + ': Naskenovaná operace ' + idVOp.ToString + ' není TAVENÍ a ODLÉVÁNÍ.'#1)
|
|
else
|
|
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
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error(#1 + rc + ': Naskenovaná operace č.' + idVOp.ToString + ' není VIBROVÁNÍ (prac.T12/13/15).'#1);
|
|
edtOpVibr.Text:= '';
|
|
end;
|
|
|
|
if (prik.sz='P31') then
|
|
begin
|
|
lSQL:= 'SELECT 1 FROM ' + tblPrVaz + ' v INNER JOIN ' + tblKZ + ' k ON (k.ID=v.nizsi) WHERE v.IDOdchylkyDo IS NULL AND v.IDPrikaz=' + prik.id.ToString + ' AND k.SkupZbo=N''P30''';
|
|
if (helUtils.sqlExistsTestGeneral(Helios, lSQL)) then
|
|
prik.mamP30:= true;
|
|
end;
|
|
|
|
if (canCont) then
|
|
begin
|
|
if not TryStrToFloat(VarToStr(FieldValues(3)), k) then
|
|
k:= 0;
|
|
lblKsStrom.Caption:= k.ToString + ' ks/str';
|
|
ksStr:= k;
|
|
z:= 0;
|
|
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:= 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;
|
|
if (z<0) then
|
|
z:= 0;
|
|
if (k>0) then
|
|
z:= z/k;
|
|
lblPrikaz.Caption:= 'VPř ' + VarToStr(FieldValues(2)) + ' / dodělat ' + IfThen(k=0, z.ToString, helUtils.RoundToEX(z,-2).ToString) + ' STR'
|
|
end
|
|
else
|
|
begin
|
|
lblPrikaz.Caption:= '';
|
|
lblOperace.Caption:= '';
|
|
idVPr:= 0;
|
|
idVOp:= 0;
|
|
end;
|
|
end;
|
|
if (idKZ>0) and ((pgCtrl.ActivePageIndex=shPrevodVosk.PageIndex) or (pgCtrl.ActivePageIndex=shDavkaObec.PageIndex) or (pgCtrl.ActivePageIndex=shP42.PageIndex)) then
|
|
begin // prevod vosk -> obalovna
|
|
lblPrikaz.Caption:= 'VPř ' + VarToStr(FieldValues(2)) + ' / dodělat ';
|
|
lblPrikaz.Caption:= lblPrikaz.Caption + helUtils.getHeliosStrVal(Helios, '', 'SELECT kusy_zive FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
|
|
lSQL:= 'SELECT Mnozstvi FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(skl) + ' AND IDKmenZbozi=' + idKZ.ToString;
|
|
k:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
lblPrikaz.Caption:= lblPrikaz.Caption + ' / skl ' + FloatToStr(k);
|
|
end;
|
|
prik.stav:= StrToInt(VarToStr(FieldValues(5)));
|
|
eMsg:= '';
|
|
case prik.stav of
|
|
10: eMsg:= 'POZOR, příkaz je jen Pořízen';
|
|
20: eMsg:= 'POZOR, příkaz je jen Předzpracován';
|
|
50: eMsg:= 'POZOR, příkaz Ukončen';
|
|
60: eMsg:= 'POZOR, příkaz Uzavřen';
|
|
end;
|
|
if (eMsg<>'') then
|
|
Helios.Error(#1 + '!!! ' + eMsg + ' - ' + rc + ' - operace ' + idVOp.ToString + ' NEBUDE EVIDOVÁNA !!!' + #1);
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
lblPopis.Caption:= '';
|
|
lblPrikaz.Caption:= '';
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selDavkaClick(Sender: TObject);
|
|
var lSQL, podm, kodDavky, r: string;
|
|
begin
|
|
// u:= helUtils.getHeliosStrVal(Helios, 'SELECT SUSER_SNAME()');
|
|
// druhDavky:= helUtils.getHeliosIntVal(Helios, 'SELECT DruhDavky FROM ' + tblDavkyDU + ' WHERE LoginName=SUSER_SNAME()');
|
|
idDavka:= 0;
|
|
bidDavky:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT 100000+Cislo FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Davky''');
|
|
r:= '2020';
|
|
if (idVPr>0) then
|
|
r:= helUtils.getHeliosStrVal (Helios, r, 'SELECT DATEPART(year, zadani) FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
|
|
podm:= 'hvw_Davky.Uzavreno=0 AND DATEDIFF(month, hvw_Davky.DatPorizeni,GETDATE())<3 AND hvw_Davky.DruhDavky=3'; // AND hvw_Davky.Rok=' + r;
|
|
if (bidDavky>0) then
|
|
if Helios.Prenos2(bidDavky, 'hvw_Davky.CisloPozice', 'hvw_Davky.KodDavky', oVar, oVar2, podm, 'Dávky', false, true, false, 1) then
|
|
begin
|
|
edtDavka.Text:= VarToStr(oVar);
|
|
kodDavky:= VarToStr(oVar2);
|
|
edtDavka.Text:= helUtils.StripChars(edtDavka.Text, ['''', 'N']);
|
|
podm:= 'SELECT ID FROM ' + tblDavky + ' WHERE Uzavreno=0 AND KodDavky=N' + kodDavky.QuotedString + ' AND DruhDavky=3';
|
|
idDavka:= helUtils.getHeliosIntVal (Helios, 0, podm);
|
|
{
|
|
lSQL:= 'SELECT TOP(1) k.RegCis FROM ' + tblDavky + ' d INNER JOIN ' + tblPrikaz + ' vp ON (vp.ID=d.IDPrikaz) INNER JOIN ' + tblKZ + ' k ON (k.ID=vp.IDTabKmen)';
|
|
lSQL:= lSQL + ' WHERE d.DruhDavky=3 AND d.Rok=' + r + ' AND d.Cislo=(SELECT Cislo FROM ' + tblDavky + ' WHERE ID=' + idDavka.ToString + ')';
|
|
lSQL:= lSQL + ' AND d.CisloPozice<>N' + QuotedStr(edtDavka.Text);
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
r:= VarToStr(FieldValues(0));
|
|
if (r<>prik.regC) then
|
|
begin
|
|
Helios.Error(#1'!! CHYBA - na dávku nelze přidávat rozdílné odlitky !!'#1);
|
|
idDavka:= 0;
|
|
edtDavka.Text:= '';
|
|
selDavka.SetFocus;
|
|
end
|
|
else
|
|
btnOK.SetFocus;
|
|
end
|
|
else
|
|
}
|
|
btnOK.SetFocus;
|
|
end
|
|
else
|
|
begin
|
|
edtDavka.Text:= '';
|
|
selDavka.SetFocus;
|
|
idDavka:= 0;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selDavkaObecClick (Sender: TObject);
|
|
var lSQL, podm: string;
|
|
begin
|
|
idDavka:= 0;
|
|
podm:= 'hvw_Davky.Uzavreno=0 AND DATEDIFF(month, hvw_Davky.DatPorizeni,GETDATE())<3';
|
|
if (typ=5) and (druhDavky=1) then
|
|
podm:= podm + ' AND hvw_Davky.DruhDavky=4';
|
|
|
|
if (bidDavky>0) then
|
|
if Helios.Prenos(bidDavky, 'hvw_Davky.CisloPozice', oVar, podm, 'Vyberte dávku', true) then
|
|
begin
|
|
edtDavkaObec.Text:= VarToStr(oVar);
|
|
podm:= 'SELECT ID FROM ' + tblDavky + ' WHERE Uzavreno=0 AND CisloPozice=N' + QuotedStr(edtDavkaObec.Text);
|
|
if (typ=5) and (druhDavky=1) then
|
|
podm:= podm + ' AND DruhDavky=4';
|
|
idDavka:= helUtils.getHeliosIntVal(Helios, 0, podm);
|
|
idDavkaRodic:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDRodic FROM ' + tblDavky + ' WHERE ID=' + idDavka.ToString);
|
|
edtStrObec.SelectAll;
|
|
edtStrObec.SetFocus;
|
|
end
|
|
else
|
|
begin
|
|
edtDavkaObec.Text:= '';
|
|
selDavkaObec.SetFocus;
|
|
end;
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabDruhDavky'') IS NOT NULL DROP TABLE #TabDruhDavky';
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selDavkaObrClick (Sender: TObject);
|
|
var lSQL, podm, rD: string;
|
|
begin
|
|
// u:= helUtils.getHeliosStrVal(Helios, 'SELECT SUSER_SNAME()');
|
|
// druhDavky:= helUtils.getHeliosIntVal(Helios, 'SELECT DruhDavky FROM ' + tblDavkyDU + ' WHERE LoginName=SUSER_SNAME()');
|
|
idDavka:= 0;
|
|
edtDavkaObr.Text:= '';
|
|
selDavkaObr.SetFocus;
|
|
podm:= 'hvw_Davky.Uzavreno=0 AND hvw_Davky.DruhDavky=6';
|
|
if Helios.Prenos2(bidDavky, 'hvw_Davky.CisloPozice', 'hvw_Davky.ID', oVar, oVar2, podm, 'Vyberte dávku', false, true, false, 1) then
|
|
begin
|
|
edtDavkaObr.Text:= VarToStr(oVar);
|
|
edtDavkaObr.Text:= helUtils.StripChars(edtDavkaObr.Text, ['''', 'N']);
|
|
idDavka:= StrToInt(VarToStr(oVar2));
|
|
lblDavkaObr.Caption:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Rok FROM ' + tblDavky + ' WHERE ID=' + idDavka.ToString);
|
|
lblDavkaObr.Caption:= Trim(lblDavkaObr.Caption + ' / ' + getTextDruhDavky(idDavka));
|
|
btnOK.SetFocus;
|
|
end;
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabDruhDavky'') IS NOT NULL DROP TABLE #TabDruhDavky';
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selDavkaStrClick (Sender: TObject);
|
|
var lSQL, podm, rD, cD: string;
|
|
begin
|
|
// u:= helUtils.getHeliosStrVal(Helios, 'SELECT SUSER_SNAME()');
|
|
// druhDavky:= helUtils.getHeliosIntVal(Helios, 'SELECT DruhDavky FROM ' + tblDavkyDU + ' WHERE LoginName=SUSER_SNAME()');
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabDruhDavky'') IS NOT NULL DROP TABLE #TabDruhDavky' + CRLF + 'CREATE TABLE #TabDruhDavky (DruhDavky TINYINT NOT NULL)';
|
|
// lSQL:= lSQL + 'INSERT #TabDruhDavky (DruhDavky) VALUES (3)';
|
|
Helios.ExecSQL(lSQL);
|
|
idDavka:= 0;
|
|
podm:= 'hvw_Davky.Uzavreno=0 AND hvw_Davky.DruhDavky=4';
|
|
if (bidDavky>0) then
|
|
if Helios.Prenos2(bidDavky, 'hvw_Davky.CisloPozice', 'hvw_Davky.ID', oVar, oVar2, podm, 'Vyberte dávku', false, true, false, 1) then
|
|
begin
|
|
edtDavkaStr.Text:= VarToStr(oVar);
|
|
edtDavkaStr.Text:= helUtils.StripChars(edtDavkaStr.Text, ['''', 'N']);
|
|
idDavka:= StrToInt(VarToStr(oVar2));
|
|
|
|
rD:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Rok FROM ' + tblDavky + ' WHERE ID=' + idDavka.ToString);
|
|
lSQL:= 'SELECT TOP(1) k.RegCis FROM ' + tblDavky + ' d INNER JOIN ' + tblPrikaz + ' vp ON (vp.ID=d.IDPrikaz) INNER JOIN ' + tblKZ + ' k ON (k.ID=vp.IDTabKmen)';
|
|
lSQL:= lSQL + ' WHERE d.DruhDavky=4 AND d.Rok=' + rD + ' AND d.Cislo=(SELECT Cislo FROM ' + tblDavky + ' WHERE ID=' + idDavka.ToString + ')';
|
|
lSQL:= lSQL + ' AND d.CisloPozice<>N' + QuotedStr(edtDavkaStr.Text);
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
rD:= VarToStr(FieldValues(0));
|
|
if (rD<>prik.regC) then
|
|
begin
|
|
Helios.Error(#1'!! CHYBA - na dávku pro Konečnou nelze přidávat rozdílné odlitky !!'#1);
|
|
idDavka:= 0;
|
|
edtDavkaStr.Text:= '';
|
|
edtDavkaStr.SetFocus;
|
|
end
|
|
else
|
|
edtDavkaStrExit(Sender);
|
|
end
|
|
else
|
|
edtDavkaStrExit(Sender);
|
|
end
|
|
else
|
|
begin
|
|
edtDavkaStr.Text:= '';
|
|
selDavkaStr.SetFocus;
|
|
idDavka:= 0;
|
|
end;
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabDruhDavky'') IS NOT NULL DROP TABLE #TabDruhDavky';
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selFormirClick(Sender: TObject);
|
|
var podm, selMes: string;
|
|
cM, cR: integer;
|
|
begin
|
|
// ziskej ID mzdObd za tento a predchozi mesic
|
|
cM:= MonthOf(Now);
|
|
cR:= YearOf(Now);
|
|
selMes:= helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + cR.ToString + ' AND Mesic=' + cM.ToString);
|
|
if (cM=1) then
|
|
selMes:= selMes + IfThen(selMes<>'', ', ', '') + helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + (cR-1).ToString + ' AND Mesic=12')
|
|
else
|
|
selMes:= selMes + IfThen(selMes<>'', ', ', '') + helUtils.getHeliosStrVal(Helios, '', 'SELECT IDObdobi FROM ' + tblMzdObd + ' WHERE Rok=' + cR.ToString + ' AND Mesic=' + (cM-1).ToString);
|
|
|
|
podm:= 'TabCisZam.ID IN (SELECT z.ZamestnanecID FROM ' + tblZamDopl + ' z INNER JOIN ' + tblProfes + ' p ON (p.Cislo=z.Profese) INNER JOIN ' + tblZamMzd;
|
|
podm:= podm + ' m ON (m.ZamestnanecID=z.ZamestnanecID AND z.IDObdobi=m.IDObdobi) WHERE m.StavES=0 AND m.Stredisko=N''00100100223''';
|
|
podm:= podm + ' AND z.IDObdobi IN (' + selMes + '))';
|
|
|
|
oVar:= edtFormir.Text;
|
|
if Helios.Prenos(bidCisZam, 'TabCisZam.Cislo', oVar, podm, 'Vyberte Formíře', true) then
|
|
edtFormir.Text:= StringOfChar('0', 6-Length(VarToStr(oVar))) + VarToStr(oVar);
|
|
edtPocetStr.SetFocus;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selOperP42Click(Sender: TObject);
|
|
var podm: string;
|
|
begin
|
|
idVOp:= 0;
|
|
idVPr:= 0;
|
|
podm:= '/* TabPrPostup.Nazev LIKE N''Předán%'' AND TabPrPostup.Odvadeci=1 AND */ TabPrPostup.IDPrikaz IN (SELECT ID FROM ' + tblPrikaz;
|
|
podm:= podm + ' WHERE StavPrikazu IN (30,50,60) AND Rada IN (N''224-43'', N''224-42''))';
|
|
if Helios.Prenos(bidVyrOper, 'TabPrPostup.ID', oVar, podm, 'Vyberte operaci P42/P43', true) then
|
|
begin
|
|
idVOp:= StrToInt(VarToStr(oVar));
|
|
edtOperP42.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Barcode FROM ' + tblPrPost + ' WHERE ID=' + idVOp.ToString);
|
|
idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrPost + ' WHERE ID=' + idVOp.ToString);
|
|
NactiPrikaz;
|
|
lblOperaceP42.Caption:= '';
|
|
with Helios.OpenSQL('SELECT Operace, Nazev FROM ' + tblPrPost + ' WHERE ID=' + idVOp.ToString) do
|
|
lblOperaceP42.Caption:= Trim(VarToStr(FieldValues(0))) + ' / ' + VarToStr(FieldValues(1));
|
|
edtKsP42.SetFocus;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selOpStrClick(Sender: TObject);
|
|
var lSQL, podm, u: string;
|
|
begin
|
|
oVar:= edtOpStr.Text;
|
|
podm:= 'TabPrPostup.Kusy_pozadovane>0';
|
|
|
|
// u:= helUtils.getHeliosStrVal(Helios, 'SELECT SUSER_SNAME()');
|
|
// if (u='ssustek') or (u='pcreny') then
|
|
// begin
|
|
podm:= podm + ' AND TabPrPostup.IDPrikaz IN (SELECT p.ID FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' k ON (k.ID=p.IDTabKmen)';
|
|
podm:= podm + ' WHERE p.StavPrikazu IN (20,30) AND LEFT(k.SkupZbo,2)=N''P3'')';
|
|
// end;
|
|
|
|
if Helios.Prenos(bidVyrOper, 'TabPrPostup.BarCode', oVar, podm, 'Vyberte operaci', true) then
|
|
begin
|
|
edtOpStr.Text:= VarToStr(oVar);
|
|
edtOpStrExit(Sender);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selOpTavbaClick(Sender: TObject);
|
|
var lSQL, podm: string;
|
|
begin
|
|
oVar:= edtOpTavba.Text;
|
|
podm:= 'LOWER(TabPrPostup.nazev) LIKE N''%odléván%'' AND TabPrPostup.Kusy_pozadovane>0';
|
|
if Helios.Prenos(bidVyrOper, 'TabPrPostup.BarCode', oVar, podm, 'Vyberte operaci Tavby', true) then
|
|
begin
|
|
edtOpTavba.Text:= VarToStr(oVar);
|
|
edtOpTavbaExit(Sender);
|
|
end;
|
|
edtTavba.SetFocus;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selOpVibrClick(Sender: TObject);
|
|
var lSQL, podm: string;
|
|
begin
|
|
oVar:= edtOpVibr.Text;
|
|
podm:= 'LOWER(TabPrPostup.nazev) LIKE N''%vibrován%'' AND TabPrPostup.Kusy_pozadovane>0 AND TabPrPostup.Kusy_zive>0';
|
|
podm:= podm + ' AND TabPrPostup.IDOdchylkyDo IS NULL AND TabPrPostup.IDPrikaz IN (SELECT ID FROM ' + tblPrikaz + ' WHERE StavPrikazu=30)';
|
|
if Helios.Prenos(bidVyrOper, 'TabPrPostup.BarCode', oVar, podm, 'Vyberte operaci Vibrování', true) then
|
|
begin
|
|
edtOpVibr.Text:= VarToStr(oVar);
|
|
edtOpVibrExit(Sender);
|
|
end;
|
|
edtTavbaV.SetFocus;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformOdvTavby.selPrikazObecClick(Sender: TObject);
|
|
var podm: string;
|
|
begin
|
|
idVPr:= 0;
|
|
podm:= '';
|
|
if (typ=5) and (druhDavky=1) then
|
|
podm:= 'TabPrikaz.StavPrikazu IN (30,50,60) AND TabPrikaz.Rada=N' + QuotedStr('223-31');
|
|
if Helios.Prenos(bidVyrPrik, 'TabPrikaz.ID', oVar, podm, 'Vyberte příkaz do dávky', true) then
|
|
begin
|
|
idVPr:= StrToInt(VarToStr(oVar));
|
|
edtPrikazObec.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT RadaPrikaz FROM ' + tblPrikaz + ' WHERE ID=' + idVPr.ToString);
|
|
NactiPrikaz;
|
|
selDavkaObec.SetFocus;
|
|
end;
|
|
end;
|
|
|
|
end.
|