Jira Code: MAR-45
Click on Print Label button in the Inbound shipping record. The item label will visible according to the item receipts count.
User Event script:
/**
* @NApiVersion 2.x
* @NScriptType UserEventScript
* @NModuleScope SameAccount
*/
/*******************************************************************************
* Marshall
*
******************************************************************************
* Date: 13-08-2019
* Author: Jobin & Jismi IT Services LLP
* Script Description:Created for button inbound shippment label.
* Date created :13-08-2019
******************************************************************************/
define(['N/record', 'N/search'],
function(record, search) {
function beforeLoad(context) {
try {
if (context.type == 'view') {
var printLabel = context.form;
printLabel.clientScriptFileId = 104423;
var printLabelBtn = printLabel.addButton({
id: 'custpage_printlabel',
label: 'Print Label',
functionName: 'printlabelfun'
});
}
} catch (er) {
log.debug('er', er);
}
}
return {
beforeLoad: beforeLoad
};
});
Client script for button action
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
/*******************************************************************************
* Marshall
*
******************************************************************************
*Date: 13-08-2019
* Author: Jobin & Jismi IT Services LLP
* Script Description:Button inbound shippment action.
* Date created :13-08-2019
******************************************************************************/
define(['N/currentRecord', 'N/url', 'N/https', 'N/search', 'N/runtime', 'N/record'],
function(currentRecord, url, https, search, runtime, record) {
function pageInit(scriptContext) {
}
function printlabelfun() {
try {
console.log("enter")
var documentArr = [];
var printLabelContent = currentRecord.get();
console.log("printLabelContent", printLabelContent)
var inboundId = printLabelContent.id;
console.log("inboundId", inboundId);
if ((inboundId != null) && (inboundId != undefined) && (inboundId != '')) {
console.log("more.............");
var resultVisiblePage = url.resolveScript({
scriptId: "customscript_mar_45_jj_sl_label_form_pag",
deploymentId: "customdeploy_mar_45_jj_sl_label_form_pag",
returnExternalUrl: false,
params: {
inboundId: inboundId
}
});
}
window.open(resultVisiblePage, "width=600", "height=600");
} catch (er) {
console.log('er', er);
}
}
function closebutton() {
try {
window.onbeforeunload = function() {};
window.close();
} catch (er) {
console.log('er', er);
}
}
return {
pageInit: pageInit,
printlabelfun: printlabelfun,
closebutton: closebutton
};
});
Suitelet for result page.
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
*/
/*******************************************************************************
* Marshall
*
******************************************************************************
* Date: 13-08-2019
* Author: Jobin & Jismi IT Services LLP
* Script Description: create a suitelet for showing result page.
* Date created :13-08-2019
******************************************************************************/
define(['N/runtime', 'N/record', 'N/search', 'N/ui/serverWidget', 'N/url', 'N/redirect'],
function(runtime, record, search, serverWidget, url, redirect) {
function onRequest(context) {
if (context.request.method == 'GET') {
try {
var scriptBody = context.request.parameters.inboundId; // To get record id of custom record
var processData = JSON.parse(scriptBody)
log.debug(processData)
// creating saved search for item recipt
var documentArr = [];
var inboundshipmentSearchObj = search.create({
type: "inboundshipment",
filters: [
["internalid", "anyof", processData]
],
columns: [
search.createColumn({ name: "purchaseorder", label: "Items - PO" }),
search.createColumn({
name: "tranid",
join: "itemReceipt",
label: "Document Number"
}),
search.createColumn({
name: "internalid",
join: "itemReceipt",
label: "Internal ID"
})
]
});
var searchResultCount = inboundshipmentSearchObj.runPaged().count;
log.debug("inboundshipmentSearchObj result count", searchResultCount);
inboundshipmentSearchObj.run().each(function(result) {
var docobj = {};
docobj.poId = result.getValue(inboundshipmentSearchObj.columns[0]);
docobj.documentNum = result.getValue(inboundshipmentSearchObj.columns[1]);
docobj.documentId = result.getValue(inboundshipmentSearchObj.columns[2]);
documentArr.push(docobj);
return true;
});
log.debug("documentArr", documentArr);
var documentArrLen = documentArr.length;
if (searchResultCount == 1) {
log.debug("ENTER");
var passInternalId = documentArr[0].documentId;
redirect.redirect({
url: '/app/accounting/print/barcodeprinter.nl?trantype=ItemRcpt&tranid=' + passInternalId,
});
} else {
log.debug("OUT");
// create a suitelet form for result page.
var resusltform = serverWidget.createForm({
title: 'VIEW READ RECEIPT LABEL LIST',
hideNavBar: false
});
// calling client script fileId
resusltform.clientScriptFileId = 104423;
//creating sublist for showing result
var sublist = resusltform.addSublist({
id: 'custpage_list',
type: serverWidget.SublistType.LIST,
label: 'READ RECEIPT LIST'
});
var poId = sublist.addField({
id: 'custpage_poid',
label: 'PURECHASE ORDER ID',
type: serverWidget.FieldType.SELECT,
source: record.Type.PURCHASE_ORDER
});
poId.updateDisplayType({ displayType: serverWidget.FieldDisplayType.DISABLED });
var docId = sublist.addField({
id: 'custpage_docid',
label: 'DOCUMENT NUMBER',
type: serverWidget.FieldType.TEXTAREA
});
var labelShow = sublist.addField({
id: 'custpage_labelshow',
label: 'LABEL LIST',
type: serverWidget.FieldType.TEXTAREA
});
var resultCloseBtn = resusltform.addButton({
id: 'custpage_close',
label: 'CLOSE',
functionName: 'closebutton'
});
for (var i = 0; i < documentArrLen; i++) {
sublist.setSublistValue({
id: 'custpage_poid',
line: i,
value: documentArr[i].poId
});
// for showing link in list
var urlDoc = '<a href = "/app/accounting/transactions/itemrcpt.nl?id=' + documentArr[i].documentId + '">' + documentArr[i].documentNum + '</a>'
sublist.setSublistValue({
id: 'custpage_docid',
line: i,
value: urlDoc
});
var urlLabel = '<a href = "' + '> Print Label</a>'
urlLabel = '<a href = "/app/accounting/print/barcodeprinter.nl?trantype=ItemRcpt&tranid=' + documentArr[i].documentId + '" target="_blank">Print Label</a>'
sublist.setSublistValue({
id: 'custpage_labelshow',
line: i,
value: urlLabel
});
}
context.response.writePage(resusltform);
}
} catch (err) {
log.debug("err", err)
}
}
}
return {
onRequest: onRequest
};
});