📄 inv_checkin_b.pas
字号:
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 + -