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

📄 ar_enter_saleinvoice2_c1.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Ar_Enter_SaleInvoice2_C1;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Qry, StdCtrls, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids,
  DBGridEh, ExtCtrls, ComCtrls, ToolWin, jpeg;

Type
  TFrm_Ar_Enter_SaleInvoice2_C1 = Class(TFrm_Base_Qry)
    btn_ok: TButton;
    btn_Cancel: TButton;
    AdoQry_MainShipNo: TStringField;
    AdoQry_MainInvoiceNo: TStringField;
    AdoQry_MainSaleDeptCode: TStringField;
    AdoQry_MainDeptName: TStringField;
    AdoQry_MainSaleEmployeeCode: TStringField;
    AdoQry_MainEmployeeName: TStringField;
    AdoQry_MainPayTermName: TStringField;
    AdoQry_MainPayTermCode: TStringField;
    AdoQry_Maincheckflag: TIntegerField;
    AdoQry_MainCustomerCode: TStringField;
    AdoQry_MainShipModeCode: TStringField;
    AdoQry_MainSaleTypeCode: TStringField;
    AdoQry_MainCurrencyCode: TStringField;
    AdoQry_MainTaxRate_Percent: TFloatField;
    AdoQry_MainTotalNoTaxAmount: TFloatField;
    AdoQry_MainTotalTaxAmount: TFloatField;
    AdoQry_MainRemArk: TStringField;
    AdoQry_MaincurrencyName: TStringField;
    AdoQry_Maincurrencyflag: TStringField;
    AdoQry_MainDeptflag: TStringField;
    AdoQry_MainEmployeeflag: TStringField;
    AdoQry_MainPayTermflag: TStringField;
    AdoQry_MainShipModeName: TStringField;
    AdoQry_MainShipModeflag: TStringField;
    AdoQry_MainSaleTypeName: TStringField;
    AdoQry_MainSaleTypeflag: TStringField;
    AdoQry_MainCreateDate: TDateTimeField;
    Button1: TButton;
    AdoQry_MaInBillTypeCode: TStringField;
    procedure FormDestroy(Sender: TObject);
    procedure btn_CancelClick(Sender: TObject);
    procedure DBGridEhTitleClick(Column: TColumnEh);
    procedure btn_okClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
  Flag:Boolean ;
    { Private declarations }
  public
   TaxRate : Double;
   ShipNoStArt,ShipNoend,CustomerCode,CustomerName:string;
   DeptCode,DeptName,SaleTypeCode,SaleTypeName,SaleEmployeeCode,SaleEmployeeName :string;
  procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
    { Public declarations }
  end;

var
  Frm_Ar_Enter_SaleInvoice2_C1: TFrm_Ar_Enter_SaleInvoice2_C1;

implementation

uses Ar_Enter_SaleInvoice2_C, Ar_Enter_SaleInvoice2, Sys_Global;
{$R *.DFM}

{ TFrm_Sal_Enter_ShipOrder_C1 }

procedure TFrm_Ar_Enter_SaleInvoice2_C1.InitForm(
  AdOConnection: TAdOConnection; ReadOnly: Boolean);
var sqltext:string;
begin
  inherited;
  Frm_Sys_Condition:= TFrm_Ar_Enter_SaleInvoice2_C.Create(self);
  act_filter.Execute;
  try
  Executesql(AdoQry_tmp,'drop table #dddd',1);
  except
  end;
  Sqltext:='Select checkflag=1,  '
               +  '        InvOutBill.* ,           '
               +  '        currency.currencyName,      '
               +  '        InvOutBill.currencyCode+'' ''+currency.currencyName as currencyflag, '
               +  '        Dept.DeptName,  '
               +  '        InvOutBill.DeptCode+'' ''+Dept.DeptName as Deptflag,  '
               +  '        Employee.EmployeeName,                                      '
               +  '        InvOutBill.SaleEmployeeCode+'' ''+Employee.EmployeeName as Employeeflag, '
               +  '        PayTerm.PayTermName,'
               +  '        InvOutBill.PayTermCode+'' ''+PayTerm.PayTermName as PayTermflag, '
               +  '        ShipMode.ShipModeName,      '
               +  '        InvOutBill.ShipModeCode+'' ''+ShipMode.ShipModeName as ShipModeflag, '
               +  '        SaleType.SaleTypeName,    '
               +  '        InvOutBill.SaleType+'' ''+SaleType.SaleTypeName as SaleTypeflag  '
               +'   into #dddd  '
               +  ' From InvOutBill              '
               +  ' Left Join Dept                      '
               +  '   On Dept.DeptCode=InvOutBill.DeptCode  '
               +  ' left Join Employee                                 '
               +  '   On Employee.EmployeeCode=InvOutBill.SaleEmployeeCode  '
               +  ' left Join PayTerm                                     '
               +  '   On PayTerm.PayTermCode=InvOutBill.PayTermCode '
               +  ' left join ShipMode                                     '
               +  '   on InvOutBill.ShipModeCode=ShipMode.ShipModeCode '
               +  ' left join currency                                        '
               +  '   on InvOutBill.currencyCode=currency.currencyCode '
               +  ' left join SaleType                                        '
               +  '  on InvOutBill.SaleType=SaleType.SaleTypeCode  '
                +' Where  ((InvOutBill.InvoiceNo='''') Or(InvOutBill.InvoiceNo is Null))And InvOutBill.CustomerCode='''+CustomerCode+''''
                +'    And InvOutBill.InvBillNo Between '''+ShipNoStArt+''' and '''+ShipNoend+'''   '+' and InvBillWhChCk=1 '
                +'   and exists (select * from InvOutBillLine where InvOutBillLIne.InvBillId=InvOutBill.InvBillId )   '
                +'   and  ShipType in (0,1) '
                +'   and BillTypeCode in (''0205'',''0206'') ';
  Executesql(AdoQry_Main,sqltext,1);
  selectfromsql:='select * from #dddd Order by InvBilldate,InvBillNo';
  getdata;
  Flag:=False;
//  DBGridEhTitleClick(DBGridEh.Columns[0] );
end;

procedure TFrm_Ar_Enter_SaleInvoice2_C1.FormDestroy(Sender: TObject);
begin
  inherited;
  Frm_Ar_Enter_SaleInvoice2_C1:=nil;
end;

procedure TFrm_Ar_Enter_SaleInvoice2_C1.btn_CancelClick(Sender: TObject);
begin
  inherited;
  Frm_Ar_Enter_SaleInvoice2_C1.Close;
end;

procedure TFrm_Ar_Enter_SaleInvoice2_C1.DBGridEhTitleClick(
  Column: TColumnEh);
var
  BookMArk:String;
begin
  inherited;
  If Trim(Column.Title.Caption)<>'标记' Then
    Abort;
  If AdoQry_Main.RecordCount=0 Then
    Abort;
  BookMArk:=AdoQry_Main.BookmArk;
  If Not Flag Then
  begin
    AdoQry_Main.First;
    While Not AdoQry_Main.Eof Do
    begin
      AdoQry_Main.Edit;
      AdoQry_Main.fieldbyname('checkflag').AsInteger:=1;
      AdoQry_Main.Post;
      AdoQry_Main.Next;
    end;
  end
  Else
  begin
    AdoQry_Main.First;
    While Not AdoQry_Main.Eof Do
    begin
      AdoQry_Main.Edit;
      AdoQry_Main.fieldbyname('Checkflag').AsInteger:=0;
      AdoQry_Main.Post;
      AdoQry_Main.Next;
    end;
  end;
  AdoQry_Main.BookmArk:=BookMArk;
  Flag:=Not Flag;
end;

procedure TFrm_Ar_Enter_SaleInvoice2_C1.btn_okClick(Sender: TObject);
var
  I:boolean;
  isFirst:boolean;
  lastcurrency:string;
  LastPayTermCode : String;
  LastBillTypeCode : String;
begin
  inherited;
  I:=False;
  if AdoQry_Main.RecordCount=0 then
    begin
     DispInfo('无销售发货单!',1);
     abort;
    end;
  AdoQry_Main.First;
  While (Not AdoQry_Main.Eof)  do
  begin
    If AdoQry_Main.fieldbyname('Checkflag').AsInteger>0  Then
    begin
     DeptCode:=AdoQry_Main.fieldbyname('DeptCode').asstring;
     DeptName:=AdoQry_Main.fieldbyname('DeptName').asstring;
     SaleTypeCode:=AdoQry_Main.fieldbyname('SaleType').asstring;
     SaleTypeName:=AdoQry_Main.fieldbyname('SaleTypeName').asstring;
     SaleEmployeeCode:=AdoQry_Main.fieldbyname('SaleEmployeeCode').asstring;
     SaleEmployeeName:=AdoQry_Main.fieldbyname('EmployeeName').asstring;
     lastcurrency:=AdoQry_Main.fieldbyname('currencyCode').asstring;
     lastPayTermCode := AdoQry_Main.fieldbyname('PayTermCode').asString;
     LastBillTypeCode := AdoQry_Main.fieldbyname('BillTypeCode').AsString;
     TaxRate := AdoQry_Main.fieldbyname('InvBillTaxRate').AsFloat;
     I:=True;
     Break;
    end;
    AdoQry_Main.Next;
  end;
  AdoQry_Main.Next;
  while not AdoQry_Main.Eof do
    begin
    If AdoQry_Main.fieldbyname('Checkflag').AsInteger>0  Then
     if not( (AdoQry_Main.fieldbyname('currencyCode').asstring=lastcurrency)
         and (AdoQry_Main.fieldbyname('PayTermCode').asstring=lastPayTermCode)
         and (AdoQry_Main.fieldbyname('InvBillTaxRate').AsFloat=TaxRate)
         and (AdoQry_Main.fieldbyname('BillTypeCode').AsString=LastBillTypeCode) ) then
       begin
         DispInfo('只有单据类型、货币、税率、付款条款相同的发货单才能开在一张发票上!',1);
         abort;
       end;
     AdoQry_Main.Next;
    end;
  If I=True Then
  begin
    Frm_Ar_Enter_SaleInvoice2:=TFrm_Ar_Enter_SaleInvoice2.Create(Application);
    Frm_Ar_Enter_SaleInvoice2.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
    Frm_Ar_Enter_SaleInvoice2.InitForm(DbConnect,'Add',AdoQry_Main);
    Frm_Ar_Enter_SaleInvoice2_C1.Hide;
    Frm_Ar_Enter_SaleInvoice2.ShowModal;
    if Frm_Ar_Enter_SaleInvoice2<>nil then
      Frm_Ar_Enter_SaleInvoice2.Close;
    if  Frm_Ar_Enter_SaleInvoice2_C1<>nil then
      Frm_Ar_Enter_SaleInvoice2_C1.Close;
  end
  Else
  begin
    DispInfo('没有选定记录,不能执行新增操作!',3);
    Abort;
  end;
end;

procedure TFrm_Ar_Enter_SaleInvoice2_C1.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  try
   Executesql(AdoQry_tmp,'drop table #dddd',1);
  except
  end;
end;

procedure TFrm_Ar_Enter_SaleInvoice2_C1.Button1Click(Sender: TObject);
var sqltext:string;
begin
  inherited;
  act_filter.Execute;
  try
    Executesql(AdoQry_tmp,'drop table #dddd',1);
  except

  end;
  Sqltext:='Select checkflag=1,  '
               +  '        InvOutBill.* ,           '
               +  '        currency.currencyName,      '
               +  '        InvOutBill.currencyCode+'' ''+currency.currencyName as currencyflag, '
               +  '        Dept.DeptName,  '
               +  '        InvOutBill.DeptCode+'' ''+Dept.DeptName as Deptflag,  '
               +  '        Employee.EmployeeName,                                      '
               +  '        InvOutBill.SaleEmployeeCode+'' ''+Employee.EmployeeName as Employeeflag, '
               +  '        PayTerm.PayTermName,'
               +  '        InvOutBill.PayTermCode+'' ''+PayTerm.PayTermName as PayTermflag, '
               +  '        ShipMode.ShipModeName,      '
               +  '        InvOutBill.ShipModeCode+'' ''+ShipMode.ShipModeName as ShipModeflag, '
               +  '        SaleType.SaleTypeName,    '
               +  '        InvOutBill.SaleType+'' ''+SaleType.SaleTypeName as SaleTypeflag  '
               +'   into #dddd  '
               +  ' From InvOutBill              '
               +  ' Left Join Dept                      '
               +  '   On Dept.DeptCode=InvOutBill.DeptCode  '
               +  ' left Join Employee                                 '
               +  '   On Employee.EmployeeCode=InvOutBill.SaleEmployeeCode  '
               +  ' left Join PayTerm                                     '
               +  '   On PayTerm.PayTermCode=InvOutBill.PayTermCode '
               +  ' left join ShipMode                                     '
               +  '   on InvOutBill.ShipModeCode=ShipMode.ShipModeCode '
               +  ' left join currency                                        '
               +  '   on InvOutBill.currencyCode=currency.currencyCode '
               +  ' left join SaleType                                        '
               +  '  on InvOutBill.SaleType=SaleType.SaleTypeCode  '
                +' Where  ((InvOutBill.InvoiceNo='''') Or(InvOutBill.InvoiceNo is Null))And InvOutBill.CustomerCode='''+CustomerCode+''''
                +'    And InvOutBill.InvBillNo Between '''+ShipNoStArt+''' and '''+ShipNoend+'''   '+' and InvBillWhChCk=1 '
                +'   and exists (select * from InvOutBillLine where InvOutBillLIne.InvBillId=InvOutBill.InvBillId )   '
                +'   and  ShipType in (0,1) '
                +'   and BillTypeCode in (''0205'',''0206'') ';
  Executesql(AdoQry_Main,sqltext,1);
  selectfromsql:='select * from #dddd Order by InvBillDate,InvBillno';
  getdata;
  Flag:=False;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -