/**
* 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'));
}