Picking Ticket with image functionality in sales order created from website for the items having personalization

Description

On sales order have a new button named “Picking ticket with image ” .On clicking the button a PDF open with the item name and image.As shown below

Client Script

/**
 * Module Description
 *
 * Version    Date            Author           Remarks
 * 1.00       22 Apr 2022     Atul
 *
 *
 * Call the print Suitelet
 */
function printPickingTicketImage() {
    try {
        var content2;
        var recId = nlapiGetRecordId();
        var recType = nlapiGetRecordType();
        var record = nlapiLoadRecord(recType, recId, true);

        isPTPrinted = isPrinted(recId);
        if (isPrinted(recId)) {
            alert('Image already printed');
        }
        var content = getOptionsObj(recId);

        if (((content.indexOf('+') != -1) || (content.indexOf('>') != -1) || (content.indexOf('<') != -1) || (content.indexOf('&') != -1) || (content.indexOf(' ') != -1) || (content.indexOf('#') != -1)) && (content != null)) {
            content2 = content.replace(/\+/g, 'plus');
            content2 = content2.replace(/ /g, 'space');
            content2 = content2.replace(/#/g, 'hash');
            content2 = content2.replace(/&/g, 'and');
            content2 = content2.replace(/>/g, 'grt');
            content2 = content2.replace(/</g, 'lsst');
        }
        else {
            content2 = content;
        }
        //	if((content.indexOf('&nbsp') != -1) && ((content != null) /*|| (content != '')*/)){
        //		content1 = content.replace(/&nbsp/g,'and');
        //	}else{
        //		content1 = content;
        //	}
        console.log('content1', content2)
        console.log('content', content)

        nlapiSubmitField('salesorder', recId, 'custbody_jj_optionhiddenfield', content2.toString())
        var suiteUrl = "";
        var department = record.getFieldValue('department');
        console.log('department', department)
        //var department = nlapiGetFieldText('department');
        if (department == 2) {
            linkURL = nlapiResolveURL('SUITELET', 'customscript_jj_sl_picking_ticket', 'customdeploy_jj_sl_picking_ticket', null) +
                '&Personalized_image=T'+'&custparam_recid=' + recId/*+'&datacontent='+content1*/ ;
                nlapiLogExecution('DEBUG', 'linkURL', linkURL);
            //     linkURL = nlapiResolveURL('SUITELET', 'customscript_jj_sl_picking_image', 'customdeploy_jj_sl_picking_image', null) +
            //     '&Personalized_image=true'+'&custparam_recid=' + recId /*+'&datacontent='+content1*/ ;
            //     nlapiLogExecution('DEBUG', 'linkURL', linkURL);
            //suiteUrl = 'https://system.na1.netsuite.com/app/site/hosting/scriptlet.nl?script=400&deploy=1&custparam_recid='+nlapiGtRecordId()+'&datacontent='+content;
        }
        if (!isPTPrinted) {
            insertSOToWatcher(recId);
        }
        newWindow = window.open(linkURL);
    }
    catch (e) {
        nlapiLogExecution('DEBUG', 'ERROR', e.message);
    }
}

function isPrinted(soId) {
    var filter = [];
    filter.push(new nlobjSearchFilter('custrecord_jj_sale_order_id', null, 'is', soId));
    var searchResults = nlapiSearchRecord('customrecord_jj_picking_ticket_watcher', null, filter, null);
    if (searchResults) {
        return true;
    }
    return false;
}

function insertSOToWatcher(soId) {
    var record = nlapiCreateRecord('customrecord_jj_picking_ticket_watcher');
    record.setFieldValue('custrecord_jj_sale_order_id', soId);
    nlapiSubmitRecord(record);
}

function getOptionsObj() {
    //"Font Style: Bookman <br>Font Color: Black Gloss<br>Stamp Content: 2<br>Sayings: Hello Gorgeous↵"
    var tbl = document.getElementById('item_splits');
    console.log('tbl', tbl)
    var optionArray = [];
    // get all table rows from the items table
    var rows = tbl.getElementsByTagName("tr");
    console.log('rows.length', rows.length)
    for (var row = 1; row < rows.length; row++) {
        var itemName = rows[row].cells[0].innerText;
        console.log('itemName', itemName)
        var type = rows[row].cells[19].innerText;
        var commit_qty = rows[row].cells[30].innerText;
        console.log('commit_qty', commit_qty)

        try {
            if ((type.indexOf('Kit/Package') > -1 || type.indexOf(' Non Inventory Item') > -1 || type.indexOf('Non-inv') > -1 || type.indexOf('Inv') > -1 || type.indexOf('Inventory Item') > -1) && (itemName != 'MISC TO BE DETERMINED' && itemName != 'SUF SET UP FEE')) {
                var optionObj = new Object();
                console.log('type', type)
                var options = rows[row].cells[4].innerHTML;
                optionObj.name = itemName;
                optionObj.comit = commit_qty;
                options = options.replace(/<br>/g, '<br />');
                optionObj.options = options;
                console.log('options', options)
                optionArray.push(optionObj);
            }
        } catch (err) {
            console.log(err)
        }
        console.log('type', type)
    }
    return JSON.stringify(optionArray);
}

User Event

/**
 * Add a button to the sales order form to print the picking ticket
 * 
 * Version    Date            Author           Remarks
 * 1.00       21 Apr 2022     Atul
 *
 */


function beforeLoad_printImage(type, form, request){
	if(type == "view"){
	var department = nlapiGetFieldText('department');
	  if(department =='BLVD' || department =='PT'){
		form.addButton('custpage_picking_ticket_print_image', 'Print Picking Ticket with Image', 'printPickingTicketImage()');
		form.setScript('customscript_jj_cs_picking_ticket_image');
      }
	}
}

Suitelet

/**
 * Suitelet for printing picking ticket for
 * Sales order in BLVD department
 *
 * Filename : JJ SL PickingTicketPrint.js
 * Dependency :
 * User event : JJ UE PickingTicketPrint.js
 * Client : JJ CS PickingTicketPrint.js
 *
 * Revision 1.1 $ 05/10/2017 aishwarya : Implement Authorization amount
 * Revision 1.2 $ 28/03/2019 navia : resolved error caused due to the occurence of special characters(by replace string)
 * Revision 1.3 $ 10/05/2019 aj :Remove options for matrix item
 *
 *
 * Version    Date            Author           Remarks
 * 1.00       23 Mar 2017     Jismi
 *
 *
 */

function pickingTicketPrint(request, response) {
    try {
        var renderer = nlapiCreateTemplateRenderer();
        var salesOrderID = request.getParameter('custparam_recid');
        var salesOrderImage = request.getParameter('Personalized_image');

        var tranRec = nlapiLoadRecord('salesorder', salesOrderID, salesOrderImage);

        var optionDataArray = tranRec.getFieldValue('custbody_jj_optionhiddenfield') ?
            JSON.parse(tranRec.getFieldValue('custbody_jj_optionhiddenfield')) : {};
        nlapiLogExecution('DEBUG', 'optionDataArray', JSON.stringify(optionDataArray));

        var myXMLFile = nlapiLoadFile(268551);
        var myXMLFile_value = myXMLFile.getValue();

        var tableValue = getPickingTicketTable(salesOrderID, tranRec, optionDataArray, salesOrderImage);
        if (tableValue) {
            myXMLFile_value = myXMLFile_value.replace('<!-- ItemTable -->', tableValue);
        }
               renderer.setTemplate(myXMLFile_value);
               renderer.addRecord('record', tranRec);
               var xmlRendered = renderer.renderToString();

               var file = nlapiXMLToPDF(xmlRendered);
               response.setContentType('PDF', 'Print Picking Ticket', 'INLINE');
               response.write(file.getValue());

        } catch (e) {
            nlapiLogExecution('DEBUG', 'error @ pickingTicketPrint', e);
       }
    }

function getPickingTicketTable(salesOrderID, tranRec, optionDataArray, salesOrderImage) {
    var content;
    var content_personalizedimage;
    var salesorderSearch = nlapiSearchRecord("salesorder", null, [
        ["type", "anyof", "SalesOrd"],
        "AND", ["internalidnumber", "equalto", salesOrderID],
        "AND", ["mainline", "is", "F"],
        "AND", ["taxline", "is", "F"],
        "AND", ["commit", "noneof", "3"],
        "AND", ["shipping", "is", "F"]
    ], [
        new nlobjSearchColumn("internalid", "item", null),
        new nlobjSearchColumn("custitem41", "item", null) /*.setSort(false)*/, //MODIFIED BY ND-20/06/19(PROT-219)
        new nlobjSearchColumn("quantitycommitted"),
        new nlobjSearchColumn("custcol35"),
        new nlobjSearchColumn("quantity"),// MODIFIED BY ND ON 08.07.2019 (To fetch the qty from the SO item sublist)
        new nlobjSearchColumn("custcol_ptc_773_item_image_child")//personalised image update
    ]);


    if (salesorderSearch) {
        if(salesOrderImage){
            content_personalizedimage = '<table style="width: 100%; margin-top: 40px;margin-left:180px;text-align:right;border: .5px solid #A9A9A9;">' +
            '<thead><tr style="text-align:center;"><th width="100px">Item</th> +<th width="70px">Personalized Image</th></tr></thead>';

        nlapiLogExecution('DEBUG', 'salesorderSearch.length', salesorderSearch.length);
        for (var j = 0; j < salesorderSearch.length; j++) {
            var context = nlapiGetContext();
            var usageRemaining = context.getRemainingUsage();
            nlapiLogExecution('DEBUG', 'usageRemaining', usageRemaining);

            var searchresult = salesorderSearch[j];
            var itemId = searchresult.getValue("internalid", "item");
            var balanceToShip = searchresult.getValue("quantitycommitted");
          //var comit = searchresult.getValue("custcol35");
            var personalized_imageURL = searchresult.getValue("custcol_ptc_773_item_image_child"); //personalised image update

            //AJ MOD ON 10.05.2019
            var row_no = j + 1;
            nlapiLogExecution('DEBUG', 'balanceToShip', balanceToShip);
            /* if (balanceToShip > 0) { JJ0016 commented*/
            if (balanceToShip > 0) {
                content_personalizedimage += retriveBindetailsimage(context, salesOrderImage, itemId, personalized_imageURL);
                nlapiLogExecution('DEBUG', 'content_personalizedimage', content_personalizedimage);
            }
            nlapiLogExecution('DEBUG', 'itemId', itemId);
            if (itemId == -3) {
                content_personalizedimage += displayDescription(tranRec, row_no);
            }
          else if ((balanceToShip == "" || balanceToShip == null || balanceToShip == undefined || balanceToShip == '- None -' || balanceToShip == " ") && itemId != -3) {
              content_personalizedimage += retriveBindetailsimage(context, salesOrderImage, itemId, personalized_imageURL);
              nlapiLogExecution('DEBUG', 'Inn2', itemId);
            }
        }
        content_personalizedimage += '</table>';
        }

        else{
            content = '<table  style="width: 100%; margin-top: 10px;text-align:left;border: .5px solid #A9A9A9;">' +
            '<thead><tr style="text-align:center;"><th width="170px" >BINS</th><th width="200px">Customize Via</th><th width="200px">Item</th>' + '<th align="left" width="150px" >To Ship</th><th width="150px" >Picked</th><th width="250px" >Options</th></tr></thead>';
        nlapiLogExecution('DEBUG', 'salesorderSearch.length', salesorderSearch.length);
        for (var j = 0; j < salesorderSearch.length; j++) {
            var context = nlapiGetContext();
            var usageRemaining = context.getRemainingUsage();
            nlapiLogExecution('DEBUG', 'usageRemaining', usageRemaining);

            var searchresult = salesorderSearch[j];
            var itemId = searchresult.getValue("internalid", "item");
            var balanceToShip = searchresult.getValue("quantitycommitted");
            var comit = searchresult.getValue("custcol35");
            // var comit = searchresult.getValue("quantitycommitted");
            var qty = searchresult.getValue("quantity");
            var customize_via = searchresult.getText("custitem41", "item");
            //var personalized_imageURL =  searchresult.getValue("custcol_ptc_773_item_image_child");//personalised image update

            //AJ MOD ON 10.05.2019
            /* nlapiLogExecution('DEBUG', 'comit',comit);
             nlapiLogExecution('DEBUG', 'customize_via',customize_via);
             nlapiLogExecution('DEBUG', 'searchresult',searchresult);*/
            var row_no = j + 1;
            nlapiLogExecution('DEBUG', 'balanceToShip', balanceToShip);
            /* if (balanceToShip > 0) { JJ0016 commented*/
            if (balanceToShip > 0) {
                content += retriveBindetails(context, salesOrderID, tranRec, itemId, customize_via, row_no, optionDataArray, balanceToShip, qty, comit);
              nlapiLogExecution('DEBUG', 'Inn1', itemId);
            }
            nlapiLogExecution('DEBUG', 'itemId', itemId);
            if (itemId == -3) {

                content += displayDescription(tranRec, row_no);
            } else if ((balanceToShip == "" || balanceToShip == null || balanceToShip == undefined || balanceToShip == '- None -' || balanceToShip == " ") && itemId != -3) {

                content += retriveBindetails(context, salesOrderID, tranRec, itemId, customize_via, row_no, optionDataArray, "", qty, comit);
              nlapiLogExecution('DEBUG', 'Inn2', itemId);
            }
        }
        content += '</table>';
        nlapiLogExecution('DEBUG', 'Contents', content);
        }
    }
    return salesOrderImage=='T'?content_personalizedimage: content;
}

function retriveBindetails(context, salesOrderID, tranRec, itemId, customize_via, row, optionDataArray, balanceToShip, qty, comit) {
    try {
        var usageRemaining_retriveBindetails = context.getRemainingUsage();
        nlapiLogExecution('DEBUG', 'usageRemaining_retriveBindetails', usageRemaining_retriveBindetails);
        var filter = [];
        filter.push(new nlobjSearchFilter('internalidnumber', null, 'equalto', itemId));
        //nlapiLogExecution('DEBUG', "personalized_imageURL",personalized_imageURL);
        var coloumn = [];
        coloumn.push(new nlobjSearchColumn('type', null));
        coloumn.push(new nlobjSearchColumn('itemid', null));
        coloumn.push(new nlobjSearchColumn('displayname', null));
        var searchresults = nlapiSearchRecord('item', null, filter, coloumn);
        var type = 'inventoryitem';
        var itemName = "";
        if (searchresults) {
            type = searchresults[0].getRecordType();
            itemName = nlapiEscapeXML(searchresults[0].getValue('itemid') + ' ' + searchresults[0].getValue('displayname'));
        }
        nlapiLogExecution('DEBUG', 'itemName', itemName);
        // nlapiLogExecution('DEBUG', "TYPE", type +' itemId'+itemId);
        var itemRecord = null;
        try {
            itemRecord = nlapiLoadRecord(type, itemId);
        } catch (e) {
            itemRecord = nlapiLoadRecord('descriptionitem', itemId);
        }
        var binDetails = "";
        var lineCount = itemRecord.getLineItemCount('binnumber');

        if (lineCount > 0) {

            for (var j = 1; j <= lineCount; j++) {
                var binnumber = itemRecord.getLineItemValue('binnumber', 'binnumber', j);
                // nlapiLogExecution('DEBUG', "binnumber",binnumber);
                var binnumber_display = itemRecord.getLineItemValue('binnumber', 'binnumber_display', j);
                // nlapiLogExecution('DEBUG', "binnumber_display",binnumber_display);
                var onhand = itemRecord.getLineItemValue('binnumber', 'onhand', j);

                if (onhand == null || onhand == undefined) {
                    onhand = 0;
                }
                if (j == 1) {
                    binDetails = binnumber_display + ":" + onhand;
                } else {
                    binDetails = binDetails + ", " + binnumber_display + ":" + onhand;
                }
            }
        }
        // nlapiLogExecution('DEBUG', "binDetails",binDetails);
        if (type == 'kititem') {

            // itemRecord = nlapiLoadRecord(type, itemId);
            var kititemSearch = nlapiSearchRecord("kititem", null, [
                ["type", "anyof", "Kit"],
                "AND", ["internalidnumber", "equalto", itemId]
            ], [
                new nlobjSearchColumn("memberitem"),
                new nlobjSearchColumn("binnumber", "memberItem", null),
                new nlobjSearchColumn("binonhandcount", "memberItem", null)
            ]);
            // nlapiLogExecution('DEBUG', "kititemSearch",JSON.stringify(kititemSearch));
            if (kititemSearch) {
                for (var i = 0; i < kititemSearch.length; i++) {
                    var onHand = kititemSearch[i].getValue("binonhandcount", "memberItem", null);
                    var binnumber_Display = kititemSearch[i].getValue("binnumber", "memberItem", null);
                    if (onHand == null || onHand == undefined) {
                        onHand = 0;
                    }

                    if (i == 0) {
                        if (binnumber_Display) {
                            binDetails = binnumber_Display + ":" + onHand;
                        }

                    } else {
                        if (binnumber_Display) {
                            binDetails = binDetails + ", " + binnumber_Display + ":" + onHand;
                        }
                    }
                }
            }
        }

        var quantity = tranRec.getLineItemValue('item', 'quantity', row);
        var itemRowContent = wrapTD(binDetails, "150px");
        itemRowContent += wrapTD(customize_via, "100px");
        itemRowContent += wrapTD(itemName, "250px");
        if (quantity == null) {
            quantity = "";
        }
        /*AJ COMMENTED ON 10.05.19     if((type.indexOf('Kit')>-1 || type.indexOf('InvtPart')>-1 || type.indexOf('NonInvtPart')>-1) && itemName !='MISC TO BE DETERMINED' && itemName !='SUF SET UP FEE'){
         */
        nlapiLogExecution('DEBUG', "type", type);
        if (type.indexOf('noninventoryitem') > -1 || type.indexOf('Non-inventory Item') > -1 || type.indexOf('NonInvtPart') > -1) {
            itemRowContent += wrapTD(qty, "75px"); // MODIFIED BY ND ON 08.07.2019 (to pull from the quantity for non-inventory items)
            itemRowContent += wrapTD("", "75px");
            itemRowContent += wrapTD(getOptions(itemName.trim(), optionDataArray, row, comit), "180px");

            return wrapNonInvTr(itemRowContent);
        } else if (type.indexOf('Kit') > -1 || type.indexOf('kititem') > -1) {
            //commented JJ0016
            /*itemRowContent += wrapTD(balanceToShip, "75px");*/
            itemRowContent += wrapTD(qty, "75px");
            itemRowContent += wrapTD("", "75px");
            itemRowContent += wrapTD(getOptions(itemName.trim(), optionDataArray, row, comit), "180px");

            return wrapNonInvTr(itemRowContent);
        } else if ((type.indexOf('lotnumberedinventoryitem') > -1 || type.indexOf('InvtPart') > -1 || type.indexOf('Inventory Item') > -1 /*|| type.indexOf('Non-inventory Item') > -1 || type.indexOf('NonInvtPart') > -1*/) && itemName != 'MISC TO BE DETERMINED' && itemName != 'SUF SET UP FEE') {
            
            itemRowContent += wrapTD(qty, "75px");
            itemRowContent += wrapTD("", "75px");
            itemRowContent += wrapTD(getOptions(itemName.trim(), optionDataArray, row, comit), "180px");

            return wrapNonInvTr(itemRowContent);
        } else {

            /* itemRowContent += wrapTD(balanceToShip, "75px");*/
            itemRowContent += wrapTD(qty, "75px");
            itemRowContent += wrapTD("", "75px");
            itemRowContent += wrapTD(getOptions(itemName.trim(), optionDataArray, row, comit), "180px");

            return wrapInvTr(itemRowContent);
        }
    } catch (e) {
        nlapiLogExecution('DEBUG', 'error @ retriveBindetails', e);
    }
}

function retriveBindetailsimage(context, salesOrderImage, itemId, personalized_imageURL) {
  var usageRemaining_retriveBindetailsimage = context.getRemainingUsage();
    nlapiLogExecution('DEBUG', 'usageRemaining_retriveBindetails', usageRemaining_retriveBindetailsimage);
    try {
        var filter = [];
        filter.push(new nlobjSearchFilter('internalidnumber', null, 'equalto', itemId));
        nlapiLogExecution('DEBUG', "personalized_imageURL2222", personalized_imageURL);
        var coloumn = [];
        var row_no = j + 1;
        var row = [];
        coloumn.push(new nlobjSearchColumn('type', null));
        coloumn.push(new nlobjSearchColumn('itemid', null));
        coloumn.push(new nlobjSearchColumn('displayname', null));
        var searchresults = nlapiSearchRecord('item', null, filter, coloumn);

        var itemRowContent = wrapTD(binDetails, "150px");
        var type = 'inventoryitem';
        var itemName = "";
        if (searchresults) {
            type = searchresults[0].getRecordType();
            itemName = nlapiEscapeXML(searchresults[0].getValue('itemid') + ' ' + searchresults[0].getValue('displayname'));
        }
        nlapiLogExecution('DEBUG', 'itemName2222', itemName);
        //nlapiLogExecution('DEBUG', 'itemname11', itemName);

        var itemRowContent_personalizedimage = wrapTD(itemName, "150px");
        var itemRecord = null;
        try {
            itemRecord = nlapiLoadRecord(type, itemId);
        } catch (e) {
            itemRecord = nlapiLoadRecord('descriptionitem', itemId);
        }

        var binDetails = "";
        var lineCount = itemRecord.getLineItemCount('binnumber');

        if (lineCount > 0) {
            for (var j = 1; j <= lineCount; j++) {
                var binnumber = itemRecord.getLineItemValue('binnumber', 'binnumber', j);
                var binnumber_display = itemRecord.getLineItemValue('binnumber', 'binnumber_display', j);
                var onhand = itemRecord.getLineItemValue('binnumber', 'onhand', j);

                if (onhand == null || onhand == undefined) {
                    onhand = 0;
                }
                if (j == 1) {
                    binDetails = binnumber_display + ":" + onhand;
                }
                else {
                    binDetails = binDetails + ", " + binnumber_display + ":" + onhand;
                }
            }
        }

        if (type == 'kititem') {
            var kititemSearch = nlapiSearchRecord("kititem", null, [
                    ["type", "anyof", "Kit"],
                    "AND", ["internalidnumber", "equalto", itemId]
                ],
                [
                    new nlobjSearchColumn("memberitem"),
                    new nlobjSearchColumn("binnumber", "memberItem", null),
                    new nlobjSearchColumn("binonhandcount", "memberItem", null)
                ]);
            nlapiLogExecution('DEBUG', "kititemSearch", JSON.stringify(kititemSearch));
            if (kititemSearch) {
                for (var i = 0; i < kititemSearch.length; i++) {
                    var onHand = kititemSearch[i].getValue("binonhandcount", "memberItem", null);
                    var binnumber_Display = kititemSearch[i].getValue("binnumber", "memberItem", null);
                    if (onHand == null || onHand == undefined) {
                        onHand = 0;
                    }

                    if (i == 0) {
                        if (binnumber_Display) {
                            binDetails = binnumber_Display + ":" + onHand;
                        }

                    }
                    else {
                        if (binnumber_Display) {
                            binDetails = binDetails + ", " + binnumber_Display + ":" + onHand;
                        }

                    }
                }
            }
        }

      
        /*AJ COMMENTED ON 10.05.19     if((type.indexOf('Kit')>-1 || type.indexOf('InvtPart')>-1 || type.indexOf('NonInvtPart')>-1) && itemName !='MISC TO BE DETERMINED' && itemName !='SUF SET UP FEE'){
         */
        nlapiLogExecution('DEBUG', "type", type);
        if(personalized_imageURL){
            if (type.indexOf('noninventoryitem') > -1 || type.indexOf('Non-inventory Item') > -1 || type.indexOf('NonInvtPart') > -1) {
            itemRowContent_personalizedimage += wrapTD2(personalized_imageURL, "150px");
            return wrapNonInvTrimg(itemRowContent_personalizedimage);

        }
        else if (type.indexOf('Kit') > -1 || type.indexOf('kititem') > -1) {
            itemRowContent_personalizedimage += wrapTD2(personalized_imageURL, "150px");
            return wrapNonInvTrimg(itemRowContent_personalizedimage);
        }
        else if ((type.indexOf('lotnumberedinventoryitem') > -1 || type.indexOf('InvtPart') > -1 || type.indexOf('Inventory Item') > -1 /*|| type.indexOf('Non-inventory Item') > -1 || type.indexOf('NonInvtPart') > -1*/ ) && itemName != 'MISC TO BE DETERMINED' && itemName != 'SUF SET UP FEE') {
            itemRowContent_personalizedimage += wrapTD2(personalized_imageURL, "150px");

            return wrapNonInvTrimg(itemRowContent_personalizedimage);
        }
        else {
            itemRowContent_personalizedimage += wrapTD2(personalized_imageURL, "150px");
            return wrapInvTr(itemRowContent_personalizedimage);
        }
        }
    }
    catch (e) {
        nlapiLogExecution('DEBUG', 'error @ retriveBindetailsimage', e);
    }
}

function displayDescription(tranRec, row) {
    var description = nlapiEscapeXML(tranRec.getLineItemValue('item', 'description', row));
    var itemRowContent = wrapTD('', "100px");
    itemRowContent += wrapTD('Description', "150px");
    itemRowContent += wrapTD(description, "200px");
    itemRowContent += wrapTD("", "75px");
    itemRowContent += wrapTD("", "75px");
    itemRowContent += wrapTD("", "75px");
    return wrapInvTr(itemRowContent);
}


function getOptions(itemName, optionDataArray, row, comit) {
    nlapiLogExecution('DEBUG', '**********', '******************************');
    nlapiLogExecution('DEBUG', 'itemName', itemName);
    nlapiLogExecution('DEBUG', 'row', row);
    nlapiLogExecution('DEBUG', 'comit', comit);
    nlapiLogExecution('DEBUG', 'optionDataArray', JSON.stringify(optionDataArray));
    var content1 = ""
    nlapiLogExecution('DEBUG', 'optionDataArray.length ', optionDataArray.length);
    for (var i = 0; i < optionDataArray.length; i++) {
        

        var obj = optionDataArray[i];
        nlapiLogExecution('DEBUG', 'obj', JSON.stringify(obj));
        nlapiLogExecution('DEBUG', 'i ' + optionDataArray.length, i);
        if (obj.comit == "" || obj.comit == null || obj.comit == undefined || obj.comit == '- None -' || obj.comit == " " || comit == "" || comit == null || comit == undefined || comit == '- None -' || comit == " ") {
            // nlapiLogExecution('DEBUG', 'test', c);
            obj.comit = 0;
            comit = 0;
        }

        if ((obj.name.toString().trim().replace(/ /g, '') == itemName.toString().trim().replace(/ /g, '')) && (obj.comit.toString().trim().replace(/ /g, '') == comit.toString().trim().replace(/ /g, ''))) {
            var option = obj.options;
            nlapiLogExecution('DEBUG', 'option', option);

            if (option.indexOf('replaceplus') != -1 || option.indexOf('replaceand') != -1 || option.indexOf('replacelsst') != -1 || option.indexOf('replacegrt') != -1 || option.indexOf('break') != -1 || option.indexOf('replacespace') != -1 || option.indexOf('replacehash') != -1) {
                // nlapiLogExecution('DEBUG', 'option with spcl chara', option);
                content1 = option.replace(/replaceplus/g, '+');
                content1 = content1.replace(/replacespace/g, ' ');
                content1 = content1.replace(/replacehash/g, '#');
                content1 = content1.replace(/break/g, '<br/>');
                content1 = content1.replace(/replaceand/g, '&amp;');
                content1 = content1.replace(/replacelsst/g, '&lt;');
                content1 = content1.replace(/replacegrt/g, '&gt;');
              

            } else {
                content1 = option
 
            }
            nlapiLogExecution('DEBUG', 'content1 return', content1);
            return content1;
        }
    }
    nlapiLogExecution('DEBUG', 'content1 returnempty', content1);
    return "";
}


function wrapNonInvTr(value) {
    return '<tr style="text-align:left;border: .05px solid #A9A9A9;" class="noninv" >' + value + '</tr>';
}
function wrapNonInvTrimg(value) {
    return '<tr style="text-align:left;border: .05px solid #A9A9A9;" class="noninv" >' + value + '</tr>';
}
function wrapInvTr(value) {
    return '<tr style="text-align:left;border: .05px solid #A9A9A9;" >' + value + '</tr>';
}
function wrapTD(value, width) {
    return '<td  style="text-align:left;border: .05px solid #A9A9A9;" width="' + width + '" ><p align="left">' + value + '</p></td>';
}


function wrapTD2(value, width) {
   
    var value2
    value2 = encodeURI(value).replace(/&/g, "&amp;");
    value2 = value2.replace(/</g, "&lt;");
    value2 = value2.replace(/>/g, "&gt;");
    value2 = value2.replace(/"/g, "&quot;");
    value2 = value2.replace(/'/g, "&apos;");

    nlapiLogExecution('DEBUG', 'final222 value', value2);

    return '<td  style="text-align:left;border: .05px solid #A9A9A9;" width="' + width + '" ><img style="display: block; width:192px; height:192px;" src="' + value2 + '" ></img></td>';
}

function wrapTD1(value, width) {
    
    var value1
     value1 = encodeURI(value).replace(/&/g, "&amp;");
     value1 = value1.replace(/</g, "&lt;");
     value1 = value1.replace(/>/g, "&gt;");
     value1 = value1.replace(/"/g, "&quot;");
     value1 = value1.replace(/'/g, "&apos;");

    nlapiLogExecution('DEBUG','final222 value',value1);
    return '<td  style="text-align:left;border: .05px solid #A9A9A9;" width="' + width + '" ><img style="display: block; width:100px; height:100px;" src="' + value1 + '" ></img></td>';
}

Leave a comment

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