186 lines
6.2 KiB
ObjectPascal
186 lines
6.2 KiB
ObjectPascal
unit frmUnit13;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.StdCtrls, 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;
|
|
|
|
type
|
|
TformPrevPrij = class(TForm)
|
|
vTab1: TFDMemTable;
|
|
ds1: TDataSource;
|
|
btnOK: TButton;
|
|
btnCancel: TButton;
|
|
vTab1idPZ: TIntegerField;
|
|
vTab1SZ: TStringField;
|
|
vTab1RegCis: TStringField;
|
|
vTab1Nazev1: TStringField;
|
|
vTab1Mnoz: TFloatField;
|
|
vTab1idPZold: TIntegerField;
|
|
grdPrijemky: TJvDBGrid;
|
|
procedure FormShow (Sender: TObject);
|
|
procedure btnCancelClick (Sender: TObject);
|
|
procedure btnOKClick (Sender: TObject);
|
|
procedure FormClose (Sender: TObject; var Action: TCloseAction);
|
|
procedure grdPrijemkyDblClick (Sender: TObject);
|
|
procedure grdPrijemkyDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
|
|
private
|
|
procedure NactiPrijemku;
|
|
public
|
|
Helios: IHelios;
|
|
idDZ: integer;
|
|
idDZold: integer;
|
|
end;
|
|
|
|
var
|
|
formPrevPrij: TformPrevPrij;
|
|
|
|
implementation
|
|
uses myUtils, helUtils;
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TformPrevPrij.btnCancelClick (Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformPrevPrij.NactiPrijemku;
|
|
var sql: string;
|
|
c: TCloseAction;
|
|
begin
|
|
if (idDZ>0) then
|
|
begin
|
|
with Helios.OpenSQL('SELECT RadaDokladu,CONVERT(nvarchar,PoradoveCislo) FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZ)) do
|
|
begin
|
|
sql:= ' Oprava Pøevodky/Pøíjemky : ' + VarHodnota(FieldValues(0),'') + ' ';
|
|
sql:= sql + VarHodnota(FieldValues(1),'');
|
|
Self.Caption:= sql;
|
|
end;
|
|
|
|
if not vTab1.Active then
|
|
vTab1.Open;
|
|
sql:= 'SELECT id,SkupZbo,RegCis,Nazev1,Mnozstvi,ISNULL(IdOldPolozka,0) FROM ' + tblPZ;
|
|
sql:= sql + ' WHERE IdDoklad=' + IntToStr(idDZ) + ' ORDER BY DatPorizeni';
|
|
with Helios.OpenSQL(sql) do
|
|
begin
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
vTab1.Append;
|
|
vTab1.FieldByName('idPZ').AsInteger:= VarHodnota(FieldValues(0),0);
|
|
vTab1.FieldByName('SZ').AsString:= VarHodnota(FieldValues(1),'');
|
|
vTab1.FieldByName('RegCis').AsString:= VarHodnota(FieldValues(2),'');
|
|
vTab1.FieldByName('Nazev1').AsString:= VarHodnota(FieldValues(3),'');
|
|
vTab1.FieldByName('Mnoz').AsExtended:= VarHodnota(FieldValues(4),0.0);
|
|
vTab1.FieldByName('idPZOld').AsInteger:= VarHodnota(FieldValues(5),0);
|
|
vTab1.Post;
|
|
Next;
|
|
end;
|
|
vTab1.RecNo:= 1;
|
|
end;
|
|
end
|
|
else
|
|
Helios.Error(#1'Nebyla vybrána žádná pøíjemka.'#1);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformPrevPrij.grdPrijemkyDblClick(Sender: TObject);
|
|
var mn: Extended;
|
|
begin
|
|
if not(VarIsNull(vTab1.FieldByName('Mnoz').Value)) then
|
|
mn:= vTab1.FieldByName('Mnoz').AsExtended
|
|
else
|
|
mn:= 0;
|
|
if InputNumeric('Zadejte množství','Nové množství:',mn) then
|
|
begin
|
|
vTab1.Edit;
|
|
vTab1.FieldByName('Mnoz').AsExtended:= mn;
|
|
vTab1.Post;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformPrevPrij.grdPrijemkyDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
|
|
begin
|
|
if (gdSelected in State) then
|
|
begin
|
|
TJvDBGrid(Sender).Canvas.Font.Color:= clWhite;
|
|
TJvDBGrid(Sender).Canvas.Brush.Color:= $00FF9933;
|
|
end;
|
|
TJvDBGrid(Sender).DefaultDrawColumnCell (Rect, DataCol, Column, State);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformPrevPrij.btnOKClick (Sender: TObject);
|
|
var idx: integer;
|
|
sql: string;
|
|
begin
|
|
try
|
|
if (vTab1.RecordCount>0) then
|
|
begin
|
|
idx:= 0;
|
|
vTab1.First;
|
|
while not(vTab1.Eof) do
|
|
begin
|
|
sql:= 'UPDATE ' + tblPZ + ' SET Mnozstvi=' + StringReplace(vTab1.FieldByName('Mnoz').AsString,'','',[rfReplaceAll]);
|
|
sql:= sql + ' WHERE id=' + vTab1.FieldByName('idPZ').AsString;
|
|
Helios.ExecSQL(sql);
|
|
sql:= 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JcBezDaniKc*Mnozstvi,CCsDPHKc=JcBezDaniKc*Mnozstvi,CCbezDaniVal=JcBezDaniKc*Mnozstvi,';
|
|
sql:= sql + 'CCsDPHVal=JcBezDaniKc*Mnozstvi,CCbezDaniKcPoS=JcBezDaniKc*Mnozstvi,CCsDPHKcPoS=JcBezDaniKc*Mnozstvi,';
|
|
sql:= sql + 'CCbezDaniValPoS=JcBezDaniKc*Mnozstvi,CCsDPHValPoS=JcBezDaniKc*Mnozstvi,CCsSDKc=JcBezDaniKc*Mnozstvi,';
|
|
sql:= sql + 'CCsSDVal=JcBezDaniKc*Mnozstvi,BlokovaniEditoru=NULL WHERE id=' + vTab1.FieldByName('idPZ').AsString;
|
|
Helios.ExecSQL(sql);
|
|
|
|
sql:= 'UPDATE ' + tblPZ + ' SET Mnozstvi=' + StringReplace(vTab1.FieldByName('Mnoz').AsString,'','',[rfReplaceAll]);
|
|
sql:= sql + ' WHERE id=' + vTab1.FieldByName('idPZold').AsString;
|
|
Helios.ExecSQL(sql);
|
|
sql:= 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JcBezDaniKc*Mnozstvi,CCsDPHKc=JcBezDaniKc*Mnozstvi,CCbezDaniVal=JcBezDaniKc*Mnozstvi,';
|
|
sql:= sql + 'CCsDPHVal=JcBezDaniKc*Mnozstvi,CCbezDaniKcPoS=JcBezDaniKc*Mnozstvi,CCsDPHKcPoS=JcBezDaniKc*Mnozstvi,';
|
|
sql:= sql + 'CCbezDaniValPoS=JcBezDaniKc*Mnozstvi,CCsDPHValPoS=JcBezDaniKc*Mnozstvi,CCsSDKc=JcBezDaniKc*Mnozstvi,';
|
|
sql:= sql + 'CCsSDVal=JcBezDaniKc*Mnozstvi,BlokovaniEditoru=NULL WHERE id=' + vTab1.FieldByName('idPZold').AsString;
|
|
Helios.ExecSQL(sql);
|
|
vTab1.Next;
|
|
end;
|
|
Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=1');
|
|
Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idDZ));
|
|
Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZold) + ',@AktualizaceSlev=1');
|
|
Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idDZold));
|
|
end;
|
|
Close;
|
|
finally
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformPrevPrij.FormClose (Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
if (vTab1.Active) then
|
|
vTab1.Close;
|
|
Helios.Refresh (true);
|
|
Action:= caFree;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformPrevPrij.FormShow(Sender: TObject);
|
|
begin
|
|
grdPrijemky.Font.Size:= Helios.FontHeight;
|
|
grdPrijemky.Font.Name:= Helios.Font;
|
|
NactiPrijemku;
|
|
end;
|
|
|
|
|
|
end.
|