Saturday, May 18, 2019

Sales Invent Trans


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