Function to retrieve Item Fulfillment and Sales Order details

/**
 * To retrieve Item Fulfillment and Sales Order details
 * @param {Number} IF_INTERNAL_ID - Internal Id of the Item Fulfillment
 * @returns {*[]|Object[]}
 */
function fetchItemFulfillmentDetails(IF_INTERNAL_ID) {
    if (!IF_INTERNAL_ID)
        return false;
    let itemfulfillmentSearchObj = search.create({
        type: "itemfulfillment",
        filters: [
            ["type", "anyof", "ItemShip"],
            "AND",
            ["mainline", "is", "T"],
            "AND",
            ["createdfrom.internalidnumber", "isnotempty", ""],
            "AND",
            ["createdfrom.type", "anyof", "CustInvc", "SalesOrd", "CashSale"],
            "AND",
            ["createdfrom.mainline", "is", "T"],
            "AND",
            ["internalidnumber", "equalto", IF_INTERNAL_ID]
        ],
        columns: [
            search.createColumn({
                name: "internalid",
                sort: search.Sort.DESC,
                label: "if_internalid" //IF Internal ID
            }),
            search.createColumn({
                name: "trandate", label: "if_trandate" //IF Date
            }),
            search.createColumn({
                name: "tranid", label: "if_tranid" //IF Document Number
            }),
            search.createColumn({
                name: "statusref", label: "if_statusref" //IF Status
            }),
            search.createColumn({
                name: "entity", label: "if_entity" //IF Name
            }),
            search.createColumn({
                name: "createdfrom", label: "if_createdfrom" //IF Created From
            }),
            search.createColumn({
                name: "trackingnumbers", label: "if_trackingnumbers" //IF Tracking Numbers
            }),
            search.createColumn({
                name: "billaddress", label: "if_billaddress" //IF Billing Address
            }),
            search.createColumn({
                name: "email",
                join: "createdFrom",
                label: "so__createdFrom_email" //Created From : Email
            }),
            search.createColumn({
                name: "entity",
                join: "createdFrom",
                label: "so__createdFrom_entity" //Created From : Name
            }),
            search.createColumn({
                name: "shipaddress",
                join: "createdFrom",
                label: "so__createdFrom_shipaddress" //Created From : Shipping Address
            }),
            search.createColumn({
                name: "shipaddress1",
                join: "createdFrom",
                label: "so__createdFrom_shipaddress1" //Created From : Shipping Address 1
            }),
            search.createColumn({
                name: "shipaddress2",
                join: "createdFrom",
                label: "so__createdFrom_shipaddress2" //Created From : Shipping Address 2
            }),
            search.createColumn({
                name: "shipaddress3",
                join: "createdFrom",
                label: "so__createdFrom_shipaddress3" //Created From : Shipping Address 3
            }),
            search.createColumn({
                name: "shipaddressee",
                join: "createdFrom",
                label: "so__createdFrom_shipaddressee" //Created From : Shipping Addressee
            }),
            search.createColumn({
                name: "shippingattention",
                join: "createdFrom",
                label: "so__createdFrom_shippingattention" //Created From : Shipping Attention
            }),
            search.createColumn({
                name: "shipcity",
                join: "createdFrom",
                label: "so__createdFrom_shipcity" //Created From : Shipping City
            }),
            search.createColumn({
                name: "shipcountry",
                join: "createdFrom",
                label: "so__createdFrom_shipcountry" //Created From : Shipping Country
            }),
            search.createColumn({
                name: "shipcountrycode",
                join: "createdFrom",
                label: "so__createdFrom_shipcountrycode" //Created From : Shipping Country Code
            }),
            search.createColumn({
                name: "shipname",
                join: "createdFrom",
                label: "so__createdFrom_shipname" //Created From : Shipping Label
            }),
            search.createColumn({
                name: "shipphone",
                join: "createdFrom",
                label: "so__createdFrom_shipphone" //Created From : Shipping Phone
            }),
            search.createColumn({
                name: "shipstate",
                join: "createdFrom",
                label: "so__createdFrom_shipstate" //Created From : Shipping State/Province
            }),
            search.createColumn({
                name: "shipzip",
                join: "createdFrom",
                label: "so__createdFrom_shipzip" //Created From : Shipping Zip
            }),

            search.createColumn({
                name: "billaddress",
                join: "createdFrom",
                label: "so__createdFrom_billaddress" //Created From : Billing Address
            }),
            search.createColumn({
                name: "billaddress1",
                join: "createdFrom",
                label: "so__createdFrom_billaddress1" //Created From : Billing Address 1
            }),
            search.createColumn({
                name: "billaddress2",
                join: "createdFrom",
                label: "so__createdFrom_billaddress2" //Created From : Billing Address 2
            }),
            search.createColumn({
                name: "billaddress3",
                join: "createdFrom",
                label: "so__createdFrom_billaddress3" //Created From : Billing Address 3
            }),
            search.createColumn({
                name: "billaddressee",
                join: "createdFrom",
                label: "so__createdFrom_billaddressee" //Created From : Billing Addressee
            }),
            search.createColumn({
                name: "billattention",
                join: "createdFrom",
                label: "so__createdFrom_billattention" //Created From : Billing Attention
            }),
            search.createColumn({
                name: "billcity",
                join: "createdFrom",
                label: "so__createdFrom_billcity" //Created From : Billing City
            }),
            search.createColumn({
                name: "billcountry",
                join: "createdFrom",
                label: "so__createdFrom_billcountry" //Created From : Billing Country
            }),
            search.createColumn({
                name: "billcountrycode",
                join: "createdFrom",
                label: "so__createdFrom_billcountrycode" //Created From : Billing Country Code
            }),
            search.createColumn({
                name: "billphone",
                join: "createdFrom",
                label: "so__createdFrom_billphone" //Created From : Billing Phone
            }),
            search.createColumn({
                name: "billstate",
                join: "createdFrom",
                label: "so__createdFrom_billstate" //Created From : Billing State/Province
            }),
            search.createColumn({
                name: "billzip",
                join: "createdFrom",
                label: "so__createdFrom_billzip" //Created From : Billing Zip
            })
        ]
    });
    let searchResultCount = itemfulfillmentSearchObj.runPaged().count;
    log.debug("fetchItemFulfillmentDetails result count", searchResultCount);
    return jjUtil.dataSets.iterateSavedSearch(itemfulfillmentSearchObj, jjUtil.dataSets.fetchSavedSearchColumn(itemfulfillmentSearchObj, 'label'));
}

Leave a comment

Your email address will not be published. Required fields are marked *