📄 ar_enter_saleinvoice4.pas
字号:
+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 + -