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

📄 ar_enter_noinvoiceshiporder_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  if (Add) and (CheckAllTypeOrderNoSet(DbConnect,3)) then
    Edt_InvBillNo.Text := GetAllTypeOrderNo(DbConnect,3); {自动获得单据号}
  try
    dbconnect.beginTrans;
    if Add then
    //新增
      SqlText:='Insert InvOutBill '
        +' (InvBillNo,InvBillDate,InvBillMonth,InvBillCreateTime,Sal_EmployeeCode,SaleEmployeeCode,DeptCode, '
        +' CustomerCode,WhCode,WhPositionCode,ShipAddresSCode,ShipModeCode,SaleType,BillTypeCode,CurrencyCode,'
        +' PayTermCode,InvBillTaxRate, ExchRate ,TotalInvBillNoTaxAmount,TotalInvBillNoTaxAmountC,TotalInvBillAmount, TotalInvBillAmountC,   '
        +' InvBillWhChCk,RemArk1,RemArk)'
        +'  Values('
        +''''+Trim(Edt_InvBillNo.Text)+''','
        +''''+Trim(MEdt_InvBillDate.Text)+''','
        +QuotedStr(Copy(MEdt_InvBillDate.Text,1,7))+','
        +''''+Trim(MEdt_InvBillDate.Text)+''','
        +''''+UserCode+''','
        +''''+Trim(Edt_SaleEmployeeCode.Text)+''','
        +iifstring(Trim(edt_DeptCode.Text)='','null',quotedstr(Trim(Edt_DeptCode.Text)))+','
        +iifstring(Trim(edt_CustomerCode.Text)='','null',quotedstr(Trim(Edt_CustomerCode.Text)))+','
        +Quotedstr(Edt_WhCode.Text)+','
        +QuotedStr(Edt_WhPositionCode.Text)+','
        +''''+Trim(Edt_ShipAddresSCode.Text)+''','
        +''''+Trim(Edt_ShipModeCode.Text)+''','
        +''''+Trim(Edt_SaleTypeCode.Text)+''','
        +QuotedStr('0204')+','
        +iifstring(Trim(edt_CurrencyCode.Text)='','null',quotedstr(Trim(Edt_CurrencyCode.Text)))+','
        +iifString(Trim(Edt_PayTermCode.Text)='','null',quotedstr(Trim(Edt_PayTermCode.Text)))+','
        +''''+Trim(Edt_Rate.Text)+''','
        +FloatToStr(ExchRate)+','
        +FormatFloat('#####0.##',StrToFloat(Edt_InvBillNoTaxAmount.Text))+','
        +FormatFloat('#####0.##',StrToFloat(Edt_InvBillNoTaxAmountC.Text))+','
        +FormatFloat('#####0.##',StrToFloat(Trim(Edt_InvBillAmount.Text)))+','
        +FormatFloat('#####0.##',StrToFloat(Edt_InvBillAmountC.Text))+','
        +' 0,'
        +''''+Trim(Edt_RemArk1.Text)+''','
        +''''+Trim(Edt_RemArk.Text)+''')'
    else
      SqlText:='Update InvOutBill '
              +' Set InvBillNo='''+Trim(Edt_InvBillNo.Text)+''','
              +' InvBillCreateTime= '''+Trim(MEdt_CreateDate.Text)+''','
              +' SaleEmployeeCode= '''+Trim(Edt_SaleEmployeeCode.Text)+''','
              +' DeptCode= '+iifstring(Trim(edt_DeptCode.Text)='','null',quotedstr(Trim(Edt_DeptCode.Text)))+','
              +' ShipAddresSCode= '''+Trim(Edt_ShipAddresSCode.Text)+''','
              +' ShipModeCode= '''+Trim(Edt_ShipModeCode.Text)+''','
              +' SaleType= '''+Trim(Edt_SaleTypeCode.Text)+''','
              +' CurrencyCode= ' +iifstring(Trim(edt_CurrencyCode.Text)='','null',quotedstr(Trim(Edt_CurrencyCode.Text)))+','
              +' PayTermCode= '''+Trim(Edt_PayTermCode.Text)+''','
              +' InvBillTaxRate= '''+Trim(Edt_Rate.Text)+''','
              +' ExchRate = ' +FloatToStr(ExchRate)+','
              +' TotalInvBillNoTaxAmount= '+FormatFloat('#####0.##',StrToFloat(Trim(Edt_InvBillNoTaxAmount.Text)))+','
              +' TotalInvBillAmount= '+FormatFloat('######0.##',StrToFloat(Trim(Edt_InvBillAmount.Text)))+','
              +' TotalInvBillNoTaxAmountC= '+FormatFloat('#####0.##',StrToFloat(Trim(Edt_InvBillNoTaxAmountC.Text)))+','
              +' TotalInvBillAmountC= '+FormatFloat('#####0.##',StrToFloat(Trim(Edt_InvBillAmountC.Text)))+','
              +' InvBillRemArk = '+QuotedStr(Edt_RemArk.Text)+','
              +' RemArk= '''+Trim(Edt_RemArk1.Text)+''','
              +' RemArk1= '''+Trim(Edt_RemArk2.Text)+''','
              +' CustomerCode='+iifstring(Trim(edt_CustomerCode.Text)='','null',quotedstr(Trim(Edt_CustomerCode.Text)))
              +' Where InvBillNo='''+Trim(Edt_InvBillNo.Text)+'''';
    ExecuteSql(AdoQry,SqlText,1);
    if Assigned(AdoQry) then AdoQry.Free;
    dbconnect.CommitTrans;
    with AdoQry_Maintain do
      begin
        fieldbyname('InvBillNo').asstring:=Trim(edt_InvBillNo.text);
        fieldbyname('InvBilldate').asstring:=medt_InvBilldate.Text;
        fieldbyname('InvBillMonth').AsString := Medt_InvBillMonth.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('WhCode').AsString := Edt_WhCode.Text;
        fieldbyname('WhName').AsString := Edt_WhName.Text;
        fieldbyname('WhPositionCode').AsString := Edt_WhPositionCode.Text;
        fieldbyname('WhPositionName').AsString := Edt_WhPositionName.Text;
        fieldbyname('SaleType').AsString := Edt_SaleTypeCode.Text;
        fieldbyname('SaleTypeName').AsString := Edt_SaleTypeName.Text;
        fieldbyname('ShipAddresSCode').AsString := Edt_ShipAddresSCode.Text;
        fieldbyname('ShipAddressName').AsString := Edt_ShipAddressName.Text;
        fieldbyname('ShipModeCode').AsString := Edt_ShipModeCode.Text;
        fieldbyname('ShipModeName').AsString := Edt_ShipModeName.Text;
        fieldbyname('PayTermCode').AsString := Edt_PayTermCode.Text;
        fieldbyname('PayTermCode').AsString := Edt_PayTermName.Text;
        fieldbyname('InvBillTaxRate').asfloat:=strtofloat(Trim(edt_Rate.text));
        fieldbyname('TotalInvBillAmount').asfloat:=strtofloat( FormatFloat('######0.##',StrToFloat(Trim(edt_InvBillAmount.text))));
        fieldbyname('TotalInvBillAmountC').asfloat:=strtofloat( FormatFloat('######0.##',StrToFloat(Trim(edt_InvBillAmountC.text))));
        fieldbyname('TotalInvBillNoTaxAmount').asfloat:=strtofloat( FormatFloat('######0.##',StrToFloat(Trim(edt_InvBillNoTaxAmount.text))));
        fieldbyname('TotalInvBillNoTaxAmountC').asfloat:=strtofloat( FormatFloat('######0.##',StrToFloat(Trim(edt_InvBillNoTaxAmountC.text))));
        fieldbyname('DeptCode').asstring:=Trim(edt_DeptCode.text);
        fieldbyname('DeptName').asstring:=Trim(edt_DeptName.text);
        fieldbyname('SaleEmployeeCode').asstring:=Trim(edt_SaleEmployeeCode.text);
        fieldbyname('EmployeeName').asstring:=Trim(edt_SaleEmployeeName.text);
        fieldbyname('Sal_EmployeeCode').asstring:=Trim(edt_CreateEmployeeCode.text);
        fieldbyname('createEmployeeName').asstring:=Trim(edt_CreateEmployeeName.text);
        fieldbyname('InvBillCreateTime').asstring:=medt_Createdate.Text;
        fieldbyname('InvBillRemArk').asstring:=Trim(edt_remArk.text);
        fieldbyname('RemArk').AsString := Trim(Edt_RemArk1.Text);
        fieldbyname('RemArk1').AsString := Trim(Edt_RemArk2.Text);
        post;
      end;
  except
    if dbconnect.InTransaction then
      dbconnect.RollBackTrans;
    if Assigned(AdoQry) then AdoQry.Free;
    abort;
  end;
end;

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

end;

procedure TFrm_Ar_Enter_NoInvoiceShipOrder_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_NoInvoiceShipOrder_D.edt_SaleEmployeeCodeExit(
  Sender: TObject);
begin
  inherited;
  if Trim(Edt_SaleEmployeeCode.Text)='' then exit;
  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_NoInvoiceShipOrder_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_NoInvoiceShipOrder_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_NoInvoiceShipOrder_D.edt_CustomerCodeExit(Sender: TObject);
var sqltext:string;
begin
  inherited;
  if Trim(Edt_CustomerCode.Text)='' then exit;
  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_ShipModeCode.Text)='' then
      begin
        Edt_ShipModeCode.Text := fieldbyname('CustomerShipModeCode').asstring;
        Edt_ShipModeName.Text := fieldbyname('ShipModeName').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;

    SqlText:=' Select ShipAddresSCode,ShipAddressName From CustomerShipAddress '
             +' 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_ShipAddresSCode.Text)='' then
      begin
        Edt_ShipAddresSCode.Text := fieldbyname('ShipAddresSCode').asstring;
        Edt_ShipAddressName.Text := fieldbyname('ShipAddressName').asstring;
      end;
    end;
  end;
end;

procedure TFrm_Ar_Enter_NoInvoiceShipOrder_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_NoInvoiceShipOrder_D.edt_CurrencyCodeExit(Sender: TObject);
begin
  inherited;
  IF Trim(Edt_CurrencyCode.Text)<>'' Then
     CurrencyCodeCheck(Sender);
  ExchRate := 1;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.clear;
  AdoQry_Tmp.SQL.Text:=' Select CurrencyCode,CurrencyName,IsMaster from Currency '
                      +'          where CurrencyCode= '''+Edt_CurrencyCode.Text+''' ';
  AdoQry_Tmp.Open;
  Edt_CurrencyName.Text := AdoQry_Tmp.fieldbyname('CurrencyName').AsString;
  If AdoQry_Tmp.fieldbyname('IsMaster').AsInteger=1 then Exit;{如果是本位币则不用判断是否有外币汇率资料}
  ExecuteSql(AdoQry_Tmp,' select * from ExchRate  '
                       + '  where CurrencyCode= '+QuotedStr(Edt_CurrencyCode.Text)
                       + '    and ExchMonth= '+QuotedStr(copy(Medt_CreateDate.Text,1,7)),0);
  if AdoQry_tmp.RecordCount=0 then 
  begin
    DispInfo('没有该货币'+Copy(Medt_CreateDate.Text,1,7)+'月的外币汇率!',3);
    If Edt_CurrencyCode.CanFocus then  Edt_CurrencyCode.SetFocus;
    Abort;    
  end;
  ExchRate := AdoQry_Tmp.fieldbyname('ExchRate').AsFloat;
end;

procedure TFrm_Ar_Enter_NoInvoiceShipOrder_D.edt_BtCodeButtonClick(Sender: TObject);
begin
  inherited;
  CommonHint(Sender,AdoQry_Tmp,'BalanceTypeName','结算方式名称','BalanceTypeCode','结算方式代码','BalanceType');
end;

procedure TFrm_Ar_Enter_NoInvoiceShipOrder_D.edt_BtCodeChange(Sender: TObject);
begin
  inherited;
  btn_ok.Enabled:=True;
end;

procedure TFrm_Ar_Enter_NoInvoiceShipOrder_D.Edt_WhCodeKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);

⌨️ 快捷键说明

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