Using the Function fieldChanged() setting the field ‘shipping cost’ when the Field ‘Shipmethod’ changes.

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
                    });
                }

            }

        }

Leave a comment

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