Details of creating custom page for printing Packing Slip PDF on a button click , in Bulk.
Suitelet for Design Bulk page print : –
/**
* @NApiVersion 2.1
* @NScriptType Suitelet
*/
var PAGE_SIZE = 75;
var CLIENT_SCRIPT_FILE_ID = 26833625;
define(['N/ui/serverWidget', 'N/search', 'N/https', 'N/file', 'N/render', 'N/record', 'N/runtime'],
function (serverWidget, search, https, file, render, record, runtime) {
/**
* Defines the Suitelet script trigger point.
* @param {Object} scriptContext
* @param {ServerRequest} scriptContext.request - Incoming request
* @param {ServerResponse} scriptContext.response - Suitelet response
* @since 2015.2
*/
function onRequest(scriptContext) {
try {
var request = scriptContext.request;
var response = scriptContext.response;
// log.debug("request", request);
// log.debug("response", response);
//log.debug("inside onrequest entry point", "inside onrequest entry point");
if (scriptContext.request.method === 'GET') {
log.debug("in", "in");
var objCurrScript = runtime.getCurrentScript();
log.debug("objCurrScript", objCurrScript);
var form = serverWidget.createForm({
title: 'Bulk Print Item Fulfillments',
hideNavBar: false
});
var scriptId = scriptContext.request.parameters.script;
log.debug("scriptId", scriptId)
var deploymentId = scriptContext.request.parameters.deploy;
log.debug("deploymentId", deploymentId)
var pageId = parseInt(scriptContext.request.parameters.page);
log.debug("pageId", pageId)
var customerField = scriptContext.request.parameters.customerField || "";
var statusField = scriptContext.request.parameters.statusField || "";
var fromDateField = scriptContext.request.parameters.fromDateField || "";
var toDateField = scriptContext.request.parameters.toDateField || "";
log.debug("customerField", customerField);
log.debug("statusField", statusField);
log.debug("fromDateField", fromDateField);
log.debug("toDateField", toDateField);
// form.addSubmitButton({
// label: 'Submit'
// });
form.addButton({
id: 'clearbutton',
label: 'Clear All',
functionName: 'clearButtonFunction'
});
form.addButton({
id: 'backbutton',
label: 'Back',
functionName: 'backButtonFunction'
});
form.addButton({
id: 'packingslipbutton',
label: 'LPS PDF',
functionName: 'startproccessing'
});
var customer = form.addField({
id: 'custpage_customers',
type: serverWidget.FieldType.SELECT,
label: 'Customer',
source: 'customer'
});
customer.setHelpText({
help: "This field has a list of Cutomers in the transaction"
});
var statusofIF = form.addField({
id: 'custpage_status',
type: serverWidget.FieldType.SELECT,
label: 'Status',
source: 'status'
});
statusofIF.setHelpText({
help: "This field shows the list of Item Fulfillment Status"
});
statusofIF.addSelectOption({
value: "", text: '-All-'
});
statusofIF.addSelectOption({
value: 'ItemShip:A', text: 'Picked'
});
statusofIF.addSelectOption({
value: 'ItemShip:B', text: 'Packed'
});
statusofIF.addSelectOption({
value: 'ItemShip:C', text: 'Shipped'
});
var fromDate = form.addField({
id: 'custpage_fromdate',
type: serverWidget.FieldType.DATE,
label: 'From'
// source: 'status'
});
fromDate.setHelpText({
help: "Choose the Item Fulfillment date range"
});
var toDate = form.addField({
id: 'custpage_todate',
type: serverWidget.FieldType.DATE,
label: 'To'
//source: 'status'
});
toDate.setHelpText({
help: "Choose the Item Fulfillment date range"
});
var selectOptions = form.addField({
id: 'custpage_pageid',
type: serverWidget.FieldType.SELECT,
label: 'Page Index'
});
selectOptions.updateLayoutType({
layoutType: serverWidget.FieldLayoutType.NORMAL
});
selectOptions.updateBreakType({
breakType: serverWidget.FieldBreakType.STARTCOL
});
selectOptions.setHelpText({
help: "Page Index of Item Fulfillment List"
});
//if (statusField == null || statusField == undefined || statusField == "") {
// statusofIF.defaultValue = ""
//} else {
customer.defaultValue = customerField;
statusofIF.defaultValue = statusField;
fromDate.defaultValue = fromDateField;
toDate.defaultValue = toDateField;
//FirstCheckNumber.defaultValue = checkVal
//}
var sublist = form.addSublist({
id: 'sublistid',
type: serverWidget.SublistType.LIST,
label: 'Item Fulfillment List'
});
sublist.addMarkAllButtons();
sublist.addField({
id: 'custpage_printcheckbox',
type: serverWidget.FieldType.CHECKBOX,
label: 'Print'
});
var internalId = sublist.addField({
id: 'custpage_id',
label: 'InternalID',
type: serverWidget.FieldType.TEXT
});
internalId.updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN });
sublist.addField({
id: 'custpage_ponumber',
type: serverWidget.FieldType.TEXT,
label: 'PO NO.'
});
sublist.addField({
id: 'custpage_sotrandate',
type: serverWidget.FieldType.TEXT,
label: 'ORDER DATE'
});
sublist.addField({
id: 'custpage_sonumber',
type: serverWidget.FieldType.TEXT,
label: 'ORDER NO.'
});
sublist.addField({
id: 'custpage_iftrandate',
type: serverWidget.FieldType.TEXT,
label: 'SHIP DATE'
});
sublist.addField({
id: 'custpage_ifnumber',
type: serverWidget.FieldType.TEXT,
label: 'SHIP NO.'
});
sublist.addField({
id: 'custpage_ifentity',
type: serverWidget.FieldType.TEXT,
label: 'CUSTOMER'
});
sublist.addField({
id: 'custpage_ishold',
type: serverWidget.FieldType.TEXT,
label: 'HOLD'
});
sublist.addField({
id: 'custpage_sodepartment',
type: serverWidget.FieldType.TEXT,
label: 'DEPARTMENT'
});
sublist.addField({
id: 'custpage_ifmemo',
type: serverWidget.FieldType.TEXT,
label: 'MEMO'
});
sublist.addField({
id: 'custpage_soreceivedby',
type: serverWidget.FieldType.TEXT,
label: 'ORDER RECEIVED BY'
});
sublist.addField({
id: 'custpage_delphonenum',
type: serverWidget.FieldType.TEXT,
label: 'DELIVERY PHONE NUMBER'
});
form.clientScriptFileId = CLIENT_SCRIPT_FILE_ID;
if (customerField !== '' && statusField !== '' && fromDateField !== '' && toDateField !== '') {
log.debug("entered1", "entered1")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", statusField],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["trandate", "within", fromDateField, toDateField],
"AND",
["createdfrom.name", "anyof", customerField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField == '' && statusField == '' && fromDateField == '' && toDateField == '') {
log.debug("entered2", "entered2")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", "ItemShip:A", "ItemShip:B", "ItemShip:C"],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField !== '' && statusField !== '' && fromDateField !== '' && toDateField == '') {
log.debug("entered3", "entered3")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", statusField],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["trandate", "onorafter", fromDateField],
"AND",
["createdfrom.name", "anyof", customerField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField !== '' && statusField !== '' && fromDateField == '' && toDateField !== '') {
log.debug("entered4", "entered4")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", statusField],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["trandate", "onorbefore", toDateField],
"AND",
["createdfrom.name", "anyof", customerField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField !== '' && statusField == '' && fromDateField !== '' && toDateField !== '') {
log.debug("entered5", "entered5")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", "ItemShip:A", "ItemShip:B", "ItemShip:C"],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["trandate", "within", fromDateField, toDateField],
"AND",
["createdfrom.name", "anyof", customerField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField == '' && statusField !== '' && fromDateField !== '' && toDateField !== '') {
log.debug("entered6", "entered6")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", statusField],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["trandate", "within", fromDateField, toDateField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
//7
if (customerField !== '' && statusField !== '' && fromDateField == '' && toDateField == '') {
log.debug("entered7", "entered7")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", statusField],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["createdfrom.name", "anyof", customerField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField !== '' && statusField == '' && fromDateField == '' && toDateField !== '') {
log.debug("entered8", "entered8")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", "ItemShip:A", "ItemShip:B", "ItemShip:C"],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["createdfrom.name", "anyof", customerField],
"AND",
["trandate", "onorbefore", toDateField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField == '' && statusField == '' && fromDateField !== '' && toDateField !== '') {
log.debug("entered9", "entered9")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", "ItemShip:A", "ItemShip:B", "ItemShip:C"],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["trandate", "within", fromDateField, toDateField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField == '' && statusField !== '' && fromDateField !== '' && toDateField == '') {
log.debug("entered10", "entered10")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", statusField],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["trandate", "onorafter", fromDateField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField == '' && statusField !== '' && fromDateField == '' && toDateField !== '') {
log.debug("entered11", "entered11")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", statusField],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["trandate", "onorbefore", toDateField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField !== '' && statusField == '' && fromDateField !== '' && toDateField == '') {
log.debug("entered12", "entered12")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", "ItemShip:A", "ItemShip:B", "ItemShip:C"],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["createdfrom.name", "anyof", customerField],
"AND",
["trandate", "onorafter", fromDateField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField !== '' && statusField == '' && fromDateField == '' && toDateField == '') {
log.debug("entered13", "entered13")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", "ItemShip:A", "ItemShip:B", "ItemShip:C"],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["createdfrom.name", "anyof", customerField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField == '' && statusField == '' && fromDateField == '' && toDateField !== '') {
log.debug("entered14", "entered14")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", "ItemShip:A", "ItemShip:B", "ItemShip:C"],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["trandate", "onorbefore", toDateField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField == '' && statusField == '' && fromDateField !== '' && toDateField == '') {
log.debug("entered15", "entered15")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", "ItemShip:A", "ItemShip:B", "ItemShip:C"],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["trandate", "onorafter", fromDateField],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
if (customerField == '' && statusField !== '' && fromDateField == '' && toDateField == '') {
log.debug("entered16", "entered16")
var addfilter = [
["type", "anyof", "ItemShip"],
"AND",
["status", "anyof", statusField],
"AND",
["subsidiary", "anyof", "2"],
"AND",
["mainline", "is", "T"],
"AND",
["createdfrom.status", "noneof", "SalesOrd:C", "SalesOrd:H"],
"AND",
["createdfrom.type", "anyof", "SalesOrd"]
]
}
// Run search and determine page count and item type
var retrieveSearch = runSearchSecond(PAGE_SIZE, addfilter);
log.debug('retrieveSearch.count', retrieveSearch.count)
//Run search and determine Name and Display Name
var pageCount = Math.ceil(retrieveSearch.count / PAGE_SIZE);
log.debug("pageCount", pageCount)
// Set pageId to correct value if out of index
if (!pageId || pageId == '' || pageId < 0)
pageId = 0;
else if (pageId >= pageCount)
pageId = pageCount - 1;
// for (i = 0; i < pageCount; i++) {
// if (i == pageId) {
// selectOptions.addSelectOption({
// value: 'pageid_' + i,
// text: ((i * PAGE_SIZE) + 1) + ' - ' + ((i + 1) * PAGE_SIZE),
// isSelected: true
// });
// } else {
// selectOptions.addSelectOption({
// value: 'pageid_' + i,
// text: ((i * PAGE_SIZE) + 1) + ' - ' + ((i + 1) * PAGE_SIZE)
// });
// }
// }
for (i = 0; i < pageCount; i++) {
if (i == pageId) {
if (i == (pageCount - 1)) {
selectOptions.addSelectOption({
value: 'pageid_' + i,
text: ((i * PAGE_SIZE) + 1) + ' - ' + (retrieveSearch.count),
isSelected: true
});
} else {
selectOptions.addSelectOption({
value: 'pageid_' + i,
text: ((i * PAGE_SIZE) + 1) + ' - ' + ((i + 1) * PAGE_SIZE),
isSelected: true
});
}
} else {
if (i == (pageCount - 1)) {
selectOptions.addSelectOption({
value: 'pageid_' + i,
text: ((i * PAGE_SIZE) + 1) + ' - ' + (retrieveSearch.count)
});
} else {
selectOptions.addSelectOption({
value: 'pageid_' + i,
text: ((i * PAGE_SIZE) + 1) + ' - ' + ((i + 1) * PAGE_SIZE)
});
}
}
}
if (retrieveSearch.count == 1 || retrieveSearch.count > 1) {
var addResults = fetchSearchResult(retrieveSearch, pageId);
var j = 0;
addResults.forEach(function (result) {
var ponumber = result.ponumber
var sotrandate = result.sotrandate
var sonumber = result.sonumber
var iftrandate = result.iftrandate
var ifnumber = result.ifnumber
var ifentity = result.ifentity
var ishold = result.ishold
var sodepartment = result.sodepartment
var ifmemo = result.ifmemo
var soreceivedby = result.soreceivedby
var delphonenum = result.delphonenum
var intID = result.intID
if (ponumber) {
//log.debug("ponumber", ponumber)
sublist.setSublistValue({
id: 'custpage_ponumber',
line: j,
value: ponumber
})
}
if (intID) {
//log.debug("ponumber", ponumber)
sublist.setSublistValue({
id: 'custpage_id',
line: j,
value: intID
})
}
if (sotrandate) {
//log.debug("sotrandate", sotrandate)
sublist.setSublistValue({
id: 'custpage_sotrandate',
line: j,
value: sotrandate
})
}
if (sonumber) {
sublist.setSublistValue({
id: 'custpage_sonumber',
line: j,
value: sonumber
})
}
if (iftrandate) {
sublist.setSublistValue({
id: 'custpage_iftrandate',
line: j,
value: iftrandate
})
}
if (ifnumber) {
sublist.setSublistValue({
id: 'custpage_ifnumber',
line: j,
value: ifnumber
})
}
if (ifentity) {
sublist.setSublistValue({
id: 'custpage_ifentity',
line: j,
value: ifentity
})
}
if (ishold == null) {
sublist.setSublistValue({
id: 'custpage_ishold',
line: j,
value: "No"
})
}
if (ishold !== null) {
sublist.setSublistValue({
id: 'custpage_ishold',
line: j,
value: "Yes"
})
}
if (sodepartment) {
sublist.setSublistValue({
id: 'custpage_sodepartment',
line: j,
value: sodepartment
})
}
if (ifmemo) {
sublist.setSublistValue({
id: 'custpage_ifmemo',
line: j,
value: ifmemo
})
}
if (soreceivedby) {
sublist.setSublistValue({
id: 'custpage_soreceivedby',
line: j,
value: soreceivedby
})
}
if (delphonenum) {
sublist.setSublistValue({
id: 'custpage_delphonenum',
line: j,
value: delphonenum
})
}
j++
});
}
else {
var j = 0;
//log.debug("ponumber", ponumber)
var checkField = form.getSublist({ id: 'sublistid' }).getField({ id: 'custpage_printcheckbox' });
checkField.updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN })
sublist.setSublistValue({
id: 'custpage_ponumber',
line: j,
value: "No records to show"
})
sublist.setSublistValue({
id: 'custpage_id',
line: j,
value: null
})
//log.debug("sotrandate", sotrandate)
sublist.setSublistValue({
id: 'custpage_sotrandate',
line: j,
value: null
})
sublist.setSublistValue({
id: 'custpage_sonumber',
line: j,
value: null
})
sublist.setSublistValue({
id: 'custpage_iftrandate',
line: j,
value: null
})
sublist.setSublistValue({
id: 'custpage_ifnumber',
line: j,
value: null
})
sublist.setSublistValue({
id: 'custpage_ifentity',
line: j,
value: null
})
sublist.setSublistValue({
id: 'custpage_ishold',
line: j,
value: null
})
sublist.setSublistValue({
id: 'custpage_sodepartment',
line: j,
value: null
})
sublist.setSublistValue({
id: 'custpage_ifmemo',
line: j,
value: null
})
sublist.setSublistValue({
id: 'custpage_soreceivedby',
line: j,
value: null
})
sublist.setSublistValue({
id: 'custpage_delphonenum',
line: j,
value: null
})
}
scriptContext.response.writePage(form)
}
// if (scriptContext.request.method === 'POST') {
// log.debug("inside post", "inside post")
// var myTemFile = render.create();
// var template = 235;
// myTemFile.setTemplateById(template);
// myTemFile.addCustomDataSource({
// format: render.DataSource.OBJECT,
// alias: 'JSON',
// data: { templateData: onRequest }
// });
// var checkPdf = myTemFile.renderAsPdf();
// scriptContext.response.writeFile(checkPdf, true);
// log.debug("sublist in post", sublist)
// }
}
catch (error) {
log.debug("error@onrequest", error);
}
}
return {
onRequest: onRequest
};
function runSearchSecond(searchPageSize, addfilter) {
try {
var itemfulfillmentSearchObj = search.create({
type: "itemfulfillment",
filters: addfilter,
columns:
[
search.createColumn({
name: "custbody_ozlink_purchaseorder",
sort: search.Sort.ASC,
label: "PO NO."
}),
search.createColumn({
name: "trandate",
join: "createdFrom",
label: "ORDER DATE"
}),
search.createColumn({
name: "tranid",
join: "createdFrom",
label: "ORDER NO."
}),
search.createColumn({ name: "trandate", label: "SHIP DATE" }),
search.createColumn({
name: "tranid",
sort: search.Sort.ASC,
label: "SHIP NO."
}),
search.createColumn({ name: "entity", label: "CUSTOMER" }),
search.createColumn({
name: "custbody_hold",
join: "createdFrom",
label: "HOLD"
}),
search.createColumn({
name: "custbody_dept_state",
join: "createdFrom",
label: "DEPARTMENT"
}),
search.createColumn({ name: "memo", label: "MEMO" }),
search.createColumn({
name: "custbody11",
join: "createdFrom",
label: "ORDER RECEIVED BY"
}),
search.createColumn({ name: "custbody55", label: "DELIVERY PHONE NUMBER" }),
search.createColumn({ name: "internalid", label: "Internal ID" })
]
});
var searchResultCount = itemfulfillmentSearchObj.runPaged().count;
log.debug("itemfulfillmentSearchObj result count", searchResultCount);
return itemfulfillmentSearchObj.runPaged({
pageSize: searchPageSize
});
}
catch (error) {
log.debug("error@runSearchSecond", error);
}
}
function fetchSearchResult(pagedData, pageIndex) {
try {
var searchPage = pagedData.fetch({
index: pageIndex
});
var ifArray = [];
var ponumber
var sotrandate
var sonumber
var iftrandate
var ifnumber
var ifentity
var ishold
var sodepartment
var ifmemo
var soreceivedby
var delphonenum
var intID
searchPage.data.forEach(function (result) {
ponumber = result.getValue(result.columns[0])
sotrandate = result.getValue(result.columns[1])
sonumber = result.getValue(result.columns[2])
iftrandate = result.getValue(result.columns[3])
ifnumber = result.getValue(result.columns[4])
ifentity = result.getText(result.columns[5])
ishold = result.getText(result.columns[6])
sodepartment = result.getText(result.columns[7])
ifmemo = result.getValue(result.columns[8])
soreceivedby = result.getText(result.columns[9])
delphonenum = result.getValue(result.columns[10])
intID = result.getValue(result.columns[11])
var ifObj = {}
ifObj.ponumber = ponumber
ifObj.sotrandate = sotrandate
ifObj.sonumber = sonumber;
ifObj.iftrandate = iftrandate;
ifObj.ifnumber = ifnumber;
ifObj.ifentity = ifentity;
ifObj.ishold = ishold;
ifObj.sodepartment = sodepartment;
ifObj.ifmemo = ifmemo;
ifObj.soreceivedby = soreceivedby;
ifObj.delphonenum = delphonenum;
ifObj.intID = intID;
ifArray.push(ifObj);
return true;
});
log.debug("ifArray", ifArray)
return ifArray;
}
catch (error) {
log.debug("error@fetchSearchResult", error);
}
}
});
Client Script
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
define(['N/record', 'N/url', 'N/https', 'N/currentRecord'],
function (record, url, https, currentRecord) {
/**
* Function to be executed after page is initialized.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.currentRecord - Current form record
* @param {string} scriptContext.mode - The mode in which the record is being accessed (create, copy, or edit)
*
* @since 2015.2
*/
function pageInit(scriptContext) {
try {
console.log("in");
}
catch (e) {
log.debug("clientscript error", e);
}
}
/**
* Function to be executed when field is changed.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.currentRecord - Current form record
* @param {string} scriptContext.sublistId - Sublist name
* @param {string} scriptContext.fieldId - Field name
* @param {number} scriptContext.lineNum - Line number. Will be undefined if not a sublist or matrix field
* @param {number} scriptContext.columnNum - Line number. Will be undefined if not a matrix field
*
* @since 2015.2
*/
function clearButtonFunction() {
try {
console.log("cancel button inside");
window.location.href = 'https://3425005-sb2.app.netsuite.com/app/site/hosting/scriptlet.nl?script=2265&deploy=1';
}
catch (e) {
log.error(e.message, e);
log.debug(e.message, e);
}
}
function backButtonFunction() {
try {
console.log("cancel button inside");
window.location.href = 'https://3425005-sb2.app.netsuite.com/app/center/card.nl?sc=-29&whence=';
}
catch (e) {
log.error(e.message, e);
log.debug(e.message, e);
}
}
function saveRecord(scriptContext) {
try {
var RecordObj = currentRecord.get();
var lineCount = RecordObj.getLineCount({
sublistId: "sublistid"
});
console.log("lineCount", lineCount)
log.debug("lineCount", lineCount)
var lineNumber = RecordObj.findSublistLineWithValue({
sublistId: 'sublistid',
fieldId: 'custpage_printcheckbox',
value: "T"
});
console.log("lineNumber", lineNumber)
log.debug("lineNumber", lineNumber)
// if (lineNumber == -1) {
// alert("Please choose atleast one transaction to print");
// return false;
// }
var applycount = 0;
var upperBound = 75;
for (i = 0; i < lineCount; i++) {
var checkbox = RecordObj.getSublistValue({
sublistId: "sublistid",
fieldId: "custpage_printcheckbox",
line: i
})
if (checkbox == 'T' || checkbox == true) {
applycount += 1;
if (applycount > upperBound) {
alert("Please select transaction count less than " + upperBound);
return false;
}
console.log("applycount", applycount)
}
}
var objSublist = RecordObj.getSublist({
sublistId: 'sublistid'
});
console.log("objSublist", objSublist)
var getColumn = objSublist.getColumn({
fieldId: 'custpage_ifnumber'
});
console.log("getColumn", getColumn)
console.log("applycount", applycount)
return true;
}
catch (e) {
log.error(e.message, e);
log.debug(e.message, e);
}
}
function fieldsChanged(scriptContext) {
try {
// if (scriptContext.fieldId == 'custpage_pageid') {
// var pageId = scriptContext.currentRecord.getValue({
// fieldId: 'custpage_pageid'
// });
// pageId = parseInt(pageId.split('_')[1]);
// document.location = url.resolveScript({
// scriptId: getParameterFromURL('script'),
// deploymentId: getParameterFromURL('deploy'),
// params: {
// 'page': pageId
// }
// });
// }
if (scriptContext.fieldId === 'custpage_customers' || scriptContext.fieldId === 'custpage_status' || scriptContext.fieldId === 'custpage_fromdate' || scriptContext.fieldId === 'custpage_todate' || scriptContext.fieldId == 'custpage_pageid') {
console.log("inside client script");
var currentRecord = scriptContext.currentRecord;
var customerField = currentRecord.getValue({
fieldId: "custpage_customers"
});
console.log("customerField:", customerField);
var statusField = currentRecord.getValue({
fieldId: "custpage_status"
});
console.log("statusField:", statusField);
var fromDateField = currentRecord.getText({
fieldId: "custpage_fromdate"
});
console.log("fromDateField:", fromDateField);
var toDateField = currentRecord.getText({
fieldId: "custpage_todate"
});
console.log("toDateField:", toDateField);
var pageId = scriptContext.currentRecord.getValue({
fieldId: 'custpage_pageid'
});
pageId = parseInt(pageId.split('_')[1]);
console.log("pageId", pageId)
// var url = 'https://3425005-sb2.app.netsuite.com/app/site/hosting/scriptlet.nl?script=2265&deploy=1';
// if (url.indexOf('?') > -1) {
// url += '&MODE=TRUE&' + '&customerField=' + customerField + '&statusField=' + statusField + '&fromDateField=' + fromDateField;
// } else {
// url += '?MODE=TRUE&=' + '&customerField=' + customerField + '&statusField=' + statusField + '&fromDateField=' + fromDateField;
// }
// window.onbeforeunload = function () { };
// window.location.href = url;
// var accountField = currentRecord.getValue({
// fieldId: "custpage_accountno"
// });
// console.log("accountField:", accountField);
//if (customerField == '' && statusField == undefined && fromDateField == '' && toDateField == '') {
var suiteletURL = url.resolveScript({
scriptId: 'customscript_jj_bulkprint_otgn730',
deploymentId: 'customdeploy1',
params: {
"page": pageId,
"customerField": customerField,
"statusField": statusField,
"fromDateField": fromDateField,
"toDateField": toDateField
}
});
console.log("suiteletURL", suiteletURL);
window.onbeforeunload = null;
window.location.href = suiteletURL;
console.log("success");
//}
}
} catch (e) {
log.debug("clientscript error", e);
}
}
function startproccessing() {
try {
var applycount = 0;
var upperBound = 75;
var RecordObj = currentRecord.get();
var recType = RecordObj.type;
var lineCount = RecordObj.getLineCount({
sublistId: "sublistid"
});
console.log("lineCount", lineCount);
log.debug("lineCount", lineCount);
var lineNumber = RecordObj.findSublistLineWithValue({
sublistId: 'sublistid',
fieldId: 'custpage_printcheckbox',
value: "T"
});
console.log("lineNumber", lineNumber);
log.debug("lineNumber", lineNumber);
var internal_ids=[];
for (i = 0; i < lineCount; i++) {
var checkbox = RecordObj.getSublistValue({
sublistId: "sublistid",
fieldId: "custpage_printcheckbox",
line: i
})
if (lineNumber == -1) {
alert("Please choose atleast one transaction to print");
return false;
}
if (checkbox == 'T' || checkbox == true) {
var ids = RecordObj.getSublistValue({
sublistId: "sublistid",
fieldId: "custpage_id",
line: i
})
internal_ids.push(ids);
}
}
console.log('internal ids',internal_ids);
log.debug('internal ids',internal_ids);
// var recId = record.id;
// var recType = record.type;
const myJSON = JSON.stringify(internal_ids);
//map to Suitelet
var suiteletURL = url.resolveScript({
scriptId: "customscript_jj_sl_packing_slip_otgn736",
deploymentId: "customdeploy_jj_sl_packing_slip_otgn736",
params: {
recId: myJSON,
recType:recType
}
//{key:"",key:""}
});
//Open the suiteletURL in new page
window.open(suiteletURL);
}
catch (error) {
log.error('CS render_template', error.message);
}
}
return {
backButtonFunction: backButtonFunction,
clearButtonFunction: clearButtonFunction,
pageInit: pageInit,
fieldChanged: fieldsChanged,
// saveRecord: saveRecord,
startproccessing: startproccessing
};
});
Suitelet for print multiple pages :-
/**
* @NApiVersion 2.1
* @NScriptType Suitelet
*/
define(['N/render','N/record','N/currentRecord','N/format','N/file','N/runtime'],
(render,record,currentRecord,format,file,runtime) => {
/**
* Defines the Suitelet script trigger point.
* @param {Object} scriptContext
* @param {ServerRequest} scriptContext.request - Incoming request
* @param {ServerResponse} scriptContext.response - Suitelet response
* @since 2015.2
*/
const onRequest = (scriptContext) => {
try{
var response = scriptContext.response;
var request = scriptContext.request;
log.debug('request obj',request);
var record_internal_ids=request.parameters.recId;
var json=JSON.parse(record_internal_ids);
log.debug('json data',json);
log.debug('json length',json.length);
var pdf="<?xml version=\"1.0\"?><!DOCTYPE pdf PUBLIC \"-//big.faceless.org//report\" \"report-1.1.dtd\"><pdfset>";
for(var i=0;i < json.length;i++){
var id=json[i]
log.debug('record Id',id);
var rec = format.parse({value:id, type: format.Type.FLOAT});
//render IF Record print in a PDF mode
var transactionFile = render.transaction({
entityId:rec,
formId: 303,
printMode: render.PrintMode.PDF
});
var tranFile=transactionFile.getContents();
pdf+="<pdf src='data:application/pdf;base64,"+tranFile+"'></pdf>"
}
pdf+="</pdfset>";
var bulkRender=render.create();
bulkRender.templateContent=pdf;
var renderData=bulkRender.renderAsPdf();
response.writeFile(renderData, true);
//response.write(pdf);
log.debug('governance',runtime.getCurrentScript().getRemainingUsage())
}
catch(error){
log.error('onRequest', error);
}
}
return {onRequest}
});