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

📄 inv_saleprice2_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Inv_SalePrice2_D;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Detail, StdCtrls, Db, AdODB, ExtCtrls, Mask, ExtEdit;

Type
  TFrm_Inv_SalePrice2_D = Class(TFrm_Base_Detail)
    ExtEdt_CustomerCode: TExtEdit;
    ExtEdt_ItemCode: TExtEdit;
    MEdt_SP2StArtDate: TMaskEdit;
    MEdt_SP2endDate: TMaskEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Lbl_CustomerName: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Lbl_ItemName: TLabel;
    Edt_SP2Price: TEdit;
    Label6: TLabel;
    Edt_SP2NoTaxPrice: TEdit;
    Label9: TLabel;
    Lbl_TaxRate: TLabel;
    procedure CustomerCodeCheck(Sender: TObject);
    procedure MEdt_SP2endDateExit(Sender: TObject);
    procedure Edt_SP2PriceExit(Sender: TObject);
    procedure Edt_SP2NoTaxPriceExit(Sender: TObject);
    procedure ItemCodeCheck(Sender: TObject);
  private
    { Private declarations }
    TaxRate:Integer;
  public
    { Public declarations }
    procedure InitControls; Override;
    procedure SaveData; Override;
    procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
    procedure InitDate(ItemCode,CustomerCode:String);
  end;

var
  Frm_Inv_SalePrice2_D: TFrm_Inv_SalePrice2_D;

implementation

uses Sys_Global;

{$R *.DFM}

procedure TFrm_Inv_SalePrice2_D.InitControls;
begin
  inherited;
  Edt_SP2NoTaxPrice.Text:='0';
  with AdoQry_Maintain do
  begin
    ExtEdt_CustomerCode.Text:=fieldbyname('CustomerCode').AsString;
    ExtEdt_ItemCode.Text:=fieldbyname('ItemCode').AsString;
    Lbl_ItemName.Caption:=fieldbyname('ItemName').AsString;
    Lbl_CustomerName.Caption:=fieldbyname('CustomerName').AsString;

    MEdt_SP2StArtDate.Text:=fieldbyname('SP2StArtDate').AsString;
    MEdt_SP2endDate.text:=fieldbyname('SP2endDate').AsString;
    InitDate(fieldbyname('ItemCode').AsString,fieldbyname('CustomerCode').AsString);

    TaxRate:=0;
    TaxRate:=fieldbyname('TaxRate').AsInteger;
    Lbl_TaxRate.Caption:=fieldbyname('TaxRate').AsString;
    Edt_SP2Price.Text:=fieldbyname('SP2Price').AsString;
    Edt_SP2NoTaxPrice.Text:=fieldbyname('SP2NoTaxPrice').AsString;
  end;
end;

procedure TFrm_Inv_SalePrice2_D.SaveData;
begin
  Inherited;
  if Status='Add' then
  begin
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:='Insert SalePrice2'
      +'(CustomerCode,ItemCode,SP2StArtDate,SP2endDate,SP2Price,SP2NoTaxPrice,TaxRate)'
      +' Values ('
      +' '''+ExtEdt_CustomerCode.Text+''''
      +','''+ExtEdt_ItemCode.Text+''''
      +','''+MEdt_SP2StArtDate.Text+''''
      +','''+MEdt_SP2endDate.Text+''''
      +','+Edt_SP2Price.Text+''
      +','+Edt_SP2NoTaxPrice.Text+''
      +','+IntToStr(TaxRate)+''
      +')';
    AdoQry_Tmp.ExecSQL;
  end
  else
  begin
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:='Update SalePrice2 Set'
      +' CustomerCode='''+ExtEdt_CustomerCode.Text+''''
      +',ItemCode='''+ExtEdt_ItemCode.Text+''''
      +',SP2StArtDate='''+MEdt_SP2StArtDate.Text+''''
      +',SP2endDate='''+MEdt_SP2endDate.Text+''''
      +',SP2Price='+Edt_SP2Price.Text+''
      +',SP2NoTaxPrice='+Edt_SP2NoTaxPrice.Text+''
      +',TaxRate='+IntToStr(TaxRate)+''
      +' Where CustomerCode='''+AdoQry_Maintain.fieldbyname('CustomerCode').AsString+''''
      +' And ItemCode='''+AdoQry_Maintain.fieldbyname('ItemCode').AsString+''''
      +' And SP2StArtDate='''+AdoQry_Maintain.fieldbyname('SP2StArtDate').AsString+''''
      +' And SP2endDate='''+AdoQry_Maintain.fieldbyname('SP2endDate').AsString+'''';
    AdoQry_Tmp.ExecSQL;
  end;

  with AdoQry_Maintain do
  begin
    fieldbyname('CustomerCode').AsString:=ExtEdt_CustomerCode.Text;
    fieldbyname('CustomerName').AsString:=Lbl_CustomerName.Caption;
    fieldbyname('ItemCode').AsString:=ExtEdt_ItemCode.Text;
    fieldbyname('ItemName').AsString:=Lbl_ItemName.Caption;
    fieldbyname('SP2StArtDate').AsString:=MEdt_SP2StArtDate.Text;
    fieldbyname('SP2endDate').AsString:=MEdt_SP2endDate.Text;
    fieldbyname('TaxRate').AsInteger:=TaxRate;
    fieldbyname('SP2Price').AsString:=Edt_SP2Price.Text;
    fieldbyname('SP2NoTaxPrice').AsString:=Edt_SP2NoTaxPrice.Text;
    Post;
  end;
end;

procedure TFrm_Inv_SalePrice2_D.InitDate(ItemCode,CustomerCode:String);
begin      
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:='Select Max(SP2endDate) As SP2endDate,Min(SP2StArtDate) As SP2StArtDate'
    +' From SalePrice2'
    +' Where ItemCode='''+ItemCode+''''
    +' And CustomerCode='''+CustomerCode+'''';
  AdoQry_Tmp.Open;
  if Status='Edit' then
  begin
    if AdoQry_Tmp.fieldbyname('SP2StArtDate').AsDateTime<>
      AdoQry_Maintain.fieldbyname('SP2StArtDate').AsDateTime then
      MEdt_SP2StArtDate.ReadOnly:=True
    else
      MEdt_SP2StArtDate.ReadOnly:=False;
    if AdoQry_Tmp.fieldbyname('SP2endDate').AsDateTime<>
      AdoQry_Maintain.fieldbyname('SP2endDate').AsDateTime then
      MEdt_SP2endDate.ReadOnly:=True
    else
      MEdt_SP2endDate.ReadOnly:=False;
  end
  else
  begin
    if AdoQry_Tmp.fieldbyname('SP2endDate').AsString<>'' then
    begin
      MEdt_SP2StArtDate.Text:=AdoQry_Tmp.fieldbyname('SP2endDate').AsString;
      MEdt_SP2StArtDate.ReadOnly:=True;
    end
    else
    begin
      MEdt_SP2StArtDate.Text:=LoginDate;
      MEdt_SP2StArtDate.ReadOnly:=False;
    end;
    MEdt_SP2endDate.ReadOnly:=False;
  end;
end;

procedure TFrm_Inv_SalePrice2_D.CustomerCodeCheck(Sender: TObject);
begin
  inherited;
  if Changed then
  begin
    InitDate(ExtEdt_ItemCode.Text,ExtEdt_CustomerCode.Text);
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:='Select CustomerTaxRate_Percent From Customer'
      +' Where CustomerCode='''+TEdit(Sender).Text+'''';
    AdoQry_Tmp.Open;
    Lbl_TaxRate.Caption:=AdoQry_Tmp.fieldbyname('CustomerTaxRate_Percent').AsString+'%';
    TaxRate:=AdoQry_Tmp.fieldbyname('CustomerTaxRate_Percent').AsInteger;
    Edt_SP2Price.Text:=FloatToStr((StrToFloat(Edt_SP2NoTaxPrice.Text)*(1+TaxRate/100)));
  end;
end;

procedure TFrm_Inv_SalePrice2_D.SetStatus(CurrentStatus: String;
  var EnableControls: String);
begin
  inherited;
  if Status='Add' then
  begin
    SetFocus_Control:=ExtEdt_ItemCode;
    EnableControls:='ExtEdt_ItemCode,ExtEdt_CustomerCode,MEdt_SP2StArtDate,'
      +'MEdt_SP2endDate,Edt_SP2Price,Edt_SP2NoTaxPrice,';
  end
  else
  begin
    SetFocus_Control:=MEdt_SP2StArtDate;
    EnableControls:='MEdt_SP2StArtDate,MEdt_SP2endDate,Edt_SP2Price,Edt_SP2NoTaxPrice,';
  end;
end;

procedure TFrm_Inv_SalePrice2_D.MEdt_SP2endDateExit(Sender: TObject);
begin
  inherited;
  DateCheck(Sender);
  if StrToDate(MEdt_SP2endDate.Text)<StrToDate(MEdt_SP2StArtDate.Text) then
  begin
    DispInfo('终止日期不能小于起止日期!',1);
    TWinControl(Sender).SetFocus;
    Abort;
  end;
end;

procedure TFrm_Inv_SalePrice2_D.Edt_SP2PriceExit(Sender: TObject);
begin
  inherited;
  FloatCheck(Sender);
  if Changed then
  begin
    Edt_SP2NoTaxPrice.Text:=FloatToStr((StrToFloat(Edt_SP2Price.Text)/(1+TaxRate/100)));
  end;
end;

procedure TFrm_Inv_SalePrice2_D.Edt_SP2NoTaxPriceExit(Sender: TObject);
begin
  inherited;         
  FloatCheck(Sender);
  if Changed then
  begin
    Edt_SP2Price.Text:=FloatToStr((StrToFloat(Edt_SP2NoTaxPrice.Text)*(1+TaxRate/100)));
  end;
end;

procedure TFrm_Inv_SalePrice2_D.ItemCodeCheck(Sender: TObject);
begin
  inherited;
  if Changed then
    InitDate(ExtEdt_ItemCode.Text,ExtEdt_CustomerCode.Text);
end;

end.

⌨️ 快捷键说明

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