Prvni verze na Git
This commit is contained in:
590
frmKanbanObj.pas
Normal file
590
frmKanbanObj.pas
Normal file
@ -0,0 +1,590 @@
|
||||
unit frmKanbanObj;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Data.DB, FireDAC.Comp.Client, ddPlugin_TLB,
|
||||
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,
|
||||
FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf,
|
||||
FireDAC.Comp.DataSet, Vcl.Grids, Vcl.DBGrids, JvExDBGrids, JvDBGrid;
|
||||
|
||||
const
|
||||
KLF_ACTIVATE = $00000001;
|
||||
KLF_SETFORPROCESS = $00000100;
|
||||
CRLF = #13#10;
|
||||
|
||||
type
|
||||
TformKanbanObj = class(TForm)
|
||||
Label1: TLabel;
|
||||
lblPocetPol: TLabel;
|
||||
Label2: TLabel;
|
||||
lblDodavatel: TLabel;
|
||||
ds: TDataSource;
|
||||
vTable: TFDMemTable;
|
||||
vTableIdPohybu: TIntegerField;
|
||||
vTableIdKanbanBox: TIntegerField;
|
||||
vTableNazev: TStringField;
|
||||
vTableMnozstvi: TSmallintField;
|
||||
btnStorno: TButton;
|
||||
btnOK: TButton;
|
||||
btnGenObj: TButton;
|
||||
btnGenKoopOrVPr: TButton; // p<>id<69>no 18.3.2021
|
||||
vTableRegCis: TStringField;
|
||||
mLog: TMemo;
|
||||
Label3: TLabel;
|
||||
edtBox: TEdit;
|
||||
lblWork: TLabel;
|
||||
grdPolozky: TJvDBGrid;
|
||||
procedure FormShow (Sender: TObject);
|
||||
procedure edtBoxKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
procedure btnStornoClick (Sender: TObject);
|
||||
procedure FormClose (Sender: TObject; var Action: TCloseAction);
|
||||
procedure btnGenObjClick (Sender: TObject);
|
||||
procedure btnGenKoopOrVPrClick(Sender: TObject); // p<>id<69>no 18.3.2021
|
||||
procedure btnOKClick (Sender: TObject);
|
||||
procedure grdPolozkyKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
private
|
||||
function IDPol2Str: string;
|
||||
public
|
||||
Helios: IHelios;
|
||||
idObj: integer;
|
||||
btnGenVPrOrKoopText: string; // p<>id<69>no 18.3.2021
|
||||
PoslatEmail: integer; // p<>id<69>no 10.6.2022
|
||||
TypKooObj: boolean; // p<>id<69>no 10.6.2022
|
||||
NadpisTypuKoopObj: String; // p<>id<69>no 10.6.2022
|
||||
Zarovnani: string; // p<>id<69>no 10.6.2022
|
||||
Cesta: string; // p<>id<69>no 10.6.2022
|
||||
Nazev: string // p<>id<69>no 10.6.2022
|
||||
end;
|
||||
|
||||
var
|
||||
formKanbanObj: TformKanbanObj;
|
||||
cOrg: integer;
|
||||
jeGenVydej, jeKoopObj, primaObj: Boolean;
|
||||
layName: array[0..KL_NAMELENGTH+1] of Char;
|
||||
|
||||
jsouGenVPr: Boolean; // p<>id<69>no 18.3.2021
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
System.StrUtils,
|
||||
Globalni;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
function TformKanbanObj.IDPol2Str: string;
|
||||
var tmp: string;
|
||||
x: integer;
|
||||
begin
|
||||
x:= vTable.RecNo;
|
||||
grdPolozky.LockDrawing;
|
||||
vTable.First;
|
||||
tmp:= '';
|
||||
while not(vTable.Eof) do
|
||||
begin
|
||||
if (vTable.Fields.FieldByName('IdPohybu').AsString<>'') then
|
||||
tmp:= tmp + vTable.Fields.FieldByName('IdPohybu').AsString + ',';
|
||||
vTable.Next;
|
||||
end;
|
||||
if (RightStr(tmp,1)=',') then
|
||||
SetLength(tmp, Length(tmp)-1);
|
||||
vTable.RecNo:= x;
|
||||
grdPolozky.UnlockDrawing;
|
||||
result:= tmp;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TformKanbanObj.grdPolozkyKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
begin
|
||||
if (jeGenVydej) then
|
||||
Helios.Error(#1'Z objedn<64>vky byla vytvo<76>ena v<>dejka obal<61>, z<>znamy nelze mazat.'#1)
|
||||
else
|
||||
begin
|
||||
// p<>id<69>no 18.3.2021
|
||||
if (jsouGenVPr) then
|
||||
Helios.Error(#1'Z objedn<64>vky byly vygenerov<6F>ny v<>robn<62> p<><70>kazy nebo koopera<72>n<EFBFBD> objedn<64>vka, z<>znamy nelze mazat.'#1)
|
||||
else
|
||||
begin
|
||||
// konec p<>id<69>no 18.3.2021
|
||||
if (Key=VK_DELETE) and (vTable.RecordCount>0) then
|
||||
if Helios.YesNo('Opravdu chcete z objedn<64>vky smazat tento box ?',false) then
|
||||
begin
|
||||
vTable.Delete;
|
||||
lblPocetPol.Caption:= IntToStr(StrToInt(lblPocetPol.Caption)-1);
|
||||
grdPolozky.Refresh;
|
||||
edtBox.SetFocus;
|
||||
end;
|
||||
end;
|
||||
end; // p<>id<69>no 18.3.2021
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TformKanbanObj.btnStornoClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TformKanbanObj.btnOKClick(Sender: TObject);
|
||||
var lSQL, idcka, idKZobal: string;
|
||||
x: integer;
|
||||
begin
|
||||
lblWork.Visible:= true;
|
||||
lblWork.Caption:= 'Ukl<6B>d<EFBFBD>m polo<6C>ky...';
|
||||
|
||||
lSQL:= 'DECLARE @i INT; SELECT @i=ISNULL(MAX(id),0) FROM dbo._TabKanbanPohyby;DBCC CHECKIDENT(_TabKanbanPohyby,reseed,@i);';
|
||||
Helios.ExecSQL(lSQL);
|
||||
|
||||
idcka:= IDPol2Str;
|
||||
if (idObj>0) then
|
||||
begin
|
||||
Helios.ExecSQL('DELETE FROM dbo._TabKanbanPohyby WHERE IdKanbanObj=' + IntToStr(idObj) + ' AND Id NOT IN (' + IfThen(idcka='','0',idcka) + ')');
|
||||
|
||||
x:= vTable.RecNo;
|
||||
grdPolozky.BeginUpdate;
|
||||
vTable.First;
|
||||
while not(vTable.Eof) do
|
||||
begin
|
||||
if (vTable.Fields.FieldByName('IdPohybu').AsString='') then
|
||||
begin
|
||||
idKZobal:= '';
|
||||
lSQL:= 'SELECT kzO.Id FROM dbo._TabKanbanBox b INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)';
|
||||
lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) LEFT JOIN dbo.TabKmenZbozi kzO ON';
|
||||
lSQL:= lSQL + ' (kzO.CisloZbozi=kze._KanbanObal) WHERE b.Id=' + vTable.Fields.FieldByName('IdKanbanBox').AsString;
|
||||
with Helios.OpenSQL(lSQL) do
|
||||
if (RecordCount=1) then
|
||||
if not VarIsNull(FieldValues(0)) then
|
||||
idKZobal:= VarToStr(FieldValues(0));
|
||||
|
||||
lSQL:= 'INSERT dbo._TabKanbanPohyby (IDKanbanObj, IDKanbanBox, IdKmenZboziObal) VALUES (';
|
||||
lSQL:= lSQL + IntToStr(idObj) + ',' + vTable.Fields.FieldByName('IdKanbanBox').AsString + ',';
|
||||
lSQL:= lSQL + IfThen(idKZobal='','null',idKZobal) + ')';
|
||||
Helios.ExecSQL(lSQL);
|
||||
end;
|
||||
vTable.Next;
|
||||
end;
|
||||
vTable.RecNo:= x;
|
||||
grdPolozky.EndUpdate;
|
||||
Close;
|
||||
|
||||
end
|
||||
else
|
||||
begin
|
||||
if (cOrg >=0) then
|
||||
begin // p<>id<69>no 18.3.2021
|
||||
lSQL:= 'DECLARE @i INT; SELECT @i=ISNULL(MAX(id),0) FROM dbo._TabKanbanObj; DBCC CHECKIDENT(_TabKanbanObj,reseed,@i);';
|
||||
Helios.ExecSQL(lSQL);
|
||||
lSQL:= 'INSERT dbo._TabKanbanObj (CisloOrgKoop) VALUES (' + IntToStr(cOrg) + '); SELECT SCOPE_IDENTITY()';
|
||||
with Helios.OpenSQL(lSQL) do
|
||||
if (RecordCount=1) then
|
||||
begin
|
||||
idObj:= StrToInt(VarToStr(FieldValues(0)));
|
||||
|
||||
x:= vTable.RecNo;
|
||||
grdPolozky.BeginUpdate;
|
||||
vTable.First;
|
||||
while not(vTable.Eof) do
|
||||
begin
|
||||
idKZobal:= '';
|
||||
lSQL:= 'SELECT kzO.Id FROM dbo._TabKanbanBox b INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)';
|
||||
lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) LEFT JOIN dbo.TabKmenZbozi kzO ON';
|
||||
lSQL:= lSQL + ' (kzO.CisloZbozi=kze._KanbanObal) WHERE b.Id=' + vTable.Fields.FieldByName('IdKanbanBox').AsString;
|
||||
with Helios.OpenSQL(lSQL) do
|
||||
if (RecordCount=1) then
|
||||
if not VarIsNull(FieldValues(0)) then
|
||||
idKZobal:= VarToStr(FieldValues(0));
|
||||
|
||||
lSQL:= 'INSERT dbo._TabKanbanPohyby (IDKanbanObj, IDKanbanBox, IdKmenZboziObal) VALUES (';
|
||||
lSQL:= lSQL + IntToStr(idObj) + ',' + vTable.Fields.FieldByName('IdKanbanBox').AsString + ',';
|
||||
lSQL:= lSQL + IfThen(idKZobal='','null',idKZobal) + ')';
|
||||
Helios.ExecSQL(lSQL);
|
||||
vTable.Next;
|
||||
end;
|
||||
vTable.RecNo:= x;
|
||||
grdPolozky.EndUpdate;
|
||||
Close;
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Close;
|
||||
end; // p<>id<69>no 18.3.2021
|
||||
end;
|
||||
lblWork.Visible:= false;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TformKanbanObj.btnGenObjClick (Sender: TObject);
|
||||
begin
|
||||
btnGenObj.Caption:= 'Prob<6F>h<EFBFBD> generov<6F>n<EFBFBD>...';
|
||||
if (primaObj) then
|
||||
btnOKClick(Sender);
|
||||
try
|
||||
Helios.ExecSQL('EXEC dbo.ep_KanbanGenVydejObalu @idKanObj=' + IntToStr(idObj));
|
||||
btnGenObj.Caption:= 'Generuj v<>dejku obal<61>';
|
||||
with Helios.OpenSQL('SELECT IdVydejObalu FROM dbo._TabKanbanObj WHERE Id=' + IntToStr(idObj)) do
|
||||
if (RecordCount=1) then
|
||||
if not VarIsNull(FieldValues(0)) then
|
||||
Helios.PrintForm3(18, 2, 'TabDokladyZbozi.Id=' + VarToStr(FieldValues(0)));
|
||||
Close;
|
||||
except on E:Exception do
|
||||
Helios.Error(#1'Chyba p<>i generov<6F>n<EFBFBD> v<>dejky kanban box<6F>'#1#13#10 + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
// p<>id<69>no 18.3.2021
|
||||
procedure TformKanbanObj.btnGenKoopOrVPrClick (Sender: TObject);
|
||||
var
|
||||
IDKoopObj, JeGenKoop : integer;
|
||||
Sql : string;
|
||||
JmenoSouboruVyg: String;
|
||||
begin
|
||||
|
||||
//if (primaObj) then
|
||||
btnOKClick (Sender);
|
||||
|
||||
with Helios.OpenSQL('SELECT CASE WHEN EXISTS (SELECT 1 FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ' AND IDPrikaz IS NULL) OR NOT EXISTS (SELECT 1 FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ') THEN 1 ELSE 0 END' ) do
|
||||
begin
|
||||
if VarIsNull(FieldValues(0)) or (VarToStr(FieldValues(0))='0') or (VarToStr(FieldValues(0))='') then begin
|
||||
Helios.Error('V<>robn<62> p<><70>kazy ji<6A> byly vygenerov<6F>ny. Nelze je vygenerovat znovu');
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
with Helios.OpenSQL('SELECT CASE WHEN EXISTS (SELECT 1 FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ') THEN 1 ELSE 0 END' ) do
|
||||
begin
|
||||
if VarIsNull(FieldValues(0)) or (VarToStr(FieldValues(0))='0') or (VarToStr(FieldValues(0))='') then begin
|
||||
Helios.Error('Nejsou zad<61>ny <20><>dn<64> polo<6C>ky');
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
btnGenKoopOrVPr.Caption:= 'Prob<6F>h<EFBFBD> generov<6F>n<EFBFBD>...';
|
||||
|
||||
try
|
||||
//Helios.ExecSQL('EXEC dbo.hpx_NTS_Kanban_GenerujKoopObjNeboVPr @idKanObj=' + IntToStr(idObj)); // zakomentov<6F>no 10.6.2022
|
||||
|
||||
// p<>id<69>no 10.6.2022
|
||||
Sql := 'DECLARE @IDKoopObj INT, @VzniklaKoopObj INT; ';
|
||||
Sql := Sql + ' EXEC dbo.hpx_NTS_Kanban_GenerujKoopObjNeboVPr_Plugin @idKanObj=' + IntToStr(idObj) + ', @IDKoopObj = @IDKoopObj OUT, @VzniklaKoopObj = @VzniklaKoopObj OUT;';
|
||||
Sql := Sql + ' SELECT @IDKoopObj AS IDKoopObj, @VzniklaKoopObj AS VzniklaKoopObj';
|
||||
|
||||
|
||||
with Helios.OpenSQL(Sql) do
|
||||
begin
|
||||
if not VarIsNull(FieldValues(0)) then IDKoopObj := FieldValues(0) else IDKoopObj := -99;
|
||||
if not VarIsNull(FieldValues(1)) then JeGenKoop := FieldValues(1) else JeGenKoop := 0;
|
||||
|
||||
|
||||
end;
|
||||
// konec p<>id<69>n<EFBFBD> 10.6.2022
|
||||
|
||||
btnGenKoopOrVPr.Caption:= btnGenVPrOrKoopText;
|
||||
|
||||
|
||||
//Close; // zakomentov<6F>no 10.6.2022
|
||||
except on E:Exception do begin
|
||||
Helios.Error(#1'Chyba p<>i generov<6F>n<EFBFBD> koopera<72>n<EFBFBD> objedn<64>vky nebo VP<56>'#1#13#10 + E.Message);
|
||||
btnGenKoopOrVPr.Caption:= btnGenVPrOrKoopText; // p<>id<69>no 10.6.2022
|
||||
exit; // p<>id<69>no 10.6.2022
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
// p<>id<69>no 10.6.2022
|
||||
if (PoslatEmail = 1) and (IDKoopObj > 0) and (JeGenKoop > 0) then begin
|
||||
btnGenKoopOrVPr.Caption:= 'Export do xls...';
|
||||
|
||||
// export do xls
|
||||
with Helios.OpenSQL('SELECT id FROM dbo.TabKoopObj WHERE realizovano=0 AND id=' + IntToStr(IDKoopObj)) do begin
|
||||
if (RecordCount=0) then begin
|
||||
|
||||
JmenoSouboruVyg:= ExportKoopObjXls (Helios, IDKoopObj, TypKooObj, NadpisTypuKoopObj, Zarovnani, Cesta, Nazev, 0) ;
|
||||
|
||||
end else begin
|
||||
Helios.Error(#1'Koopera<72>n<EFBFBD> objedn<64>vka nen<65> realizov<6F>na, nelze exportovat.'#1 + CRLF + 'Realizujte j<> a zkuste to znovu.');
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
// zavol<6F>n<EFBFBD> procedury na posl<73>n<EFBFBD> e-mailu
|
||||
btnGenKoopOrVPr.Caption:= 'Generov<6F>n<EFBFBD> e-mailu...';
|
||||
|
||||
Sql := 'DECLARE @IDExtKom INT = ' + IntToStr(Helios.ExtKomID) + ', @Soubor NVARCHAR(255) = N''' + JmenoSouboruVyg + ''', @Cesta NVARCHAR(255) = N''' + Cesta + ''', @Chyba NVARCHAR(500);';
|
||||
Sql := Sql + ' EXEC dbo.hpx_OdeslatKooperacniObjednavkuEmailem_Plugin @IDExtKom , @Soubor = @Soubor, @Cesta = @Cesta, @Chyba = @Chyba OUT, @IDKoopObj = ' + IntToStr(IDKoopObj) + ';' ;
|
||||
Sql := Sql + ' SELECT @Chyba; ' ;
|
||||
|
||||
// Helios.Info(sql);
|
||||
|
||||
with Helios.OpenSQL(Sql) do
|
||||
begin
|
||||
if (Not VarIsNull(FieldValues(0))) and (trim(VarToStr(FieldValues(0)))<>'') then begin
|
||||
Helios.Error(VarToStr(FieldValues(0)));
|
||||
|
||||
end;
|
||||
end;
|
||||
|
||||
btnGenKoopOrVPr.Caption:= btnGenVPrOrKoopText;
|
||||
end;
|
||||
|
||||
|
||||
Close;
|
||||
// konec p<>id<69>n<EFBFBD> 10.6.2022
|
||||
|
||||
end;
|
||||
// konec p<>id<69>n<EFBFBD> 18.3.2021
|
||||
|
||||
|
||||
|
||||
procedure TformKanbanObj.edtBoxKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
var lSQL: string;
|
||||
idx, idKZ: Integer;
|
||||
PridatPolozku: boolean; // p<>id<69>no 18.3.2021
|
||||
begin
|
||||
edtBox.Text:= Trim(edtBox.Text);
|
||||
if (jeKoopObj) then
|
||||
begin
|
||||
Helios.Error(#1'Byla vytvo<76>ena Koopera<72>n<EFBFBD> objedn<64>vka, polo<6C>ky nelze p<>id<69>vat.'#1);
|
||||
Exit;
|
||||
end;
|
||||
|
||||
// p<>id<69>no 18.3.2021
|
||||
if (jsouGenVPr) then
|
||||
begin
|
||||
Helios.Error(#1'Byly vytvo<76>eny v<>robn<62> p<><70>kazy, polo<6C>ky nelze p<>id<69>vat.'#1);
|
||||
Exit;
|
||||
end;
|
||||
// konec p<>id<69>n<EFBFBD> 18.3.2021
|
||||
|
||||
if (jeGenVydej) then
|
||||
begin
|
||||
Helios.Error(#1'Byla vytvo<76>ena v<>dejka na obaly, polo<6C>ky nelze p<>id<69>vat.'#1);
|
||||
Exit;
|
||||
end;
|
||||
if ((Key=VK_TAB) or (Key=VK_RETURN)) and (edtBox.Text<>'') then
|
||||
begin
|
||||
idx:= vTable.RecNo;
|
||||
if not(vTable.Locate('IdKanbanBox', VarArrayOf([edtBox.Text]),[loCaseInsensitive])) then
|
||||
begin
|
||||
PridatPolozku := true; //p<>id<69>no 18.3.2021
|
||||
vTable.RecNo:= idx;
|
||||
with Helios.OpenSQL('SELECT id FROM dbo._TabKanbanBox WHERE Id=' + edtBox.Text) do
|
||||
if (RecordCount=1) then
|
||||
begin
|
||||
lSQL:= 'SELECT kz.RegCis, kz.Nazev1, kze._KanbanMnozstvi, kz.Id FROM dbo._TabKanbanBox b';
|
||||
lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)';
|
||||
lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) WHERE b.Id=' + edtBox.Text;
|
||||
with Helios.OpenSQL(lSQL) do
|
||||
begin
|
||||
if (cOrg=-99) then // upraveno 18.3.2021
|
||||
begin
|
||||
idKZ:= StrToInt(VarToStr(FieldValues(3)));
|
||||
lSQL:= 'SELECT se._CisloOrg, co.Nazev FROM dbo.TabKmenZbozi kz INNER JOIN dbo.TabStrom s ON (s.Cislo=kz.KmenoveStredisko)';
|
||||
lSQL:= lSQL + ' INNER JOIN dbo.TabStrom_EXT se ON (se.Id=s.Id) INNER JOIN dbo.TabCisOrg co ON (co.CisloOrg=se._CisloOrg)';
|
||||
lSQL:= lSQL + ' WHERE kz.Id=' + IntToStr(idKZ);
|
||||
with Helios.OpenSQL(lSQL) do
|
||||
if (RecordCount=1) then
|
||||
begin
|
||||
cOrg:= StrToInt(VarToStr(FieldValues(0)));
|
||||
lblDodavatel.Caption:= VarToStr(FieldValues(1));
|
||||
end;
|
||||
|
||||
// p<>id<69>no 18.3.2021
|
||||
end else begin
|
||||
idKZ:= StrToInt(VarToStr(FieldValues(3)));
|
||||
lSQL:= 'SELECT se._CisloOrg, co.Nazev FROM dbo.TabKmenZbozi kz INNER JOIN dbo.TabStrom s ON (s.Cislo=kz.KmenoveStredisko)';
|
||||
lSQL:= lSQL + ' INNER JOIN dbo.TabStrom_EXT se ON (se.Id=s.Id) INNER JOIN dbo.TabCisOrg co ON (co.CisloOrg=se._CisloOrg)';
|
||||
lSQL:= lSQL + ' WHERE kz.Id=' + IntToStr(idKZ);
|
||||
with Helios.OpenSQL(lSQL) do
|
||||
if (RecordCount=1) then
|
||||
begin
|
||||
if (cOrg <> StrToInt(VarToStr(FieldValues(0)))) then begin
|
||||
PridatPolozku := false;
|
||||
Helios.Error('Tento kanbanbox pat<61><74> jin<69> organizaci. Nelze p<>idat na objedn<64>vku.') ;
|
||||
if (mLog.Lines.Count=0) then
|
||||
mLog.Lines.Append('Kanbanbox pat<61><74> jin<69> organizaci: ' + edtBox.Text)
|
||||
else
|
||||
mLog.Lines.Insert(0, 'Kanbanbox pat<61><74> jin<69> organizaci: ' + edtBox.Text);
|
||||
end;
|
||||
|
||||
end;
|
||||
// konec p<>id<69>no 18.3.2021
|
||||
end;
|
||||
|
||||
if (PridatPolozku) then begin // p<>id<69>no 18.3.2021
|
||||
|
||||
vTable.Append;
|
||||
vTable.Fields.FieldByName('IdKanbanBox').AsString:= edtBox.Text;
|
||||
vTable.Fields.FieldByName('RegCis').AsString:= VarToStr(FieldValues(0));
|
||||
vTable.Fields.FieldByName('Nazev').AsString:= VarToStr(FieldValues(1));
|
||||
vTable.Fields.FieldByName('Mnozstvi').AsInteger:= StrToInt(VarToStr(FieldValues(2)));
|
||||
vTable.Post;
|
||||
lblPocetPol.Caption:= IntToStr(1 + StrToInt(lblPocetPol.Caption));
|
||||
end; // p<>id<69>no 18.3.2021
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
if (mLog.Lines.Count=0) then
|
||||
mLog.Lines.Append('Nebyl nalezen kanban box: ' + edtBox.Text)
|
||||
else
|
||||
mLog.Lines.Insert(0, 'Nebyl nalezen kanban box: ' + edtBox.Text);
|
||||
end;
|
||||
end
|
||||
else
|
||||
if (mLog.Lines.Count=0) then
|
||||
mLog.Lines.Append('Kanban box je ji<6A> zad<61>n: ' + edtBox.Text)
|
||||
else
|
||||
mLog.Lines.Insert(0, 'Kanban box je ji<6A> zad<61>n: ' + edtBox.Text);
|
||||
edtBox.Text:= '';
|
||||
edtBox.SetFocus;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TformKanbanObj.FormClose(Sender: TObject; var Action: TCloseAction);
|
||||
begin
|
||||
if (layName[0]<>'') then
|
||||
LoadKeyboardLayout(@layName, KLF_ACTIVATE or KLF_SETFORPROCESS);
|
||||
if (vTable.Active) then
|
||||
vTable.Close;
|
||||
Action:= caFree;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TformKanbanObj.FormShow(Sender: TObject);
|
||||
var lSQL: string;
|
||||
begin
|
||||
|
||||
if GetKeyboardLayoutName(@layName) then
|
||||
LoadKeyboardLayout('00020409', KLF_ACTIVATE or KLF_SETFORPROCESS);
|
||||
|
||||
lblWork.Visible:= false;
|
||||
cOrg:= -99; // upraveno 18.3.2021
|
||||
jeGenVydej:= false;
|
||||
jeKoopObj:= false;
|
||||
jsouGenVPr := false; // p<>id<69>no 18.3.2021
|
||||
primaObj:= true;
|
||||
if not(vTable.Active) then
|
||||
vTable.Open;
|
||||
vTable.EmptyDataSet;
|
||||
Self.Caption:= 'Kanban objedn<64>vka';
|
||||
edtBox.SetFocus;
|
||||
edtBox.Color:= clWindow;
|
||||
btnGenObj.Enabled:= true;
|
||||
btnGenKoopOrVPr.Enabled:= true; // p<>id<69>no 18.3.2021
|
||||
|
||||
//p<>id<69>no 18.3.2021
|
||||
with Helios.OpenSQL('EXEC dbo.hpx_NTS_Kanban_TextButonuGenVPrNeboKoop') do
|
||||
begin
|
||||
btnGenVPrOrKoopText:=VarToStr(FieldValues(0));
|
||||
btnGenKoopOrVPr.Width := StrToInt(VarToStr(FieldValues(1))) ;
|
||||
btnGenKoopOrVPr.Height := StrToInt(VarToStr(FieldValues(2))) ;
|
||||
btnGenKoopOrVPr.Top := StrToInt(VarToStr(FieldValues(3))) ;
|
||||
btnGenKoopOrVPr.Left := StrToInt(VarToStr(FieldValues(4))) ;
|
||||
btnGenKoopOrVPr.Font.Height := StrToInt(VarToStr(FieldValues(5))) ;
|
||||
end;
|
||||
btnGenKoopOrVPr.Caption := btnGenVPrOrKoopText;
|
||||
// konec p<>id<69>n<EFBFBD> 18.3.2021
|
||||
|
||||
if (idObj>0) then
|
||||
begin
|
||||
primaObj:= false;
|
||||
with Helios.OpenSQL('SELECT CisloOrgKoop, IdVydejObalu, IdKoopObj FROM dbo._TabKanbanObj WHERE Id=' + IntToStr(idObj)) do
|
||||
begin
|
||||
cOrg:= StrToInt(VarToStr(FieldValues(0)));
|
||||
if not VarIsNull(FieldValues(1)) and (VarToStr(FieldValues(1))<>'0') and (VarToStr(FieldValues(1))<>'') then
|
||||
jeGenVydej:= true;
|
||||
if not VarIsNull(FieldValues(2)) and (VarToStr(FieldValues(2))<>'0') and (VarToStr(FieldValues(2))<>'') then
|
||||
jeKoopObj:= true;
|
||||
end;
|
||||
|
||||
// p<>id<69>no 18.3.2021
|
||||
with Helios.OpenSQL('SELECT COUNT(1) FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ' AND IDPrikaz IS NOT NULL' ) do
|
||||
begin
|
||||
if not VarIsNull(FieldValues(0)) and (VarToStr(FieldValues(0))<>'0') and (VarToStr(FieldValues(0))<>'') then
|
||||
jsouGenVPr:= true else jsouGenVPr := false;
|
||||
end;
|
||||
// konec p<>id<69>n<EFBFBD> 18.3.2021
|
||||
|
||||
if (jeKoopObj) or (jeGenVydej) or (jsouGenVPr) then // upraveno 18.3.2021
|
||||
begin
|
||||
btnGenObj.Enabled:= false;
|
||||
edtBox.Enabled:= false;
|
||||
edtBox.Color:= clBtnFace;
|
||||
btnStorno.SetFocus;
|
||||
if ((jeKoopObj) or (jeGenVydej)) then btnGenKoopOrVPr.Enabled := false;
|
||||
|
||||
end;
|
||||
if (jeKoopObj) then
|
||||
begin
|
||||
Self.Caption:= Self.Caption + ' (odesl<73>na)';
|
||||
mLog.Lines.Insert(0, 'Objedn<64>vka byla ji<6A> odesl<73>na...');
|
||||
end
|
||||
else
|
||||
begin
|
||||
if (jeGenVydej) then
|
||||
begin
|
||||
Self.Caption:= Self.Caption + ' (v<>dejka obal<61>)';
|
||||
mLog.Lines.Insert(0, 'Byla ji<6A> vygenerov<6F>na v<>dejka obal<61>...');
|
||||
end
|
||||
else
|
||||
begin
|
||||
// p<>id<69>no 18.3.2021
|
||||
if (jsouGenVPr) then
|
||||
begin
|
||||
Self.Caption:= Self.Caption + ' (v<>robn<62> p<><70>kaz)';
|
||||
mLog.Lines.Insert(0, 'Byl ji<6A> vygenerov<6F>n v<>robn<62> p<><70>kaz...');
|
||||
end;
|
||||
// konec p<>id<69>n<EFBFBD> 18.3.2021
|
||||
end;
|
||||
end;
|
||||
|
||||
with Helios.OpenSQL('SELECT Nazev FROM dbo.TabCisOrg WHERE CisloOrg=' + IntToStr(cOrg)) do
|
||||
lblDodavatel.Caption:= VarToStr(FieldValues(0));
|
||||
|
||||
lSQL:= 'SELECT p.Id, b.Id, kz.RegCis, kz.Nazev1, kze._KanbanMnozstvi FROM dbo._TabKanbanPohyby p';
|
||||
lSQL:= lSQL + ' INNER JOIN dbo._TabKanbanBox b ON (p.IdKanbanBox=b.Id)';
|
||||
lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)';
|
||||
lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id)';
|
||||
lSQL:= lSQL + ' WHERE p.IdKanbanObj=' + IntToStr(idObj) + ' ORDER BY p.Id';
|
||||
with Helios.OpenSQL(lSQL) do
|
||||
begin
|
||||
lblPocetPol.Caption:= IntToStr(RecordCount);
|
||||
grdPolozky.BeginUpdate;
|
||||
First;
|
||||
while not(EOF) do
|
||||
begin
|
||||
vTable.Append;
|
||||
vTable.Fields.FieldByName('IdPohybu').AsString:= VarToStr(FieldValues(0));
|
||||
vTable.Fields.FieldByName('IdKanbanBox').AsString:= VarToStr(FieldValues(1));
|
||||
vTable.Fields.FieldByName('RegCis').AsString:= VarToStr(FieldValues(2));
|
||||
vTable.Fields.FieldByName('Nazev').AsString:= VarToStr(FieldValues(3));
|
||||
vTable.Fields.FieldByName('Mnozstvi').AsInteger:= StrToInt(VarToStr(FieldValues(4)));
|
||||
vTable.Post;
|
||||
Next;
|
||||
end;
|
||||
grdPolozky.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user