const updateTransaction = (transactionId, valueArray) => {
try {
let transactionRecord = record.load({
type: RECORD_TYPE[valueArray[0]["Type"]],
id: transactionId,
isDynamic: true
});
for (let i = 0; i < valueArray.length; i++) {
let lineId = transactionRecord.findSublistLineWithValue({
sublistId: 'item',
fieldId: 'lineuniquekey',
value: valueArray[i]['Line Unique Key']
});
let replaceSku = REPLACE_SKU.find(obj => Number(obj["epicSkuId"]) === Number(valueArray[i]["Item"]))?.["equivalandSkuId"] || "";
if (lineId !== -1 && replaceSku) {
transactionRecord.selectLine({
sublistId: 'item',
line: lineId
});
transactionRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'isclosed',
value: true,
});
transactionRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'price',
value: PRICE_LEVEL.Custom
})
transactionRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'rate',
value: 0
})
transactionRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'quantity',
value: 0
});
let fulfilmentLocation = transactionRecord.getCurrentSublistValue({
sublistId: 'item',
fieldId: 'location'
});
let taxCode = transactionRecord.getCurrentSublistValue({
sublistId: 'item',
fieldId: 'taxcode'
});
log.debug("taxCode", taxCode);
transactionRecord.commitLine({
sublistId: 'item'
});
transactionRecord.selectNewLine({ sublistId: 'item' });
transactionRecord.setCurrentSublistValue({ sublistId: 'item', fieldId: 'item', value: replaceSku });
transactionRecord.setCurrentSublistValue({ sublistId: 'item', fieldId: 'price', value: PRICE_LEVEL.Custom });
transactionRecord.setCurrentSublistValue({ sublistId: 'item', fieldId: 'location', value: fulfilmentLocation });
transactionRecord.setCurrentSublistValue({ sublistId: 'item', fieldId: 'quantity', value: valueArray[i]['Quantity'] });
transactionRecord.setCurrentSublistValue({ sublistId: 'item', fieldId: 'rate', value: valueArray[i]['Item Rate'] });
transactionRecord.setCurrentSublistValue({ sublistId: 'item', fieldId: 'amount', value: valueArray[i]['Amount'] });
transactionRecord.setCurrentSublistValue({ sublistId: 'item', fieldId: 'taxcode', value: taxCode });
transactionRecord.commitLine({ sublistId: 'item' });
}
}
transactionRecord.save({
enableSourcing: true,
ignoreMandatoryFields: true
});
} catch (e) {
log.error("Error in updateTransaction", e);
}
}