Jira Code: AHD-65
We created a Suitelet form where we can enter the Manifest Number. The script will trigger a search for the delivery order based on the Manifest Number in the CL Manifest Number field and list out the delivery orders in the form.
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
*/
/**
* Script Description
*/
/*******************************************************************************
*
* AM Trucking
* AHD - 66 SL Order List form
*
* NetSuite Name :AHD-66 SL Order List form
* Script ID: customscript_jj_suitlet_form
*
* *****************************************************************************
*
*
* $Author: Jobin & Jismi IT Services LLP $
*
* DESCRIPTION
*
* Date Created :23/03/2019
*
* REVISION HISTORY Update:
*
*
*
******************************************************************************/
define(['N/file', 'N/search', 'N/runtime', 'N/record', 'N/https', 'N/encode', 'N/ui/serverWidget', 'N/email'],
function (file, search, runtime, record, https, encode, serverWidget, email) {
var main = {
//function for onRequest-We create the UI
onRequest: function (context) {
if (context.request.method === 'GET') {
//Enter to GET
var response = context.response
var form = serverWidget.createForm({
title: "Order List"
})
// form.addButton({
// id: 'Submit',
// label: 'Apply Filter',
// functionName: 'filter'
// // })
// var hiddenfield = form.addField({
// id: 'hiddenfield',
// type: serverWidget.FieldType.INLINEHTML,
// label: 'Hidden'
// })
var manifest_numberfield = form.addField({
id: 'manifest_number',
type: serverWidget.FieldType.TEXT,
label: 'Manifest No.'
})
manifest_numberfield.isMandatory = true;
var sublist = form.addSublist({
id: 'orderlist',
type: serverWidget.SublistType.LIST,
label: 'Order List'
})
sublist.addMarkAllButtons();
var checkbox = sublist.addField({
id: 'custpage_check',
label: '<p align="center">check</p>',
type: serverWidget.FieldType.CHECKBOX
});
checkbox.updateDisplayType({
displayType: serverWidget.FieldDisplayType.ENTRY
});
sublist.addField({
id: 'do_order_number',
type: serverWidget.FieldType.TEXT,
label: 'Delivery Order Number',
})
sublist.addField({
id: 'order_status',
type: serverWidget.FieldType.TEXT,
label: 'Order Level Status',
})
// sublist.addField({
// id: 'sku',
// type: serverWidget.FieldType.TEXT,
// label: 'SKU',
// })
// sublist.addField({
// id: 'displayname',
// type: serverWidget.FieldType.TEXT,
// label: 'Display Name',
// })
sublist.addField({
id: 'cl_manifest_number',
type: serverWidget.FieldType.TEXT,
label: 'Manifest Number',
})
//Call for the Client Script and getting values from the Client Script.
form.clientScriptFileId = '3488644';
var manifest_number = context.request.parameters.manifest_number
if (manifest_number == null || manifest_number == undefined || manifest_number == "") {
manifest_numberfield.defaultValue = ""
} else {
var itemvalue = main.itemSearch(sublist, manifest_number, response)
manifest_numberfield.defaultValue = manifest_number
}
form.addSubmitButton({
label: 'Send TO Dispatch Tracker'
});
context.response.writePage(form);
} else {
//POST Part
var lines = context.request.getLineCount({
group: "orderlist"
});
log.debug("Post", context)
//Getting the values from the selected fields to the array
var poobj = [];
for (var i = 0; i < lines; i++) {
var chkboxvalue = context.request.getSublistValue({
group: 'orderlist',
name: 'custpage_check',
line: i
});
if (chkboxvalue == 'T') {
var so = context.request.getSublistValue({
group: 'orderlist',
name: 'do_order_number',
line: i
});
poobj.push(so)
var response = https.get({
url: 'https://forms.na3.netsuite.com/app/site/hosting/scriptlet.nl?script=323&deploy=1&compid=4301600&h=363edd61c2e4501e9bc5&do_number=' + so
});
}
}
log.debug("poobj", poobj)
var form = serverWidget.createForm({
title: "Order List"
})
var hiddenfield = form.addField({
id: 'hiddenfield',
type: serverWidget.FieldType.INLINEHTML,
label: 'Hidden'
})
hiddenfield.defaultValue = "<script> window.location.href='/app/site/hosting/scriptlet.nl?script=322&deploy=1';</script>"
context.response.writePage(form)
}
},
alignLeft: function (r) {
return '<p align="Left">' + r + '</p>';
},
alignCenter: function (r) {
return '<p align="Center">' + r + '</p>';
},
// Search for the items
itemSearch: function (sublist, manifest_number, response) {
var salesorderSearchObj = search.create({
type: "salesorder",
filters: [
["type", "anyof", "SalesOrd"],
"AND",
["custbody_order_level_status", "noneof", "25", "36", "41", "23", "26", "22", "37", "27", "28"],
"AND",
["mainline", "is", "T"],
"AND",
["custbody_cl_manifest_number", "contains", manifest_number]
],
columns: [
search.createColumn({
name: "custbody_cl_manifest_number",
sort: search.Sort.DESC,
label: "Manifest Number"
}),
search.createColumn({
name: "trandate",
label: "Create Date"
}),
search.createColumn({
name: "custbody_first_received_on",
label: "Pickup Date"
}),
search.createColumn({
name: "tranid",
label: "Order NUmber"
}),
search.createColumn({
name: "custbody_seller_bol_no",
label: "Seller BOL No."
}),
search.createColumn({
name: "otherrefnum",
label: "PO/Check Number"
}),
search.createColumn({
name: "custbody_seller_name",
label: "Seller"
}),
search.createColumn({
name: "custbody_service_level_description",
label: "Service Level"
}),
search.createColumn({
name: "custbody_items_summary",
label: "Items Summary"
}),
search.createColumn({
name: "custbody_service_items_summary",
label: "Service Items Summary"
}),
search.createColumn({
name: "custbody29",
label: "Pickup Terminal"
}),
search.createColumn({
name: "custbody_delivery_branch",
label: "Delivery Terminal"
}),
search.createColumn({
name: "custbody_do_con_service5",
label: "Special Instructions"
}),
search.createColumn({
name: "custbody_order_level_status",
label: "Order Status"
})
]
});
var searchResultCount = salesorderSearchObj.runPaged().count;
log.debug("transactionSearchObj result count", searchResultCount);
var newobj = [];
var itemlength = searchResultCount
if (searchResultCount > 3999) {
hiddenfield.defaultValue = '<html> <body> <script> alert("Search Result is more than the Limit"); </script> </body> </html>'
return []
}
salesorderSearchObj.run().each(function (result) {
var tempObj = {};
var custbody_cl_manifest_number = main.checkifnull(result.getValue({
name: "custbody_cl_manifest_number",
sort: search.Sort.DESC,
label: "Manifest Number"
}));
tempObj.custbody_cl_manifest_number = custbody_cl_manifest_number;
var trandate = main.checkifnull(result.getValue({
name: "trandate",
label: "Create Date"
}));
tempObj.trandate = trandate;
var custbody_first_received_on = main.checkifnull(result.getText({
name: "custbody_first_received_on",
label: "Pickup Date"
}));
tempObj.custbody_first_received_on = custbody_first_received_on;
var tranid = main.checkifnull(result.getValue({
name: "tranid",
label: "Order NUmber"
}));
tempObj.tranid = tranid;
var custbody_seller_bol_no = main.checkifempty(result.getValue({
name: "custbody_seller_bol_no",
label: "Seller BOL No."
}));
tempObj.custbody_seller_bol_no = custbody_seller_bol_no;
var otherrefnum = main.checkifempty(result.getValue({
name: "otherrefnum",
label: "PO/Check Number"
}));
tempObj.otherrefnum = otherrefnum;
var custbody_seller_name = main.checkifnull(result.getValue({
name: "custbody_seller_name",
label: "Seller"
}));
tempObj.custbody_seller_name = custbody_seller_name;
var custbody_service_level_description = main.checkifempty(result.getText({
name: "custbody_service_level_description",
label: "Service Level"
}));
tempObj.custbody_service_level_description = custbody_service_level_description;
var custbody_order_level_status = main.checkifempty(result.getText({
name: "custbody_order_level_status",
label: "Order Status"
}));
tempObj.custbody_order_level_status = custbody_order_level_status;
newobj.push(tempObj);
return true;
});
main.setValue(newobj, sublist, itemlength, response)
},
//Setting Values to the Sublist
setValue: function (itemvalue, sublist, j, response) {
log.debug("itemvalue111", itemvalue)
for (i = 0; i < j; i++) {
sublist.setSublistValue({
id: 'custpage_check',
line: i,
value: 'T'
});
sublist.setSublistValue({
id: 'cl_manifest_number',
line: i,
value: main.alignLeft(itemvalue[i].custbody_cl_manifest_number)
});
// sublist.setSublistValue({
// id: 'po',
// line: i,
// value: main.alignLeft(itemvalue[i].trandate)
// });
// sublist.setSublistValue({
// id: 'sku',
// line: i,
// value: main.alignLeft(itemvalue[i].custbody_first_received_on)
// });
sublist.setSublistValue({
id: 'do_order_number',
line: i,
value: itemvalue[i].tranid
});
// sublist.setSublistValue({
// id: 'qty',
// line: i,
// value: itemvalue[i].custbody_seller_bol_no
// });
// sublist.setSublistValue({
// id: 'price',
// line: i,
// value: itemvalue[i].otherrefnum
// });
// sublist.setSublistValue({
// id: 'totallaneitem',
// line: i,
// value: itemvalue[i].custbody_seller_name
// });
// sublist.setSublistValue({
// id: 'vendorcode',
// line: i,
// value: main.alignCenter(itemvalue[i].custbody_service_level_description)
// });
sublist.setSublistValue({
id: 'order_status',
line: i,
value: itemvalue[i].custbody_order_level_status
});
}
},
checkifnull: function (argument) {
if (argument != undefined && argument != null && argument != '')
return argument;
else
return "-";
},
checkifempty: function (argument) {
if (argument != undefined && argument != null && argument != '')
return argument;
else
return 0;
},
}
for (var key in main) {
if (typeof main[key] === 'function') {
main[key] = trycatch(main[key], key);
}
}
function trycatch(myfunction, key) {
return function () {
try {
return myfunction.apply(this, arguments);
} catch (e) {
log.debug("e in " + key, e);
}
}
};
return main;
});