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

📄 inv_checkin_b.pas

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

Interface

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

Type
  TFrm_Inv_CheckIn_B = Class(TFrm_Base_Entry_Body)
    Label1: TLabel;
    CmBx_Warehouse: TComboBox;
    Label2: TLabel;
    Edt_PoNO: TEdit;
    Label4: TLabel;
    Label7: TLabel;
    Edt_BillNo: TEdit;
    Label8: TLabel;
    MEdt_BillDate: TMaskEdit;
    Lbl_VendorName: TLabel;
    Label3: TLabel;
    Lbl_BillType: TLabel;
    ExtEdt_VendorCode: TExtEdit;
    AdoQry_Tmp1: TAdoQuery;
    Label5: TLabel;
    Edt_VendorBillNo: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure CmBx_WarehouseChange(Sender: TObject);
    procedure PoCodeCheck(Sender: TObject);
    procedure Edt_PoNOKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Act_PreviewExecute(Sender: TObject);
    procedure Act_PrintExecute(Sender: TObject);
    procedure Act_DeleteLineExecute(Sender: TObject);
    procedure CmBx_WarehouseExit(Sender: TObject);
  private
    { Private declarations }
    FBillTypeCode:String;
    FWhPositionCode:String;
    Ffdays:String;
    Fbdays:String;
    Foqty:String;
  public
    { Public declarations }
    procedure SetStatus(CurrentStatus:String;var AnswerStatus,
      EnableControls:String); Override;
    procedure InitControls; Override;
    procedure SaveHeadData; Override;
    procedure SaveData; Override;
  end;

var
  Frm_Inv_CheckIn_B: TFrm_Inv_CheckIn_B;

implementation

uses Sys_Global,Inv_CheckIn_D,Inv_Global;

{$R *.DFM}

procedure TFrm_Inv_CheckIn_B.InitControls;
var
  Bill_ID:String;
begin
  SetFocus_Control:=ExtEdt_VendorCode;
  if Param1='Over' then
  begin
    Caption:='待检超订单入库制单';
    Pnl_Title.Caption:='待检超订单入库制单';
  end
  else
  begin
    Caption:='待检入库单制单';
    Pnl_Title.Caption:='待检入库单制单';
  end;
  inherited;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:='Select PmParamValueN From PmParam'
    +' Where PmParamCode=''forwArddaysdeny''';
  AdoQry_Tmp.Open;
  Ffdays:=AdoQry_Tmp.fieldbyname('PmParamValueN').AsString;

  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:='Select PmParamValueN From PmParam'
    +' Where PmParamCode=''BackwArddaysdeny''';
  AdoQry_Tmp.Open;
  Fbdays:=AdoQry_Tmp.fieldbyname('PmParamValueN').AsString;

  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:='Select PmParamValueN From PmParam'
    +' Where PmParamCode=''Overqtydeny_Percent''';
  AdoQry_Tmp.Open;
  Foqty:=AdoQry_Tmp.fieldbyname('PmParamValueN').AsString;
  
  Frm_Entry_Detail.SetFormParam(FBillTypeCode,FWhPositionCode,FFDays,FBDays,FOQty,'');
  if CmBx_Warehouse.Items.Count=0 then
  begin
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:='Select WHAccessCtrl.WHCode+'' ''+Warehouse.WHName As WHCodeName'
      +' From WHAccessCtrl'
      +' Join Warehouse On WHAccessCtrl.WHCode=Warehouse.WHCode'
      +' Where WHAccessCtrl.EmployeeCode='''+UserCode+''''
      //+' And Warehouse.PriceType<>1'
      +' Order By WHAccessCtrl.WHCode ';
    AdoQry_Tmp.Open;
    AdoQry_Tmp.First;
    while not AdoQry_Tmp.Eof do
    begin
      CmBx_Warehouse.Items.Add(AdoQry_Tmp.fieldbyname('WHCodeName').AsString);
      AdoQry_Tmp.Next;
    end;
    CmBx_Warehouse.ItemIndex:=0;
  end;
  if Status<>'Add' then
  begin
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:='Select OnCheckBillId From OnCheckBill'
      +' Where OnCheckBillNo='''+AdoQry_Head.fieldbyname('OnCheckBillNo').AsString+''''
      +' And WHCode='''+AdoQry_Head.fieldbyname('WHCode').AsString+'''';
    AdoQry_Tmp.Open;
    Bill_ID:=AdoQry_Tmp.fieldbyname('OnCheckBillId').AsString;
  end
  else
    Bill_ID:='-1';

  AdoQry_Body.Close;
  AdoQry_Body.SQL.Text:='Select OnCheckBillLine.POLineNo'
    +',OnCheckBillLine.ItemCode'
    +',OnCheckBillLine.QcStatus'
    +',OnCheckBillLine.BatchNo'
    +',Item.ItemName'
    +',Uom.UomName'
    +',OnCheckBillLine.OnCheckQty'
    +',OnCheckBillLine.BillLineRemArk'
    +' From OnCheckBillLine'
    +' Join Item On OnCheckBillLine.ItemCode=Item.ItemCode'
    +' Join Uom On Item.UomCode=Uom.UomCode'
    +' Where OnCheckBillLine.OnCheckBillId='+Bill_ID+'';
  AdoQry_Body.Open;
  AdoQry_Body.Sort:='POLineNo';
  with AdoQry_Head do
  begin
    InitCmBxText(CmBx_Warehouse,fieldbyname('WHCode').AsString);
    CmBx_Warehouse.OnChange(CmBx_Warehouse);
    Edt_PoNO.Text:=fieldbyname('PONO').AsString;
    ExtEdt_VendorCode.Text:=fieldbyname('VendorCode').AsString;
    Edt_VendorBillNo.Text:=fieldbyname('VendorBillNo').AsString;

    Lbl_VendorName.Caption:=fieldbyname('VendorName').AsString;
    if Status<>'Add' then
      Edt_BillNo.Text:=fieldbyname('OnCheckBillNo').AsString
    else
      Edt_BillNo.Text:='';
    if Status<>'Add' then
      MEdt_BillDate.Text:=fieldbyname('OnCheckDate').AsString
    else
      MEdt_BillDate.Text:=FormatDateTime('yyyy.mm.dd',Now);
    Lbl_BillType.Caption:=fieldbyname('BillTypeName').AsString;
  end;
//  if Status<>'Add' then
  if Status='PArtEdit' then
  begin
    Act_Modify.Enabled:=False;
    Act_DeleteLine.Enabled:=True;
  end;
end;

procedure TFrm_Inv_CheckIn_B.SaveData;
var
  Bill_No,Bill_Id,DispStr,Tempstr,opType,historysql:String;
  Bill_LineNo:Integer;
  NeedChangePrice:Boolean;
begin
  inherited;
  ActiveControl:=DBGridEh;
  PoCodeCheck(Edt_PoNO);
  DispStr:=' 单据保存失败,请稍后再试 ';
  if getCode(CmBx_Warehouse.text)='' then
  begin
    DispInfo('仓库不能为空!',3);
    abort;
  end;
  if(Status='Add')then
  begin
    if AdoQry_Body.RecordCount=0 then
    begin
      DispStr:=' 新增的单据没有记录,不允许保存 ';
      Abort;
    end;
  end;
  //主表存盘
  if AdoQry_Body.state<>dsBrowse then
    AdoQry_Body.post;
  DBConnect.beginTrans;
  try
    if(Status='Add')then
    begin
      opType:='增加';
      Bill_No:=GetNo(DBConnect,AdoQry_Head.fieldbyname('WHCode').AsString+
        'D'+FormatDateTime('yymm',AdoQry_Head.fieldbyname('OnCheckDate').
        AsDateTime),'InvBill');
      AdoQry_Head.fieldbyname('OnCheckBillNo').AsString:=Bill_No;
      AdoQry_Tmp.Close;
      if Param1='Over' then
        AdoQry_Tmp.SQL.Text:=' Insert OnCheckBill(OnCheckBillNo,WHCode,OnCheckDate'
          +',OnCheckMonth,BillTypeCode,EmployeeCode,WH_EmployeeCode,VendorCode'
          +',WhPositionCode,PoNo,OverPlan,VendorBillNo)'
          +' Values('
          +''''+Bill_No+''''
          +','''+AdoQry_Head.fieldbyname('WHCode').AsString+''''
          +','''+AdoQry_Head.fieldbyname('OnCheckDate').AsString+''''
          +','''+FormatDateTime('yyyy.mm',AdoQry_Head.fieldbyname('OnCheckDate').
            AsDateTime)+''''
          +','''+FBillTypeCode+''''
          +','''+UserCode+''''
          +','''+UserCode+''''
          +','''+AdoQry_Head.fieldbyname('VendorCode').AsString+''''
          +','''+FWhPositionCode+''''
          +','''+AdoQry_Head.fieldbyname('PoNo').AsString+''''
          +','+'1'+''
          +','''+AdoQry_Head.fieldbyname('VendorBillNo').AsString+''''
          +')'
      else
        AdoQry_Tmp.SQL.Text:=' Insert OnCheckBill(OnCheckBillNo,WHCode,OnCheckDate'
          +',OnCheckMonth,BillTypeCode,EmployeeCode,WH_EmployeeCode,VendorCode'
          +',WhPositionCode,PoNo,VendorBillNo)'
          +' Values('
          +' '''+Bill_No+''''
          +','''+AdoQry_Head.fieldbyname('WHCode').AsString+''''
          +','''+AdoQry_Head.fieldbyname('OnCheckDate').AsString+''''
          +','''+FormatDateTime('yyyy.mm',AdoQry_Head.fieldbyname('OnCheckDate').
            AsDateTime)+''''
          +','''+FBillTypeCode+''''
          +','''+UserCode+''''
          +','''+UserCode+''''
          +','''+AdoQry_Head.fieldbyname('VendorCode').AsString+''''
          +','''+FWhPositionCode+''''
          +','''+AdoQry_Head.fieldbyname('PoNo').AsString+''''
          +','''+AdoQry_Head.fieldbyname('VendorBillNo').AsString+''''
          +')';
      AdoQry_Tmp.ExecSQL;
      AdoQry_Tmp.Close;
      AdoQry_Tmp.SQL.Text:='Select @@identity as Bill_Id';
      AdoQry_Tmp.Open;
      Bill_Id:=AdoQry_Tmp.fieldbyname('Bill_Id').AsString;
      //日志文件
      AdoQry_Tmp.Close;
      if Param1='Over' then
      AdoQry_Tmp.SQL.Text:=' Insert OnCheckBillHistory(oncheckBillid,OnCheckBillNo,WHCode,OnCheckDate'
        +',OnCheckMonth,BillTypeCode,EmployeeCode,WH_EmployeeCode,VendorCode'
        +',WhPositionCode,PoNo,OverPlan,VendorBillNo,chgtime,chgEmployeeCode,chgType)'
        +' Values('
        +Bill_Id
        +','''+Bill_No+''''
        +','''+AdoQry_Head.fieldbyname('WHCode').AsString+''''
        +','''+AdoQry_Head.fieldbyname('OnCheckDate').AsString+''''
        +','''+FormatDateTime('yyyy.mm',AdoQry_Head.fieldbyname('OnCheckDate').
          AsDateTime)+''''
        +','''+FBillTypeCode+''''
        +','''+UserCode+''''
        +','''+UserCode+''''
        +','''+AdoQry_Head.fieldbyname('VendorCode').AsString+''''
        +','''+FWhPositionCode+''''
        +','''+AdoQry_Head.fieldbyname('PoNo').AsString+''''
        +','+'1'+''
        +','''+AdoQry_Head.fieldbyname('VendorBillNo').AsString+''''
        +',getdate()'
        +','+QuotedStr(UserCode)
        +','+QuotedStr(opType)
        +')'
    else
      AdoQry_Tmp.SQL.Text:=' Insert OnCheckBillHistory(oncheckBillid,OnCheckBillNo,WHCode,OnCheckDate'
        +',OnCheckMonth,BillTypeCode,EmployeeCode,WH_EmployeeCode,VendorCode'
        +',WhPositionCode,PoNo,VendorBillNo,chgtime,chgEmployeeCode,chgType)'
        +' Values('
        +Bill_Id
        +','''+Bill_No+''''
        +','''+AdoQry_Head.fieldbyname('WHCode').AsString+''''

⌨️ 快捷键说明

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