Give an alert when empty rate field on saving the record.

Give an alert when empty rate field on record save. it should ignore if value is given as 0.00 and greater than zero.

function (record, runtime, search, currentRecord) {
“use strict”;
let ITEM_ID = [“852”];
let ITEM_TYPE=[‘Description’,’Subtotal’];

/**       

* Validation function to be executed when record is saved.     

 *     

 * @param {Object} scriptContext       

* @param {Record} scriptContext.currentRecord – Current form record       

* @returns {boolean} Return true if record is valid       

*       

* @since 2015.2       

*/       

function saveRecord(scriptContext) {           

try {
let newRecord = scriptContext.currentRecord;
console.log(‘newRecord’, newRecord);

            let createdFrom = newRecord.getValue({
                fieldId: 'transform'
            });

            let itemCount = newRecord.getLineCount({
                sublistId: 'item' // Assuming the item sublist ID is 'item'
            });

            let noRateItemList = [];
            for (let i = 0; i < itemCount; i++) {

                let itemId = newRecord.getSublistValue({
                    sublistId: 'item',
                    fieldId: 'item',
                    line: i
                });
                let itemName = newRecord.getSublistText({
                    sublistId: 'item',
                    fieldId: 'item',
                    line: i
                });
                let rate = newRecord.getSublistValue({
                    sublistId: 'item',
                    fieldId: 'rate',
                    line: i
                });
                // let typeFlags = false;
                                   

                    let detailsItem = newRecord.getCurrentSublistValue({
                        sublistId: "item",
                        fieldId: "itemtype"
                    });
                   


                let isItemId = ITEM_ID.includes(itemId);
                let isItemType = ITEM_TYPE.includes(detailsItem);
                if (isItemId == false && isItemType == false && !rate.toString().trim()) {
                    noRateItemList.push(itemName);
                }
            }
            
            console.log('noRateItemList', noRateItemList);
            if (noRateItemList.length > 0) {
                let itemDetails = noRateItemList.toString();
                alert('The sales order cannot be saved due to empty rates in item line ' + itemDetails);
                return false;
            }
            return true;
        }

        catch (e) {
            console.log("error@saverecord", e);
            console.log(e.message);
            return true;
        }
    }


        return {

 saveRecord: saveRecord       

};

Leave a comment

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