Printing Custom Sublist in Suitelet
Hi. I am building a suitelet. It searches fulfilments via package nr.
The form gets created and Sublist too. Sublist gets populated.
On screen I can see the data. When I click print and it runs the POST. I get log out that it is blank.
Any help on why it is blank when I click the Print Button.
/**
* Project:
*
*
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
*/
define(['N/ui/serverWidget','N/runtime','N/search',"N/record"],
function(serverWidget, runtime,search,record ) {
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object} context
* @param {ServerRequest} context.request - Encapsulation of the incoming request
* @param {ServerResponse} context.response - Encapsulation of the Suitelet response
* @Since 2015.2
*/
function onRequest(context) {
var response = context.response;
var request = context.request; // Get Context
var department = request.parameters.wave_id; // Get previous Dep
var action = request.parameters.custpage_action; // Get previous Dep
//log.debug('Department Loaded from Parameter', department);
var form = createForm() // Create Form and retunr
//var sublist1 = createSublist (form) // Create a Sublist on the form
var wave_id = request.parameters.wave_id;
var dep_change = request.parameters.wave_id_change;
//log.debug('Wave changed Loaded from Parameter', dep_change);
log.debug('LOG' ,request.method + '<-Method |Dep Change -> ' + dep_change+' , '+ department + ' <--Department | wave_id --> ' +wave_id + ' , ' + action +'<-- Action Field' )
if (request.method === 'GET') {
//log.debug('LOG GET' ,request.method + '<-Method |Dep Change -> ' + dep_change+' , '+ department + ' <--Department | wave_id --> ' +wave_id + ' , ' + action+'<-- Action Field' )
if (department) {//AND NOT PRINT
////
//log.debug('LOG GET After Deparment' ,request.method + '<-Method |Dep Change -> ' + dep_change+' , '+ department + ' <--Department | wave_id --> ' +wave_id + ' , ' +action+ '<-- Action Field' )
//populateData(sublist1)
var sublist1 = form.addSublist({
id : 'sublistid1',
type : serverWidget.SublistType.INLINEEDITOR,
label : 'Retail Label Printing'
});
var itm_date = sublist1.addField({
id : 'custpage_date',
label : 'Ship Date',
type : serverWidget.FieldType.TEXT
});
itm_date.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var itm_tranid = sublist1.addField({
id : 'custpage_tranid',
label : 'Fulfillment Id',
type : serverWidget.FieldType.TEXT
});
itm_tranid.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var itm_id = sublist1.addField({
id : 'custpage_item',
label : 'Item Code',
type : serverWidget.FieldType.TEXT,
// source: 'item'
});
itm_id.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var itm_barcode = sublist1.addField({
id : 'custpage_item_barcode',
label : 'Item Barcode',
type : serverWidget.FieldType.TEXT,
// source: 'item'
});
itm_barcode.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var item_author = sublist1.addField({
id : 'custpage_long_auth',
label : 'Author',
type : serverWidget.FieldType.TEXT
});
item_author.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var item_dep = sublist1.addField({
id : 'custpage_dep',
label : 'Department',
type : serverWidget.FieldType.TEXT
});
item_dep.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var itm_desc = sublist1.addField({
id : 'custpage_item_desc',
label : 'Item Description',
type : serverWidget.FieldType.TEXT
});
itm_desc.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
itm_desc.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var item_price_excl = sublist1.addField({
id : 'custpage_sale_price',
label : 'Sale Price Excl VAT',
type : serverWidget.FieldType.CURRENCY
});
item_price_excl.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var item_price_incl = sublist1.addField({
id : 'custpage_sale_price_inc',
label : 'Sale Price Incl VAT',
type : serverWidget.FieldType.CURRENCY
});
item_price_incl.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var ful_qty = sublist1.addField({
id : 'custpage_quantity',
label : 'Qty',
type : serverWidget.FieldType.TEXT
});
ful_qty.updateDisplayType({
displayType: serverWidget.FieldDisplayType.ENTRY
});
var print = sublist1.addField({
id : 'custpage_print_line',
label : 'Print',
type : serverWidget.FieldType.CHECKBOX
});
print.updateDisplayType({
displayType: serverWidget.FieldDisplayType.ENTRY
});
var itemfulfillmentSearchObj = search.create({
type: "itemfulfillment",
settings:[{"name":"consolidationtype","value":"ACCTTYPE"}],
filters:
[
["type","anyof","ItemShip"],
"AND",
["shipmentpackage.contentsdescription","startswith",department],
"AND",
["taxline","is","F"],
"AND",
["cogs","is","F"],
"AND",
["item","noneof","32231"]
],
columns:
[
search.createColumn({
name: "contentsdescription",
join: "shipmentPackage"
}),
"tranid",
"trandate",
"createdfrom",
"item",
"quantity",
search.createColumn({
name: "formulacurrency",
formula: "{item.pricelevel17}"
}),
search.createColumn({
name: "formulacurrency2",
formula: "{item.pricelevel17}*1.15"
}),
search.createColumn({
name: "custitem_inv_master_barcode",
join: "item"
}),
search.createColumn({
name: "custitem_item_auth_bio_linked",
join: "item"
}),
search.createColumn({
name: "salesdescription",
join: "item"
}),
search.createColumn({
name: "departmentnohierarchy",
join: "item"
})
]
});
var searchResultCount = itemfulfillmentSearchObj.runPaged().count;
var lineno = 0;
itemfulfillmentSearchObj.run().each(function(result){
if (lineno != searchResultCount){
/* if (lineno==25) {
return true;
}*/
//var recInternalId = result.id;
var trandate = result.getValue("trandate");
var createdfrom = result.getText("createdfrom");
var item = result.getText("item");
var department_no_h = result.getText({name : "departmentnohierarchy", join: "item"});
var item_barcode = result.getValue({name : "custitem_inv_master_barcode", join: "item"});
var long_author = result.getText({name : "custitem_item_auth_bio_linked", join: "item"});
var item_description = result.getValue({name : "salesdescription", join: "item"});
var retail_exl = result.getValue({name : "formulacurrency", formula: "{item.pricelevel17}"});
var retail_incl = result.getValue({name : "formulacurrency2", formula: "{item.pricelevel17}*1.15"})||0;
var qty = result.getValue("quantity")||0;
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_date',
value: trandate,
line:lineno
});
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_tranid',
value: createdfrom,
line:lineno
});
if (!item_barcode) {
}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_item_barcode',
value: item_barcode,
line:lineno
});
}
if (!department_no_h) {
}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_dep',
value: department_no_h,
line:lineno
});
}
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_item',
value: item,
line:lineno
});
if (!long_author) {
}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_long_auth',
value: long_author,
line:lineno
});
}
if (!item_description) {
}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_item_desc',
value: item_description,
line:lineno
});
}
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_item',
value: item,
line:lineno
});
if(!retail_exl){}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_sale_price',
value: retail_exl,
line:lineno
});
}
if(!retail_incl){}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_sale_price_inc',
value: retail_incl,
line:lineno
});
}
if(!qty){}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_quantity',
value: qty,
line:lineno
});
}
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_print_line',
value: 'T',
line:lineno
});
lineno+=1;
return true;
} else{
return true;}
});
}
} else if (request.method === 'POST') {
//populateData(sublist1)
log.debug(' Sublist in Post', sublist1);
//log.debug('LOG POST' ,request.method + '<-Method |Dep Change -> ' + dep_change+' , '+ department + ' <--Department | wave_id --> ' +wave_id + ' , ' + action+'<-- Action Field' )
var actionFieldVal = context.request.parameters.custpage_action_field;
//log.debug('Action', actionFieldVal)//Log value of Custom action Text
if ( action==='true') {
log.debug(' Sublist in Action in Post', sublist1);
//log.debug('LOG POST TRUE' ,request.method + '<-Method |Dep Change -> ' + dep_change+' , '+ department + ' <--Department | wave_id --> ' +wave_id + ' , ' + action+'<-- Action Field' )
printLabel(sublist1,request);
}
if (department ) { //AND NOT PRINT
department=null;
// Redirect back to this Suitelet
var script = runtime.getCurrentScript();
var params=[];
params['wave_id'] = wave_id;
params['wave_id_change'] = dep_change;
response.sendRedirect({type: 'SUITELET',
identifier: script.id,
id: script.deploymentId,
parameters: params });
}
}
//Create FORM and RETURN
function createForm(){
var form = serverWidget.createForm({ title: 'Retail Pricing Labels'});
var OldValue = form.addField({
id : 'custpage_wave_old_value',
type : serverWidget.FieldType.TEXT,
label : 'Wave Old Value'
}).updateDisplayType({displayType: serverWidget.FieldDisplayType.DISABLED });
var waveField = form.addField({
id: 'wave_id',
type: serverWidget.FieldType.TEXT, label: 'Wave Nr',
//source: "department"
});
//Set Old value to detect Change on screen
OldValue.defaultValue=department;
waveField.isMandatory = true;
form.addSubmitButton({ label: 'Search'});
var field = form.addField({
id : 'wave_id_change',
type : serverWidget.FieldType.CHECKBOX,
label : 'Wave Nr Change'
}).updateDisplayType({displayType: serverWidget.FieldDisplayType.DISABLED });
field.defaultValue=dep_change;
//add Client Side Script to detect Changes on form
form.clientScriptModulePath = "./shipment_details_cl.js";
form.addButton({
id: 'custpage_print2_btn',
label: 'PRINT 2',
functionName: 'onPrint2'
});
// Step 1: Add Hidden Field for Action
var actionField = form.addField({
id: 'custpage_action',
type: serverWidget.FieldType.TEXT,
label: 'Action'
}).updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
return form
}
//Create Sublist
function createSublist(form){
var sublist1 = form.addSublist({
id : 'sublistid1',
type : serverWidget.SublistType.INLINEEDITOR,
label : 'Retail Label Printing'
});
var itm_date = sublist1.addField({
id : 'custpage_date',
label : 'Ship Date',
type : serverWidget.FieldType.TEXT
});
itm_date.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var itm_tranid = sublist1.addField({
id : 'custpage_tranid',
label : 'Fulfillment Id',
type : serverWidget.FieldType.TEXT
});
itm_tranid.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var itm_id = sublist1.addField({
id : 'custpage_item',
label : 'Item Code',
type : serverWidget.FieldType.TEXT,
// source: 'item'
});
itm_id.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var itm_barcode = sublist1.addField({
id : 'custpage_item_barcode',
label : 'Item Barcode',
type : serverWidget.FieldType.TEXT,
// source: 'item'
});
itm_barcode.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var item_author = sublist1.addField({
id : 'custpage_long_auth',
label : 'Author',
type : serverWidget.FieldType.TEXT
});
item_author.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var item_dep = sublist1.addField({
id : 'custpage_dep',
label : 'Department',
type : serverWidget.FieldType.TEXT
});
item_dep.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var itm_desc = sublist1.addField({
id : 'custpage_item_desc',
label : 'Item Description',
type : serverWidget.FieldType.TEXT
});
itm_desc.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
itm_desc.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var item_price_excl = sublist1.addField({
id : 'custpage_sale_price',
label : 'Sale Price Excl VAT',
type : serverWidget.FieldType.CURRENCY
});
item_price_excl.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var item_price_incl = sublist1.addField({
id : 'custpage_sale_price_inc',
label : 'Sale Price Incl VAT',
type : serverWidget.FieldType.CURRENCY
});
item_price_incl.updateDisplayType({
displayType: serverWidget.FieldDisplayType.DISABLED
});
var ful_qty = sublist1.addField({
id : 'custpage_quantity',
label : 'Qty',
type : serverWidget.FieldType.TEXT
});
ful_qty.updateDisplayType({
displayType: serverWidget.FieldDisplayType.ENTRY
});
var print = sublist1.addField({
id : 'custpage_print_line',
label : 'Print',
type : serverWidget.FieldType.CHECKBOX
});
print.updateDisplayType({
displayType: serverWidget.FieldDisplayType.ENTRY
});
return sublist1;
}
function populateData(sublist1){
var itemfulfillmentSearchObj = search.create({
type: "itemfulfillment",
settings:[{"name":"consolidationtype","value":"ACCTTYPE"}],
filters:
[
["type","anyof","ItemShip"],
"AND",
["shipmentpackage.contentsdescription","startswith",department],
"AND",
["taxline","is","F"],
"AND",
["cogs","is","F"],
"AND",
["item","noneof","32231"]
],
columns:
[
search.createColumn({
name: "contentsdescription",
join: "shipmentPackage"
}),
"tranid",
"trandate",
"createdfrom",
"item",
"quantity",
search.createColumn({
name: "formulacurrency",
formula: "{item.pricelevel17}"
}),
search.createColumn({
name: "formulacurrency2",
formula: "{item.pricelevel17}*1.15"
}),
search.createColumn({
name: "custitem_inv_master_barcode",
join: "item"
}),
search.createColumn({
name: "custitem_item_auth_bio_linked",
join: "item"
}),
search.createColumn({
name: "salesdescription",
join: "item"
}),
search.createColumn({
name: "departmentnohierarchy",
join: "item"
})
]
});
var searchResultCount = itemfulfillmentSearchObj.runPaged().count;
var lineno = 0;
itemfulfillmentSearchObj.run().each(function(result){
if (lineno != searchResultCount){
/* if (lineno==25) {
return true;
}*/
//var recInternalId = result.id;
var trandate = result.getValue("trandate");
var createdfrom = result.getText("createdfrom");
var item = result.getText("item");
var department_no_h = result.getText({name : "departmentnohierarchy", join: "item"});
var item_barcode = result.getValue({name : "custitem_inv_master_barcode", join: "item"});
var long_author = result.getText({name : "custitem_item_auth_bio_linked", join: "item"});
var item_description = result.getValue({name : "salesdescription", join: "item"});
var retail_exl = result.getValue({name : "formulacurrency", formula: "{item.pricelevel17}"});
var retail_incl = result.getValue({name : "formulacurrency2", formula: "{item.pricelevel17}*1.15"})||0;
var qty = result.getValue("quantity")||0;
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_date',
value: trandate,
line:lineno
});
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_tranid',
value: createdfrom,
line:lineno
});
if (!item_barcode) {
}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_item_barcode',
value: item_barcode,
line:lineno
});
}
if (!department_no_h) {
}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_dep',
value: department_no_h,
line:lineno
});
}
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_item',
value: item,
line:lineno
});
if (!long_author) {
}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_long_auth',
value: long_author,
line:lineno
});
}
if (!item_description) {
}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_item_desc',
value: item_description,
line:lineno
});
}
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_item',
value: item,
line:lineno
});
if(!retail_exl){}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_sale_price',
value: retail_exl,
line:lineno
});
}
if(!retail_incl){}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_sale_price_inc',
value: retail_incl,
line:lineno
});
}
if(!qty){}else{
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_quantity',
value: qty,
line:lineno
});
}
sublist1.setSublistValue({
sublistId: 'sublist1',
id: 'custpage_print_line',
value: 'T',
line:lineno
});
lineno+=1;
return true;
} else{
return true;}
});
}
function printLabel(sublist1,request){
// POST
// Get the values entered on the form
//var request = context.request;
//log.debug('request',request)
log.debug('PRINT LABEL')
// var itemId = request.parameters.custpage_itemid;
//if (dep_change=='F') {
var labelsToPrint = [];
//log.debug("Print Label for line Run",dep_change)
log.debug(' Sublist in Print', sublist1);
var linecount = request.getLineCount({group: 'sublistid1'});
//log.debug('linecount',linecount)
//log.debug('PRINT LABEL 2', linecount)
for (var i = 0; i < linecount; i++) {
//log.debug('linecount In Loop',i)
var _print_label = request.getSublistValue({
group: 'sublistid1', name: 'custpage_print_line', line: i
});
if (_print_label=='T') {
labelsToPrint.push({
shipDate: request.getSublistValue({ group: 'sublistid1', name: 'custpage_date', line: i }) || '',
transactionId: request.getSublistValue({ group: 'sublistid1', name: 'custpage_tranid', line: i }) || '',
itemCode: request.getSublistValue({ group: 'sublistid1', name: 'custpage_item', line: i }) || '',
itemBarcode: request.getSublistValue({ group: 'sublistid1', name: 'custpage_item_barcode', line: i }) || '',
author: request.getSublistValue({ group: 'sublistid1', name: 'custpage_long_auth', line: i }) || '',
department: request.getSublistValue({ group: 'sublistid1', name: 'custpage_dep', line: i }) || '',
description: request.getSublistValue({ group: 'sublistid1', name: 'custpage_item_desc', line: i }) || '',
salesPrice: request.getSublistValue({ group: 'sublistid1', name: 'custpage_sale_price_inc', line: i }) || '',
quantity: request.getSublistValue({ group: 'sublistid1', name: 'custpage_quantity', line: i }) || ''
});
}
}
log.debug({
title: 'labelsToPrint array',
details: JSON.stringify(labelsToPrint)
});
//}
}
//Create form on SCREEN
context.response.writePage(form);
}
return {
onRequest: onRequest
};
})



