Create a “Print packing slip” button in purchase order record to print acustom print on the button click

User event script
define([],
    
    () => {

        const beforeLoad = (scriptContext) => {
                if(scriptContext.type=="view" ) {
                        try {

                                scriptContext.form.addButton({
                                        id: 'custpage_buttons',
                                        label: 'Print Packing Slip',
                                        functionName: 'printPackingSlip'
                                });
                                scriptContext.form.clientScriptFileId = 334018;

                        }catch (err){
                                log.debug('error',err)
                        }
                }
        }

        return {beforeLoad}

    });

Client script
define(['N/currentRecord','N/runtime', 'N/url'],
/**
 * @param{runtime} runtime
 * @param{url} url
 */
function(currentRecord , runtime, url) {
    

    function pageInit(scriptContext) {

    }
    function printPackingSlip(){
        try {
            var currentRec=currentRecord.get().id;

            console.log('currentid',currentRec)
            var createLinkUrl=url.resolveScript({
                scriptId: 'customscript_jj_sl_pack_slip_cdus_1158',
                deploymentId: 'customdeploy_jj_sl_packslip_cdus_1158',
                returnExternalUrl: false,
                params: {
                    currentRec: currentRec
                }
            });

            window.open(createLinkUrl)
        }catch (e) {
            log.debug(e)
        }
    }

    return {
        pageInit: pageInit,
        printPackingSlip: printPackingSlip


    };
    
});

Suitelet
define(['N/record', 'N/render','N/file'],
    
    (record, render,file) => {

        const onRequest = (scriptContext) => {
            try {
                if (scriptContext.request.method === 'GET') {
                    var purchaseOrderRecord = scriptContext.request.parameters.currentRec;

                    try {
                        var xmlTemplateFile = file.load('Templates/PDF Templates/packingslip.xml');

                        var myFile = render.create();
                        myFile.templateContent = xmlTemplateFile.getContents();
                        myFile.addRecord('record', record.load({
                            type: record.Type.PURCHASE_ORDER,
                            id: purchaseOrderRecord
                        }));
                        var packingSlipPdf = myFile.renderAsPdf();
                        scriptContext.response.writeFile(packingSlipPdf,true)

                    } catch (error) {
                        log.error("Error @render", error);
                    }
                }

            } catch (e) {
                log.debug('Error @onRequest', e);
            }

        }
            return {onRequest}

    });

Leave a comment

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