Suitelet page to list the customer addresses

Jira Code: AHD-118

On a button click in the purchase order, a pop up that shows the Suitlet page where all the customer addresses are listed. When we choose the Address in that list and submit the page that address will be updated to the purchase order custom field.

function addressSuitelet(request, response){
	try{
	if (request.getMethod() == 'GET' ){
    //Create the form and add fields to it 
	
    var form = nlapiCreateForm("PickUp Adress List" );
    //form.setScript(12788977);
    var seller=request.getParameter('vendorName');
    var poid=request.getParameter('poid');
    nlapiLogExecution('debug','seller',seller);
	form.addSubmitButton('Submit');
	var script = nlapiResolveURL('SUITELET', 'customscript_ahd123_jj_sl_new_address', 'customdeploy_ahd123_jj_sl_new_address');
	script += '&sellerName='+seller+'&poid='+poid;
	var newwindow = "window.open(\'"+script+"\','',\'height=502,width=1000\')";
	form.addButton('addnewaddress', 'Add new Address',newwindow);  
   	var vendorSublist = form.addSubList('address_sublist', 'list' , 'List');
	vendorSublist.addField('selectaddress', 'radio', 'Select');
	vendorSublist.addField('pick_address', 'textarea', 'PickUpAdress');
	vendorSublist.addField('zip_address','text','ZIP').setDisplayType('hidden');
	var sellerName=request.getParameter('vendorName');
	var customerSearch = nlapiSearchRecord("customer",null,
		[
		   ["internalid","is",sellerName]
		], 
		[
		   new nlobjSearchColumn("entityid").setSort(false), 
		   new nlobjSearchColumn("internalid")
		]
		);
		var sellerId=customerSearch[0].getValue('internalid');
		nlapiLogExecution('debug','sellerId',sellerId);
			var addrArray=[];
			var vendorObj=nlapiLoadRecord('customer',sellerName);
			var addrCount=vendorObj.getLineItemCount('addressbook');
			nlapiLogExecution('debug','addrCount',addrCount);
			var j=1;
			for(var i=1;i<=addrCount;i++){
				vendorObj.selectLineItem('addressbook', i);
				var label =vendorObj.getLineItemValue('addressbook','label',i);
				
				if(label.toString() == "Pickup Address"){
				  var subrecord = vendorObj.viewLineItemSubrecord('addressbook', 'addressbookaddress',i);
					//nlapiLogExecution('debug','subrecord',subrecord);
					var addrseName=subrecord.getFieldValue('addressee');
						var addr1=subrecord.getFieldValue('addr1');
						var addr2=subrecord.getFieldValue('addr2');
						var city=subrecord.getFieldValue('city');
						var state=subrecord.getFieldValue('state');
						var zip=subrecord.getFieldValue('zip');
						var phone=subrecord.getFieldValue('addrphone');
						//var altphone=subrecord.getFieldValue('addressee');
						var email=subrecord.getFieldValue('custrecord152');
						addrArray.push({
							"addr1":addr1,
							"addr2":addr2,
							"city":city,
							"state":state,
							"zip":zip,
							"phone":phone,
							"email":email
						});
						if(!addr2)
						{
							var addr=String(addrseName)+"</br>"+String(addr1)+"</br>"+String(city)+" "+String(state)+" "+String(zip)+"</br>"+String(phone)+"</br>"+String(email);
						}else
						{
							var addr=String(addrseName)+"</br>"+String(addr1)+"</br>"+String(addr2)+"</br>"+String(city)+" "+String(state)+" "+String(zip)+"</br>"+String(phone)+"</br>"+String(email);
						}
						
						
						//addr=addr.split("\n");
						nlapiLogExecution('debug','Pick'+i,JSON.stringify(addrArray));
						vendorSublist.setLineItemValue('pick_address', j, addr);
						vendorSublist.setLineItemValue('zip_address',j,zip);
					j++;
					//nlapiLogExecution('debug','=====',"===========");
				}
			}
	      
    response.writePage(form);
    }
  //POST call
		else{
	  
			var count=request.getLineItemCount('address_sublist');
			nlapiLogExecution('debug',  'count ' , count);
				 for(var i=1; i<=count;i++){
					var check=request.getLineItemValue('address_sublist','selectaddress',i);
					//nlapiLogExecution('debug',  'check ' , check);
					if(check == 'T'){
						
						var vandorAddress=request.getLineItemValue('address_sublist','pick_address',i);
						var vandorZip=request.getLineItemValue('address_sublist','zip_address',i);
						nlapiLogExecution('debug',  'vandorAddress ' , vandorAddress);
						var arrRetData = [];
						var ZipSearch = nlapiSearchRecord("customrecord173",null,
						[
						   ["name","is",vandorZip]
						], 
						[
						   new nlobjSearchColumn("custrecord_ratezone_zip_code"), 
						   new nlobjSearchColumn("custrecord_mzct_zone"), 
						   new nlobjSearchColumn("custrecord_branch_id"), 
						   new nlobjSearchColumn("custrecord_mzct_route"), 
						   new nlobjSearchColumn("custrecord_mzct_delivery_schedule_day"),
						   new nlobjSearchColumn("custrecord_mzct_day_trailer_is_loaded"),
						   new nlobjSearchColumn("custrecord_mzct_dmi_release_day"),
						   new nlobjSearchColumn("custrecord_mzct_special_instructions")
						]
						);
						nlapiLogExecution('debug',  'ZipSearch ' , ZipSearch);
						var zipCode=ZipSearch[0].getValue('custrecord_ratezone_zip_code');
						var zipZone=ZipSearch[0].getValue('custrecord_mzct_zone');
						var zipBranch=ZipSearch[0].getValue('custrecord_branch_id');
						var zipRoute=ZipSearch[0].getValue('custrecord_mzct_route');
						var zipScheduleDay=ZipSearch[0].getValue('custrecord_mzct_delivery_schedule_day');
						var zipday_trailer=ZipSearch[0].getValue('custrecord_mzct_day_trailer_is_loaded');
						var ziprelease_day=ZipSearch[0].getValue('custrecord_mzct_dmi_release_day');
						var zipSpl_Instr=ZipSearch[0].getValue('custrecord_mzct_special_instructions');
						vandorAddress=String(vandorAddress).split("</br>");
						var demo1="";
                      var demo2='';
						var demo=vandorAddress.length;
						for(var p=0;p<demo;p++)
						{
						demo1+=String(vandorAddress[p])+"</br>";	
						}
                        nlapiLogExecution('debug',  'demo' ,demo1);
                      var demo3=vandorAddress.length;
						for(var l=0;l<demo;l++)
						{
						demo2+=String(vandorAddress[l])+"<br>";	
						}
                        nlapiLogExecution('debug',  'demo2' ,demo2);
						//var vandorAddress= vandorAddress.replaceAll("@","\n");
						//vandorAddress=JSON.stringify(vandorAddress);
						
						 // DISPLAYING VENDOR INFORMATION IN SALES ORDER
						var stHtml = '<html>';
						stHtml += '<head>';
						stHtml += '<script language="JavaScript">';
						//stHtml += '<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.js">';
						stHtml += 'if (window.opener)';
						stHtml += '{';
						
					  
						stHtml += 'window.opener.nlapiSetFieldValue(\'custbody36\',  \'' + demo1 + '\');';
                        stHtml += 'window.opener.nlapiSetFieldValue(\'custbody_pickupline_locations\',  \'' + demo2 + '\');';
						stHtml += 'window.opener.nlapiSetFieldValue(\'custbody29\',  \'' + zipBranch + '\');';
						stHtml += 'window.opener.nlapiSetFieldValue(\'custbody30\',  \'' + zipZone + '\');';
						stHtml += 'window.opener.nlapiSetFieldValue(\'custbody_pickup_route\',  \'' + zipRoute + '\');';
						stHtml += 'window.opener.nlapiSetFieldValue(\'custbody_mzc_dmi_rel_day_sh\',  \'' + ziprelease_day + '\');';
						stHtml += 'window.opener.nlapiSetFieldValue(\'custbody_mzc_day_trailer_loaded_sh\',  \'' + zipday_trailer + '\');';
						
						stHtml += '}';
						stHtml += 'window.close();';
						stHtml += '</script>';
						stHtml += '</head>';
						stHtml += '<body>';
						stHtml += '</body>';
						stHtml += '</html>';
					response.write(stHtml); 
						
					}
						
				} 
		}
						
	}
	catch(e){
		 nlapiLogExecution('DEBUG',  'e  ' , e);
	}
}

Leave a comment

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