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