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

📄 ar_enter_saleinvoice4.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:
                +AdoQry_Body.fieldbyname('InvBillId').AsString+','
                +''''+AdoQry_Body.fieldbyname('ShipLineNo').AsString+''','
                +''' '''
                +')';
        AdoQry_Tmp.Close;
        AdoQry_Tmp.SQL.Text:=SqlText;
        AdoQry_Tmp.ExecSQL;
        saveSalInvoiceLineHistory(dbconnect,Trim(Edt_InvoiceNo.Text),AdoQry_Body.fieldbyname('InvBillId').asInteger,AdoQry_Body.fieldbyname('ShipLineNo').asString,userCode,0);
        SqlText:=' Update InvOutBill Set InvoiceNo='''+Trim(Edt_InvoiceNo.Text)+''' '
                +'     Where InvBillNo='''+AdoQry_Body.fieldbyname('ShipNo').AsString+''' ';
        AdoQry_Tmp.Close;
        AdoQry_Tmp.SQL.Text:=SqlText;
        AdoQry_Tmp.ExecSQL;
        AdoQry_Body.Next;
      end;
    end;
    If CurrentFormStatus='PArtEdit' Then
    begin
    //  SaveSa_SaleOrderHistory(dbconnect,Trim(edt_SloNo.text),userCode,1);
      saveSalInvoiceHistory(dbconnect,Trim(Edt_InvOiceNo.Text),userCode,1);

      SqlText:='Update Sa_SaleInvoice Set '
              +' SaleDeptCode='+quotedstr(Trim(edt_DeptCode.text))+','
              +' SaleEmployeeCode='+quotedstr(Trim(edt_SaleEmployeeCode.text))+','
              +' SaleTypeCode='+quotedstr(Trim(edt_SaleTypeCode.text))+','
              +' InAccountDate='+QuotedStr(MEdt_InAccountDate.Text)+','
              +' CreateEmployeeCode= '''+Edt_CreateEmployeeCode.Text+''','
              +' CustomerCode= '''+Trim(Edt_CustomerCode.Text)+''','
              +' Bank= '''+Trim(Edt_CustomerBank.Text)+''','
              +' BankActNo= '''+Trim(Edt_CustomerBankActNo.Text)+''','
              +' TaxActNo='+QuotedStr(Edt_TaxActNo.Text)+','
              +' CurrencyCode= '''+Trim(Edt_CurrencyCode.Text)+''','
              +' ExchangeRate= '''+Trim(Edt_ExchangeRate.Text)+''','
              +' SaleTermCode= '''+Trim(Edt_SaleTermCode.Text)+''','
              +' RemArk='''+Edt_RemArk.Text+''' '
              +' Where InvoiceNo='''+Trim(Edt_InvOiceNo.Text)+'''';
      AdoQry_Tmp.Close;
      AdoQry_Tmp.SQL.Text:=SqlText;
      AdoQry_Tmp.ExecSQL;
      AdoQry_Body.First;
      While Not AdoQry_Body.Eof Do
      begin
//        saveSalInvoiceLineHistory(dbconnect,AdoQry_Body.fieldbyname('Invoiceno').asstring,AdoQry_Body.fieldbyname('Shipno').asstring,AdoQry_Body.fieldbyname('Shiplineno').asinteger,userCode,1);
{        SqlText:=' UpDate Sa_SaleInvoiceLine '
                +' Set '
                +' ShipNo='''+AdoQry_Body.fieldbyname('ShipNo').AsString+''','
                +' ShipLineNo='''+IntToStr(AdoQry_Body.fieldbyname('ShipLineNo').AsInteger)+''','
                +' ItemCode='''+AdoQry_Body.fieldbyname('ItemCode').AsString+''','
                +' ShipQty='''+AdoQry_Body.fieldbyname('ShipQty').AsString+''','
                +' TaxPrice='''+FloatToStr(AdoQry_Body.fieldbyname('TaxPrice').AsFloat)+''','
                +' TaxAmount='''+FloatToStr(AdoQry_Body.fieldbyname('TaxAmount').AsFloat)+''','
                +' NoTaxPrice='''+FloatToStr(AdoQry_Body.fieldbyname('noTaxPrice').AsFloat)+''','
                +' NoTaxAmount='''+FloatToStr(AdoQry_Body.fieldbyname('noTaxAmount').AsFloat)+''','
                +' DiSCountRate='''+AdoQry_Body.fieldbyname('DiSCountRate').AsString+''','
                +' DiSCountAmount='''+AdoQry_Body.fieldbyname('DiSCountAmount').AsString+''''

                +' Where InvoiceNo='''+AdoQry_Body.fieldbyname('InvoiceNo').AsString+'''' ;
        AdoQry_Tmp.Close;
        AdoQry_Tmp.SQL.Text:=SqlText;
        AdoQry_Tmp.ExecSQL;
        SqlText:=' Update InvOutBill Set InvoiceNo='''+Trim(Edt_InvoiceNo.Text)+''' '
                +'     Where InvBillNo='''+AdoQry_Body.fieldbyname('ShipNo').AsString+''' ';
        AdoQry_Tmp.Close;
        AdoQry_Tmp.SQL.Text:=SqlText;
        AdoQry_Tmp.ExecSQL;

}
        AdoQry_Body.Next;
      end;
    end;
    DbConnect.CommitTrans;
    Act_Save.Enabled:=False;
    DispInfo('数据保存成功!',3);
  Except
   on e:exception do
    begin
    DbConnect.RollBackTrans;
    recOrderror(self,AdoQry_tmp,e.message);
//    Edt_ShipNo.Text:='';
    DispInfo('保存数据失败,请重试!',1);
    Abort;
    end;
  end;

end;

procedure TFrm_Ar_Enter_SaleInvoice4.SaveHeadData;
begin
  If Edt_InvoiceNo.Text= '' then
  begin
    DispInfo('请输入发票号!',3);
    Edt_InvoiceNo.SetFocus;
    Abort;
  end;
  try
     Edt_ExchangeRate.Text := floattostr(strtofloat(Edt_ExchangeRate.text));
  except
     DispInfo('汇率输入错误!',3);
     Edt_ExchangeRate.SetFocus;
     Abort;
  end;
  inherited;
  with Frm_Ar_Enter_SaleInvoice4H.AdoQry_Head do
  begin
   If CurrentFormStatus='Add' Then
      Append
    else
      edit;
    fieldbyname('InvOiceNo').AsString:=Edt_InvOiceNo.Text;
    fieldbyname('active').asinteger:=1;
    fieldbyname('CustomerCode').AsString:=Edt_CustomerCode.Text;
    fieldbyname('CustomerName').AsString:=edit2.Text;
    fieldbyname('taxactno').asstring:=edt_taxactno.Text;
    fieldbyname('CreateEmployeeCode').AsString:=Edt_CreateEmployeeCode.Text;
    fieldbyname('BillDate').Asstring:=MEdt_CreateDate.Text;
    fieldbyname('InAccountDate').AsString := MEdt_InAccountDate.Text;
    fieldbyname('CurrencyCode').AsString:=Edt_CurrencyCode.Text;
    fieldbyname('CurrencyName').AsString:=Lab_CurrencyName.Caption;
    fieldbyname('SaleTermCode').AsString:=Edt_SaleTermCode.Text;
    fieldbyname('PayTermName').AsString:=Lab_SaleTermName.Caption;
    fieldbyname('SaleDeptCode').asstring:=edt_DeptCode.text;
    fieldbyname('DeptName').asstring:=edt_DeptName.Text;
    fieldbyname('SaleEmployeeCode').asstring:=edt_SaleEmployeeCode.Text;
    fieldbyname('SaleEmployeeName').asstring:=edt_SaleEmployeeName.Text;
    fieldbyname('SaleTypeCode').asstring:=edt_SaleTypeCode.Text;
    fieldbyname('SaleTypeName').asstring:=edt_SaleTypeName.text;

    fieldbyname('Bank').AsString:=Edt_CustomerBank.Text ;
    fieldbyname('BankActNo').AsString:=Edt_CustomerBankActNo.Text ;
    fieldbyname('ExchangeRate').AsString:=Edt_ExchangeRate.text;
    fieldbyname('TaxRate').AsString := Edt_TaxRate.Text;
    fieldbyname('edItEmployeeCode').asstring:=userCode;
    fieldbyname('editdate').asstring:=GetServerDateTime(dbconnect);
    fieldbyname('TotalTaxAmount').AsFloat:=-StrToFloat(Edt_TotalTaxAmount.Text);
    fieldbyname('TotalNoTaxAmount').AsFloat:=-StrToFloat(Edt_TotalNoTaxAmount.Text);
    fieldbyname('RemArk').AsString:=Edt_RemArk.Text;
    post;
  end;

end;

procedure TFrm_Ar_Enter_SaleInvoice4.Edt_CustomerCodeExit(Sender: TObject);
begin
  inherited;
  if activecontrol.Name='ToolButton4' then
  exit;
  Executesql(AdoQry_tmp,'select * from customer where customerCode='+quotedstr(Trim(edt_CustomerCode.text))+' and customertaxno<>'+quotedstr(''),0);
  if AdoQry_tmp.RecordCount=0 then
    begin
     DispInfo('客户代码输入错误!',1);
     edt_CustomerCode.SetFocus;
     abort;
    end;
    Edit2.text:=AdoQry_tmp.fieldbyname('customerName').asstring;
    edt_Customerbank.Text:=AdoQry_tmp.fieldbyname('customerbank').asstring;
    edt_Customerbankactno.Text:=AdoQry_tmp.fieldbyname('customerbankaccno').asstring;
    edt_taxactno.Text:=gettaxactno(Trim(edt_CustomerCode.text));
end;

procedure TFrm_Ar_Enter_SaleInvoice4.Edt_CurrencyCodeExit(Sender: TObject);
begin
  inherited;
  if activecontrol.Name='ToolButton4' then
  exit;
  Executesql(AdoQry_tmp,'select * from currency where currencyCode='+quotedstr(Trim(edt_CurrencyCode.text)),0);
  if AdoQry_tmp.RecordCount=0 then
    begin
     DispInfo('货币代码输入错误!',1);
     edt_CurrencyCode.SetFocus;
     abort;
    end;
    Edit1.Text :=AdoQry_tmp.fieldbyname('currencyName').asstring;
end;

function  TFrm_Ar_Enter_SaleInvoice4.gettaxactno(customerCode:string):string;
begin
  Result:='';
  Executesql(AdoQry_tmp,'select customertaxno from customer where customerCode='+quotedstr(customerCode),0);
  Result:=AdoQry_tmp.fieldbyname('customertaxno').asstring;
end;


procedure TFrm_Ar_Enter_SaleInvoice4.Edt_CustomerCodeKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if(Key=120)then
    CommonHint(Sender,AdoQry_Tmp,'customerName','客户名称','customerCode','客户代码','customer','customertaxno<>'+quotedstr(''));

end;

procedure TFrm_Ar_Enter_SaleInvoice4.edt_SaletermCodeButtonClick(
  Sender: TObject);
begin
  inherited;
  CommOnHint(Sender,AdoQry_Tmp,'PayTermName','付款条款名称','PayTermCode',
             '付款条款代号',' PayTerm ');

end;

procedure TFrm_Ar_Enter_SaleInvoice4.edt_DeptCodeExit(Sender: TObject);
begin
  inherited;
  if activecontrol.Name='ToolButton4' then exit;
  if Trim(Tlinkedit(sender).text)='' then exit;
  Executesql(AdoQry_tmp,'select * from Dept where DeptCode='+quotedstr(Tlinkedit(sender).text),0);
  if AdoQry_tmp.RecordCount=0 then 
   begin
    DispInfo('该部门代码不存在!',3);
    abort;
   end;
  edt_DeptName.Text:=AdoQry_tmp.fieldbyname('DeptName').asstring;

end;

procedure TFrm_Ar_Enter_SaleInvoice4.edt_SaleTypeCodeKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if key=120 then 
  CommOnHint(Sender,AdoQry_Tmp,'SaleTypeName','销售类型名称','SaleTypeCode',
             '销售类型代码',' SaleType ');

end;

procedure TFrm_Ar_Enter_SaleInvoice4.edt_SaleTypeCodeButtonClick(
  Sender: TObject);
begin
  inherited;
  CommOnHint(Sender,AdoQry_Tmp,'SaleTypeName','销售类型名称','SaleTypeCode',
             '销售类型代码',' SaleType ');

end;

procedure TFrm_Ar_Enter_SaleInvoice4.edt_SaleTypeCodeExit(Sender: TObject);
begin
  inherited;
  if activecontrol.Name='ToolButton4' then exit;
  if Trim(Tlinkedit(sender).text)='' then exit;
  Executesql(AdoQry_tmp,'select * from SaleType where SaleTypeCode='+quotedstr(Tlinkedit(sender).text),0);
  if AdoQry_tmp.RecordCount=0 then 
   begin
    DispInfo('该销售类型代码不存在!',3);
    abort;
   end;
  edt_SaleTypeName.Text:=AdoQry_tmp.fieldbyname('SaleTypeName').asstring;

end;

procedure TFrm_Ar_Enter_SaleInvoice4.edt_SaleEmployeeCodeExit(
  Sender: TObject);
begin
  inherited;
  if activecontrol.Name='ToolButton4' then exit;
  if Trim(Tlinkedit(sender).text)='' then exit;
  Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Tlinkedit(sender).text),0);
  if AdoQry_tmp.RecordCount=0 then 
   begin
    DispInfo('该营销业务员代码不存在!',3);
    abort;
   end;
  edt_SaleEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
end;

procedure TFrm_Ar_Enter_SaleInvoice4.Act_SaveExecute(Sender: TObject);
begin
  inherited;
  act_New.Enabled:=False;
end;

procedure TFrm_Ar_Enter_SaleInvoice4.FormActivate(Sender: TObject);
begin
  inherited;
  If CurrentFormStatus='Add' then Act_Save.Enabled := True;
end;

procedure TFrm_Ar_Enter_SaleInvoice4.MEdt_InAccountDateExit(
  Sender: TObject);
var StArtDate : String;
begin
  inherited;
  DateCheck(Sender);
  ExecuteSql(AdoQry_Tmp,' Select ParamValuec From Ar_Param '
                     +'    Where ParamCode=''clsperiod'' ',0);
  If AdoQry_tmp.RecordCount>0 then  
    StArtDate := AdoQry_Tmp.fieldbyname('ParamValueC').AsString
  else 
  begin
    ExecuteSql(AdoQry_Tmp,'Select ParamValuec From Ar_Param '
                        +' Where ParamCode=''StartUseAr'' ',0);
    If AdoQry_tmp.RecordCount>0 then
    StArtDate := AdoQry_Tmp.fieldbyname('ParamValueC').AsString
    else begin
      DispInfo('模块未启用,不能入帐!',3);
      Medt_InAccountDate.SetFocus;
      abort;
    end;;
  end;
  If Not ( (StrToDateTime(Medt_InAccountDate.Text)>=StrToDateTime(StArtDate+'.01'))
          and (StrToDateTime(Medt_InAccountDate.Text)<IncMonth(StrToDateTime(StArtDate+'.01'),2))
         ) then 
  begin
    DispInfo('入帐日期必须大于等于'+QuotedStr(StArtDate+'.01')+',小于'+QuotedStr(DateTimeToStr(IncMonth(StrToDateTime(StArtDate+'.01'),2)))+'!',3);
    Medt_InAccountDate.SetFocus;
    abort;
  end;
end;

procedure TFrm_Ar_Enter_SaleInvoice4.AdoQry_BodyShipQtyGetText(
  Sender: TField; var Text: String; DisplayText: Boolean);
begin
  inherited;
  Text := FloatToStr(-AdoQry_Body.fieldbyname('ShipQty').AsFloat);
end;

procedure TFrm_Ar_Enter_SaleInvoice4.AdoQry_BodyTaxAmountGetText(
  Sender: TField; var Text: String; DisplayText: Boolean);
begin
  inherited;
  Text := FloatToStr(-AdoQry_Body.fieldbyname('TaxAmount').AsFloat);

end;

procedure TFrm_Ar_Enter_SaleInvoice4.AdoQry_BodyTaxAmountCGetText(
  Sender: TField; var Text: String; DisplayText: Boolean);
begin
  inherited;
  Text := FloatToStr(-AdoQry_Body.fieldbyname('TaxAmountC').AsFloat);

end;

procedure TFrm_Ar_Enter_SaleInvoice4.AdoQry_BodyNoTaxAmountGetText(
  Sender: TField; var Text: String; DisplayText: Boolean);
begin
  inherited;
  Text := FloatToStr(-AdoQry_Body.fieldbyname('NoTaxAmount').AsFloat);

end;

procedure TFrm_Ar_Enter_SaleInvoice4.AdoQry_BodyDiSCountAmountGetText(
  Sender: TField; var Text: String; DisplayText: Boolean);
begin
  inherited;
  Text := FloatToStr(-AdoQry_Body.fieldbyname('DiSCountAmount').AsFloat);

end;

end.

⌨️ 快捷键说明

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