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

📄 sal_enter_othershiporder.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 5 页
字号:
     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_OtherShipOrder.SetStatus(CurrentStatus: String;
  var AnswerStatus, EnableControls: String);
begin
  inherited;
  if Currentstatus='Add' then
  begin
    AnswerStatus:='Add';
    EnableControls:='Edt_ShipNo,Edt_CustomerCode,'//Edt_CreateEmployeeCode,'
                   +' MEdt_CreateDate, Edt_SaleDeptCode, Edt_SaleTypeCode,'
                   +' Edt_SaleEmployeeCode, Edt_CurrencyCode, Edt_TaxRate_Percent,'
                   +' Edt_ShipModeCode, Edt_ShipAddresSCode, Edt_PayTermCode,'
                   +' Edt_RemArk,Edt_RemArk1,Edt_AssessorEmployeeCode,Cmb_BillType,';
  end
  Else If Pos('Edit',CurrentStatus)>0 Then
  begin
    AnswerStatus:='PArtEdit';
    EnableControls:=' Edt_CustomerCode,'//Edt_CreateEmployeeCode,'
                   +' MEdt_CreateDate, Edt_SaleDeptCode, Edt_SaleTypeCode,'
                   +' Edt_SaleEmployeeCode, Edt_CurrencyCode, Edt_TaxRate_Percent,'
                   +' Edt_ShipModeCode, Edt_ShipAddresSCode, Edt_PayTermCode,'
                   +' Edt_RemArk,Edt_RemArk1,Edt_InvoiceNo,Cx_Assess,Cmb_BillType,Edt_AssessorEmployeeCode,';
  end;

end;

procedure TFrm_Sal_Enter_OtherShipOrder.Act_DeleteLineExecute(Sender: TObject);
var
  BookMArk:String;
begin
//  inherited;
 if (not AdoQry_Body.IsEmpty)and
     (DispInfo(' 真的删除当前记录吗? ',2)='y') then
 begin
   DeletedInvBillLine := DeletedInvBillLine+','+QuotedStr(AdoQry_Body.fieldbyname('InvBillId').AsString
                      +':'+AdoQry_Body.fieldbyname('InvBillLineNo').AsString);
   AdoQry_Body.Delete;
 end;
 
  If  (AdoQry_Body.RecordCount>0) and (Status='Add') 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_OtherShipOrder.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_ShipNo.Text),'Preview');
  Frm_Sal_Enter_ShipOrder_P:=Nil;
end;

procedure TFrm_Sal_Enter_OtherShipOrder.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_ShipNo.Text),'Print');
  Frm_Sal_Enter_ShipOrder_P:=Nil;
end;

procedure TFrm_Sal_Enter_OtherShipOrder.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;

end;

procedure TFrm_Sal_Enter_OtherShipOrder.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  Frm_Sal_Enter_OtherShipOrder:=nil;
end;

procedure TFrm_Sal_Enter_OtherShipOrder.Act_InsertLineExecute(Sender: TObject);
var MaxLineNo : Integer;
    BookMArk : String;
begin
  IF Trim(Edt_CustomerCode.Text)='' Then
  begin
    DispInfo('销售客户不能为空!',3);
    Edt_CustomerCode.SetFocus;
    Abort;
  end;
  IF Trim(Edt_TaxRate_Percent.Text)='' Then
  begin
    DispInfo('销售税率不能为空!',3);
    Edt_TaxRate_Percent.SetFocus;
    Abort;
  end;
  IF Trim(Edt_CurrencyCode.Text)='' Then
  begin
    DispInfo('货币不能为空!',3);
    Edt_CurrencyCode.SetFocus;
    Abort;
  end;
    IF Trim(Edt_CurrencyCode.Text)<>'' Then
    CurrencyCodeCheck(Edt_CurrencyCode);
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.clear;
  AdoQry_Tmp.SQL.Text:=' Select CurrencyCode,CurrencyName,IsMaster from Currency '
                      +'          where CurrencyCode= '''+Edt_CurrencyCode.Text+''' ';
  AdoQry_Tmp.Open;
  Edt_CurrencyName.Text := AdoQry_Tmp.fieldbyname('CurrencyName').AsString;
  ExchRate := 1;
  If AdoQry_Tmp.fieldbyname('IsMaster').AsInteger<>1 then {如果是本位币则不用判断是否有外币汇率资料}
  begin
    ExecuteSql(AdoQry_Tmp,' select * from ExchRate  '
                         + '  where CurrencyCode= '+QuotedStr(Edt_CurrencyCode.Text)
                         + '    and ExchMonth= '+QuotedStr(copy(Medt_CreateDate.Text,1,7)),0);
    if AdoQry_tmp.RecordCount=0 then 
    begin
      DispInfo('没有该货币'+Copy(Medt_CreateDate.Text,1,7)+'月的外币汇率!',3);
      If Edt_CurrencyCode.CanFocus then  Edt_CurrencyCode.SetFocus;
      Abort;    
    end;
    ExchRate := AdoQry_Tmp.fieldbyname('ExchRate').AsFloat;
  end;

  IF Trim(Edt_WhCode.Text)='' Then
  begin
    DispInfo('仓库代码不能为空!',3);
    Edt_WhCode.SetFocus;
    Abort;
  end;

  IF Trim(Edt_WhPositionCode.Text)='' Then
  begin
    DispInfo('货位代码不能为空!',3);
    Edt_WhPositionCode.SetFocus;
    Abort;
  end;

  Frm_Sal_Enter_OtherShipOrder_D.LineNo := AdoQry_Body.RecordCount;
  If Pos('Edit',Status)>0 then
  begin
    MaxLineNo := 0;
    BookMArk := AdoQry_Body.BookmArk;
    AdoQry_Body.DisableControls;
    AdoQry_Body.First;
    While Not  AdoQry_Body.Eof do
    begin
      If AdoQry_Body.fieldbyname('InvBillLineNo').AsInteger>MaxLineNo then
      MaxLineNo := AdoQry_Body.fieldbyname('InvBillLineNo').AsInteger;
      AdoQry_Body.Next;
    end;
    AdoQry_Body.BookmArk := BookMArk;
    AdoQry_Body.EnableControls;
    Frm_Sal_Enter_OtherShipOrder_D.LineNo := MaxLineNo;
  end;

  TaxRate_Percent:=Edt_TaxRate_Percent.Text;
  CustomerCode:=Edt_CustomerCode.Text;
  ShipDate:=MEdt_CreateDate.Text ;
  WhCode := Edt_WhCode.Text;
  WhPositionCode := Edt_WhPositionCode.Text;
  inherited;
  Edt_ShipNo.Enabled:=False;
end;

procedure TFrm_Sal_Enter_OtherShipOrder.Act_ModifyExecute(Sender: TObject);
begin
  TaxRate_Percent:=Edt_TaxRate_Percent.Text;
  CustomerCode:=Edt_CustomerCode.Text;
  ShipDate:=MEdt_CreateDate.Text;
  inherited;

end;

procedure TFrm_Sal_Enter_OtherShipOrder.Edt_SaleDeptCodeExit(
  Sender: TObject);
begin
  inherited;
  if Edt_SaleDeptCode.Text <> '' then
  begin
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.clear;
    AdoQry_Tmp.SQL.Text:=' Select DeptCode,DeptName from Dept '
                        +'          where DeptCode= '''+Edt_SaleDeptCode.Text+''' ';
    AdoQry_Tmp.Open;
    if  not AdoQry_Tmp.Eof then
      Edt_SaleDeptName.Text := AdoQry_Tmp.fieldbyname('DeptName').AsString
    else
    begin
      DispInfo('销售部门代码错误,请重新输入',1);
      TWinControl(Sender).SetFocus;
      Abort;
    end;
  end
  else
  begin
    Edt_SaleDeptName.Text:='';
  end;
end;

procedure TFrm_Sal_Enter_OtherShipOrder.Edt_CustomerCodeExit(
  Sender: TObject);
begin
  inherited;
  IF Trim(Edt_CustomerCode.Text)<>'' Then
     CustomerCodeCheck(sender);
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.clear;
  AdoQry_Tmp.SQL.Text:=' Select CustomerCode,CustomerName from Customer '
                      +'          where CustomerCode= '''+Edt_CustomerCode.Text+''' ';
  AdoQry_Tmp.Open;
  Edt_CustomerName.Text := AdoQry_Tmp.fieldbyname('CustomerName').AsString;
  if  Trim(Edt_CustomerCode.Text) <>Enter_CustomerCode  then
  begin
    GetCustomerItem(Edt_CustomerCode.Text);
    Enter_CustomerCode:= Trim(Edt_CustomerCode.Text);
  end;
end;

procedure TFrm_Sal_Enter_OtherShipOrder.Edt_SaleEmployeeCodeExit(
  Sender: TObject);
begin
  inherited;
  if  Edt_SaleEmployeeCode.Text <>'' then
  begin
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.clear;
    AdoQry_Tmp.SQL.Text:=' Select EmployeeCode,EmployeeName from Employee '
                        +'          where EmployeeCode= '''+Edt_SaleEmployeeCode.Text+''' ';
    AdoQry_Tmp.Open;
    if not AdoQry_Tmp.Eof then
    begin
      Edt_SaleEmployeeName.Text := AdoQry_Tmp.fieldbyname('EmployeeName').AsString;
    end
    else
    begin
      DispInfo('销售员代码错误,请重新输入',1);
      TWinControl(Sender).SetFocus;
      Abort;
    end;

  end
  else
    Edt_SaleEmployeeName.Text:='';
end;

procedure TFrm_Sal_Enter_OtherShipOrder.Edt_CurrencyCodeExit(
  Sender: TObject);
begin
  inherited;
  IF Trim(Edt_CurrencyCode.Text)<>'' Then
     CurrencyCodeCheck(Sender);
  ExchRate := 1;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.clear;
  AdoQry_Tmp.SQL.Text:=' Select CurrencyCode,CurrencyName,IsMaster from Currency '
                      +'          where CurrencyCode= '''+Edt_CurrencyCode.Text+''' ';
  AdoQry_Tmp.Open;
  Edt_CurrencyName.Text := AdoQry_Tmp.fieldbyname('CurrencyName').AsString;
  If AdoQry_Tmp.fieldbyname('IsMaster').AsInteger=1 then Exit;{如果是本位币则不用判断是否有外币汇率资料}
  ExecuteSql(AdoQry_Tmp,' select * from ExchRate  '
                       + '  where CurrencyCode= '+QuotedStr(Edt_CurrencyCode.Text)
                       + '    and ExchMonth= '+QuotedStr(copy(Medt_CreateDate.Text,1,7)),0);
  if AdoQry_tmp.RecordCount=0 then 
  begin
    DispInfo('没有该货币'+Copy(Medt_CreateDate.Text,1,7)+'月的外币汇率!',3);
//    If Edt_CurrencyCode.CanFocus then  Edt_CurrencyCode.SetFocus;
    Abort;    
  end;
  ExchRate := AdoQry_Tmp.fieldbyname('ExchRate').AsFloat;
end;

procedure TFrm_Sal_Enter_OtherShipOrder.GetCustomerItem(
  CustomerCode: String);
var
  SqlText:String;
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 '

⌨️ 快捷键说明

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