Sunday, May 19, 2019

Deleting Integration tables values


static void OGS_ALS_PurgeALSTables(Args _args)
{
    ALS_PickingList als_PickingList;
    ALS_PurchLine als_PurchaseLine;
    ALS_CountingJournal als_CountingJournal;
    ALS_TransferJournal als_TransferJournal;
    ALS_DeliveryNote als_DeliveryNote;

    Dialog      dialog;
    DialogField field;


    dialog = new Dialog("AX - WDC Integration");
    dialog.addText("Are you sure you want to delete data in the integration tables?");

    dialog.run();
    if (dialog.closedOk())
    {
        ttsBegin;
        delete_from als_PickingList;
        delete_from als_PurchaseLine;
        delete_from als_CountingJournal;
        delete_from als_TransferJournal;
        delete_from als_DeliveryNote;
        ttsCommit;

        info("Deletion completed!");
    }
}

Saturday, May 18, 2019

Close Old Price Agreements


static void OGSCloseOldPriceAgreements(Args _args)
{
    PriceDiscTable getTable, setTable, getTop;
    DataAreaId comp;
    Int recCount;
    ToDate toDate;

    getTable = null;
    while select count(RecId) from getTable
        order by getTable.FromDate Desc
        group by getTable.dataAreaId, getTable.ItemRelation
        where getTable.ToDate == dateNull() // && getTable.ItemRelation == 'FP-GIP503-ASI'
    {
        //comp = getTable.getFieldValue("dataAreaId");
        //changeCompany(comp)
        //{
        if (getTable.RecId > 1)
        {
            getTop = null;
            select firstOnly getTop
            order by getTop.FromDate desc
            where getTop.dataAreaId == getTable.getFieldValue("dataAreaId") &&
            getTop.ItemRelation == getTable.getFieldValue("ItemRelation") &&
            getTop.ToDate == dateNull();

            setTable = null;
            While select forUpdate setTable
            where setTable.dataAreaId == getTable.getFieldValue("dataAreaId") &&
            setTable.ItemRelation == getTable.getFieldValue("ItemRelation") &&
            setTable.RecId != getTop.RecId &&
            setTable.ToDate == dateNull()
            {
                ttsBegin;
                setTable.ToDate = getTop.FromDate - 1;
                setTable.update();
                ttsCommit;
                recCount++;
            }
        }
        //}
    }
    info(strFmt("Records processed : %1",recCount));
}

Delete Financial Data


static void OGSdeleteFinancialData(Args _args)
{

 GeneralJournalAccountEntry _GeneralJournalAccountEntry;

GeneralJournalEntry _GeneralJournalEntry;

DimensionFocusBalance _DimensionFocusBalance;

;


ttsBegin
;

delete_from
_GeneralJournalAccountEntry;

delete_from
_GeneralJournalEntry;
delete_from
_DimensionFocusBalance;
ttsCommit
;
}

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));
}

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));
}