Create a print label in the inbound shipment using suitelet

/**
 * @NApiVersion 2.1
 * @NScriptType Suitelet
 */

define(['N/file', 'N/render', 'N/record', 'N/search'],
    (file, render, record, search) => {
        /**
         * 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{
                
               let TO_id= scriptContext.request.parameters.TO_id;
               let CustRec= record.load({
                   type: record.Type.INBOUND_SHIPMENT,
                   id: TO_id
                });
              var so_ids=JSON.parse(TO_id);
              var inboundshipmentSearchObj = search.create({
                    type: "inboundshipment",
               filters:
                    [
                         ["internalid","anyof",so_ids]
                      ],
             columns:
                   [
                       search.createColumn({name: "internalid", label: "Internal Id"}),
                       search.createColumn({name: "item", label: "Items - Item"}),
                       search.createColumn({name: "description", label: "Items - Description"}),
                       search.createColumn({name: "quantityexpected", label: "Items - Quantity Expected"}),
                      search.createColumn({
                               name: "cseg_aha_brand",
                              join: "item",
                              label: "Brand"
                       }),
                        search.createColumn({
                                name: "upccode",
                                join: "item",
                                label: "UPC Code"
                   }),
                      search.createColumn({
                              name: "custitem_jj_current_date",
                              join: "item",
                            label: "Current Date"
                  }),
            search.createColumn({name: "quantityreceived", label: "Items - Quantity Received"})
                 ]
            });
                var searchResultCount = inboundshipmentSearchObj.runPaged().count;

                log.debug('search count',searchResultCount);
                var content = '';
                content+='<pdf>'
                inboundshipmentSearchObj.run().each(function (result){
                    var itemName = result.getText(inboundshipmentSearchObj.columns[1]);
                   
 var description = result.getValue(inboundshipmentSearchObj.columns[2]);
                    
var quantityExpected = result.getValue(inboundshipmentSearchObj.columns[3]);
                  
  var brand = result.getText(inboundshipmentSearchObj.columns[4]);
                  
  var upcCode = result.getValue(inboundshipmentSearchObj.columns[5]);
                  
  var currentdate = result.getValue(inboundshipmentSearchObj.columns[6]);
                  
 var quantityReceived = result.getValue(inboundshipmentSearchObj.columns[7]);
                  
                
if(quantityExpected !='')
                          content = content + '<head><link name="sans" type="font" subtype="opentype" src="https://4594915.app.netsuite.com/core/media/media.nl?id=293276&amp;c=4594915&amp;h=f0e47ffccd148916a9f8&amp;_xt=.ttf" bytes="2" /><style type="text/css">table {table-layout: fixed;page-break-inside: avoid;}</style></head><body padding="0 0 0 0" style="left: 0px;top:0px;width:5in;height:3in;"><table align="center" valign="middle"><tr><td align="left" style="font-size:15px;font-family:sans-serif;font-weight: bolder">' + itemName + '</td></tr><tr><td align="left" style="font-size:13px;font-family:sans-serif;font-weight: bolder">' + brand + '</td></tr><tr><td align="right" style="font-size:5px;font-family:sans-serif;"><barcode style="vertical-align: top;" width="2in" height="50px" codetype="code128" showtext="false"  value="' + upcCode + '"></barcode></td></tr><tr><td align="center" style="font-size:12px;font-family:sans-serif;">' + upcCode + '</td></tr><tr><td align="left" style="font-size:10px;font-family:sans-serif;">' +description + '</td></tr><tr><td align="left" style="font-size:9px;font-family:sans-serif;">' +currentdate + '</td></tr></table></body>'
                    }
                   
                    return true;

                });
                content+='</pdf>'
                var myXMLFile=render.create();
                myXMLFile.templateContent=content;
                var pdfFile = myXMLFile.renderAsPdf();
                scriptContext.response.writeFile(pdfFile, true);
           }
            catch (error) {
                log.error('onRequest', error);
            }

        }

    return {onRequest}
});

Leave a comment

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