Updates in SSCC label

Jira Code: PROT-198 (Update of PROT-195)

This article briefs about an update of SSCC label in IF record. If same AVC item id in an IF record then it should not be a mixed SKU, it should show each item name. Qty should be shown as 2 and 4 (qty for each carton). It also changed the font size as well.

Suitelet

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 * @NModuleScope SameAccount
 */
/*******************************************************************************
 * 
 * Author : Jobin and jismi created on:09/05/2019 SV
 * 
 ******************************************************************************/
define([ "N/search", "N/record","N/render","N/file" ], function(search, record,render,file) {

			var LOGO= {
			"PT"		:"https://system.na1.netsuite.com/core/media/media.nl?id=254836&c=1312745&h=2483fad4245a495342b6",
			"BLVD"		:"https://system.na1.netsuite.com/core/media/media.nl?id=254895&c=1312745&h=3aaa3dce17a3d5bbd3d4",
			"NG"		:"https://system.na1.netsuite.com/core/media/media.nl?id=535&c=1312745&h=2204bb9caa70411d50b2",
			"SUNJEEN"	:"https://system.na1.netsuite.com/core/media/media.nl?id=254836&c=1312745&h=2483fad4245a495342b6"
			 }


			var EMAILS = {
			"PT"		:"protecstyle.com",
			"BLVD"		:"iloveblvd.com",
			"NG"		:"thenailgenie.com",
			"SUNJEEN"	:"protecstyle.com"
			 }


	function onRequest(context) {
		try{
			var recId = context.request.parameters.recId;
			var avc={};

			var itemfulfillmentLookUp = search.lookupFields({
				type:"itemfulfillment",
				id:recId,
				columns:["createdfrom.custbody_cust_po_number","shipaddress","createdfrom.department"]
			});


			var department = itemfulfillmentLookUp["createdfrom.department"][0]["text"];
			department=department?department:"PT";

			
			
			var itemfulfillment={soid:itemfulfillmentLookUp["createdfrom.custbody_cust_po_number"],
					shipto:	(itemfulfillmentLookUp["shipaddress"]).replace(/\n/g,"<br/>"),
					logo:LOGO[department],
					email:EMAILS[department]
					};


var acnAvsDetailsSearch = search.create({
   type: "customrecord_cps_avc_asn_details",
   filters:
   [
      ["custrecord_cps_asn_if.internalid","anyof",recId]
   ],
   columns:
   [
      search.createColumn({name: "internalid", label: "internalid",summary:"GROUP"}),
      search.createColumn({name: "custrecord_cps_avc_asn_sscc", label: "containercode",summary:"MIN"}),
      search.createColumn({name: "custrecord_cps_asn_item_sku", label: "avcitem",summary:"MIN"}),
       search.createColumn({name: "custrecord_cps_avc_asn_quantity", label: "qty",summary:"MIN"})  ,
     //  search.createColumn({name: "custrecord_cps_avc_asn_quantity", label: "qtySingle"}) 
   ]
});

var index=1;
var containerCount=acnAvsDetailsSearch.runPaged().count;
if(containerCount==0){
	context.response.write("<html><head></head><body><script>alert('This itemfulFillment Does not have any container code');window.close();</script></body></html>");
return;
}
//var isMultiple = containerCount>1;
//AJ MOD 16.05.19
var isMultiple;
 var qty=0;
	var avsDetails=[];
	acnAvsDetailsSearch.run().each(function(result){
			var avsDetail=JSON.parse(JSON.stringify(itemfulfillment));
	for(var i=0;i<acnAvsDetailsSearch.columns.length;i++)		
	avsDetail[acnAvsDetailsSearch.columns[i].label] = result.getValue(acnAvsDetailsSearch.columns[i]);
	avsDetail.carton=index+" of "+containerCount;
	var currentQty=parseInt(avsDetail.qty);
	qty+=isNaN(currentQty)?0:currentQty;
	// AJ MOD ON 16.05.2019
	avsDetail.qtyOfCarton = currentQty;
	if(isMultiple!=1)
		{
		for(var j=0;j<avsDetails.length;j++)
		{
		if(avsDetail.avcitem!=avsDetails[j]['avcitem'])
		{
			isMultiple =1;
			avsDetails[j]['avcitem']="Mixed SKUs";
		}
		
		}
		
		}
	
	
	
	index++;
isMultiple?avsDetail.avcitem="Mixed SKUs":"";
	
	avsDetails.push(avsDetail);
   return true;
});


			var renderer = render.create();

			renderer.templateContent = file.load(765148).getContents();

			renderer.addCustomDataSource({
    					format: render.DataSource.OBJECT,
    					alias: "avcs",
    					data: {qty:qty,avcs:avsDetails}
    					});

			var ssccLabel = renderer.renderAsPdf();

			context.response.writeFile(ssccLabel,true);

		}
		catch(err)
		{
			log.debug("error@onRequest",err)
		}
	}

	return {
		onRequest : onRequest
	}

});

Client script

/*******************************************************************************
 * 
 * Author : Jobin and jismi created on:10/05/2019 SV
 * 
 ******************************************************************************/
//open the window for print page
define(['N/currentRecord'],function(currentRecord){

	var SUITELET_SSCC = "/app/site/hosting/scriptlet.nl?script=685&deploy=1&recId=";

	function printSSccLabel()
	{	
		window.open(SUITELET_SSCC+currentRecord.get().id);
	}

	return{
		printSSccLabel:printSSccLabel
	}
});

XML Code

<?xml version="1.0"?><!DOCTYPE pdf PUBLIC "-//big.faceless.org//report" "report-1.1.dtd">
<pdfset>
	<#list avcs.avcs as avc>
<pdf>
<head>
	<link name="NotoSans" type="font" subtype="truetype" src="${nsfont.NotoSans_Regular}" src-bold="${nsfont.NotoSans_Bold}" src-italic="${nsfont.NotoSans_Italic}" src-bolditalic="${nsfont.NotoSans_BoldItalic}" bytes="2" />
	<#if .locale == "zh_CN">
		<link name="NotoSansCJKsc" type="font" subtype="opentype" src="${nsfont.NotoSansCJKsc_Regular}" src-bold="${nsfont.NotoSansCJKsc_Bold}" bytes="2" />
	<#elseif .locale == "zh_TW">
		<link name="NotoSansCJKtc" type="font" subtype="opentype" src="${nsfont.NotoSansCJKtc_Regular}" src-bold="${nsfont.NotoSansCJKtc_Bold}" bytes="2" />
	<#elseif .locale == "ja_JP">
		<link name="NotoSansCJKjp" type="font" subtype="opentype" src="${nsfont.NotoSansCJKjp_Regular}" src-bold="${nsfont.NotoSansCJKjp_Bold}" bytes="2" />
	<#elseif .locale == "ko_KR">
		<link name="NotoSansCJKkr" type="font" subtype="opentype" src="${nsfont.NotoSansCJKkr_Regular}" src-bold="${nsfont.NotoSansCJKkr_Bold}" bytes="2" />
	<#elseif .locale == "th_TH">
		<link name="NotoSansThai" type="font" subtype="opentype" src="${nsfont.NotoSansThai_Regular}" src-bold="${nsfont.NotoSansThai_Bold}" bytes="2" />
	</#if>
</head>
<body   padding="0.2in 0.2in 0.2in 0.2in" style="width:4in;height:6in">
    <table width="100%" height="1.5in"><tr>
	<td style="width:50%;border-right:1px;border-bottom:1px">
	<table align="left"><tr>
		<td align="left"><b>Ship From</b><br/>	
		<img src="${avc.logo}" style="width:150px;height:20px"/>	<p align="left" style="font-size:12px" ><!--style="font-size:13px">-->
		1340 Manhattan Ave.<br />
        Fullerton, CA 92831<br />
        T:714.441.0114<br />F:714.459.7477<br />                       
        ${avc.email}</p>
       </td>
		</tr></table>
	</td>
	<td style="width:50%;border-bottom:1px">
	<table align="left"><tr>
		<td><b>Ship To</b><br/><p  align="left" style="font-size:12px">${avc.shipto}</p></td>
		</tr></table>
	</td>
	</tr></table>

	<table width="100%" height="1.8in">
	<tr>
	<td style="width:45%;border-right:1px;border-bottom:1px">
		<table width="100%">
			<tr height="0.7in">
			<td><b>UPC:</b><br/>${avc.avcitem}</td>
			</tr>
			<tr height="0.7in">
			<td><b>Qty:</b>${avc.qtyOfCarton}</td>
			</tr>
			<tr height="0.7in">
			<td><b>Carton #:</b><br/>${avc.carton}</td>
			</tr>	
	   </table>
	</td>
	<td style="width:55%;border-bottom:1px">
		<table width="100%">
			<tr height="0.85in">
			<td width="30%"><b>PO#</b></td><td align="center"><b>Code39</b></td>
			</tr>
			<tr height="0.85in">
			<td>${avc.soid}</td><td align="center"><barcode style="width:90%;align:left" codetype="code128" showtext="false" value="${avc.soid}"/></td>
			</tr>
	   </table>
	</td>
	</tr>
	</table>
	<table width="100%" height="1.25in"><tr>
	<td style="border-bottom:1px">
		<p><b>Amazon Container Code(Code 128):</b><br/>${avc.containercode}</p>
		<barcode style="height:0.5in;width:90%;align:center" codetype="code128" showtext="false" value="${avc.containercode}"/>
	</td>
	</tr></table>

</body>

</pdf>
</#list>
</pdfset>

Leave a comment

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