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

📄 sal_enter_saleorder.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 4 页
字号:
unit Sal_Enter_SaleOrder;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Entry_Body, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
  ExtCtrls, ComCtrls, ToolWin, StdCtrls, Mask, ExtEdit, linkedit, jpeg;

Type
  TFrm_Sal_Enter_SaleOrder = Class(TFrm_Base_Entry_Body)
    Label1: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Edt_SloNo: TEdit;
    Label15: TLabel;
    MEdt_CreateDate: TMaskEdit;
    Edt_TaxRate_Percent: TEdit;
    Edt_RemArk: TEdit;
    AdoQry_BodySloNo: TStringField;
    AdoQry_BodySloLineNo: TIntegerField;
    AdoQry_BodyItemCode: TStringField;
    AdoQry_BodySloQty: TFloatField;
    AdoQry_BodyNoTaxPrice: TFloatField;
    AdoQry_BodyNoTaxAmount: TFloatField;
    AdoQry_BodyTaxPrice: TFloatField;
    AdoQry_BodyTaxAmount: TFloatField;
    AdoQry_BodySloLineDate: TDateTimeField;
    AdoQry_BodySloLineStatus: TIntegerField;
    AdoQry_BodySloLineRemArk: TStringField;
    AdoQry_BodyUomName: TStringField;
    Edt_TotalNoTaxAmount: TEdit;
    Edt_TotalTaxAmount: TEdit;
    Label4: TLabel;
    Label16: TLabel;
    Lab_ShipAddressName: TLabel;
    Lab_SaleTermName: TLabel;
    Lab_CurrencyName: TLabel;
    Lab_SaleDeptName: TLabel;
    Lab_CustomerName: TLabel;
    Lab_SaleEmployeeName: TLabel;
    AdoQry_BodyItemName: TStringField;
    AdoQry_BodyDiSCountRate: TFloatField;
    AdoQry_BodyDiSCountAmount: TFloatField;
    AdoQry_BodySloCheck: TIntegerField;
    Label2: TLabel;
    Edt_RemArk1: TEdit;
    Edt_SaleTypeName: TEdit;
    Edt_CurrencyName: TEdit;
    Edt_SaleDeptName: TEdit;
    Edt_SaleEmployeeName: TEdit;
    Edt_SaleTermName: TEdit;
    Edt_CustomerName: TEdit;
    Edt_ShipModeName: TEdit;
    Edt_ShipAddressName: TEdit;
    AdoQry_BodyShipQty: TFloatField;
    AdoQry_BodyPrepareShipQty: TFloatField;
    AdoQry_BodyLastOperationTime: TDateTimeField;
    Edt_CustomerCode: TLinkEdit;
    Edt_ShipAddresSCode: TLinkEdit;
    Edt_PayTermCode: TLinkEdit;
    Edt_ShipModeCode: TLinkEdit;
    Edt_CurrencyCode: TLinkEdit;
    Edt_SaleTypeCode: TLinkEdit;
    Edt_SaleDeptCode: TLinkEdit;
    Edt_SaleEmployeeCode: TLinkEdit;
    Label11: TLabel;
    Label17: TLabel;
    edt_CustomerPmno: TEdit;
    Label18: TLabel;
    edt_referenceno: TEdit;
    AdoQry_BodyShipDays: TIntegerField;
    procedure FormCreate(Sender: TObject);
    procedure Edt_ShipAddresSCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edt_PayTermCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edt_ShipModeCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edt_CustomerCodeExit(Sender: TObject);
    procedure Edt_SaleTypeCodeExit(Sender: TObject);
    procedure Edt_CurrencyCodeExit(Sender: TObject);
    procedure Edt_TotalNoTaxAmountExit(Sender: TObject);
    procedure Edt_TotalTaxAmountExit(Sender: TObject);
    procedure Act_PreviewExecute(Sender: TObject);
    procedure Act_PrintExecute(Sender: TObject);
    procedure Act_DeleteLineExecute(Sender: TObject);
    procedure Edt_SloNoExit(Sender: TObject);
    procedure Edt_ShipAddresSCodeExit(Sender: TObject);
    procedure Edt_PayTermCodeExit(Sender: TObject);
    procedure Edt_ShipModeCodeExit(Sender: TObject);
    procedure AdoQry_BodyAfterPost(DataSet: TDataSet);
    procedure Act_ModifyExecute(Sender: TObject);
    procedure Edt_TaxRate_PercentExit(Sender: TObject);
    procedure Edt_SaleTypeCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edt_SaleDeptCodeExit(Sender: TObject);
    procedure Edt_SaleEmployeeCodeExit(Sender: TObject);
    procedure Act_InsertLineExecute(Sender: TObject);
    procedure Edt_CustomerCodeEnter(Sender: TObject);
    procedure Edt_ShipAddresSCodeButtonClick(Sender: TObject);
    procedure Edt_PayTermCodeButtonClick(Sender: TObject);
    procedure Edt_ShipModeCodeButtonClick(Sender: TObject);
    procedure Edt_SaleTypeCodeButtonClick(Sender: TObject);
    procedure Act_SaveExecute(Sender: TObject);
  private
    Enter_CustomerCode,CurrentFormStatus:String;
    DeletedSloLine : String;
   // procedure SaveSa_SaleOrderHistory(AdoConnection:TAdoConnection;SloNo:string;userCode:string;hisType:integer);
  //  procedure SaveSa_SaleOrderLineHistory(AdoConnection:TAdoConnection;SloNo:string;SloLineNo:integer;userCode:string;hisType:integer);
    procedure GetCustomerItem(CustomerCode:String);
    { Private declarations }
  public
    TmpTaxAmount:string;
    ExchRate : Double; //外币汇率
    procedure SetStatus(CurrentStatus:String;var AnswerStatus,EnableControls:String); Override;
    procedure InitControls; Override;
    procedure SaveData; Override;
    { Public declarations }
  end;

var
  Frm_Sal_Enter_SaleOrder: TFrm_Sal_Enter_SaleOrder;
  TaxRate_Percent,CustomerCode,CurrencyCode:string;
implementation

uses Sys_Global, Sal_Enter_SaleOrder_D, Sal_Enter_SaleOrder_P;

{$R *.DFM}

{ TFrm_Sal_Enter_SaleOrder }

procedure TFrm_Sal_Enter_SaleOrder.InitControls;
var
   SqlText:string;
begin
  inherited;
  DeletedSloLine := QuotedStr('');
  Edt_CustomerName.Enabled :=False;
  Edt_SaleDeptName.Enabled :=False;
  Edt_ShipAddressName.Enabled :=False;
  Edt_SaleEmployeeName.Enabled :=False;
  Edt_SaleTermName.Enabled :=False;
  Edt_CurrencyName.Enabled :=False;
  Edt_SaleTypeName.Enabled :=False;
  Edt_ShipModeName.Enabled :=False;
  Edt_TotalNoTaxAmount.Enabled :=False;
  Edt_TotalTaxAmount.Enabled :=False;
  Edt_TaxRate_Percent.Text:='17';
  Application.ProcessMessages;
  With AdoQry_Head do
  begin
    if Status<>'Add' then
    begin
      Edt_SloNo.Text :=fieldbyname('SloNo').AsString;
      SqlText:=' Select Sa_SaleOrder.CustomerCode,'
                +' Customer.CustomerName, '
                +' sa_SaleOrder.referenceno, '
                +' sa_SaleOrder.customerPmno, '
                +' Sa_SaleOrder.CustomerCode+'' ''+Customer.CustomerName As CustomerFalg, '
                +' CreateDate, '
                +' Sa_SaleOrder.SloNo,Sa_SaleOrder.SaleTypeCode,SaleTypeName,'
                +' Sa_SaleOrder.SaleDeptCode,Dept.DeptName, '
                +' Sa_SaleOrder.SaleDeptCode+'' ''+Dept.DeptName As SaleDeptFalg,'
                +' Sa_SaleOrder.SaleEmployeeCode,Employee1.EmployeeName,  '
                +' Sa_SaleOrder.SaleEmployeeCode+'' ''+Employee1.EmployeeName As SaleEmployeeFalg,'
                +' Sa_SaleOrder.CurrencyCode,Currency.CurrencyName,'
                +' Sa_SaleOrder.CurrencyCode+'' ''+Currency.CurrencyName As CurrencyFalg,  '
                +' sa_SaleOrder.TaxRate_Percent,Sa_SaleOrder.PayTermCode,PayTerm.PayTermName,   '
                +' Sa_SaleOrder.PayTermCode+'' ''+PayTerm.PayTermName AS SaleTermFlag, '
                +' sa_SaleOrder.CreateEmployeeCode,Employee.EmployeeName, '
                +' sa_SaleOrder.CreateEmployeeCode+'' ''+Employee.EmployeeName as createEmployeefalg, '
                +' sa_SaleOrder.ShipModeCode,ShipMode.ShipModeName, '
                +' sa_SaleOrder.ShipModeCode+'' ''+ShipMode.ShipModeName as ShipModefalg, '
                +' sa_SaleOrder.ShipAddresSCode,customerShipAddress.ShipAddressName, '
                +' sa_SaleOrder.ShipAddresSCode+'' ''+customerShipAddress.ShipAddressName as ShipAddressfalg ,'
                +' Sa_SaleOrder.remArk,TotalNoTaxAmount,TotalTaxAmount,EditDate,EdItEmployeeCode ,RemArk1'
                +' From  Sa_SaleOrder '
                        +' Left Join PayTerm  On Sa_SaleOrder.PayTermCode=PayTerm.PayTermCode'
                        +' Join Customer  On Sa_SaleOrder.CustomerCode=Customer.CustomerCode   '
                        +' Left Join Dept On Sa_SaleOrder.SaleDeptCode=Dept.DeptCode   '
                        +' Left Join Employee Employee1 On Sa_SaleOrder.SaleEmployeeCode=Employee1.EmployeeCode  '
                        +' Join Currency On Sa_SaleOrder.CurrencyCode=Currency.CurrencyCode  '
                        +' Left Join Employee On  Sa_SaleOrder.CreateEmployeeCode=Employee.EmployeeCode  '
                        +' Left Join ShipMode On Sa_SaleOrder.ShipModeCode=ShipMode.ShipModeCode    '
                        +' Left Join SaleType On Sa_SaleOrder.SaleTypeCode=SaleType.SaleTypeCode '
                        +' Left Join CustomerShipAddress On Sa_SaleOrder.ShipAddresSCode=CustomerShipAddress.ShipAddresSCode '
                +'where Sa_SaleOrder.SloNo='''+Trim(AdoQry_Head.fieldbyname('SloNo').AsString)+'''';

      AdoQry_tmp.Close;
      AdoQry_tmp.SQL.clear;
      AdoQry_tmp.SQL.text:=SqlText;
      AdoQry_tmp.Open ;
      With AdoQry_tmp Do
      begin
        Edt_CustomerCode.Text:=fieldbyname('CustomerCode').AsString;
        MEdt_CreateDate.Text:=Formatdatetime('yyyy.mm.dd',fieldbyname('CreateDate').asdatetime);
        Edt_SaleDeptCode.Text:=fieldbyname('SaleDeptCode').AsString;
        Edt_SaleTypeCode.Text:=fieldbyname('SaleTypeCode').AsString;
        Edt_SaleEmployeeCode.Text:=fieldbyname('SaleEmployeeCode').AsString;
        Edt_CurrencyCode.Text:=fieldbyname('CurrencyCode').AsString;
        Edt_TaxRate_Percent.Text:=fieldbyname('TaxRate_Percent').AsString;
        Edt_ShipModeCode.Text:=fieldbyname('ShipModeCode').AsString;
        Edt_ShipAddresSCode.Text:=fieldbyname('ShipAddresSCode').AsString;
        Edt_PayTermCode.Text:=fieldbyname('PayTermCode').AsString;
        Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
        Edt_TotalNoTaxAmount.Text:=fieldbyname('TotalNoTaxAmount').AsString;
        Edt_TotalTaxAmount.Text:=fieldbyname('TotalTaxAmount').AsString;
        TmpTaxAmount:=Edt_TotalTaxAmount.Text;
        
        Lab_SaleDeptName.Caption:=fieldbyname('DeptName').AsString;
        Lab_SaleEmployeeName.Caption:=fieldbyname('EmployeeName').AsString;
        Lab_CurrencyName.Caption:=fieldbyname('CurrencyName').AsString;
//        Lab_ShipModeName.Caption:=fieldbyname('ShipModeName').AsString;
        Lab_SaleTermName.Caption:=fieldbyname('PayTermName').AsString;
        Lab_ShipAddressName.Caption:=fieldbyname('ShipAddressName').AsString;
        Lab_CustomerName.Caption:=fieldbyname('CustomerName').AsString;

        Edt_SaleDeptName.Text:=fieldbyname('DeptName').AsString;
        Edt_SaleEmployeeName.Text:=fieldbyname('EmployeeName').AsString;
        Edt_CurrencyName.Text:=fieldbyname('CurrencyName').AsString;
        Edt_ShipModeName.Text:=fieldbyname('ShipModeName').AsString;
        Edt_SaleTermName.Text:=fieldbyname('PayTermName').AsString;
        Edt_ShipAddressName.Text:=fieldbyname('ShipAddressName').AsString;
        Edt_CustomerName.text:=fieldbyname('CustomerName').AsString;
        Edt_SaleTypeName.text:=fieldbyname('SaleTypeName').AsString;
        Edt_RemArk1.text:=fieldbyname('RemArk1').AsString;
        edt_CustomerPmno.Text:=fieldbyname('customerPmno').asstring;
        edt_referenceno.Text:=fieldbyname('referenceno').asstring;
      end;
    end
    Else
    begin
      if CheckAllTypeOrderNoSet(DbConnect,2) then
      begin
        Edt_SloNo.Text := GetAllTypeOrderNo(DbConnect,2);
        Edt_SloNo.Enabled := False;
        if Edt_CustomerCode.CanFocus then
          Edt_CustomerCode.SetFocus;
      end
      else
      begin
        Edt_SloNo.Enabled := True;
        if Edt_SloNo.CanFocus then
          Edt_SloNo.SetFocus;
        Edt_SloNo.Text :='';
      end;
      Edt_CustomerCode.Text:='';
      //Edt_CustomerName.Text:='';
      MEdt_CreateDate.Text:=Formatdatetime('yyyy.mm.dd',Date);
      Edt_TaxRate_Percent.Text:='17';
      Edt_SaleDeptCode.Text:='';
      Lab_SaleDeptName.Caption:='';

      Edt_SaleTypeCode.Text:='';
      Edt_SaleEmployeeCode.Text:='';
      Lab_SaleEmployeeName.Caption:='';

      Edt_CurrencyCode.Text:='';
      Lab_CurrencyName.Caption:='';
      Edt_ShipModeCode.Text:='';
//      Lab_ShipModeName.Caption:='';

      Edt_ShipAddresSCode.Text:='';
      Lab_ShipAddressName.Caption:='';

      Edt_PayTermCode.Text:='';
      Lab_SaleTermName.Caption:='';

      Edt_RemArk.Text:='';
      Edt_TotalNoTaxAmount.Text:='0';//fieldbyname('TotalNoTaxAmount').AsString;
      Edt_TotalTaxAmount.Text:='0';//fieldbyname('TotalNoTaxAmount').AsString;

      Edt_SaleDeptName.Text:='';
      Edt_SaleEmployeeName.Text:='';
      Edt_CurrencyName.Text:='';
      Edt_ShipModeName.Text:='';
      Edt_SaleTermName.Text:='';
      Edt_ShipAddressName.Text:='';
      Edt_CustomerName.text:='';
      Edt_SaleTypeName.text:='';
      Edt_RemArk1.text:='';
      edt_CustomerPmno.Text:='';
      edt_referenceno.Text:='';
    end;
  end;
  AdoQry_Body.Close;
  if UpperCase(Status)=UpperCase('Add') then
    SqlText:='Select Top 0 Sa_SaleOrderLine.*,Item.ItemName,Uom.UomName'
            +' From Sa_SaleOrderLine '
            +' Join Item On Sa_SaleOrderLine.ItemCode=Item.ItemCode '
            +' left Join Uom On Item.UomCode=Uom.UomCode '
  else
    SqlText:='Select Sa_SaleOrderLine.*,Item.ItemName ,Uom.UomName'
            +' From Sa_SaleOrderLine '
            +' Join Item On Sa_SaleOrderLine.ItemCode=Item.ItemCode '
            +' And  Sa_SaleOrderLine.SloNo='''+Trim(AdoQry_Head.fieldbyname('SloNo').AsString)+''''
            +' left Join Uom On Item.UomCode=Uom.UomCode ';
  AdoQry_Body.Close;
  AdoQry_Body.SQL.Text:=SqlText;
  AdoQry_Body.Open;
  Act_InsertLine.Enabled := True;
  Act_DeleteLine.Enabled := True;
end;

procedure TFrm_Sal_Enter_SaleOrder.SaveData;
var
  SqlText:String;
begin
  inherited;
  //zhuzhongfu
  //Edit Date:2002.02.23
  IF (CurrentFormStatus='Add') and (CheckAllTypeOrderNoSet(DbConnect,2)) then
     Edt_SloNo.Text := GetAllTypeOrderNo(DbConnect,2);
  IF Trim(Edt_SloNo.Text)='' Then
  begin
    DispInfo('销售订单号不能为空!',3);
    Edt_SloNo.SetFocus;
    Abort;

⌨️ 快捷键说明

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