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

📄 sal_enter_saleorder_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
          +'  Join Sa_SaleContract '
          +'  On Sa_SaleContractLine.SlcNo=Sa_SaleContract.SlcNo '
          +'  Where   CustomerCode='''+CustomerCode+''' '
          +'  and CurrencyCode='+QuotedStr(CurrencyCode)
          +'  and StArtQty<='+Edt_SloQty.Text +' and endQty>='+Edt_SloQty.Text
          +'  And StArtDate<='''+MEdt_SloLineDate.text+''' '
          +'  And endDate>='''+MEdt_SloLineDate.text+''' And ItemCode='''+ExtEdt_ItemCode.Text+''' '
          +' Order By CreateDate DESC ';
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:=SqlText;
  AdoQry_Tmp.Open;
  if Not AdoQry_Tmp.Eof then
  begin
    Edt_TaxPrice.Text :=AdoQry_Tmp.fieldbyname('TaxPrice').AsString;
    Edt_NoTaxPrice.Text :=AdoQry_Tmp.fieldbyname('NoTaxPrice').AsString;
  end;
  if StrToFloat(Edt_TaxPrice.text) <> 0 then
    begin
      Edt_TaxAmount.Text:= FloatToStr(StrToFloat(Edt_TaxPrice.text)*StrToFloat(Edt_SloQty.text));
      Edt_NoTaxAmount.Text:= FloatToStr(StrToFloat(Edt_NoTaxPrice.text)*StrToFloat(Edt_SloQty.text));
    end;
end;

procedure TFrm_Sal_Enter_SaleOrder_D.Edt_SloQtyExit(Sender: TObject);
begin
  inherited;
  if ActiveControl <> btn_Cancel then
  begin
    try
      Edt_SloQty.text := floattostr(StrToFloat(Edt_SloQty.Text));
    except
      DispInfo('请输入数据类型!',3);
      TWincontrol(Sender).SetFocus;
      Abort;
    end;
    if StrToFloat(Edt_SloQty.Text)<=0 then
    begin
      DispInfo('约定交货量不能小于或等于0!',3);
      TWincontrol(Sender).SetFocus;
      Abort;
    end
    else
      if Status<>'Add' then
      begin
        if  StrToFloat(Edt_SloQty.Text)<StrToFloat(Edt_ShipQty.text) then
        begin
          DispInfo('"约定交货量"不可以小于"已发货量"!',3);
          TWincontrol(Sender).SetFocus;
          Abort
        end;
      end;
    if StrToFloat(Edt_TaxPrice.text) <> 0 then
    begin
      Edt_TaxAmount.Text:= FloatToStr(StrToFloat(Edt_TaxPrice.text)*StrToFloat(Edt_SloQty.text));
      Edt_NoTaxAmount.Text:= FloatToStr(StrToFloat(Edt_NoTaxPrice.text)*StrToFloat(Edt_SloQty.text));
    end;
  end;

end;

procedure TFrm_Sal_Enter_SaleOrder_D.Edt_TaxPriceExit(Sender: TObject);
begin
  inherited;
  if ActiveControl <> btn_Cancel then
  begin
    try
      Edt_TaxPrice.Text := FloattoStr(StrToFloat(Edt_TaxPrice.Text));
    except
      DispInfo('请输入数据类型!',3);
      TWincontrol(Sender).SetFocus;
      Abort;
    end;
    if StrToFloat(Edt_TaxPrice.Text)<=0 then
    begin
      DispInfo('含税单价不能小于或等于0!',3);
      TWincontrol(Sender).SetFocus;
      Abort;
    end;
    if Edt_TaxPrice.Modified then
    begin
      Edt_NoTaxPrice.Text:=FloatToStr(StrToFloat(Edt_TaxPrice.Text)/(1+StrtoFloat(TaxRate_Percent)/100));
      Edt_TaxAmount.Text:= FloatToStr(StrToFloat(Edt_TaxPrice.text)*StrToFloat(Edt_SloQty.text));
      Edt_NoTaxAmount.Text:= FloatToStr(StrToFloat(Edt_NoTaxPrice.text)*StrToFloat(Edt_SloQty.text));
    end;

  end;

end;

procedure TFrm_Sal_Enter_SaleOrder_D.Edt_NoTaxPriceExit(Sender: TObject);
begin
  inherited;
  if ActiveControl <> btn_Cancel then
  begin
    try
      Edt_NoTaxPrice.Text := FloatToStr(StrToFloat(Edt_NoTaxPrice.Text));
    except
      DispInfo('请输入数据类型!',3);
      TWincontrol(Sender).SetFocus;
      Abort;
    end;
    if StrToFloat(Edt_NoTaxPrice.Text)<0 then
    begin
      DispInfo('未税单价不能小于0!',3);
      TWincontrol(Sender).SetFocus;
      Abort;
    end;
    if  Edt_NoTaxPrice.Modified then
    begin
      Edt_TaxPrice.Text:=FloatToStr(StrToFloat(Edt_NoTaxPrice.Text)*(1+StrtoFloat(TaxRate_Percent)/100));
      Edt_TaxAmount.Text:= FloatToStr(StrToFloat(Edt_TaxPrice.text)*StrToFloat(Edt_SloQty.text));
      Edt_NoTaxAmount.Text:= FloatToStr(StrToFloat(Edt_NoTaxPrice.text)*StrToFloat(Edt_SloQty.text));
    end;
  end;
end;

procedure TFrm_Sal_Enter_SaleOrder_D.Edt_DiSCountRateExit(Sender: TObject);
begin
  inherited;
  if ActiveControl <> btn_Cancel then
  begin
    try
      Edt_DiSCountRate.Text := FloatToStr(StrToFloat(Edt_DiSCountRate.Text));
    except
      DispInfo('请输入数据类型!',3);
      TWincontrol(Sender).SetFocus;
      Abort;
    end;
    if StrToFloat(Edt_DiSCountRate.Text)<0 then
    begin
      DispInfo('未税单价不能小于0!',3);
      TWincontrol(Sender).SetFocus;
      Abort;
    end;
    if  Edt_DiSCountRate.Modified then
      Edt_DiSCountAmount.Text:= FloatToStr(StrToFloat(Edt_TaxAmount.text)*StrToFloat(Edt_DiSCountRate.text)/100);
  end;
end;

procedure TFrm_Sal_Enter_SaleOrder_D.ExtEdt_ItemCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  If key=120 Then
  CommOnHint(Sender,AdoQry_Tmp,'ItemName','物料描述','ItemCode',
             '物料代码',' Item ','ItemUsable=1 and ItemType=0 and CanSale=1 ');
end;

procedure TFrm_Sal_Enter_SaleOrder_D.MEdt_SloLineDateExit(Sender: TObject);
var
  SqlText:String;
begin
  inherited;
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  If SlCalendar(DbConnect,MEdt_SlolineDate.Text,0)<>MEdt_SlolineDate.Text Then
  begin
    DispInfo(MEdt_SlolineDate.Text+'不是工作日!',3);
    MEdt_SlolineDate.Text:=SlCalendar(DbConnect,MEdt_SlolineDate.Text,0);
    MEdt_SlolineDate.SetFocus;
    Abort;
  end;
  SqlText:=' Select Top 1 NoTaxPrice,TaxPrice '
          +'  From Sa_SaleContractLine '
          +'  Join Sa_SaleContract '
          +'  On Sa_SaleContractLine.SlcNo=Sa_SaleContract.SlcNo '
          +'  Where   CustomerCode='''+CustomerCode+''' And StArtDate<='''+MEdt_SloLineDate.text+''' '
          +'    And endDate>='''+MEdt_SloLineDate.text+''' And ItemCode='''+ExtEdt_ItemCode.Text+''' '
          +' Order By CreateDate DESC ';
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:=SqlText;
  AdoQry_Tmp.Open;
  if Not AdoQry_Tmp.Eof then
  begin
    Edt_TaxPrice.Text :=AdoQry_Tmp.fieldbyname('TaxPrice').AsString;
    Edt_NoTaxPrice.Text :=AdoQry_Tmp.fieldbyname('NoTaxPrice').AsString;
  end;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:='Select SalePriceContrl From Customer Where  CustomerCode='''+CustomerCode+''' ';
  AdoQry_Tmp.Open;
  if  AdoQry_Tmp.fieldbyname('SalePriceContrl').AsInteger =1 then
  begin
    Edt_TaxPrice.Enabled := False;
    Edt_NoTaxPrice.Enabled := False;
  end;
  if StrToFloat(Edt_TaxPrice.text) <> 0 then
    begin
      Edt_TaxAmount.Text:= FloatToStr(StrToFloat(Edt_TaxPrice.text)*StrToFloat(Edt_SloQty.text));
      Edt_NoTaxAmount.Text:= FloatToStr(StrToFloat(Edt_NoTaxPrice.text)*StrToFloat(Edt_SloQty.text));
    end;
end;

procedure TFrm_Sal_Enter_SaleOrder_D.btn_okClick(Sender: TObject);
begin
  if (StrtoFloat(Edt_TaxPrice.Text)<=0)  then
  begin
    DispInfo('含税单价不能小于或等于0!',3);
    if Edt_TaxPrice.CanFocus then
      Edt_TaxPrice.SetFocus;
    abort;
  end;
  if StrToFloat(Edt_NoTaxPrice.Text)<=0 then
    begin
      DispInfo('未税单价不能小于或等于0!',3);
      if Edt_NoTaxPrice.CanFocus then
        Edt_NoTaxPrice.SetFocus;
      Abort;
    end;
  ExtEdt_ItemCode.OnExit(ExtEdt_ItemCode);
  inherited;

end;

procedure TFrm_Sal_Enter_SaleOrder_D.ExtEdt_ItemCodeButtonClick(
  Sender: TObject);
begin
  inherited;
  CommOnHint(Sender,AdoQry_Tmp,'ItemName','物料描述','ItemCode',
             '物料代码',' Item ','ItemUsable=1 and ItemType=0 and CanSale=1 ');
end;

end.

⌨️ 快捷键说明

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