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

📄 ar_enter_gathering_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    ExchRate := GetCurrencyRate(dbconnect,Trim(Edt_CurrencyCode.Text),Copy(MEdt_GatherDate.Text,1,7));
    if Add then
    //新增
      sqltext:='insert into Ar_Gathering(Gatheringno,BalanceTypeCode,'
              +' Gatheringdate,customerCode,actSubjectCode,currencyCode, '
              +' ExchangeRate,Billno,customerbank,customerbankactno, '
              +' SaleDeptCode,SaleEmployeeCode,TotaltaxAmount, TotalTaxAmountC,'
              +' TotalCancelAmount,createdate,createEmployeeCode,remArk)'
              +' Values('+quotedstr(Trim(edt_gatherno.text))+','
                      +quotedstr(Trim(edt_BtCode.text))+','
                      +quotedstr(medt_gatherdate.text)+','
                      +quotedstr(Trim(edt_CustomerCode.text))+','
                      +quotedstr(Trim(edt_actCode.text))+','
                      +quotedstr(Trim(edt_CurrencyCode.text))+','
                      +Trim(edt_rate.text)+','
                      +quotedstr(Trim(edt_Billno.text))+','
                      +quotedstr(Trim(edt_Bank.text))+','
                      +quotedstr(Trim(edt_Bankaccno.text))+','
                      +quotedstr(Trim(edt_DeptCode.text))+','
                      +quotedstr(Trim(edt_SaleEmployeeCode.text))+','
                      +Trim(edt_Amount.text)+','
                      +FloatToStr(StrToFloat(Trim(Edt_Amount.Text))*StrToFloat(Edt_Rate.Text))+','
                      +'0,'
                      +quotedstr(medt_Createdate.text)+','
                      +quotedstr(Trim(edt_CreateEmployeeCode.text))+','
                      +quotedstr(Trim(edt_remArk.text))+')'
    else
      sqltext:='update Ar_Gathering'
             +' set BalanceTypeCode='+quotedstr(Trim(edt_BtCode.text))+','
             +'     Gatheringdate='+quotedstr(medt_gatherdate.text)+','
             +'     customerCode='+quotedstr(edt_CustomerCode.text)+','
             +'     actSubjectCode='+quotedstr(Trim(edt_actCode.text))+','
             +'     currencyCode='+quotedstr(Trim(edt_CurrencyCode.text))+','
             +'     ExchangeRate='+Trim(edt_rate.text)+','
             +'     Billno='+quotedstr(Trim(edt_Billno.text))+','
             +'     customerbank='+quotedstr(Trim(edt_Bank.text))+','
             +'     customerbankactno='+quotedstr(Trim(edt_Bankaccno.text))+','
             +'     TotaltaxAmount='+Trim(edt_Amount.text)+','
             +'     TotalTaxAmountC = '+FloatToStr(StrToFloat(Trim(Edt_Amount.Text))*StrToFloat(Edt_Rate.Text))+','
             +'     SaleDeptCode='+quotedstr(Trim(edt_DeptCode.text))+','
             +'     SaleEmployeeCode='+quotedstr(Trim(edt_SaleEmployeeCode.text))+','
             +'     createEmployeeCode='+quotedstr(Trim(edt_CreateEmployeeCode.text))+','
             +'     createdate='+quotedstr(medt_Createdate.text)+','
             +'     remArk='+quotedstr(Trim(edt_remArk.text))
             +'where Gatheringno='+quotedstr(Trim(edt_gatherno.text));
    if Add then
      begin
        Executesql(AdoQry_tmp,sqltext,1);
        saveGatheringhistory(dbconnect,Trim(edt_gatherno.text),userCode,0);
        Sqltext:='Update customer with(Rowlock)'
                +'   set TakeBackMoneyTotal=IsNull(TakeBackMoneyTotal,0)+'+Edt_Amount.text 
                +' Where CustomerCode='+QuotedStr(Edt_CustomerCode.text);
        ExecuteSql(AdoQry_Tmp,sqltext,1)              ;
        CancelGathering(edt_gatherno.text);
      end
    else
      begin
        saveGatheringhistory(dbconnect,Trim(edt_gatherno.text),userCode,1);
        Executesql(AdoQry_tmp,sqltext,1);
        Sqltext:='Update customer with(Rowlock)'
                +'   set TakeBackMoneyTotal=IsNull(TakeBackMoneyTotal,0)+'+Edt_Amount.text +'-('+TmpAmount+')'
                +' Where CustomerCode='+QuotedStr(Edt_CustomerCode.text);
        ExecuteSql(AdoQry_Tmp,sqltext,1)              ;
        CancelGathering(edt_gatherno.text);  {修改后再重新核销该收款单据}
      end;
    if Assigned(AdoQry) then AdoQry.Free;
    dbconnect.CommitTrans;
    with AdoQry_Maintain do
      begin
        fieldbyname('Gatheringno').asstring:=Trim(edt_gatherno.text);
        fieldbyname('BalanceTypeCode').asstring:=Trim(edt_BtCode.text);
        fieldbyname('BalanceTypeName').asstring:=Trim(edt_BtName.text);
        fieldbyname('Gatheringdate').asstring:=medt_gatherdate.Text;
        fieldbyname('customerCode').asstring:=Trim(edt_CustomerCode.text);
        fieldbyname('customerName').asstring:=Trim(edt_CustomerName.text);
        fieldbyname('actSubjectCode').asstring:=Trim(edt_actCode.text);
        fieldbyname('currencyCode').asstring:=Trim(edt_CurrencyCode.text);
        fieldbyname('currencyName').asstring:=Trim(edt_CurrencyName.text);
        fieldbyname('ExchangeRate').asfloat:=strtofloat(Trim(edt_rate.text));
        fieldbyname('Billno').asstring:=Trim(edt_Billno.text);
        fieldbyname('customerbank').asstring:=Trim(edt_Bank.text);
        fieldbyname('customerbankactno').asstring:=Trim(edt_Bankaccno.text);
        fieldbyname('TotaltaxAmount').asfloat:=strtofloat(Trim(edt_Amount.text));
        fieldbyname('SaleDeptCode').asstring:=Trim(edt_DeptCode.text);
        fieldbyname('DeptName').asstring:=Trim(edt_DeptName.text);
        fieldbyname('SaleEmployeeCode').asstring:=Trim(edt_SaleEmployeeCode.text);
        fieldbyname('SalEmployeeName').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_Gathering_D.SetStatus(CurrentStatus: String;
  var EnableControls: String);
begin
  inherited;

end;

procedure TFrm_Ar_Enter_Gathering_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_Gathering_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_Gathering_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_Gathering_D.edt_DeptCodeExit(Sender: TObject);
begin
  inherited;
  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_Gathering_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(Sender).SetFocus;
      Abort;
    end;
    edt_CustomerName.Text:=fieldbyname('customerName').asstring;
  end;
  sqltext:='select * from customer where customerCode='+quotedstr(Trim(edt_CustomerCode.text));
  Executesql(AdoQry_tmp,sqltext,0)  ;
  edt_CurrencyCode.Text:=AdoQry_tmp.fieldbyname('customercurrencyCode').asstring;
  sqltext:='select * from Gl_Accountperiod where Currentperiod=1';
  Executesql(AdoQry_tmp,sqltext,0);
  tmpYear:=AdoQry_tmp.fieldbyname('AccountperiodYear').asinteger;
  tmPMonth:=AdoQry_tmp.fieldbyname('AccountperiodMonth').asinteger;
  sqltext:='select * from Gl_ForeignCurrencyRate '
          +' where convert(int,substring(Accountperiod,1,4))='+inttostr(tmpYear)
          +'   and convert(int,substring(Accountperiod,6,2))='+inttostr(tmPMonth)
          +'   and currencyCode='+quotedstr(Trim(edt_CurrencyCode.text));
  Executesql(AdoQry_tmp,sqltext,0);
  edt_rate.Text:=AdoQry_tmp.fieldbyname('ForeignRate').asstring;
end;

procedure TFrm_Ar_Enter_Gathering_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;
    edt_BtName.Text:=fieldbyname('BalanceTypeName').asstring;
  end;
end;

procedure TFrm_Ar_Enter_Gathering_D.edt_CurrencyCodeExit(Sender: TObject);
begin
  inherited;
  if ActiveControl.Name='btn_Cancel' then
    exit;

  with AdoQry_Tmp do
  begin
    Close;
    SQL.clear;
    SQL.Add('Select currencyCode,currencyName,IsMaster From currency Where currencyCode='''+TEdit(Sender).Text+'''');
    Open;
    if  eof then
    begin
      DispInfo('该货币代码不存在!',1);
      TWinControl(Sender).SetFocus;
      Abort;
    end;
    edt_CurrencyName.Text:=fieldbyname('currencyName').asstring;
    Edt_Rate.Text := FloatToStr(GetCurrencyRate(dbconnect,Edt_CurrencyCode.Text,Copy(medt_GatherDate.Text,1,7)));
    Edt_Rate.Enabled := IifValue(fieldbyname('IsMaster').AsInteger=1,False,True);
  end;

end;

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

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

procedure TFrm_Ar_Enter_Gathering_D.btn_okClick(Sender: TObject);
var sqltext:string;
begin
  if not Add then
    begin
      sqltext:='select isnull(TotalCancelAmount,0)-('+Trim(edt_Amount.text)+') as ss from Ar_Gathering '
              +' where Gatheringno='+quotedstr(Trim(edt_gatherno.text));
      Executesql(AdoQry_tmp,sqltext,0)              ;
      if AdoQry_tmp.fieldbyname('ss').asfloat>0 then 
        begin
          DispInfo('更改后的金额不能小于该收款单据已核销金额,请修改!',3);
          edt_Amount.SetFocus;
          abort;
        end;
    end;
  inherited;

end;

end.

⌨️ 快捷键说明

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