📄 sal_enter_shiporder.pas
字号:
begin
ExecuteSql(AdoQry_Tmp,'select * from InvOutBill '
+' where InvBillWhChCk=0 '
+' and InvBillNo='+QuotedStr(Edt_InvBillNo.Text),0);
if AdoQry_Tmp.RecordCount=0 then
begin
DispInfo('该单据已审核或被删除,不能修改!',3);
Abort;
end;
// SaveSa_SaleOrderHistory(dbconnect,Trim(edt_SloNo.text),userCode,1);
// saveShipOrderHistory(dbconnect,Trim(edt_InvBillNo.text),userCode,1);
SqlText:='Update InvOutBill '
+' Set InvBillNo='''+Trim(Edt_InvBillNo.Text)+''','
+' InvBillDate= '''+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= '''+Trim(Edt_CurrencyCode.Text)+''','
+' PayTermCode= '''+Trim(Edt_PayTermCode.Text)+''','
+' BillTypeCode='+QuotedStr(IIFValue(Cmb_BillType.ItemIndex=0,'0205','0206'))+','
+' InvBillTaxRate= '''+Trim(Edt_TaxRate_Percent.Text)+''','
+' TotalInvBillNoTaxAmount= '''+Trim(Edt_TotalNoTaxAmount.Text)+''','
+' TotalInvBillNoTaxAmountC=Convert(Decimal(20,2),ExchRate*('+Edt_TotalNoTaxAmount.Text+')),'
+' TotalInvBillAmount= '''+Trim(Edt_TotalTaxAmount.Text)+''','
+' TotalInvBillAmountC=Convert(decimal(20,2),ExchRate*('+Edt_TotalTaxAmount.Text+')),'
+' RemArk= '''+Trim(Edt_RemArk.Text)+''','
+' RemArk1= '''+Trim(Edt_RemArk1.Text)+''','
+' CustomerCode='''+Edt_CustomerCode.Text+''''
+' Where InvBillNo='''+Trim(Edt_InvBillNo.Text)+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.ExecSQL;
AdoQry_Body.First;
While Not AdoQry_Body.Eof Do
begin
// saveShipOrderLineHistory(dbconnect,Trim(edt_InvBillNo.text),AdoQry_Body.fieldbyname('InvBillLineNo').asinteger,userCode,1);
// SaveSa_SaleOrderLineHistory(dbconnect,Trim(edt_SloNo.text),AdoQry_Body.fieldbyname('SloLineNo').asinteger,userCode,1);
ExecuteSql(AdoQry_Tmp,'select ExchRate from InvOutBill where InvBillNo='+QuotedStr(Edt_InvBillNo.Text),0) ;
SqlText:=' UpDate InvOutBillLine '
+' Set '
+' InvBillLineNo='''+IntToStr(AdoQry_Body.fieldbyname('InvBillLineNo').AsInteger)+''','
+' SloNo='''+AdoQry_Body.fieldbyname('SloNo').AsString+''','
+' SloLineNo='''+IntToStr(AdoQry_Body.fieldbyname('SloLineNo').AsInteger)+''','
+' ItemCode='''+AdoQry_Body.fieldbyname('ItemCode').AsString+''','
+' InvBillQty='''+AdoQry_Body.fieldbyname('InvBillQty').AsString+''','
+' InvBillNoTaxPrice='''+AdoQry_Body.fieldbyname('InvBillNoTaxPrice').AsString+''','
+' InvBillNoTaxPriceC='+AdoQry_Tmp.fieldbyname('ExchRate').AsString+'*('+AdoQry_Body.fieldbyname('InvBillNoTaxPrice').AsString+'),'
+' InvBillNoTaxAmount='''+FormatFloat('#####0.##',AdoQry_Body.fieldbyname('InvBillNoTaxAmount').AsFloat)+''','
+' InvBillNoTaxAmountC=Convert(decimal(20,2),'+AdoQry_Tmp.fieldbyname('ExchRate').AsString+'*('+AdoQry_Body.fieldbyname('InvBillNoTaxAmount').AsString+')),'
+' InvBillPrice='''+FloatToStr(AdoQry_Body.fieldbyname('InvBillPrice').AsFloat)+''','
+' InvBillPriceC='+AdoQry_Tmp.fieldbyname('ExchRate').AsString+'*('+AdoQry_Body.fieldbyname('InvBillPrice').AsString+'),'
+' DiSCountRate='''+AdoQry_Body.fieldbyname('DiSCountRate').AsString+''','
+' DiSCountAmount='''+FormatFloat('#####0.##',AdoQry_Body.fieldbyname('DiSCountAmount').AsFloat)+''','
+' BillLineRemArk='''+AdoQry_Body.fieldbyname('BillLineRemArk').AsString+''','
+' BatchNo='''+AdoQry_Body.fieldbyname('BatchNo').AsString+''''+','
+' InvBillAmountC=Convert(decimal(20,2),'+AdoQry_Tmp.fieldbyname('ExchRate').AsString+'*('+AdoQry_Body.fieldbyname('InvBillAmount').AsString+')),'
+' InvBillAmount='''+FormatFloat('#####0.##',AdoQry_Body.fieldbyname('InvBillAmount').AsFloat)+''''
+' Where InvBillId='''+AdoQry_Body.fieldbyname('InvBillId').AsString+''''
+' And InvBillLineNo='''+AdoQry_Body.fieldbyname('InvBillLineNo').AsString+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.ExecSQL;
SqlText:=' Update Sa_SaleOrderLine Set PrepareShipQty=IsNull(PrepareShipQty,0)+'+AdoQry_Body.fieldbyname('InvBillQty').AsString+iifstring(AdoQry_Body.fieldbyname('TmpField').AsFloat=0,'-('+AdoQry_Body.fieldbyname('InvBillQty').AsString+')','-('+AdoQry_Body.fieldbyname('TmpField').AsString+')')
+' Where SloNo='''+AdoQry_Body.fieldbyname('SloNo').AsString+''' '
+' And SloLineNo='''+IntToStr(AdoQry_Body.fieldbyname('SloLineNo').AsInteger)+'''';
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_InvBillNo.Text:='';
DispInfo('保存数据失败,请重试!',1);
Abort;
end;
end;
with Frm_Sal_Enter_ShipOrderH.AdoQry_Head do
begin
If CurrentFormStatus='Add' Then
Append
else
edit;
fieldbyname('InvBillNo').AsString:=Edt_InvBillNo.Text;
fieldbyname('InvBillDate').AsString := MEdt_CreateDate.Text;
fieldbyname('CustomerCode').AsString:=Edt_CustomerCode.Text;
fieldbyname('CustomerName').AsString:=Lab_CustomerName.Caption;
fieldbyname('TotalInvBillNoTaxAmount').AsString:=Edt_TotalNoTaxAmount.Text ;
fieldbyname('TotalInvBillAmount').AsString:=Edt_TotalTaxAmount.Text ;
If CurrentFormStatus='Add' Then
begin
fieldbyname('Sal_EmployeeCode').AsString:=UserCode;
fieldbyname('InvBillDate').Asstring:=MEdt_CreateDate.Text;
end
else
begin
end;
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('DeptCode').AsString:=Edt_DeptCode.Text;
fieldbyname('DeptName').AsString:=Lab_SaleDeptName.Caption;
// fieldbyname('SaleDeptFalg').AsString:=Edt_DeptCode.Text+' '+Lab_SaleDeptName.Caption;
fieldbyname('SaleType').AsString:=Edt_SaleTypeCode.Text;
fieldbyname('SaleTypeName').asstring:=edt_SaleTypeName.Text;
fieldbyname('SaleEmployeeCode').AsString:=Edt_SaleEmployeeCode.Text;
fieldbyname('EmployeeName').AsString:= Lab_SaleEmployeeName.Caption;
// fieldbyname('EmployeeName_1').AsString:= Label20.Caption;
// fieldbyname('SaleEmployeeFalg').AsString:=Edt_SaleEmployeeCode.Text+' '+Lab_SaleEmployeeName.Caption;
fieldbyname('CurrencyCode').AsString:=Edt_CurrencyCode.Text;
fieldbyname('CurrencyName').AsString:=Lab_CurrencyName.Caption;
// fieldbyname('CurrencyFalg').AsString:=Edt_CurrencyCode.Text+' '+Lab_CurrencyName.Caption;
fieldbyname('InvBillTaxRate').AsString:=Edt_TaxRate_Percent.Text;
fieldbyname('ShipModeCode').AsString:=Edt_ShipModeCode.Text;
fieldbyname('ShipModeName').AsString:=Lab_ShipModeName.Caption;
// fieldbyname('ShipModeFalg').AsString:=Edt_ShipModeCode.Text+' '+Lab_ShipModeName.Caption;
fieldbyname('ShipAddresSCode').AsString:=Edt_ShipAddresSCode.Text;
fieldbyname('ShipAddressName').AsString:=Lab_ShipAddressName.Caption;
// fieldbyname('ShipAddressFalg').AsString:=Edt_ShipAddresSCode.Text+' '+Lab_ShipAddressName.Caption;
fieldbyname('BillTypeCode').AsString := IIFValue(Cmb_BillType.ItemIndex=0,'0205','0206');
fieldbyname('PayTermCode').AsString:=Edt_PayTermCode.Text;
fieldbyname('SaleTermName').AsString:=Lab_SaleTermName.Caption;
//fieldbyname('SaleTermFalg').AsString:=Edt_PayTermCode.Text+' '+Lab_SaleTermName.Caption;
fieldbyname('RemArk').AsString:=Edt_RemArk.Text;
post;
end;
inherited;
Frm_Sal_Enter_ShipOrderH.Saved := True;
Close;
end;
procedure TFrm_Sal_Enter_ShipOrder.AdoQry_BodyAfterPost(DataSet: TDataSet);
var
TotalNoTaxAmount,TotalTaxAmount:double;
BookMArk:String;
begin
inherited;
TotalNoTaxAmount:=0;
TotalTaxAmount:=0;
if AdoQry_Body.RecordCount >0 then
BookMArk:=AdoQry_Body.BookMArk;
AdoQry_Body.First;
while not AdoQry_Body.Eof do
begin
TotalTaxAmount:= TotalTaxAmount +AdoQry_Body.fieldbyname('InvBillAmount').asfloat;
TotalNoTaxAmount:= TotalNoTaxAmount +AdoQry_Body.fieldbyname('InvBillNoTaxAmount').asfloat;
AdoQry_Body.Next;
end;
if AdoQry_Body.RecordCount >0 then
AdoQry_Body.BookMArk:=BookMArk;
Edt_TotalNoTaxAmount.Text:= FormatFloat('#####0.##',TotalNoTaxAmount);
Edt_TotalTaxAmount.Text:= FormatFloat('#####0.##',TotalTaxAmount);
end;
procedure TFrm_Sal_Enter_ShipOrder.SetStatus(CurrentStatus: String;
var AnswerStatus, EnableControls: String);
begin
inherited;
if Currentstatus='Add' then
begin
AnswerStatus:='Add';
EnableControls:=' Edt_InvBillNo,Edt_CustomerCode,'//Edt_CreateEmployeeCode,'
+' MEdt_CreateDate, Edt_DeptCode, Edt_SaleTypeCode,'
+' Edt_SaleEmployeeCode, Edt_CurrencyCode, Edt_TaxRate_Percent,'
+' Edt_ShipModeCode, Edt_ShipAddresSCode, Edt_PayTermCode,'
+' Edt_RemArk,Cmb_BillType,Edt_RemArk1,Edt_AssessorEmployeeCode,';
end
Else If Pos('Edit',CurrentStatus)>0 Then
begin
AnswerStatus:='PArtEdit';
EnableControls:=' Edt_CustomerCode,'//Edt_CreateEmployeeCode,'
+' MEdt_CreateDate, Edt_DeptCode, Edt_SaleTypeCode,'
+' Edt_SaleEmployeeCode, Edt_CurrencyCode, Edt_TaxRate_Percent,'
+' Edt_ShipModeCode, Edt_ShipAddresSCode, Edt_PayTermCode,'
+' Edt_RemArk,Edt_RemArk1,Cmb_BillType,Edt_InvoiceNo,Cx_Assess,Edt_AssessorEmployeeCode,';
end;
end;
procedure TFrm_Sal_Enter_ShipOrder.Act_DeleteLineExecute(Sender: TObject);
var
BookMArk:String;
begin
// inherited;
if (not AdoQry_Body.IsEmpty)and
(DispInfo(' 真的删除当前记录吗? ',2)='y') then
AdoQry_Body.Delete;
If AdoQry_Body.RecordCount>0 Then
begin
BookmArk:=AdoQry_Body.BookmArk;
AdoQry_Body.First;
While Not AdoQry_Body.Eof Do
begin
AdoQry_Body.Edit;
AdoQry_Body.fieldbyname('InvBillLineNo').AsInteger:=AdoQry_Body.RecNo;
AdoQry_Body.Post;
AdoQry_Body.Next;
end;
AdoQry_Body.BookmArk:=BookMArk;
end;
end;
procedure TFrm_Sal_Enter_ShipOrder.Act_PreviewExecute(Sender: TObject);
begin
// inherited;
if Act_Save.Enabled = True then
begin
DispInfo('没有保存数据,不能预览!',1);
Abort;
end;
If AdoQry_Body.RecordCount=0 Then
begin
DispInfo('没有行数据,不能预览!',1);
Abort;
end;
Frm_Sal_Enter_ShipOrder_P:=TFrm_Sal_Enter_ShipOrder_P.Create(Application);
Frm_Sal_Enter_ShipOrder_P.SetDBConnect(DbConnect);
Frm_Sal_Enter_ShipOrder_P.SetSysParam(UserCode,ModuleCode,MenuId,DateTimeToStr(Now));
Frm_Sal_Enter_ShipOrder_P.GetHeadData(AdoQry_Body,Trim(Edt_InvBillNo.Text),'Preview');
Frm_Sal_Enter_ShipOrder_P:=Nil;
end;
procedure TFrm_Sal_Enter_ShipOrder.Act_PrintExecute(Sender: TObject);
begin
// inherited;
if Act_Save.Enabled = True then
begin
DispInfo('没有保存数据,不能打印!',1);
Abort;
end;
If AdoQry_Body.RecordCount=0 Then
begin
DispInfo('没有行数据,不能打印!',1);
Abort;
end;
Frm_Sal_Enter_ShipOrder_P:=TFrm_Sal_Enter_ShipOrder_P.Create(Application);
Frm_Sal_Enter_ShipOrder_P.SetDBConnect(DbConnect);
Frm_Sal_Enter_ShipOrder_P.SetSysParam(UserCode,ModuleCode,MenuId,DateTimeToStr(Now));
Frm_Sal_Enter_ShipOrder_P.GetHeadData(AdoQry_Body,Trim(Edt_InvBillNo.Text),'Print');
Frm_Sal_Enter_ShipOrder_P:=Nil;
end;
procedure TFrm_Sal_Enter_ShipOrder.Act_NewExecute(Sender: TObject);
begin
{ if Frm_Sal_Enter_ShipOrder_C1=nil then
Frm_Sal_Enter_ShipOrder_C1:=TFrm_Sal_Enter_ShipOrder_C1.Create(Application);
Frm_Sal_Enter_ShipOrder_C1.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Sal_Enter_ShipOrder_C1.InitForm(DbConnect,False);
inherited;
Frm_Sal_Enter_ShipOrder_C1.BringToFront ;}
end;
procedure TFrm_Sal_Enter_ShipOrder.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
Frm_Sal_Enter_ShipOrder:=nil;
end;
procedure TFrm_Sal_Enter_ShipOrder.Act_InsertLineExecute(Sender: TObject);
begin
// TaxRate_Percent:=Edt_TaxRate_Percent.Text;
// CustomerCode:=Edt_CustomerCode.Text;
inherited;
end;
procedure TFrm_Sal_Enter_ShipOrder.Act_ModifyExecute(Sender: TObject);
begin
IF Trim(Edt_CustomerCode.Text)='' Then
begin
DispInfo('销售客户不能为空!',3);
Edt_CustomerCode.SetFocus;
Abort;
end;
IF Trim(Edt_TaxRate_Percent.Text)='' Then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -