Removing lines after transforming CM from RMA.

var key = reduceContext.key;
log.debug(“key”, key);
var reduceData = reduceContext.values.map(JSON.parse);
log.debug(“reduce data”, reduceData);

            var itemObject = {}
            for (var i = 0; i < reduceData.length; i++) {
                var itemInSearch = reduceData[i].values.item.value;
                var lineID = reduceData[i].values.line;
                if (itemObject[itemInSearch]) {
                    itemObject[itemInSearch][lineID] = {}
                    itemObject[itemInSearch][lineID].item = reduceData[i].values['item'].value
                    itemObject[itemInSearch][lineID].custcol_delivered = reduceData[i].values['custcol_delivered']
                    itemObject[itemInSearch][lineID].cmquantity = reduceData[i].values['formulanumeric']

                }
                else {
                    itemObject[itemInSearch] = {}
                    itemObject[itemInSearch][lineID] = {}
                    itemObject[itemInSearch][lineID].item = reduceData[i].values['item'].value
                    itemObject[itemInSearch][lineID].custcol_delivered = reduceData[i].values['custcol_delivered']
                    itemObject[itemInSearch][lineID].cmquantity = reduceData[i].values['formulanumeric']
                }
            }
            log.debug("itemObject", itemObject);


            // transform record
            var creditMemoRecord = record.transform({
                fromType: record.Type.RETURN_AUTHORIZATION,
                fromId: reduceData[0].id,
                toType: record.Type.CREDIT_MEMO,
                //isDynamic: true,
            });
            // log.debug("Record First", creditMemoRecord)
            creditMemoRecord.setValue({
                fieldId: 'custbody43',
                value: 7,
                ignoreFieldChange: true
            });
 
            var line_count = creditMemoRecord.getLineCount({
                sublistId: 'item'
            });
            log.debug("line_count", line_count);
            if (line_count > 0) {

                for (var j = line_count; j >= 0; j--) {



                    var orderLine = creditMemoRecord.getSublistValue({
                        sublistId: 'item',
                        fieldId: 'orderline',
                        line: j
                    });
                    var item = creditMemoRecord.getSublistValue({
                        sublistId: 'item',
                        fieldId: 'item',
                        line: j
                    });
                    log.debug("orderLine**", orderLine);
                    log.debug("item**", item);

                    if (itemObject.hasOwnProperty(item) && itemObject[item].hasOwnProperty(orderLine)) {
                        log.debug("Inside  if");

                        creditMemoRecord.setSublistValue({
                            sublistId: 'item',
                            fieldId: 'itemreceive',
                            line: j,
                            value: true,
                            ignoreFieldChange: false
                        });
                        creditMemoRecord.setSublistValue({
                            sublistId: 'item',
                            fieldId: 'quantity',
                            line: j,
                            value: itemObject[item][orderLine]['cmquantity'],
                            ignoreFieldChange: false
                        });

                    }
                    else {
                        log.debug("Inside remove else")
                        creditMemoRecord.removeLine({
                            sublistId: 'item',
                            line: j,
                            ignoreRecalc: false
                        });
                    }

                    line_count = creditMemoRecord.getLineCount({
                        sublistId: 'item'
                    });
                    log.debug("latestline_count", line_count);


                }

                var cmRecID = creditMemoRecord.save({
                    enableSourcing: true,
                    ignoreMandatoryFields: true
                });
                log.debug("cmRecID", cmRecID);
            }

Leave a comment

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