Saturday, May 18, 2019

Purchase Invent Trans


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