📄 ar_enter_gatheringinvoiceh.pas
字号:
unit Ar_Enter_GatheringInvoiceH;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Entry_Head, Menus, Db, ActnList, AdODB, Grids, DBGridEh, StdCtrls,
ExtCtrls, ComCtrls, ToolWin, jpeg, ExtPrintReport;
Type
TFrm_Ar_Enter_GatheringInvoiceH = Class(TFrm_Base_Entry_Head)
AdoQry_HeadGatheringNo: TStringField;
AdoQry_HeadBalanceTypeCode: TStringField;
AdoQry_HeadGatheringDate: TDateTimeField;
AdoQry_HeadCustomerCode: TStringField;
AdoQry_HeadActSubjectCode: TStringField;
AdoQry_HeadCurrencyCode: TStringField;
AdoQry_HeadExchangeRate: TFloatField;
AdoQry_HeadBillNo: TStringField;
AdoQry_HeadCustomerBank: TStringField;
AdoQry_HeadCustomerBankActNo: TStringField;
AdoQry_HeadSaleDeptCode: TStringField;
AdoQry_HeadSaleEmployeeCode: TStringField;
AdoQry_HeadTotalTaxAmount: TFloatField;
AdoQry_HeadTotalCancelAmount: TFloatField;
AdoQry_HeadCreateDate: TDateTimeField;
AdoQry_HeadCreateEmployeeCode: TStringField;
AdoQry_HeadRemArk: TStringField;
AdoQry_HeadcurrencyName: TStringField;
AdoQry_HeadcustomerName: TStringField;
AdoQry_HeadBalanceTypeName: TStringField;
AdoQry_HeadDeptName: TStringField;
AdoQry_Headcustomerflag: TStringField;
AdoQry_HeadEmployeeflag: TStringField;
AdoQry_Headcurrencyflag: TStringField;
AdoQry_HeadBalanceTypeflag: TStringField;
AdoQry_HeadDeptflag: TStringField;
AdoQry_HeadEmployeeName: TStringField;
AdoQry_HeadTotalTaxAmountC: TFloatField;
AdoQry_HeadTotalCancelAmountC: TFloatField;
AdoQry_HeadInAccountDate: TDateTimeField;
AdoQry_HeadISCredence: TIntegerField;
procedure FormDestroy(Sender: TObject);
procedure Act_DeleteExecute(Sender: TObject);
private
{ Private declarations }
public
procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
{ Public declarations }
end;
var
Frm_Ar_Enter_GatheringInvoiceH: TFrm_Ar_Enter_GatheringInvoiceH;
implementation
uses Sys_Global,Ar_Enter_GatheringInvoice;
{$R *.DFM}
procedure TFrm_Ar_Enter_GatheringInvoiceH.InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);
begin
Application.ProcessMessages;
inherited;
selectfromsql:='select Ar_Gathering.*, '
+' currency.currencyName, '
+' Ar_Gathering.currencyCode+'' ''+currency.currencyName as currencyflag, '
+' customer.customerName, '
+' Ar_Gathering.customerCode+'' ''+customer.customerName as customerflag, '
+' BalanceType.BalanceTypeName, '
+' Ar_Gathering.BalanceTypeCode+'' ''+BalanceType.BalanceTypeName as BalanceTypeflag, '
+' Dept.DeptName, '
+' Ar_Gathering.SaleDeptCode+'' ''+Dept.DeptName as Deptflag, '
+' t1.EmployeeName, '
+' Ar_Gathering.SaleEmployeeCode+'' ''+t1.EmployeeName as Employeeflag '
+' from Ar_Gathering '
+' left join currency on Ar_Gathering.currencyCode=currency.currencyCode '
+' left join customer on Ar_Gathering.customerCode=customer.customerCode '
+' left join BalanceType on Ar_Gathering.BalanceTypeCode=BalanceType.BalanceTypeCode '
+' left join Dept on Ar_Gathering.SaleDeptCode=Dept.DeptCode '
+' left join Employee t1 on Ar_Gathering.SaleEmployeeCode=t1.EmployeeCode ';
Orderbyfields:='customerCode,Gatheringdate,Gatheringno';
condition:=' TotalCancelAmount<TotaltaxAmount ';
getdata;
Frm_Entry_Body:=TFrm_Ar_Enter_GatheringInvoice.Create(Application);
end;
procedure TFrm_Ar_Enter_GatheringInvoiceH.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Ar_Enter_GatheringInvoiceH:=nil;
end;
procedure TFrm_Ar_Enter_GatheringInvoiceH.Act_DeleteExecute(
Sender: TObject);
var SqlText : String;
AdoQry : TAdoQuery;
begin
If AdoQry_Head.RecordCount=0 then exit;
If DispInfo('确认删除这张收款票据吗?',2)<>'y' then Exit;
If AdoQry_Head.fieldbyname('ISCredence').AsInteger=1 then
begin
DispInfo('收款票据 '+AdoQry_Head.fieldbyname('GatheringNo').AsString+' 已凭证处理,不能删除!',1);
Abort;
end;
AdoQry := TAdoQuery.Create(self);
AdoQry.Connection := Dbconnect;
AdoQry.EnableBCD := False;
Try
try
Dbconnect.beginTrans;
ExecuteSQl(AdoQry,'select * from Ar_Gatheringline '
+' where GatheringNo='+QuotedStr(AdoQry_Head.fieldbyname('GatheringNo').asString),
0);
While Not AdoQry.Eof do begin
SqlText := 'Update Sa_SaleInvoice '
+' Set CancelAmount=IsNull(CancelAmount,0)-('+FloatToStr(AdoQry.fieldbyname('ThiSCancelAmount').AsFloat)+'),'
+' CancelAmountC=IsNull(CancelAmountC,0)-ExchangeRate*('+FloatToStr(AdoQry.fieldbyname('ThiSCancelAmount').AsFloat)+')'
+' from Sa_SaleInvoice '
+' where InvoiceNo='+QuotedStr(AdoQry.fieldbyname('BillNo').AsString);
ExecuteSQl(AdoQry_Tmp,SqlText,1);
AdoQry.Next;
end;
ExecuteSQl(AdoQry_Tmp,'delete from Ar_Gatheringline '
+' where GatheringNo='+QuotedStr(AdoQry_Head.fieldbyname('GatheringNo').AsString)
,1) ;
ExecuteSql(AdoQry_Tmp,'delete from Ar_Gathering '
+' where GatheringNo='+QuotedStr(AdoQry_Head.fieldbyname('GatheringNo').AsString)
,1) ;
Dbconnect.CommitTrans;
AdoQry_Head.Delete;
Except
If Dbconnect.InTransaction then dbconnect.RollBackTrans;
DispInfo('删除收款票据失败!',1);
end;
finally
AdoQry.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -