This is a Client script for updating shipping costs in the IF record based on a custom field ( Shipping methods).
Based on different Ship methods the shipping cost will be set.
Except for Ship methods:
( ‘blank’, Truck (LTL), other, Customer Pickup, FedExGD Collect, Broker, TBD) The shipping cost will be zero.
in all other cases, the shipping cost will be taken from the Corresponding Sales Order.
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
define(['N/record', 'N/runtime', 'N/error'],
/**
* @param {runtime} runtime
* @param {url} url
*/
function(record) {
/**
* Function to be executed after page is initialized.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.currentRecord - Current form record
* @param {string} scriptContext.mode - The mode in which the record is being accessed (create, copy, or edit)
*
* @since 2015.2
*/
var shipMethodlist = [ 3128 /*"other"*/ ,
3127 /*"Customer Pickup"*/,
3124 /*"FedExGD Collect"*/ ,
3129 /*"Truck (LTL)"*/ ,
17578/*"Broker"*/ ,
17572 /*"TBD"*/ ,
""/*Blank"*/ ]
function pageInit(scriptContext)
{
if(scriptContext.mode == 'create' || scriptContext.mode == 'copy'|| scriptContext.mode == 'edit' )
{
var currRec = scriptContext.currentRecord;
var shippingCost = forceFloat(currRec.getValue({fieldId: 'shippingcost'}));
var shippingMethod =currRec.getValue({fieldId: 'custbody_bsp_shipmethod'});
// log.debug("ship method", shippingMethod);
nlapiLogExecution('ERROR', 'shippingMethod1', shippingMethod);
shipMethodlist.forEach(function(shippingMethod) {
if ((shippingMethod == shipMethodlist[0]) ||
(shippingMethod == shipMethodlist[1]) ||
(shippingMethod == shipMethodlist[2]) ||
(shippingMethod == shipMethodlist[3]) ||
(shippingMethod == shipMethodlist[4]) ||
(shippingMethod == shipMethodlist[5]) ||
(shippingMethod == shipMethodlist[6])){
nlapiLogExecution('ERROR', 'Shipmethod IF true1', shippingMethod);
} else{
nlapiLogExecution('ERROR', 'Shipmethod IF False1', shippingMethod);
currRec.setValue({fieldId: 'shippingcost', value: 0});
}
});
}
}
/**
* Function to be executed after field sourcing.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.currentRecord - Current form record
* @param {string} scriptContext.sublistId - Sublist name
* @param {string} scriptContext.fieldId - Field name
*
* @since 2015.2
*/
function postSourcing(scriptContext)
{
if((scriptContext.mode == 'create' || scriptContext.mode == 'copy') && (scriptContext.fieldId == 'shipcarrier' || scriptContext.fieldId == 'shipmethod'))
{
var currRec = scriptContext.currentRecord;
var shippingCost = forceFloat(currRec.getValue({fieldId: 'shippingcost'}));
var shippingMethod2 = currRec.getValue({fieldId: 'custbody_bsp_shipmethod'});
// log.debug("test2sM", shippingMethod2);
nlapiLogExecution('ERROR', 'shippingMethod2', shippingMethod2);
shipMethodlist.forEach(function(shippingMethod2) {
if ((shippingMethod2 == shipMethodlist[0]) ||
(shippingMethod2 == shipMethodlist[1]) ||
(shippingMethod2 == shipMethodlist[2]) ||
(shippingMethod2 == shipMethodlist[3]) ||
(shippingMethod2 == shipMethodlist[4]) ||
(shippingMethod2 == shipMethodlist[5]) ||
(shippingMethod2 == shipMethodlist[6]))
{
nlapiLogExecution('ERROR', 'Shipmethod IF true2', shippingMethod2);
} else{
nlapiLogExecution('ERROR', 'Shipmethod IF False2', shippingMethod2);
currRec.setValue({fieldId: 'shippingcost', value: 0});
}
});
}
}
/**
* Force Float value
*/
function forceFloat(stValue)
{
var flValue = parseFloat(stValue);
if (isNaN(flValue) || (stValue == Infinity))
{
return 0.00;
}
return flValue;
}
function fieldChanged(context) {
if((context.mode == 'create' || context.mode == 'copy' || context.mode == 'edit') && (context.fieldId == 'shipcarrier' || context.fieldId == 'shipmethod'))
{
var currRec = context.currentRecord;
var shippingCost = forceFloat(currRec.getValue({fieldId: 'shippingcost'}));
var shippingMethod3 = currRec.getValue({fieldId: 'custbody_bsp_shipmethod'});
// log.debug("test2sM", shippingMethod2);
nlapiLogExecution('ERROR', 'shippingMethod2', shippingMethod2);
shipMethodlist.forEach(function(shippingMethod2) {
if ((shippingMethod3 === shipMethodlist[0]) ||
(shippingMethod3 === shipMethodlist[1]) ||
(shippingMethod3 === shipMethodlist[2]) ||
(shippingMethod3 === shipMethodlist[3]) ||
(shippingMethod3 === shipMethodlist[4]) ||
(shippingMethod3 === shipMethodlist[5]) ||
(shippingMethod3 === shipMethodlist[6]))
{
nlapiLogExecution('ERROR', 'Shipmethod IF true3', shippingMethod3);
} else{
nlapiLogExecution('ERROR', 'Shipmethod IF False3', shippingMethod3);
currRec.setValue({fieldId: 'shippingcost', value: 0});
}
});
}
}
return {
pageInit: pageInit,
postSourcing: postSourcing,
fieldChanged: fieldChanged
};
});