static void
OGSFixSalesInventTrans(Args _args)
{
InventTrans inventTrans;
InventTransOrigin inventTransOrigin;
SalesLine
salesLine;
InventDim
inventDim;
int i;
InventTransOriginSalesLine
inventTransOriginSalesLine;
salesLine = null;
while
select crosscompany
salesLine
where
salesLine.SalesStatus == SalesStatus::Backorder &&
salesLine.InventTransId != ''
{
changeCompany(salesLine.dataAreaId)
{
inventTransOrigin = null;
select
forupdate firstOnly inventTransOrigin
where
inventTransOrigin.InventTransId == salesLine.InventTransId &&
inventTransOrigin.dataAreaId == salesLine.dataAreaId;
if
(inventTransOrigin.RecId == 0)
{
try
{
ttsBegin;
inventTransOrigin.clear();
inventTransOrigin.InventTransId = salesLine.InventTransId;
inventTransOrigin.ItemId =
salesLine.ItemId;
inventTransOrigin.ItemInventDimId = salesLine.InventDimId;
inventTransOrigin.ReferenceCategory = InventTransType::Sales;
inventTransOrigin.ReferenceId = salesLine.SalesId;
inventTransOrigin.Party =
salesLine.salesTable().partyTable_CustAccount().RecId;
if
(inventTransOrigin.validateWrite())
{
inventTransOrigin.insert();
inventTransOriginSalesLine = null;
select forUpdate
inventTransOriginSalesLine
where
inventTransOriginSalesLine.SalesLineInventTransId ==
inventTransOrigin.InventTransId
&&
inventTransOriginSalesLine.SalesLineDataAreaId == inventTransOrigin.dataAreaId;
if
(inventTransOriginSalesLine.RecId)
{
inventTransOriginSalesLine.InventTransOrigin = inventTransOrigin.RecId;
inventTransOriginSalesLine.update();
}
else
{
inventTransOriginSalesLine.InventTransOrigin = inventTransOrigin.RecId;
inventTransOriginSalesLine.SalesLineDataAreaId = inventTransOrigin.dataAreaId;
inventTransOriginSalesLine.SalesLineInventTransId =
inventTransOrigin.InventTransId;
inventTransOriginSalesLine.insert();
}
inventTrans.clear();
inventTrans.ItemId =
salesLine.ItemId;
inventTrans.InventTransOrigin = inventTransOrigin.RecId;
inventTrans.inventDimId
= inventTransOrigin.ItemInventDimId;
inventDim =
InventDim::find(inventTrans.inventDimId);
inventTrans.inventDimFixed =
InventDimFixedClass::inventDimFieldsDifferent(inventDim,inventDim);// 999;
inventTrans.Qty =
salesLine.QtyOrdered * -1;
inventTrans.StatusIssue
= StatusIssue::OnOrder;
inventTrans.StatusReceipt = StatusReceipt::None;
inventTrans.DateStatus
= DateTimeUtil::date(salesLine.createdDateTime);
inventTrans.DateExpected =
salesLine.deliveryDate();
inventTrans.ShippingDateRequested = salesLine.deliveryDate();
if (inventTrans.validateWrite())
{
inventTrans.insert();
}
}
ttsCommit;
i++;
}
catch
{
continue;
}
}
}
}
info(strFmt("Completed: %1 records processed",i));
}
No comments:
Post a Comment