Custom Bulk Print Page

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}

    });

Leave a comment

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