Inbound shipment PDF Button

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
        };

    });

Leave a comment

Your email address will not be published. Required fields are marked *