Prvotni verze pro Giteu
This commit is contained in:
178
datModObj.pas
Normal file
178
datModObj.pas
Normal file
@ -0,0 +1,178 @@
|
||||
unit datModObj;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
System.SysUtils, System.Classes, MemTableDataEh, Data.DB, MemTableEh, ddPlugin_TLB, Vcl.ComCtrls;
|
||||
|
||||
const
|
||||
CRLF = #13#10;
|
||||
|
||||
type
|
||||
TdmObj = class(TDataModule)
|
||||
vTabObj: TMemTableEh;
|
||||
dsObj: TDataSource;
|
||||
vTabPoradiSort: TSingleField;
|
||||
vTabK1: TStringField;
|
||||
vTabK2: TStringField;
|
||||
vTabSortiment: TStringField;
|
||||
vTabIDZboSklad: TIntegerField;
|
||||
vTabRegCis: TStringField;
|
||||
vTabNazev: TStringField;
|
||||
vTabRano: TFloatField;
|
||||
vTabPoledne: TFloatField;
|
||||
vTabStavSkladu: TFloatField;
|
||||
vTabDoporuceno: TFloatField;
|
||||
vTabPriorita: TIntegerField;
|
||||
vTabCisloZbozi: TStringField;
|
||||
vTabIDKZ: TIntegerField;
|
||||
vTabSkupZbo: TStringField;
|
||||
vTabDodavatel: TIntegerField;
|
||||
vTabJenRano: TSmallintField;
|
||||
vTabMinimum: TFloatField;
|
||||
vTabDelitelnost: TFloatField;
|
||||
vTabPoradi: TSingleField;
|
||||
vTabK1K2: TStringField;
|
||||
vTabPoradiSortNazev: TStringField;
|
||||
procedure vTabRanoValidate(Sender: TField);
|
||||
procedure vTabPoledneValidate(Sender: TField);
|
||||
procedure vTabAfterPost(DataSet: TDataSet);
|
||||
procedure vTabAfterDelete(DataSet: TDataSet);
|
||||
private
|
||||
public
|
||||
Helios: IHelios;
|
||||
procedure ZapisObjednavky(tbl: TMemTableEh; cOrgDod, cisloObj: integer; dt: TDatetimePicker);
|
||||
end;
|
||||
|
||||
var
|
||||
dmObj: TdmObj;
|
||||
|
||||
|
||||
implementation
|
||||
uses System.Variants, frmOrder2, frmOrder21024, frmOrder21366;
|
||||
{%CLASSGROUP 'Vcl.Controls.TControl'}
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
|
||||
procedure TdmObj.ZapisObjednavky(tbl: TMemTableEh; cOrgDod, cisloObj: integer; dt: TDatetimePicker);
|
||||
var lSQL: string;
|
||||
idH, i: integer;
|
||||
begin
|
||||
if (tbl.RecordCount>0) then
|
||||
begin
|
||||
idH:= 0;
|
||||
lSQL:= 'INSERT dbo._HDC_Objednavky (CisloOrg, IDSklad, CisloObj, DatPozadavek) SELECT ISNULL(TRY_PARSE(N' + cOrgDod.ToString.Replace(';', '').Replace('-','').Replace(' ', '').QuotedString;
|
||||
lSQL:= lSQL + ' AS INT), 0), N' + Helios.Sklad.QuotedString + ', ' + cisloObj.ToString + ', CONVERT(datetime, N' + FormatDateTime('d.m.yyyy', dt.Date).QuotedString + ', 104)' + CRLF;
|
||||
lSQL:= lSQL + 'SELECT SCOPE_IDENTITY()';
|
||||
with Helios.OpenSQL(lSQL) do
|
||||
idH:= VarToStr(FieldValues(0)).ToInteger;
|
||||
|
||||
tbl.DisableControls;
|
||||
i:= tbl.RecNo;
|
||||
tbl.First;
|
||||
while not(tbl.Eof) do
|
||||
begin
|
||||
if (tbl.FieldByName('Rano').AsSingle>0) or (tbl.FieldByName('Poledne').AsSingle>0) then
|
||||
begin
|
||||
lSQL:= 'INSERT dbo._HDC_ObjednavkyR (IDHlava, IDZboSklad, MnRano, MnPoledne) SELECT ' + idH.ToString + ', ' + tbl.FieldByName('IDZboSklad').AsString;
|
||||
lSQL:= lSQL + ', ' + tbl.FieldByName('Rano').AsSingle.ToString + ', ' + tbl.FieldByName('Poledne').AsSingle.ToString;
|
||||
Helios.ExecSQL(lSQL);
|
||||
end;
|
||||
tbl.Next;
|
||||
end;
|
||||
tbl.RecNo:= i;
|
||||
tbl.EnableControls;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TdmObj.vTabAfterDelete(DataSet: TDataSet);
|
||||
begin
|
||||
if (formOrder2.Visible) then
|
||||
formOrder2.btnVynulovat.Enabled:= (DataSet.RecordCount>0);
|
||||
if (formOrder21024.Visible) then
|
||||
formOrder21024.btnVynulovat.Enabled:= (DataSet.RecordCount>0);
|
||||
if (formOrder21366.Visible) then
|
||||
formOrder21366.btnVynulovat.Enabled:= (DataSet.RecordCount>0);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TdmObj.vTabAfterPost(DataSet: TDataSet);
|
||||
begin
|
||||
if (formOrder2.Visible) then
|
||||
formOrder2.btnVynulovat.Enabled:= (DataSet.RecordCount>0);
|
||||
if (formOrder21024.Visible) then
|
||||
formOrder21024.btnVynulovat.Enabled:= (DataSet.RecordCount>0);
|
||||
if (formOrder21366.Visible) then
|
||||
formOrder21366.btnVynulovat.Enabled:= (DataSet.RecordCount>0);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TdmObj.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 TdmObj.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;
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user