📄 pm_enter_purchaseapplytoorder.pas
字号:
inttostr(iRecord)+')';
AdoQry_Tmp.ExecSQL;
Edit;
fieldbyname('iScreatePo').asinteger:=1;
fieldbyname('TmpField').asinteger:=0;
{当采购单为委外加工时生成委外领料清单}
if PoType=1 then
NewAutoBuildOpListOrder(DBConnect,PoNo,IntToStr(iRecord),GetCode(fieldbyname('ItemCode').AsString),0,PQty);
{更新PurChaseApply表的iScreatePo字段}
AdoQry_Tmp.Close;
AdoQry_Tmp.Sql.Text:='Update '+IifString(fieldbyname('TabFlag').AsInteger=0,'PurChaseApply','PurchaseApplyAssign')+
' set iScreatePo=1,'+
' PoNo='+QuotedStr(PoNo)+','+
' PoLineNo='+IntToStr(IRecord) +
' where ToDate='''+Trim(fieldbyname('ToDate').asString)+''''+
' and ItemCode='''+fieldbyname('ItemCodeO').asstring+''''+
IIFString(fieldbyname('TabFlag').AsInteger=1,' and VendorCode='+QuotedStr(fieldbyname('VendorCodeO').AsString),' ')+
' and Convert(varchAr,SSReleaseDate,102)='''+Trim(datetostr(fieldbyname('SSReleaseDate').asDatetime))+'''';
AdoQry_Tmp.execSQL;
//记录数+1;
end
else
{供应商,制购码,采购人员有改变时插入采购单表头数据}
begin
if fieldbyname('PmCode').asinteger=2 then
PoType:=1
else
PoType:=0;
{生成采购单}
AutoPoNo:='P'+Trim(Copy(FormatDateTime('yyyy.mm.dd',Now),3,2))+Trim(Copy(FormatDateTime('yyyy.mm.dd',Now),6,2));
PoNo:=GetNo(DBConnect,AutoPoNo,'PO');
AdoQry_Tmp.Close;
AdoQry_Tmp.Sql.Text:='insert Po('+
'PoNo,'+
'VendorCode,'+
'PoType,'+
'Podate,'+
'PoTaxRate_Percent,'+
'CurrencyCode,'+
'EmployeeCode,'+
'PoRemArk,'+
'PcNo,'+
'CreateEmpolyeeCode'+
')'+
'Values('+
''''+PoNo+''','+
''''+fieldbyname('VendorCodeO').asstring+''','+
inttostr(PoType)+','+
'Convert(varchAr,Getdate(),102),'+
fieldbyname('PcTaxRate_Percent').asstring+','+
''''+fieldbyname('CurrencyCode').asstring+''','+
''''+fieldbyname('EmployeeCode').asstring+''','+
''''','+
''''+PcNo+''','+
''''+UserCode+''')';
AdoQry_Tmp.execsql;
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='insert #TmpPo123456 ('+
'Pono,'+
'VendorCode,'+
'PmCode,'+
'EmployeeCode,'+
'ID)'+
'Values('+
''''+PoNo+''','+
''''+fieldbyname('VendorCodeO').asstring+''','+
fieldbyname('PmCode').asstring+','+
''''+fieldbyname('EmployeeCode').asstring+''','+
'1)';
AdoQry_Tmp.ExecSQL;
{插入表体数据}
if fieldbyname('FormalPricePass').asstring='1' then
PRefPrc:=0
else
PRefPrc:=1;
PQty:=fieldbyname('PlanQty').asfloat;
if PQty=null then
PQtyStr:='0'
else
PQtyStr:=floattostr(PQty);
iRecord:=1;
AdoQry_Tmp.Close;
AdoQry_Tmp.Sql.Text:='Insert PoLine('+
'PoNo,'+
'PoLineNo,'+
'ItemCode,'+
'PoLineDate,'+
'PoReferencedPrice,'+
'PoLineStatus,'+
'PoNoTaxPrice, '+
'PoTaxPrice, ' +
'PoNoTaxAmount, '+
'PoTaxAmount , '+
'PoQty,'+
'PoNoFinishQty,'+
'POStArtWorkDate)'+
'Values('+
''''+PoNo+''','+
inttostr(iRecord)+','+
''''+fieldbyname('ItemCodeO').asstring+''','+
QuotedStr(fieldbyname('PlanReleaseDate').AsString)+','+
inttostr(PRefPrc)+','+
'5,'+
fieldbyname('PoNoTaxPrice').AsString+','
+fieldbyname('PoTaxPrice').AsString+','
+fieldbyname('PoNoTaxPrice').AsString+'*'+PQtyStr+','
+fieldbyname('PoTaxPrice').AsString+'*'+PQtyStr+',' +
PQtyStr+','+
PQtyStr+','+
''''+fieldbyname('PlanDueDate').asstring+''')';
AdoQry_Tmp.ExecSQL;
Edit;
fieldbyname('iScreatePo').asinteger:=1;
fieldbyname('TmpField').asinteger:=0;
{更新PurChaseApply表的iScreatePo字段}
AdoQry_Tmp.Close;
AdoQry_Tmp.Sql.Text:='Update '+IIFString(fieldbyname('TabFlag').AsInteger=0,'PurChaseApply','PurchaseApplyAssign')+
' set iScreatePo=1,'+
' PoNo='+QuotedStr(PoNo)+','+
' PoLineNo='+IntToStr(IRecord)+
' where ToDate='''+Trim(fieldbyname('ToDate').asstring)+''''+
' and ItemCode='''+fieldbyname('ItemCodeO').asstring+''''+
IIFString(fieldbyname('TabFlag').AsInteger=1,' and VendorCode='+QuotedStr(fieldbyname('VendorCodeO').AsString),' ')+
' and Convert(varchAr,SSReleaseDate,102)='''+Trim(Datetostr(fieldbyname('SSReleaseDate').asDateTime))+'''';
AdoQry_Tmp.execSQL;
if PoType=1 then
NewAutoBuildOpListOrder(DBConnect,PoNo,inttostr(iRecord),GetCode(fieldbyname('ItemCode').AsString),0,PQty);
{初始下一采购单数据}
//VendorCode:=Trim(fieldbyname('VendorCodeO').asstring);
//EmployeeCode:=Trim(fieldbyname('EmployeeCode').asstring);
//PoTaxRate_Percent:=fieldbyname('PcTaxRate_Percent').asstring;
//CurrencyCode:=Trim(fieldbyname('CurrencyCode').asstring);
PmCode:=fieldbyname('PmCode').asinteger;
PcNo:=Trim(fieldbyname('PcNo').asstring);
end;
end;
except
SucTrans:=False;
DispInfo('数据保存出现错误!'+#13+#10+'可能是该记录已经被其他数据引用!',1);
AdoQry_Tmp.Connection.RollBackTrans;
end;
if SucTrans then
AdoQry_Tmp.Connection.CommitTrans;
next;
end;
end;
try
with AdoQry_Tmp do
begin
Close;
sql.Text:='drop table #TmpPo123456';
ExecSQL;
end;
except
end;
end;
procedure TFrm_Pm_Enter_PurchaseApplyToOrder.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Pm_Enter_PurchaseApplyToOrder:=nil;
end;
procedure TFrm_Pm_Enter_PurchaseApplyToOrder.DBGridEhCellClick(
Column: TColumnEh);
begin
inherited;
{if DBGridEh.DataSource.DataSet.IsEmpty then
abort;
if DBGridEh.DataSource.DataSet.fieldbyname('iScreatepo').asinteger=1 then
begin
abort;
end;
//if not(uppercase(Trim(DBGridEh.DataSource.DataSet.Fields[DBGridEh.SelectedIndex].FieldName))=UpperCase('TmpField')) then
// abort;
if DBGridEh.DataSource.DataSet.fieldbyname('VendorCode').asstring='' then
begin
DispInfo('该记录没有供应商,请分配好供应商!',1);
abort;
end;
if DBGridEh.DataSource.DataSet.fieldbyname('PmCode').asinteger=null then
begin
DispInfo('该记录没有制购码,请在物料主文件中设置!',1);
abort;
end;
if DBGridEh.DataSource.DataSet.fieldbyname('EmployeeCode').asstring='' then
begin
DispInfo('该记录没有采购员,请在物料主文件中设置!',1);
abort;
end; }
end;
procedure TFrm_Pm_Enter_PurchaseApplyToOrder.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
Try
ExecuteSql(AdoQry_Tmp,'drop table #PCTmp',1);
except
end;
Try
ExecuteSql(AdoQry_Tmp,'drop table #TmpPurchaseApply',1);
except
end;
ExecuteSql(AdoQry_Tmp,'Update PurchaseApply set TmpField=0',1);
end;
procedure TFrm_Pm_Enter_PurchaseApplyToOrder.DBGridEhTitleClick(
Column: TColumnEh);
var
BookStr:String;
begin
inherited;
If Trim(Column.Title.Caption)<>'标识' Then
Abort;
EditFlag:=True;
with AdoQry_Main do
if not isempty then
begin
DisableControls;
BookStr:=BookmArk;
if not flag then
begin
First;
while not eof do
begin
Edit;
if (fieldbyname('iScreatePo').asinteger<>1)and(fieldbyname('VendorCode').asstring<>'')
and(fieldbyname('EmployeeCode').asstring<>'')and(fieldbyname('VendorCode').asstring<>'') then
fieldbyname('TmpField').asinteger:=1;
next;
end;
end
else
begin
First;
while not eof do
begin
Edit;
fieldbyname('TmpField').asinteger:=0;
next;
end;
end;
try
BookmArk:=BookStr;
Except
end;
EnableControls;
end;
EditFlag:=False;
Flag:=not Flag;
end;
procedure TFrm_Pm_Enter_PurchaseApplyToOrder.FormCreate(Sender: TObject);
begin
inherited;
Flag:=False;
end;
procedure TFrm_Pm_Enter_PurchaseApplyToOrder.AdoQry_MainBeforeEdit(
DataSet: TDataSet);
begin
inherited;
if DBGridEh.DataSource.DataSet.IsEmpty then
abort;
if not EditFlag then
begin
if DBGridEh.DataSource.DataSet.fieldbyname('iScreatepo').asinteger=1 then
begin
abort;
end;
//if not(uppercase(Trim(DBGridEh.DataSource.DataSet.Fields[DBGridEh.SelectedIndex].FieldName))=UpperCase('TmpField')) then
// abort;
if DBGridEh.DataSource.DataSet.fieldbyname('VendorCode').asstring='' then
begin
DispInfo('该记录没有供应商,请分配好供应商!',1);
abort;
end;
if DBGridEh.DataSource.DataSet.fieldbyname('PmCode').asinteger=null then
begin
DispInfo('该记录没有制购码,请在物料主文件中设置!',1);
abort;
end;
if DBGridEh.DataSource.DataSet.fieldbyname('EmployeeCode').asstring='' then
begin
DispInfo('该记录没有采购员,请在物料主文件中设置!',1);
abort;
end;
end;
end;
procedure TFrm_Pm_Enter_PurchaseApplyToOrder.DBGridEhGetCellParams(
Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
inherited;
if AdoQry_Main.fieldbyname('iScreatePo').asinteger=1 then
AFont.Color:=CLRed;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -