When configuring the inventory detail for inventory adjustment record, the serial/lot number needs to be set to the fieldId issueinventorynumber.
function createInventoryAdjustment(itemReceiptDetails, rmaTranId, currentBin) {
try {
let inventoryAdjustmentRecord = record.create({
type: record.Type.INVENTORY_ADJUSTMENT,
isDynamic: true
});
inventoryAdjustmentRecord.setValue({
fieldId: 'customform',
value: steriCustomForm //steri custom form
});
inventoryAdjustmentRecord.setValue({
fieldId: 'subsidiary',
value: itemReceiptDetails.subsidiary
});
log.debug("itemReceiptDetails.subsidiary", itemReceiptDetails.subsidiary);
inventoryAdjustmentRecord.setValue({
fieldId: 'customer',
value: itemReceiptDetails.customer
});
log.debug("itemReceiptDetails.customer", itemReceiptDetails.customer);
//Hardcoded the account for now
inventoryAdjustmentRecord.setValue({
fieldId: 'account',
value: 2005 //test account
});
inventoryAdjustmentRecord.setValue({
fieldId: 'memo',
value: 'Reversal Inventory Adjustment for ' + rmaTranId
});
// Loop through all items
for (let lineId in itemReceiptDetails.items) {
let item = itemReceiptDetails.items[lineId];
log.debug("itemReceiptDetails item", item);
inventoryAdjustmentRecord.selectNewLine({
sublistId: 'inventory'
});
inventoryAdjustmentRecord.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: 'item',
value: item.item
});
inventoryAdjustmentRecord.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: 'location',
value: item.location
});
if (item.units) {
inventoryAdjustmentRecord.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: 'units',
value: item.units
});
}
inventoryAdjustmentRecord.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: 'adjustqtyby',
value: -item.qty
});
// Loop through inventory details
item.inventoryDetails.forEach((inventory, index) => {
let inventoryDetailRecord = inventoryAdjustmentRecord.getCurrentSublistSubrecord({
sublistId: 'inventory',
fieldId: 'inventorydetail'
});
log.debug("inventoryDetailRecord", inventoryDetailRecord);
inventoryDetailRecord.selectNewLine({
sublistId: 'inventoryassignment'
});
if (inventory.number) {
inventoryDetailRecord.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'issueinventorynumber',
value: inventory.number
});
}
if (currentBin) {
inventoryDetailRecord.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'binnumber',
value: currentBin
// inventory.binNumber
});
}
if (inventory.status) {
inventoryDetailRecord.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'inventorystatus',
value: inventory.status
});
}
if (inventory.expiryDate) {
inventoryDetailRecord.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'expirationdate',
value: inventory.expiryDate
});
}
if (inventory.inventoryQty) {
inventoryDetailRecord.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'quantity',
value: -(inventory.inventoryQty)
});
}
inventoryDetailRecord.commitLine({
sublistId: 'inventoryassignment'
});
});
if (item.class) {
inventoryAdjustmentRecord.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: 'class',
value: item.class
});
}
if (item.dept) {
inventoryAdjustmentRecord.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: 'department',
value: item.department
});
}
inventoryAdjustmentRecord.commitLine({
sublistId: 'inventory'
});
}
// Save the Inventory Adjustment record
let inventoryAdjustmentId = inventoryAdjustmentRecord.save({ ignoreMandatoryFields: true });
return inventoryAdjustmentId;
}
catch (Err) {
log.error("Error @ createInventoryAdjustment", Err);
return 1;
}
}
Note: When configuring the inventory detail for item receipt record, the serial/lot number needs to be set to the fieldId receiptinventorynumber.