ar_enter_nogatherinvoice_d.pas

来自「一个MRPII系统源代码版本」· PAS 代码 · 共 942 行 · 第 1/3 页

PAS
942
字号
      if not Add then
      begin
        edt_InvoiceNo.Enabled:=False;
        medt_Createdate.Enabled:=False;
        medt_Editdate.Enabled:=False;
        Medt_InvoiceDate.Enabled := False;
//        Edt_CustomerCode.Enabled := False;
//        edt_CustomerCode.Enabled:=False;
      end;
      medt_Createdate.Enabled:=False;
      edt_CreateEmployeeCode.Enabled:=False;
      Edt_EdItEmployeeCode.Enabled := False;
    end;
end;

procedure TFrm_Ar_Enter_NoGatherInvoice_D.SaveData;
var sqltext:string;
    AdoQry:TAdoQuery;
begin
  inherited;
  AdoQry:=TAdoQuery.Create(nil);
  AdoQry.Connection:=dbconnect;
  try
    dbconnect.beginTrans;
    if Add then
    //新增
      SqlText:='Insert Sa_SaleInvoice '
        +' (InvoiceNo,InvoiceType,InvoiceType1,BillType,ExportTradeTypeCode,SaleDeptCode,SaleEmployeeCode,SaleTypeCode,CreateDate,BillDate,CreateEmployeeCode,CustomerCode,Bank,'
        +'  BankActNo,CurrencyCode,ExchangeRate,TaxRate,'
        +'  SaleTermCode,TotalTaxAmount,TotalNoTaxAmount,TotalTax, '
        +'  TotalTaxAmountC,TotalNoTaxAmountC,TotalTaxC,CancelAmount,CancelAmountC, '
        +'  editdate,edItEmployeeCode,RemArk)'
        +'  Values('
        +''''+Trim(Edt_InvoiceNo.Text)+''','
        +IntToStr(cmb_InvoiceType.ItemIndex)+','
        +'1,'
        +IntToStr(Cmb_BillType.ItemIndex)+','
        +IIFString(Trim(Edt_ExportTypeCode.Text)='','null',QuotedStr(Trim(Edt_ExportTypeCode.Text)))+','
        +iifstring(Trim(edt_DeptCode.text)='','null',quotedstr(Trim(edt_DeptCode.text)))+','
        +iifstring(Trim(edt_SaleEmployeeCode.text)='','null',quotedstr(Trim(edt_SaleEmployeeCode.text)))+','
        +iifstring(Trim(edt_SaleTypeCode.text)='','null',quotedstr(Trim(edt_SaleTypeCode.text)))+','
        +''''+Trim(MEdt_CreateDate.Text)+''','
        +''''+Trim(MEdt_InvoiceDate.Text)+''','
        +''''+Trim(Edt_CreateEmployeeCode.Text)+''','
        +''''+Trim(Edt_CustomerCode.Text)+''','
        +''''+Trim(Edt_Bank.Text)+''','
        +''''+Trim(Edt_BankActNo.Text)+''','
        +''''+Trim(Edt_CurrencyCode.Text)+''','
        +''''+Trim(Edt_ExchRate.Text)+''','
        +QuotedStr(Edt_Rate.Text)+','
        +''''+Trim(Edt_PayTermCode.Text)+''','
        +FormatFloat('#####0.##',StrToFloat(Trim(Edt_TotalTaxAmount.Text)))+','
        +FormatFloat('#####0.##',(StrToFloat(Edt_TotalTaxAmount.Text)/(1+StrToFloat(Edt_Rate.Text)/100.0)))+','
        +FormatFloat('#####0.##',(StrToFloat(Edt_TotalTaxAmount.Text)-StrToFloat(Edt_TotalTaxAmount.Text)/(1+StrToFloat(Edt_Rate.Text)/100.0)))+','
        + FormatFloat('#####0.##',(StrToFloat(Edt_TotalTaxAmount.Text)*StrToFloat(Edt_ExchRate.Text)))+','
        +FormatFloat('#####0.##',( (StrToFloat(Edt_TotalTaxAmount.Text)/(1+StrToFloat(Edt_Rate.Text)/100.0))*StrToFloat(Edt_ExchRate.Text) ))+','
        +FormatFloat('#####0.##',((StrToFloat(Edt_TotalTaxAmount.Text)-StrToFloat(Edt_TotalTaxAmount.Text)/(1+StrToFloat(Edt_Rate.Text)/100.0))*StrToFloat(Edt_ExchRate.Text)))+','
        +FormatFloat('#####0.##',StrToFloat(Edt_CancelAmount.Text))+','
        +FormatFloat('#####0.##',(StrToFloat(Edt_CancelAmount.Text)*StrToFloat(Edt_ExchRate.Text)))+','
        +quotedstr(GetServerDateTime(dbconnect))+','
        +quotedstr(userCode)+','
        +''''+Trim(Edt_RemArk.Text)+''')'
    else
      SqlText:='Update Sa_SaleInvoice Set '
              +'       BillDate= '''+Trim(MEdt_InvoiceDate.Text)+''','
              +'       ExportTradeTypeCode='+IIFString(Trim(Edt_ExportTypeCode.Text)='','null',QuotedStr(Trim(Edt_ExportTypeCode.Text)))+','
              +'       SaleDeptCode='+iifstring(Trim(edt_DeptCode.text)='','null',quotedstr(Trim(edt_DeptCode.text)))+','
              +'       SaleEmployeeCode='+iifstring(Trim(edt_SaleEmployeeCode.text)='','null',quotedstr(Trim(edt_SaleEmployeeCode.text)))+','
              +'       SaleTypeCode='+iifstring(Trim(edt_SaleTypeCode.text)='','null',quotedstr(Trim(edt_SaleTypeCode.text)))+','
              +'       CreateEmployeeCode= '''+Edt_CreateEmployeeCode.Text+''','
              +'       CustomerCode= '''+Trim(Edt_CustomerCode.Text)+''','
              +'       Bank= '''+Trim(Edt_Bank.Text)+''','
              +'       BankActNo= '''+Trim(Edt_BankActNo.Text)+''','
              +'       CurrencyCode= '''+Trim(Edt_CurrencyCode.Text)+''','
              +'       ExchangeRate= '''+Trim(Edt_ExchRate.Text)+''','
              +'       TaxRate = '+Edt_Rate.Text +','
              +'       SaleTermCode= '''+Trim(Edt_PayTermCode.Text)+''','
              +'       TotalTaxAmount= '+FormatFloat('#####0.##',StrToFloat(Trim(Edt_TotalTaxAmount.Text)))+','
              +'       TotalNoTaxAmount ='+FormatFloat('#####0.##',(StrToFloat(Edt_TotalTaxAmount.Text)/(1+StrToFloat(Edt_Rate.Text)/100.0)))+','
              +'       TotalTax ='+FormatFloat('#####0.##',(StrToFloat(Edt_TotalTaxAmount.Text)-StrToFloat(Edt_TotalTaxAmount.Text)/(1+StrToFloat(Edt_Rate.Text)/100.0)))+','
              +'       TotalTaxAmountC='+FormatFloat('#####0.##',(StrToFloat(Edt_TotalTaxAmount.Text)*StrToFloat(Edt_ExchRate.Text)))+','
              +'       TotalNoTaxAmountC='+FormatFloat('#####0.##',((StrToFloat(Edt_TotalTaxAmount.Text)/(1+StrToFloat(Edt_Rate.Text)/100.0))*StrToFloat(Edt_ExchRate.Text) ))+','
              +'       TotalTaxC ='+FormatFloat('#####0.##',((StrToFloat(Edt_TotalTaxAmount.Text)-StrToFloat(Edt_TotalTaxAmount.Text)/(1+StrToFloat(Edt_Rate.Text)/100.0))*StrToFloat(Edt_ExchRate.Text)))+','
              +'       CancelAmount =' +FormatFloat('#####0.##',StrToFloat(Edt_CancelAmount.Text))+','
              +'       CancelAmountC =' +FormatFloat('#####0.##',(StrToFloat(Edt_CancelAmount.Text)*StrToFloat(Edt_ExchRate.Text)))+','
              +'       RemArk='''+Edt_RemArk.Text+''' '
              +'       Where InvoiceNo='''+Trim(Edt_InvOiceNo.Text)+'''';

    ExecuteSql(AdoQry,SqlText,1);
    if Assigned(AdoQry) then AdoQry.Free;
    dbconnect.CommitTrans;
    with AdoQry_Maintain do
      begin
        fieldbyname('InvoiceNo').asstring:=Trim(edt_InvoiceNo.text);
        fieldbyname('InvoiceType').AsInteger := Cmb_InvoiceType.ItemIndex;
        fieldbyname('BillType').AsInteger := Cmb_BillType.ItemIndex;
        fieldbyname('Billdate').asstring:=medt_InvoiceDate.Text;
        fieldbyname('customerCode').asstring:=Trim(edt_CustomerCode.text);
        fieldbyname('customerName').asstring:=Trim(edt_CustomerName.text);
        fieldbyname('currencyCode').asstring:=Trim(edt_CurrencyCode.text);
        fieldbyname('currencyName').asstring:=Trim(edt_CurrencyName.text);
        fieldbyname('SaleTypeCode').AsString := Edt_SaleTypeCode.Text;
        fieldbyname('SaleTypeName').AsString := Edt_SaleTypeName.Text;
        fieldbyname('SaleTermCode').AsString := Edt_PayTermCode.Text;
        fieldbyname('PayTermName').AsString := Edt_PayTermName.Text;
        fieldbyname('Bank').AsString := Edt_Bank.Text;
        fieldbyname('BankActNo').AsString := Edt_BankActNo.text;
        fieldbyname('ExchangeRate').asfloat:=strtofloat(Trim(edt_ExchRate.text));
        fieldbyname('TaxRate').AsFloat := StrToFloat(Edt_Rate.Text);
        fieldbyname('TotalTaxAmount').asSTring:=FormatFloat('#####0.##',strtofloat(Trim(edt_TotalTaxAmount.text)));
        fieldbyname('CancelAmount').asString:=FormatFloat('#####0.##',strtofloat(Trim(edt_CancelAmount.text)));
        fieldbyname('ExportTradeTypeCode').AsString := Trim(Edt_ExportTypeCode.Text);
        fieldbyname('ExportTradeTypeName').AsString := Trim(Edt_ExportTypeName.Text)        ;
        fieldbyname('SaleDeptCode').asstring:=Trim(edt_DeptCode.text);
        fieldbyname('DeptName').asstring:=Trim(edt_DeptName.text);
        fieldbyname('SaleEmployeeCode').asstring:=Trim(edt_SaleEmployeeCode.text);
        fieldbyname('SaleEmployeeName').asstring:=Trim(edt_SaleEmployeeName.text);
        fieldbyname('CreateEmployeeCode').asstring:=Trim(edt_CreateEmployeeCode.text);
        fieldbyname('CreaterName').asstring:=Trim(edt_CreateEmployeeName.text);
        fieldbyname('CreateDate').asstring:=medt_Createdate.Text;
        fieldbyname('RemArk').AsString := Trim(Edt_RemArk.Text);
        post;
      end;
  except
    if dbconnect.InTransaction then
      dbconnect.RollBackTrans;
    if Assigned(AdoQry) then AdoQry.Free;
    abort;
  end;
end;

procedure TFrm_Ar_Enter_NoGatherInvoice_D.SetStatus(CurrentStatus: String;
  var EnableControls: String);
begin
  inherited;

end;

procedure TFrm_Ar_Enter_NoGatherInvoice_D.edt_BtCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  if(Key=120)then
    CommonHint(Sender,AdoQry_Tmp,'BalanceTypeName','结算方式名称','BalanceTypeCode','结算方式代码','BalanceType');
end;

procedure TFrm_Ar_Enter_NoGatherInvoice_D.edt_SaleEmployeeCodeExit(
  Sender: TObject);
begin
  inherited;
  if ActiveControl.Name='btn_Cancel' then
    exit;
  with AdoQry_Tmp do
  begin
    Close;
    SQL.clear;
    SQL.Add('Select EmployeeCode,EmployeeName From Employee Where EmployeeCode='''+TEdit(Sender).Text+'''');
    Open;
    if  eof then
    begin
      DispInfo('该人员代码不存在!',1);
      TWinControl(Sender).SetFocus;
      Abort;
    end;
    edt_SaleEmployeeName.Text:=fieldbyname('EmployeeName').asstring;
  end;
end;

procedure TFrm_Ar_Enter_NoGatherInvoice_D.edt_CreateEmployeeCodeExit(
  Sender: TObject);
begin
  inherited;
  if ActiveControl.Name='btn_Cancel' then
    exit;
  with AdoQry_Tmp do
  begin
    Close;
    SQL.clear;
    SQL.Add('Select EmployeeCode,EmployeeName From Employee Where EmployeeCode='''+TEdit(Sender).Text+'''');
    Open;
    if  eof then
    begin
      DispInfo('该人员代码不存在!',1);
      TWinControl(Sender).SetFocus;
      Abort;
    end;
    edt_CreateEmployeeName.Text:=fieldbyname('EmployeeName').asstring;
  end;
end;

procedure TFrm_Ar_Enter_NoGatherInvoice_D.edt_DeptCodeExit(Sender: TObject);
begin
  inherited;
  if Trim(edt_DeptCode.Text)='' then exit;
  if ActiveControl.Name='btn_Cancel' then
    exit;

  with AdoQry_Tmp do
  begin
    Close;
    SQL.clear;
    SQL.Add('Select DeptCode,DeptName From Dept Where DeptCode='''+TEdit(Sender).Text+'''');
    Open;
    if  eof then
    begin
      DispInfo('该部门代码不存在!',1);
      TWinControl(Sender).SetFocus;
      Abort;
    end;
    edt_DeptName.Text:=fieldbyname('DeptName').asstring;
  end;

end;

procedure TFrm_Ar_Enter_NoGatherInvoice_D.edt_CustomerCodeExit(Sender: TObject);
var sqltext:string;
    tmpYear,tmPMonth:integer;
begin
  inherited;
  if ActiveControl.Name='btn_Cancel' then
    exit;
  with AdoQry_Tmp do
  begin
    Close;
    SQL.clear;
    SQL.Add('Select customerCode,customerName From customer Where customerCode='''+TEdit(Sender).Text+'''');
    Open;
    if  eof then
    begin
      DispInfo('该客户代码不存在!',1);
      TWinControl(edt_CustomerCode).SetFocus;
      Abort;
    end;
    edt_CustomerName.Text:=fieldbyname('customerName').asstring;
  end;
  if Add then
  begin
    SqlText:=' Select CustomerTaxRate_Percent,CustomerShipModeCode,ShipModeName,CustomerCurrencyCode,CurrencyName,'
            +'  CustomerPayTermCode,PayTermName,CustomerSaleTypeCode,SaleTypeName,'
            +'  CustomerSaleDeptCode,DeptName,CustomerSaleEmployeeCode,EmployeeName '
            +' From Customer '
            +' Left Join ShipMode  '
            +'   On Customer.CustomerShipModeCode=ShipMode.ShipModeCode'
            +' Left Join Currency  '
            +'   On Customer.CustomerCurrencyCode=Currency.CurrencyCode '
            +' Left Join PayTerm  '
            +'   On Customer.CustomerPayTermCode=PayTerm.PayTermCode  '
            +' Left Join SaleType'
            +'   On Customer.CustomerSaleTypeCode=SaleType.SaleTypeCode  '
            +' Left Join Dept   '
            +'   On Customer.CustomerSaleDeptCode=Dept.DeptCode   '
            +' Left Join Employee    '
            +'   On Customer.CustomerSaleEmployeeCode=Employee.EmployeeCode  '
            +' Where CustomerCode='''+Edt_CustomerCode.Text+'''  ';
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.clear;
    AdoQry_Tmp.SQL.text:=SqlText;
    AdoQry_Tmp.Open;
    With AdoQry_Tmp do
    begin
      if Trim(Edt_DeptCode.Text)='' then
      begin
        Edt_DeptCode.Text := fieldbyname('CustomerSaleDeptCode').asstring;
        Edt_DeptName.Text := fieldbyname('DeptName').asstring;
      end;
      if Trim(Edt_SaleTypeCode.Text)='' then
      begin
        Edt_SaleTypeCode.Text := fieldbyname('CustomerSaleTypeCode').asstring;
        Edt_SaleTypeName.Text :=fieldbyname('SaleTypeName').AsString;
      end;
      if Trim(Edt_SaleEmployeeCode.Text)=''then
      begin
        Edt_SaleEmployeeCode.Text := fieldbyname('CustomerSaleEmployeeCode').asstring;
        Edt_SaleEmployeeName.Text := fieldbyname('EmployeeName').asstring;
      end;
      if Trim(Edt_PayTermCode.Text)='' then
      begin
        Edt_PayTermCode.Text := fieldbyname('CustomerPayTermCode').asstring;
        Edt_PayTermName.Text := fieldbyname('PayTermName').asstring;
      end;
      if Trim(Edt_CurrencyCode.Text)='' then
      begin
        Edt_CurrencyCode.Text := fieldbyname('CustomerCurrencyCode').asstring;
        Edt_CurrencyName.Text := fieldbyname('CurrencyName').asstring;
      end;
      edt_rate.Text:=FloatToStr(AdoQry_tmp.fieldbyname('CUSTOMERTAXRATE_PERCENT').AsFloat);
      edt_rate.Text := iifString(edt_rate.text='0','17',edt_rate.Text);
    end;

  end;
end;

procedure TFrm_Ar_Enter_NoGatherInvoice_D.edt_BtCodeExit(Sender: TObject);
begin
  inherited;
  if ActiveControl.Name='btn_Cancel' then
    exit;
  with AdoQry_Tmp do
  begin
    Close;
    SQL.clear;
    SQL.Add('Select BalanceTypeCode,BalanceTypeName From BalanceType Where BalanceTypeCode='''+TEdit(Sender).Text+'''');
    Open;
    if  eof then
    begin
      DispInfo('该结算方式代码不存在!',1);
      TWinControl(Sender).SetFocus;
      Abort;
    end;
  end;
end;

procedure TFrm_Ar_Enter_NoGatherInvoice_D.edt_CurrencyCodeExit(Sender: TObject);
begin

⌨️ 快捷键说明

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