static void
OGSFixPurchInventTrans(Args _args)
{
InventTrans inventTrans;
InventTransOrigin inventTransOrigin;
PurchLine
purchLine;
InventDim
inventDim;
int i;
InventTransOriginPurchLine
inventTransOriginPurchLine;
purchLine = null;
while
select crosscompany
purchLine
where
purchLine.PurchStatus == PurchStatus::Backorder && purchLine.InventTransId
!= ''
{
changeCompany(purchLine.dataAreaId)
{
inventTransOrigin = null;
select
forupdate firstOnly inventTransOrigin
where
inventTransOrigin.InventTransId == purchLine.InventTransId &&
inventTransOrigin.dataAreaId == purchLine.dataAreaId;
if
(inventTransOrigin.RecId == 0)
{
try
{
ttsBegin;
inventTransOrigin.clear();
inventTransOrigin.InventTransId = purchLine.InventTransId;
inventTransOrigin.ItemId =
purchLine.ItemId;
inventTransOrigin.ItemInventDimId = purchLine.InventDimId;
inventTransOrigin.ReferenceCategory = InventTransType::Purch;
inventTransOrigin.ReferenceId = purchLine.PurchId;
inventTransOrigin.Party =
purchLine.purchTable().partyTable_OrderAccount().RecId;
if
(inventTransOrigin.validateWrite())
{
inventTransOrigin.insert();
inventTransOriginPurchLine = null;
select forUpdate
inventTransOriginPurchLine
where
inventTransOriginPurchLine.PurchLineInventTransId ==
inventTransOrigin.InventTransId
&&
inventTransOriginPurchLine.PurchLineDataAreaId == inventTransOrigin.dataAreaId;
if (inventTransOriginPurchLine.RecId)
{
inventTransOriginPurchLine.InventTransOrigin = inventTransOrigin.RecId;
inventTransOriginPurchLine.update();
}
else
{
inventTransOriginPurchLine.InventTransOrigin = inventTransOrigin.RecId;
inventTransOriginPurchLine.PurchLineDataAreaId = inventTransOrigin.dataAreaId;
inventTransOriginPurchLine.PurchLineInventTransId =
inventTransOrigin.InventTransId;
inventTransOriginPurchLine.insert();
}
inventTrans.clear();
inventTrans.ItemId =
purchLine.ItemId;
inventTrans.InventTransOrigin = inventTransOrigin.RecId;
inventTrans.inventDimId
= inventTransOrigin.ItemInventDimId;
inventDim =
InventDim::find(inventTrans.inventDimId);
inventTrans.inventDimFixed =
InventDimFixedClass::inventDimFieldsDifferent(inventDim,inventDim);// 999;
inventTrans.Qty =
purchLine.QtyOrdered;
inventTrans.StatusIssue
= StatusIssue::None;
inventTrans.StatusReceipt = StatusReceipt::Ordered;
inventTrans.DateStatus
= DateTimeUtil::date(purchLine.createdDateTime);
inventTrans.DateExpected =
purchLine.deliveryDate();
inventTrans.ShippingDateRequested = purchLine.deliveryDate();
if (inventTrans.validateWrite())
{
inventTrans.insert();
}
}
ttsCommit;
i++;
}
catch
{
continue;
}
}
}
}
info(strFmt("Completed: %1 records processed",i));
}
No comments:
Post a Comment