⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ar_enter_gatheringinvoiceh.pas

📁 一个MRPII系统源代码版本
💻 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 + -