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 + -
显示快捷键?