1002 lines
34 KiB
ObjectPascal
1002 lines
34 KiB
ObjectPascal
unit frmPrijem1024;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Types, System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, System.ImageList, Vcl.ImgList, Vcl.StdCtrls, Vcl.Buttons,
|
|
Vcl.ComCtrls, ddPlugin_TLB, TBPackageU, Vcl.WinXPickers, Vcl.Mask, RxToolEdit, Vcl.NumberBox, Vcl.Grids, VirtualTrees,
|
|
NxGridView6, NxColumns6, NxControls6, NxCustomGrid6, NxVirtualGrid6, NxGrid6, NxEdit6, MemTableDataEh, Data.DB,
|
|
DBGridEhGrouping, ToolCtrlsEh, DBGridEhToolCtrls, DynVarsEh, EhLibVCL, GridsEh, EhLibMTE, DBAxisGridsEh, DBGridEh, MemTableEh,
|
|
System.MaskUtils;
|
|
|
|
type
|
|
{
|
|
TWideStringHelper = record helper for WideString
|
|
function QuotedString: string; overload;
|
|
end;
|
|
|
|
TMaskedTextHelper = record helper for TMaskedText
|
|
function QuotedString: string; overload;
|
|
function Replace(oldStr, newStr: string): string; overload;
|
|
end;
|
|
}
|
|
|
|
TSortiment = record
|
|
nazev, k1, poleDodav: string;
|
|
dodavatel: integer;
|
|
typSort: byte;
|
|
end;
|
|
|
|
TformPrijem1024 = class(TForm)
|
|
gbDodavatel: TGroupBox;
|
|
gbPolozky: TGroupBox;
|
|
Label1: TLabel;
|
|
dtZavoz: TDateTimePicker;
|
|
btnOK: TButton;
|
|
Label2: TLabel;
|
|
lblDodAdresa: TLabel;
|
|
lblDodMisto: TLabel;
|
|
cbxSortiment: TComboBox;
|
|
Label3: TLabel;
|
|
edtCisloObj: TNumberBox;
|
|
Label4: TLabel;
|
|
btnTisk: TButton;
|
|
btnRozbalit: TButton;
|
|
btnSbalit: TButton;
|
|
btnZavrit: TButton;
|
|
Panel1: TPanel;
|
|
Panel2: TPanel;
|
|
edtNumEditor: TNxEdit6;
|
|
vTab: TMemTableEh;
|
|
ds: TDataSource;
|
|
polGrd: TDBGridEh;
|
|
cbxDodavatel: TComboBox;
|
|
lblDodICO: TLabel;
|
|
lblDodDIC: TLabel;
|
|
vTabPoradiSort: TSingleField;
|
|
vTabPoradi: TSmallintField;
|
|
vTabPoradiSortNazev: TStringField;
|
|
vTabNazev1: TStringField;
|
|
vTabRegCis: TStringField;
|
|
vTabSkupZbo: TStringField;
|
|
vTabIDZboSklad: TIntegerField;
|
|
vTabMnozstvi: TFloatField;
|
|
vTabIDPohybZboziObj: TIntegerField;
|
|
vTabSortiment: TStringField;
|
|
vTabK2: TStringField;
|
|
vTabK1: TStringField;
|
|
btnNactiObj: TButton;
|
|
vTabTypZavozu: TStringField;
|
|
cbZavoz: TComboBox;
|
|
Label5: TLabel;
|
|
vTabPoradiExt: TSingleField;
|
|
vTabK1K2: TStringField;
|
|
btnNuluj: TButton;
|
|
vTabJCbezDaniKc: TSingleField;
|
|
edtDodFak: TEdit;
|
|
Label6: TLabel;
|
|
procedure FormShow(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure cbxSortimentChange(Sender: TObject);
|
|
procedure edtNumEditorClick(Sender: TObject);
|
|
procedure btnRozbalitClick(Sender: TObject);
|
|
procedure btnSbalitClick(Sender: TObject);
|
|
procedure btnOKClick(Sender: TObject);
|
|
procedure polGrdKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure btnZavritClick(Sender: TObject);
|
|
procedure btnTiskClick(Sender: TObject);
|
|
procedure vTabRanoValidate(Sender: TField);
|
|
procedure vTabPoledneValidate(Sender: TField);
|
|
procedure edtCisloObjExit(Sender: TObject);
|
|
procedure btnNactiObjClick(Sender: TObject);
|
|
procedure vTabMnozstviValidate(Sender: TField);
|
|
procedure polGrdDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
|
|
procedure vTabFilterRecord(DataSet: TDataSet; var Accept: Boolean);
|
|
procedure cbZavozChange(Sender: TObject);
|
|
procedure polGrdDataGroupGetRowText(Sender: TCustomDBGridEh; GroupDataTreeNode: TGroupDataTreeNodeEh; var GroupRowText: string);
|
|
procedure btnNulujClick(Sender: TObject);
|
|
private
|
|
cOrg: integer;
|
|
function ZjistiBranchID: Integer;
|
|
function MnozstviKPrijmuSum: Single;
|
|
procedure NactiObjednavku(const idObj: integer); safecall;
|
|
procedure WMGetMinMaxInfo(Var msg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
|
|
public
|
|
Helios: IHelios;
|
|
jeTest: boolean;
|
|
idDZ: integer;
|
|
end;
|
|
|
|
var
|
|
formPrijem1024: TformPrijem1024;
|
|
sortim: TArray<TSortiment>;
|
|
cOrgs: TArray<Integer>;
|
|
cOrgDod, idDZ: integer;
|
|
branchID: integer;
|
|
compName, tabExtOrdInfo, cisloDokl, rDokl: string;
|
|
bidHDCObj: integer;
|
|
|
|
implementation
|
|
uses System.StrUtils, System.DateUtils, helUtils;
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
{$IF CompilerVersion>=34} // Sydney a vys
|
|
{$ENDIF}
|
|
|
|
{
|
|
function TWideStringHelper.QuotedString: string;
|
|
begin
|
|
Result:= string(Self).QuotedString;
|
|
end;
|
|
|
|
function TMaskedTextHelper.QuotedString: string;
|
|
var s: string;
|
|
begin
|
|
s:= Self;
|
|
Result:= s.QuotedString;
|
|
end;
|
|
|
|
function TmaskedTextHelper.Replace(oldStr: string; newStr: string): string;
|
|
var s: string;
|
|
begin
|
|
s:= Self;
|
|
Result:= s.Replace(oldStr, newStr);
|
|
end;
|
|
}
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.WMGetMinMaxInfo(Var msg: TWMGetMinMaxInfo);
|
|
begin
|
|
inherited;
|
|
with msg.MinMaxInfo^.ptMaxTrackSize Do
|
|
begin
|
|
X:= GetDeviceCaps( Canvas.handle, HORZRES ) + (Width - ClientWidth);
|
|
Y:= GetDeviceCaps( Canvas.handle, VERTRES ) + (Height - ClientHeight);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
function TformPrijem1024.MnozstviKPrijmuSum: Single;
|
|
var i: integer;
|
|
begin
|
|
result:= 0;
|
|
if (vTab.RecordCount>0) then
|
|
begin
|
|
i:= vTab.RecNo;
|
|
vTab.DisableControls;
|
|
vTab.First;
|
|
while not(vTab.Eof) do
|
|
begin
|
|
result:= result + vTab.FieldByName('Mnozstvi').AsSingle;
|
|
vTab.Next;
|
|
end;
|
|
vTab.RecNo:= i;
|
|
vTab.EnableControls;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
function TformPrijem1024.ZjistiBranchID: Integer;
|
|
var s: string;
|
|
begin
|
|
result:= -1;
|
|
s:= Helios.Sklad;
|
|
if (LeftStr(s, 3)='005') then
|
|
result:= RightStr(s, 1).ToInteger;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.btnNactiObjClick(Sender: TObject);
|
|
var lSQL, zavoz, k1, k2: string;
|
|
poradiSort, poradiSort2: Single;
|
|
begin
|
|
if (edtCisloObj.Value>0) then
|
|
begin
|
|
|
|
if not(vTab.Active) then
|
|
vTab.Open;
|
|
|
|
lSQL:= 'SELECT TOP(1) CisloOrg FROM ' + tblDZ + ' WHERE RadaDokladu LIKE N''9%0'' AND IDSklad=N' + Helios.Sklad.QuotedString + ' AND PoradoveCislo=' + edtCisloObj.ValueInt.ToString + ' ORDER BY DatPorizeni DESC';
|
|
cOrgDod:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
|
|
|
|
lSQL:= 'SELECT p.ID, p.IDZboSklad, p.Nazev1, (p.Mnozstvi-p.MnOdebrane-p.MnozstviStorno) AS Mnozstvi, p.SkupZbo, p.RegCis, p.Poradi, s.K1, s.K2, p.JCbezDaniKC';
|
|
lSQL:= lSQL + ', s.Nazev AS NazevSortim, ISNULL(pe._typzavozu,0) AS TypZavozu, ISNULL(sore.';
|
|
case branchID of
|
|
1: lSQL:= lSQL + '_PoradiObj_Klas1';
|
|
2: lSQL:= lSQL + '_PoradiObj_MozPi';
|
|
3: lSQL:= lSQL + '_PoradiObj_MozVod';
|
|
else
|
|
lSQL:= lSQL + '_priorita';
|
|
end;
|
|
lSQL:= lSQL + ', ISNULL(sore._priorita, 999)) AS Poradi FROM ' + tblDZ + ' d INNER JOIN ' + tblPZ;
|
|
lSQL:= lSQL + ' p ON (p.IDDoklad=d.ID) INNER JOIN ' + tblSS + ' s ON (s.ID=p.IDZboSklad) INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi)' + ' LEFT JOIN ' + tblSortim;
|
|
lSQL:= lSQL + ' sor ON (sor.ID=k.IDSortiment) LEFT JOIN ' + tblSortimE + ' sore ON (sore.ID=sor.ID) LEFT JOIN ' + tblPZe + ' pe ON (pe.ID=p.ID) WHERE d.DruhPohybuZbo=6';
|
|
lSQL:= lSQL + ' AND d.Splneno=0 AND d.PoradoveCislo=' + edtCisloObj.ValueInt.ToString;
|
|
lSQL:= lSQL + ' AND d.IDSklad=N' + Helios.Sklad.QuotedString + ' AND (p.Mnozstvi-p.MnOdebrane-p.MnozstviStorno)>0 ORDER BY';
|
|
lSQL:= lSQL + ' p.Poradi';
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
|
|
k1:= VarToStr(FieldByName('K1').Value);
|
|
k2:= VarToStr(FieldByName('K2').Value);
|
|
|
|
lSQL:= 'SELECT ISNULL(se.';
|
|
case branchID of
|
|
1: lSQL:= lSQL + '_PoradiObj_Klas1';
|
|
2: lSQL:= lSQL + '_PoradiObj_MozPi';
|
|
3: lSQL:= lSQL + '_PoradiObj_MozVod';
|
|
else
|
|
lSQL:= lSQL + '_priorita';
|
|
end;
|
|
lSQL:= lSQL + ', ISNULL(se._priorita, 999)) FROM ' + tblSortim + ' s LEFT JOIN ' + tblSortimE + ' se ON (se.ID=s.ID) WHERE s.K1=N' + k1.QuotedString + ' AND s.K2 IS NULL';
|
|
poradiSort:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
|
|
lSQL:= 'SELECT ISNULL(se.';
|
|
case branchID of
|
|
1: lSQL:= lSQL + '_PoradiObj_Klas1';
|
|
2: lSQL:= lSQL + '_PoradiObj_MozPi';
|
|
3: lSQL:= lSQL + '_PoradiObj_MozVod';
|
|
else
|
|
lSQL:= lSQL + '_priorita';
|
|
end;
|
|
lSQL:= lSQL + ', ISNULL(se._priorita, 999)) FROM ' + tblSortim + ' s LEFT JOIN ' + tblSortimE + ' se ON (se.ID=s.ID) WHERE s.K1=N' + k1.QuotedString;
|
|
lSQL:= lSQL + ' AND s.K2=N' + k2.QuotedString + ' AND s.K3 IS NULL';
|
|
poradiSort2:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
|
|
vTab.Append;
|
|
|
|
vTab.FieldByName('IDPohybZboziObj').AsInteger:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
|
vTab.FieldByName('IDZboSklad').AsInteger:= VarToStr(FieldByNameValues('IDZboSklad')).ToInteger;
|
|
if (VarIsNull(FieldByNameValues('Poradi'))) then
|
|
vTab.FieldByName('Poradi').AsSingle:= 1
|
|
else
|
|
vTab.FieldByName('Poradi').AsSingle:= VarToStr(FieldByNameValues('Poradi')).ToSingle;
|
|
vTab.FieldByName('JCbezDaniKc').AsSingle:= VarToStr(FieldByNameValues('JCbezDaniKC')).ToSingle;
|
|
vTab.FieldByName('SkupZbo').AsString:= VarToStr(FieldByNameValues('SkupZbo'));
|
|
vTab.FieldByName('RegCis').AsString:= VarToStr(FieldByNameValues('RegCis'));
|
|
vTab.FieldByName('Nazev1').AsString:= VarToStr(FieldByNameValues('Nazev1'));
|
|
vTab.FieldByName('Mnozstvi').AsExtended:= VarToStr(FieldByNameValues('Mnozstvi')).ToExtended;
|
|
vTab.FieldByName('K1').AsString:= k1;
|
|
vTab.FieldByName('K2').AsString:= k2;
|
|
vTab.FieldByName('K1K2').AsString:= k1 + k2;
|
|
vTab.FieldByName('Sortiment').AsString:= VarToStr(FieldByNameValues('NazevSortim'));
|
|
vTab.FieldByName('PoradiSortNazev').AsString:= k1 + k2 + VarToStr(FieldByNameValues('NazevSortim'));
|
|
if (VarIsNull(FieldByNameValues('PoradiObj'))) then
|
|
vTab.FieldByName('PoradiExt').AsSingle:= 1
|
|
else
|
|
vTab.FieldByName('PoradiExt').AsSingle:= VarToStr(FieldByNameValues('PoradiObj')).ToSingle;
|
|
zavoz:= VarToStr(FieldByNameValues('TypZavozu'));
|
|
if (zavoz='1') then
|
|
vTab.FieldByName('TypZavozu').AsString:= 'R';
|
|
if (zavoz='2') then
|
|
vTab.FieldByName('TypZavozu').AsString:= 'P';
|
|
|
|
vTab.Post;
|
|
Next;
|
|
end;
|
|
|
|
vTab.SortByFields('PoradiSortNazev,PoradiExt,K1,SkupZbo,RegCis');
|
|
|
|
end;
|
|
|
|
end
|
|
else
|
|
begin
|
|
Helios.Error(#1'Zadejte číslo objednávky'#1);
|
|
if (edtCisloObj.CanFocus) then
|
|
edtCisloObj.SetFocus;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.btnNulujClick(Sender: TObject);
|
|
var i: integer;
|
|
begin
|
|
if (vTab.RecordCount>0) then
|
|
begin
|
|
i:= vTab.RecNo;
|
|
vTab.DisableControls;
|
|
vTab.First;
|
|
while not(vTab.Eof) do
|
|
begin
|
|
vTab.Edit;
|
|
vTab.FieldByName('Mnozstvi').AsInteger:= 0;
|
|
vTab.Post;
|
|
vTab.Next;
|
|
end;
|
|
vTab.RecNo:= i;
|
|
vTab.EnableControls;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.btnOKClick(Sender: TObject);
|
|
var oldRec, idHlava, idTiskForm: integer;
|
|
lSQL: string;
|
|
begin
|
|
cisloDokl:= '';
|
|
idTiskForm:= -25;
|
|
cOrgDod:= -1;
|
|
|
|
if (vTab.RecordCount>0) then
|
|
begin
|
|
lSQL:= 'IF OBJECT_ID(N''dbo._temp_TabPrijemH'') IS NOT NULL' + CRLF + ' DELETE FROM dbo._temp_TabPrijemH WHERE Autor=SUSER_SNAME()' + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo._temp_TabPrijemR'') IS NOT NULL' + CRLF + ' IF OBJECT_ID(N''dbo._temp_TabPrijemH'') IS NOT NULL' + CRLF + ' DELETE FROM dbo._temp_TabPrijemR';
|
|
lSQL:= lSQL + ' WHERE IDHlava NOT IN (SELECT ID FROM dbo._temp_TabPrijemH)' + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo._temp_TabPrijemH'') IS NOT NULL' + CRLF + ' IF NOT EXISTS(SELECT ID FROM dbo._temp_TabPrijemH)' + CRLF + ' DROP TABLE dbo._temp_TabPrijemH' + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo._temp_TabPrijemR'') IS NOT NULL' + CRLF + ' IF NOT EXISTS(SELECT ID FROM dbo._temp_TabPrijemR)' + CRLF + ' DROP TABLE dbo._temp_TabPrijemR';
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabPrijemH'') IS NOT NULL DROP TABLE #TabPrijemH' + CRLF;
|
|
lSQL:= lSQL + 'CREATE TABLE #TabPrijemH (ID INT IDENTITY(1,1) NOT NULL, Sklad NVARCHAR(30), CisloOrg INT NOT NULL, Datum DATETIME, DodFak NVARCHAR(20), Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME())';
|
|
if (jeTest) then
|
|
lSQL:= lSQL.Replace('tempdb..#T', 'dbo._temp_T').Replace('#TabP', 'dbo._temp_TabP');
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
lSQL:= 'INSERT #TabPrijemH (CisloOrg, Sklad, Datum, DodFak) SELECT ISNULL(TRY_PARSE(N' + cOrgDod.ToString.Replace(';', '').Replace('-','').Replace(' ', '').QuotedString;
|
|
lSQL:= lSQL + ' AS INT), 0), N' + Helios.Sklad.QuotedString + ', CONVERT(datetime, N' + FormatDateTime('d.m.yyyy', dtZavoz.Date).QuotedString + ', 104), N' + edtDodFak.Text.QuotedString;
|
|
lSQL:= lSQL + CRLF + 'SELECT SCOPE_IDENTITY()';
|
|
if (jeTest) then
|
|
lSQL:= lSQL.Replace('tempdb..#T', 'dbo._temp_T').Replace('#TabP', 'dbo._temp_TabP');
|
|
with Helios.OpenSQL(lSQL) do
|
|
idHlava:= VarToStr(FieldValues(0)).ToInteger;
|
|
|
|
|
|
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabPrijemR'') IS NOT NULL' + CRLF + ' DROP TABLE #TabPrijemR' + CRLF;
|
|
lSQL:= lSQL + 'CREATE TABLE #TabPrijemR (ID INT IDENTITY(1,1) NOT NULL, IDHlava INT NOT NULL, IDZboSklad INT NOT NULL, Mnozstvi NUMERIC(12,2) NOT NULL DEFAULT 0.0';
|
|
lSQL:= lSQL + ', JCbezDaniKc NUMERIC(19,6) NOT NULL DEFAULT 0.0, IDPohybZbozi INT NOT NULL, Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME())';
|
|
if (jeTest) then
|
|
lSQL:= lSQL.Replace('tempdb..#T', 'dbo._temp_T').Replace('#TabP', 'dbo._temp_TabP');
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
oldRec:= vTab.RecNo;
|
|
vTab.DisableControls;
|
|
vTab.First;
|
|
while not(vTab.Eof) do
|
|
begin
|
|
if (vTab.FieldByName('Mnozstvi').AsSingle>0) then
|
|
begin
|
|
lSQL:= 'INSERT #TabPrijemR (IDHlava, IDZboSklad, Mnozstvi, IDPohybZbozi, JCbezDaniKc)' + CRLF + ' SELECT ' + idHlava.ToString + ', ' + vTab.FieldByName('IDZboSklad').AsString + ', ';
|
|
lSQL:= lSQL + vTab.FieldByName('Mnozstvi').AsSingle.ToString.Replace(',', '.') + ', ' + vTab.FieldByName('IDPohybZboziObj').AsSingle.ToString;
|
|
lSQL:= lSQL + ', ROUND(' + vTab.FieldByName('JCbezDaniKc').AsSingle.ToString.Replace(',', '.') + ', 3)';
|
|
if (jeTest) then
|
|
lSQL:= lSQL.Replace('tempdb..#T', 'dbo._temp_T').Replace('#TabP', 'dbo._temp_TabP');
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
vTab.Next;
|
|
end;
|
|
vTab.RecNo:= oldRec;
|
|
vTab.EnableControls;
|
|
|
|
idDZ:= 0;
|
|
if not(jeTest) and (MnozstviKPrijmuSum>0) then
|
|
begin
|
|
helUtils.waitStart(nil, 'Generování příjemky...', 0, 0);
|
|
lSQL:= 'DECLARE @i INT=0' + CRLF + 'IF OBJECT_ID(N''dbo.ep_HDC_App_Prijemka'', N''P'') IS NOT NULL' + CRLF + ' EXEC dbo.ep_HDC_App_Prijemka @idDZ=@i OUT, @Sklad=N' + Helios.Sklad.QuotedString;
|
|
lSQL:= lSQL + CRLF + 'SELECT @i';
|
|
try
|
|
with Helios.OpenSQL(lSQL) do
|
|
idDZ:= VarToStr(FieldValues(0)).ToInteger;
|
|
cisloDokl:= helUtils.getHeliosStrVal(Helios, '', 'SELECT PoradoveCislo FROM ' + tblDZ + ' WHERE ID=' + idDZ.ToString);
|
|
idTiskForm:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT TiskovyForm FROM ' + tblDDZ + ' WHERE ID=' + idDZ.ToString);
|
|
except on E:Exception do
|
|
Helios.Error(#1'Chyba generování příjemky' + #1 + CRLF + E.Message);
|
|
end;
|
|
helUtils.waitEnd;
|
|
end;
|
|
end;
|
|
|
|
|
|
lSQL:= '';
|
|
if (Sender.ToString='TButton') then
|
|
lSQL:= (Sender as TButton).Name;
|
|
|
|
if (lSQL='btnOK') then
|
|
Close;
|
|
if (lSQL='btnTisk') and (idDZ>0) then
|
|
begin
|
|
Helios.Info(#1'Byla uložena příjemka - č. ' + cisloDokl + #1);
|
|
Helios.PrintForm2(idTiskForm, 'ID=' + idDZ.ToString);
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.btnRozbalitClick(Sender: TObject);
|
|
begin
|
|
polGrd.DataGrouping.ActiveGroupLevels[0].ExpandNodes;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.btnSbalitClick(Sender: TObject);
|
|
begin
|
|
polGrd.DataGrouping.ActiveGroupLevels[0].CollapseNodes;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.btnTiskClick(Sender: TObject);
|
|
var lSQL: string;
|
|
i: integer;
|
|
begin
|
|
btnOKClick(Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.btnZavritClick(Sender: TObject);
|
|
begin
|
|
if (Helios.YesNo('Ukončit bez uložení příjemky ?', false)) then
|
|
Close;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.NactiObjednavku(const idObj: integer);
|
|
var lSQL, sort, k1, k2, cZbo, flt: string;
|
|
idSort, idx: integer;
|
|
mnR, mnP: Single;
|
|
extOrdInfo: boolean;
|
|
poradiSort, poradiSort2: Single;
|
|
begin
|
|
lSQL:= '';
|
|
|
|
if not(vTab.Active) then
|
|
vTab.Open;
|
|
|
|
idx:= cbxSortiment.ItemIndex;
|
|
if (idObj>0) then
|
|
begin
|
|
k1:= sortim[idx].k1;
|
|
btnNactiObj.Enabled:= false;
|
|
|
|
lSQL:= 'SELECT o.Nazev, o.UliceSCisly, o.PSC, o.Misto FROM ' + tblDZ + ' d INNER JOIN ' + tblCOrg + ' o ON (o.CisloOrg=d.CisloOrg) WHERE d.ID=' + idObj.ToString;
|
|
cbxDodavatel.Items.Clear;
|
|
cbxDodavatel.Items.Add(helUtils.getHeliosStrVal(Helios, '', lSQL));
|
|
cbxDodavatel.ItemIndex:= 0;
|
|
|
|
lSQL:= 'SELECT o.UliceSCisly, o.PSC, o.Misto, o.ICO, o.DIC, d.CisloOrg, d.Splatnost FROM ' + tblDZ + ' d INNER JOIN ' + tblCOrg + ' o ON (o.CisloOrg=d.CisloOrg) WHERE d.ID=' + idObj.ToString;
|
|
with Helios.OpenSQL(lSQL) do
|
|
begin
|
|
First;
|
|
cOrgDod:= VarToStr(FieldByNameValues('CisloOrg')).ToInteger;
|
|
lblDodAdresa.Caption:= VarToStr(FieldByNameValues('UliceSCisly'));
|
|
lblDodICO.Caption:= 'IČ ' + VarToStr(FieldByNameValues('ICO'));
|
|
lblDodDIC.Caption:= 'DIČ ' + VarToStr(FieldByNameValues('DIC'));
|
|
lblDodMisto.Caption:= Trim(VarToStr(FieldByNameValues('PSC')) + ' ' + VarToStr(FieldByNameValues('Misto')));
|
|
dtZavoz.DateTime:= StrToDate(VarToStr(FieldByNameValues('Splatnost')))
|
|
end;
|
|
|
|
lSQL:= 'SELECT p.*, ISNULL(so.Nazev,N'''') AS NazevSort, ISNULL(so.K1, N'''') AS K1, ISNULL(so.K2, N'''') AS K2, (p.Mnozstvi-p.MnOdebrane-p.MnozstviStorno) AS MnozstviZustatek';
|
|
lSQL:= lSQL + ', ISNULL(pe._typzavozu, 0) AS TypZavozu, p.JCbezDaniKC, ISNULL(soe.';
|
|
case branchID of
|
|
1: lSQL:= lSQL + '_PoradiObj_Klas1';
|
|
2: lSQL:= lSQL + '_PoradiObj_MozPi';
|
|
3: lSQL:= lSQL + '_PoradiObj_MozVod';
|
|
else
|
|
lSQL:= lSQL + '_priorita';
|
|
end;
|
|
lSQL:= lSQL + ', ISNULL(soe._priorita, 999)) AS PoradiSort, ISNULL(ke._poradivsortimentu, 999) AS PoradiVSort FROM ' + tblPZ + ' p LEFT JOIN ' + tblPZe + ' pe ON (pe.ID=p.ID) INNER JOIN ';
|
|
lSQL:= lSQL + tblDZ + ' d ON (d.ID=p.IDDoklad) INNER JOIN ' + tblSS + ' s ON (s.ID=p.IDZboSklad) INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblSortim + ' so ON (so.ID=k.IdSortiment) LEFT JOIN ' + tblSortimE + ' soe ON (soe.ID=so.ID)';
|
|
lSQL:= lSQL + ' WHERE d.ID=' + idObj.ToString + ' AND (p.Mnozstvi-p.MnOdebrane-p.MnozstviStorno)>0 AND d.Splneno=0 AND d.DruhPohybuZbo=6';
|
|
lSQL:= lSQL + ' AND d.RadaDokladu=N' + ('9' + branchID.ToString + '0').QuotedString;
|
|
lSQL:= lSQL + ' AND ISNULL(pe._typzavozu,0)=' + (1+cbZavoz.ItemIndex).ToString;
|
|
lSQL:= lSQL + ' ORDER BY (p.SkupZbo+p.RegCis)';
|
|
end
|
|
else
|
|
if (edtCisloObj.ValueInt>0) then
|
|
begin
|
|
k1:= sortim[idx].k1;
|
|
|
|
lSQL:= 'SELECT p.*, ISNULL(so.Nazev,N'''') AS NazevSort, ISNULL(so.K1, N'''') AS K1, ISNULL(so.K2, N'''') AS K2, (p.Mnozstvi-p.MnOdebrane-p.MnozstviStorno) AS MnozstviZustatek';
|
|
lSQL:= lSQL + ', ISNULL(pe._typzavozu, 0) AS TypZavozu, p.JCbezDaniKC, ISNULL(soe.';
|
|
case branchID of
|
|
1: lSQL:= lSQL + '_PoradiObj_Klas1';
|
|
2: lSQL:= lSQL + '_PoradiObj_MozPi';
|
|
3: lSQL:= lSQL + '_PoradiObj_MozVod';
|
|
else
|
|
lSQL:= lSQL + '_priorita';
|
|
end;
|
|
lSQL:= lSQL + ', ISNULL(soe._priorita, 999)) AS PoradiSort, ISNULL(ke._poradivsortimentu, 999) AS PoradiVSort FROM ' + tblPZ + ' p LEFT JOIN ' + tblPZe + ' pe ON (pe.ID=p.ID) INNER JOIN ';
|
|
lSQL:= lSQL + tblDZ + ' d ON (d.ID=p.IDDoklad) INNER JOIN ' + tblSS + ' s ON (s.ID=p.IDZboSklad) INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblSortim + ' so ON (so.ID=k.IdSortiment) LEFT JOIN ' + tblSortimE + ' soe ON (soe.ID=so.ID)';
|
|
lSQL:= lSQL + ' WHERE d.RadaDokladu=N' + ('9' + branchID.ToString + '0').QuotedString;
|
|
lSQL:= lSQL + ' AND (p.Mnozstvi-p.MnOdebrane-p.MnozstviStorno)>0 AND d.Splneno=0 AND d.DruhPohybuZbo=6 AND d.PoradoveCislo=' + edtCisloObj.ValueInt.ToString;
|
|
lSQL:= lSQL + ' AND d.IDSklad=N' + Helios.Sklad.QuotedString;
|
|
lSQL:= lSQL + ' AND ISNULL(pe._typzavozu,0)=' + (1+cbZavoz.ItemIndex).ToString;
|
|
lSQL:= lSQL + ' ORDER BY (p.SkupZbo+p.RegCis)';
|
|
end;
|
|
|
|
if (lSQL<>'') then
|
|
begin
|
|
vTab.EmptyTable;
|
|
vTab.DisableControls;
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
k1:= VarToStr(FieldByNameValues('K1'));
|
|
k2:= VarToStr(FieldByNameValues('K2'));
|
|
|
|
lSQL:= 'SELECT ISNULL(se.';
|
|
case branchID of
|
|
1: lSQL:= lSQL + '_PoradiObj_Klas1';
|
|
2: lSQL:= lSQL + '_PoradiObj_MozPi';
|
|
3: lSQL:= lSQL + '_PoradiObj_MozVod';
|
|
else
|
|
lSQL:= lSQL + '_priorita';
|
|
end;
|
|
lSQL:= lSQL + ', ISNULL(se._priorita, 999)) FROM ' + tblSortim + ' s LEFT JOIN ' + tblSortimE + ' se ON (se.ID=s.ID) WHERE s.K1=N' + k1.QuotedString + ' AND s.K2 IS NULL';
|
|
poradiSort:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
|
|
lSQL:= 'SELECT ISNULL(se.';
|
|
case branchID of
|
|
1: lSQL:= lSQL + '_PoradiObj_Klas1';
|
|
2: lSQL:= lSQL + '_PoradiObj_MozPi';
|
|
3: lSQL:= lSQL + '_PoradiObj_MozVod';
|
|
else
|
|
lSQL:= lSQL + '_priorita';
|
|
end;
|
|
lSQL:= lSQL + ', ISNULL(se._priorita, 999)) FROM ' + tblSortim + ' s LEFT JOIN ' + tblSortimE + ' se ON (se.ID=s.ID) WHERE s.K1=N' + k1.QuotedString;
|
|
lSQL:= lSQL + ' AND s.K2=N' + k2.QuotedString + ' AND s.K3 IS NULL';
|
|
poradiSort2:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
|
|
vTab.Append;
|
|
vTab.FieldByName('Poradi').AsString:= VarToStr(FieldByNameValues('Poradi'));
|
|
vTab.FieldByName('PoradiSort').AsSingle:= VarToStr(FieldByNameValues('PoradiVSort')).ToSingle;
|
|
if (VarIsNull(FieldByNameValues('Poradi'))) then
|
|
vTab.FieldByName('PoradiExt').AsExtended:= 1
|
|
else
|
|
vTab.FieldByName('PoradiExt').AsSingle:= VarToStr(FieldByNameValues('Poradi')).ToSingle;
|
|
vTab.FieldByName('IDPohybZboziObj').AsString:= VarToStr(FieldByNameValues('ID'));
|
|
vTab.FieldByName('IDZboSklad').AsString:= VarToStr(FieldByNameValues('IDZboSklad'));
|
|
vTab.FieldByName('JCbezDaniKc').AsSingle:= VarToStr(FieldByName('JCbezDaniKC').Value).ToSingle;
|
|
vTab.FieldByName('Sortiment').AsString:= VarToStr(FieldByNameValues('NazevSort'));
|
|
vTab.FieldByName('K1').AsString:= k1;
|
|
vTab.FieldByName('K2').AsString:= k2;
|
|
vTab.FieldByName('K1K2').AsString:= k1 + k2;
|
|
vTab.FieldByName('PoradiSortNazev').AsString:= ((poradiSort*1000.0)+poradiSort2).ToString.Replace(',', '.') + ' ' + VarToStr(FieldByNameValues('NazevSort'));
|
|
vTab.FieldByName('TypZavozu').AsString:= '';
|
|
if (VarToStr(FieldByNameValues('TypZavozu'))='1') then
|
|
vTab.FieldByName('TypZavozu').AsString:= 'R';
|
|
if (VarToStr(FieldByNameValues('TypZavozu'))='2') then
|
|
vTab.FieldByName('TypZavozu').AsString:= 'P';
|
|
vTab.FieldByName('SkupZbo').AsString:= VarToStr(FieldByNameValues('SkupZbo'));
|
|
vTab.FieldByName('RegCis').AsString:= VarToStr(FieldByNameValues('RegCis'));
|
|
vTab.FieldByName('Nazev1').AsString:= VarToStr(FieldByNameValues('Nazev1'));
|
|
vTab.FieldByName('Mnozstvi').AsString:= VarToStr(FieldByNameValues('MnozstviZustatek'));
|
|
vTab.Post;
|
|
Next;
|
|
end;
|
|
end;
|
|
vTab.EnableControls;
|
|
end;
|
|
|
|
helUtils.waitEnd;
|
|
|
|
polGrd.Options:= polGrd.Options + [dgEditing];
|
|
if not(vTab.Active) then
|
|
polGrd.Options:= polGrd.Options - [dgEditing]
|
|
else
|
|
if (vTab.RecordCount=0) then
|
|
polGrd.Options:= polGrd.Options - [dgEditing];
|
|
|
|
vTab.SortByFields('PoradiSortNazev,PoradiSort,SkupZbo,RegCis');
|
|
|
|
if (idObj=0) and (k1='001') then
|
|
vTab.Locate('K1;K2', VarArrayOf(['001','']), [])
|
|
else
|
|
vTab.First;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.polGrdDataGroupGetRowText(Sender: TCustomDBGridEh; GroupDataTreeNode: TGroupDataTreeNodeEh; var GroupRowText: string);
|
|
var s, s2: string;
|
|
i: integer;
|
|
errReverse: boolean;
|
|
begin
|
|
errReverse:= false;
|
|
s2:= '(123)';
|
|
s2:= ReverseString(s2);
|
|
if (s2.EndsWith('(')) then
|
|
errReverse:= true;
|
|
|
|
s:= GroupRowText.Replace('PoradiSortNazev: ', '');
|
|
if (s.IndexOf(' ')>-1) then
|
|
s:= MidStr(s, s.IndexOf(' ')+1, s.Length).Trim;
|
|
if (s.EndsWith(')')) then
|
|
begin
|
|
s:= ReverseString(s);
|
|
if (errReverse) then
|
|
i:= s.IndexOf('(')
|
|
else
|
|
i:= s.IndexOf(')');
|
|
if (i>-1) then
|
|
s:= MidStr(s, i+2, s.Length);
|
|
s:= ReverseString(s).Trim;
|
|
end;
|
|
s2:= helUtils.getHeliosStrVal(Helios, '', 'SELECT TOP(1) KatAllTecky FROM ' + tblSortim + ' WHERE Nazev=N' + s.QuotedString);
|
|
GroupRowText:= IfThen(s2<>'', s2 + ' ', '') + s;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.polGrdDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
|
|
begin
|
|
{
|
|
if (Column.FieldName='Mnozstvi') then
|
|
if (vTab.FieldByName('TypZavozu').AsString='P') then
|
|
polGrd.Canvas.Brush.Color:= $00F7EE8A;
|
|
if (Column.FieldName='Mnozstvi') then
|
|
polGrd.DefaultDrawColumnCell(Rect, DataCol, Column, State);
|
|
}
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.polGrdKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
var i, i2: integer;
|
|
lSQL: string;
|
|
begin
|
|
if (Key=Ord('p')) or (Key=Ord('P')) then
|
|
begin
|
|
i:= polGrd.DataSource.DataSet.FieldByName('IDKZ').AsInteger;
|
|
if (i>0) then
|
|
begin
|
|
lSQL:= 'TabPohybyZbozi.IDZboSklad=(SELECT ID FROM ' + tblSS + ' WHERE IDKmenZbozi=' + i.ToString + ' AND IDSklad=N' + Helios.Sklad.QuotedString + ')';
|
|
Helios.OpenBrowse(66, lSQL);
|
|
end;
|
|
end;
|
|
|
|
if (Key=Ord('o')) or (Key=Ord('O')) then
|
|
begin
|
|
i:= polGrd.DataSource.DataSet.FieldByName('IDKZ').AsInteger;
|
|
i2:= 0;
|
|
with Helios.OpenSQL('SELECT 100000+Cislo FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_HDC_StareProdeje_Pol''') do
|
|
if (RecordCount=1) then
|
|
i2:= VarToStr(FieldValues(0)).ToInteger;
|
|
|
|
if (i2>0) then
|
|
begin
|
|
lSQL:= 'hvw_HDC_StareProdeje_Pol.IDSklad=N' + Helios.Sklad.QuotedString + ' AND hvw_HDC_StareProdeje_Pol.SkupZbo=N';
|
|
lSQL:= lSQL + polGrd.DataSource.DataSet.FieldByName('SkupZbo').AsString.QuotedString + ' AND hvw_HDC_StareProdeje_Pol.RegCis=N';
|
|
lSQL:= lSQL + polGrd.DataSource.DataSet.FieldByName('RegCis').AsString.QuotedString;
|
|
lSQL:= lSQL + ' AND hvw_HDC_StareProdeje_Pol.DruhPohybuZbo IN (2,4)';
|
|
Helios.OpenBrowse(i2, lSQL);
|
|
end;
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.vTabFilterRecord(DataSet: TDataSet; var Accept: Boolean);
|
|
var t: string;
|
|
begin
|
|
if (vTab.RecordCount>0) then
|
|
begin
|
|
t:= vTab.FieldByName('TypZavozu').AsString;
|
|
case cbZavoz.ItemIndex of
|
|
0: Accept:= (t='R');
|
|
1: Accept:= (t='P');
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.vTabMnozstviValidate(Sender: TField);
|
|
var canCont: Boolean;
|
|
mv, mm: Single;
|
|
begin
|
|
canCont:= true;
|
|
mv:= TField(Sender).AsFloat;
|
|
if (mv<0) then
|
|
canCont:=false;
|
|
|
|
if not(canCont) then
|
|
TField(Sender).DataSet.Cancel;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.vTabPoledneValidate(Sender: TField);
|
|
var canCont: Boolean;
|
|
mv, mm: Single;
|
|
begin
|
|
canCont:= true;
|
|
mv:= TField(Sender).AsFloat;
|
|
mm:= TField(Sender).DataSet.FieldByName('Minimum').AsSingle;
|
|
|
|
if (TField(Sender).AsInteger<>0) and (TField(Sender).DataSet.FieldByName('JenRano').AsInteger=1) then
|
|
begin
|
|
TField(Sender).DataSet.Cancel;
|
|
Helios.Error(#1'Položka "' + TField(Sender).DataSet.FieldByName('RegCis').AsString +'" je určena jen pro ranní závoz.'#1);
|
|
canCont:= false;
|
|
end;
|
|
|
|
if (canCont) and (TField(Sender).AsInteger<0) then
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error(#1'Položka "' + TField(Sender).DataSet.FieldByName('RegCis').AsString +'" je určena jen pro ranní závoz.'#1);
|
|
end;
|
|
|
|
if (canCont) and (mv<mm) then
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error(#1'Minimální množství je ' + FormatFloat('#,##0.###', mm) + #1);
|
|
end;
|
|
|
|
if not(canCont) then
|
|
TField(Sender).DataSet.Cancel;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.vTabRanoValidate(Sender: TField);
|
|
var canCont: Boolean;
|
|
mv, mm: Single;
|
|
begin
|
|
canCont:= true;
|
|
mv:= TField(Sender).AsFloat;
|
|
mm:= TField(Sender).DataSet.FieldByName('Minimum').AsSingle;
|
|
|
|
if (TField(Sender).AsInteger<0) then
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error(#1'Lze zadávat jen kladná čísla.'#1);
|
|
end;
|
|
|
|
if (canCont) and (mv<mm) then
|
|
begin
|
|
canCont:= false;
|
|
Helios.Error(#1'Minimální množství je ' + FormatFloat('#,##0.###', mm) + #1);
|
|
end;
|
|
|
|
if not(canCont) then
|
|
TField(Sender).DataSet.Cancel;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.cbxSortimentChange(Sender: TObject);
|
|
var lSQL: string;
|
|
idx: integer;
|
|
begin
|
|
lblDodAdresa.Caption:='';
|
|
lblDodMisto.Caption:= '';
|
|
|
|
idx:= cbxSortiment.ItemIndex;
|
|
|
|
cbxDodavatel.Items.Clear;
|
|
lSQL:= 'SELECT CisloOrg, Nazev, UliceSCisly, Misto, ICO, DIC FROM ' + tblCOrg + ' c INNER JOIN ' + tblCOrgE + ' ce ON (ce.ID=c.ID) WHERE ce.';
|
|
lSQL:= lSQL + sortim[idx].poleDodav + '=1';
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
SetLength(cOrgs, RecordCount);
|
|
First;
|
|
idx:= 0;
|
|
while not(EOF) do
|
|
begin
|
|
cbxDodavatel.Items.Add(VarToStr(FieldValues(1)));
|
|
cOrgs[idx]:= VarToStr(FieldValues(0)).ToInteger;
|
|
Inc(idx);
|
|
Next;
|
|
end;
|
|
end;
|
|
|
|
cbxDodavatel.ItemIndex:= helUtils.IfThenInt(cbxDodavatel.Items.Count=1, 0, -1);
|
|
polGrd.Enabled:= (cbxDodavatel.ItemIndex>-1);
|
|
|
|
{
|
|
polGrd.Options:= polGrd.Options + [dgEditing];
|
|
if not(vTab.Active) then
|
|
polGrd.Options:= polGrd.Options - [dgEditing]
|
|
else
|
|
if (vTab.RecordCount=0) then
|
|
polGrd.Options:= polGrd.Options - [dgEditing];
|
|
}
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.cbZavozChange(Sender: TObject);
|
|
begin
|
|
NactiObjednavku(idDZ);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.edtCisloObjExit(Sender: TObject);
|
|
begin
|
|
if (edtCisloObj.Value>0) then
|
|
NactiObjednavku(0);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.edtNumEditorClick(Sender: TObject);
|
|
begin
|
|
edtNumEditor.Visible:= true;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
if (vTab.Active) then
|
|
vTab.Close;
|
|
if (tabExtOrdInfo<>'') and not(jeTest) then
|
|
Helios.ExecSQL('IF OBJECT_ID(N' + tabExtOrdInfo.QuotedString + ', N''U'') IS NOT NULL DROP TABLE ' + tabExtOrdInfo);
|
|
Action:= caFree;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformPrijem1024.FormShow(Sender: TObject);
|
|
var rHeight, i: integer;
|
|
lSQL: string;
|
|
rct: TRect;
|
|
begin
|
|
compName:= GetEnvironmentVariable('COMPUTERNAME');
|
|
UseLatestCommonDialogs:= true;
|
|
|
|
self.SetBounds(Screen.WorkAreaRect.Left, 0, Screen.WorkAreaRect.Width, Screen.WorkAreaRect.Height);
|
|
|
|
// rct.Create(0, 0, 0, 0);
|
|
// rct:= BoundsRect;
|
|
SetBounds( Left - ClientOrigin.X,
|
|
Top - ClientOrigin.Y,
|
|
GetDeviceCaps( Canvas.handle, HORZRES ) + (Width - ClientWidth),
|
|
GetDeviceCaps( Canvas.handle, VERTRES ) + (Height - ClientHeight ));
|
|
// BoundsRect:= rct;
|
|
|
|
|
|
edtNumEditor.Height:= polGrd.RowHeight+2;
|
|
dtZavoz.DateTime:= IncDay(Now,1);
|
|
|
|
{
|
|
grd.RowCount:= 2;
|
|
grd.FixedRows:= 1;
|
|
|
|
rHeight:= grd.Canvas.TextHeight('Áý');
|
|
grd.DefaultRowHeight:= grd.Font.Size + 18;
|
|
|
|
// grd.RowHeights[1]:= grd.Canvas.TextHeight('Akce') + 4;
|
|
grd.Cells[0, 0]:= 'Akce';
|
|
grd.Cells[1, 0]:= 'Číslo';
|
|
grd.Cells[2, 0]:= 'Název';
|
|
grd.Cells[3, 0]:= 'Doporučeno';
|
|
grd.Cells[4, 0]:= 'Ráno';
|
|
grd.Cells[5, 0]:= 'Poledne';
|
|
}
|
|
|
|
branchID:= ZjistiBranchID;
|
|
cOrgDod:= -1;
|
|
|
|
lblDodAdresa.Caption:= '';
|
|
lblDodMisto.Caption:= '';
|
|
lblDodICO.Caption:= '';
|
|
lblDodDIC.Caption:= '';
|
|
|
|
cbxSortiment.Items.Clear;
|
|
lSQL:= 'SELECT DISTINCT(s.K1) FROM ' + tblSortim + ' s INNER JOIN ' + tblSortimE + ' e ON (e.ID=s.ID) WHERE e._Objednavky_Zobrazit=1 GROUP BY s.K1';
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
SetLength(sortim, RecordCount);
|
|
i:= 0;
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
cbxSortiment.Items.Add(helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev FROM ' + tblSortim + ' WHERE K2 IS NULL AND K1=N' + VarToStr(FieldValues(0)).QuotedString));
|
|
|
|
sortim[i].k1:= VarToStr(FieldValues(0));
|
|
sortim[i].nazev:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev FROM ' + tblSortim + ' WHERE K2 IS NULL AND K1=N' + VarToStr(FieldValues(0)).QuotedString);
|
|
|
|
sortim[i].poleDodav:= '';
|
|
sortim[i].typSort:= 255;
|
|
|
|
if (sortim[i].k1='001') then
|
|
begin
|
|
sortim[i].typSort:= 0;
|
|
sortim[i].poleDodav:= '_dodpek';
|
|
end;
|
|
|
|
if (sortim[i].k1='003') then
|
|
begin
|
|
sortim[i].typSort:= 1;
|
|
sortim[i].poleDodav:= '_dodlah';
|
|
end;
|
|
|
|
if (sortim[i].k1='004') then
|
|
begin
|
|
sortim[i].typSort:= 2;
|
|
sortim[i].poleDodav:= '_dodvelko';
|
|
end;
|
|
|
|
Inc(i);
|
|
Next;
|
|
end;
|
|
cbxSortiment.ItemIndex:= 0;
|
|
end;
|
|
|
|
edtCisloObj.Enabled:= (idDZ=0);
|
|
cbxSortiment.Enabled:= (idDZ=0);
|
|
cbxDodavatel.Enabled:= (idDZ=0);
|
|
|
|
bidHDCObj:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT 100000+Cislo FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_DokladyZbozi''');
|
|
bidHDCObj:= 22;
|
|
btnNactiObj.Visible:= not(Helios.BrowseID=bidHDCObj);
|
|
if (Helios.BrowseID=bidHDCObj) then
|
|
begin
|
|
edtCisloObj.Value:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT PoradoveCislo FROM ' + tblDZ + ' WHERE ID=' + idDZ.ToString);
|
|
NactiObjednavku(idDZ);
|
|
end
|
|
else
|
|
cbxSortimentChange(Sender);
|
|
|
|
|
|
btnNuluj.Visible:= (Helios.LoginName='hdc') or (compName='NTB-T');
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
end.
|