function fieldChanged(scriptContext) {
if ((scriptContext.fieldId == 'custbody_bsp_shipmethod' || scriptContext.fieldId == 'shipmethod')) {
var currRec = scriptContext.currentRecord;
var IFshippingCost = forceFloat(currRec.getValue({
fieldId: 'shippingcost'
}));
var shippingMethod = currRec.getValue({
fieldId: 'custbody_bsp_shipmethod'
});
nlapiLogExecution('ERROR', 'Shipmethodtrue1', shippingMethod);
var billfrieghtCheckbox = currRec.getValue({
fieldId: 'custbody2'
});
for(var i=0; i<shipMethodlist.length; i++)
{
var name = shipMethodlist[i];
if(name == shippingMethod){
shipmethodFlag3 = true;
break;
}
}
nlapiLogExecution('ERROR', 'shipMethodlist', shipMethodlist);
nlapiLogExecution('ERROR', 'shipmethodFlag', shipmethodFlag3);
if (shipmethodFlag3 == true) {
nlapiLogExecution('ERROR', 'Shipmethod IF true', shippingMethod);
try {
var ItemId = nlapiGetCurrentLineItemValue('item', 'item');
//var ItemId = currRec.getValue({fieldId: 'item'});
var itemType = nlapiGetCurrentLineItemValue('item', 'itemtype');
var itemQuantity = nlapiGetCurrentLineItemValue('item', 'quantity');
var lineItemCount = nlapiGetLineItemCount('item');
//nlapiLogExecution('ERROR', 'lineItemCount', lineItemCount);
entity = nlapiGetFieldValue('entity')
//nlapiLogExecution('ERROR', 'entity', entity);
IsBillFrieght = billfrieghtCheckbox;
//nlapiLogExecution('ERROR', 'IsBillFrieght', IsBillFrieght);
var salerorderID = currRec.getValue({fieldId: 'createdfrom'});
//nlapiLogExecution('ERROR', 'salerorderID', salerorderID);
//section for getting subtotal value from SO starts
var amount_vlaues = search.lookupFields({
type: search.Type.SALES_ORDER,
id: salerorderID,
columns: ["totalamount", "taxtotal", "shippingcost","entity"]
});
var total_amount = amount_vlaues.totalamount;
var tax_total= amount_vlaues.taxtotal;
var shipping_cost = amount_vlaues.shippingcost;
//Getting customer id from sales order
var customerID = amount_vlaues.entity;
var customerData = customerID[0].value
var custIDvalue = (customerData).split(' ')[0];
//using customer id loading corresponding customer record
var custRecord = record.load({
type: 'customer',
id: custIDvalue,
isDynamic: true,
});
//from customer record getting value of customer segments
var crossFitCust = custRecord.getValue('custentity_customer_customersegments')
//nlapiLogExecution('ERROR', 'crossFitCust', crossFitCust);
var crossFitCust_value = JSON.stringify(crossFitCust);
//nlapiLogExecution('ERROR', 'crossFitCust_value', crossFitCust_value);
if(shipping_cost=== undefined){
shipping_cost=0;
}
var subtotal_IF = ((total_amount)-(tax_total)-(shipping_cost));
//section for getting subtotal value from SO
try {
var cross = (crossFitCust_value.indexOf(crossFit) > -1);
//nlapiLogExecution('ERROR', 'cross', cross);
if (cross == true){
IscrossFit = true
//nlapiLogExecution('ERROR', 'iscrossfit true', IscrossFit);
}
} catch (err) {
nlapiLogExecution('DEBUG', 'customerData', err);
}
if (IsBillFrieght) {
if ((lineItemCount > 0) && (subtotal_IF < '150'))
{
//nlapiLogExecution('ERROR', 'shipping cost true', subtotal_IF);
individualShippingCost(lineItemCount)
}
else {
// nlapiLogExecution('ERROR', 'IscrossFit', IscrossFit);
if (IscrossFit){
nlapiSetFieldValue('shippingcost', 0.00, true, true)
nlapiLogExecution('ERROR', 'shipping zero', IscrossFit);
}
else{
nlapiLogExecution('ERROR', 'shipping cost true', IscrossFit);
individualShippingCost(lineItemCount)
}
}
}
} catch (error) {
nlapiLogExecution('ERROR', 'shippingCostRecalc', error);
}
} else {
//nlapiLogExecution('ERROR', 'Shipmethod IF False1', shippingMethod);
currRec.setValue({
fieldId: 'shippingcost',
value: 0
});
}
}
}