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

📄 sal_enter_shiporder.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    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 + -