Create Item Receipt for a Purchase Order from a payload that contains respective item details.

Let the variable requestBody contains the payload.

Sample payload.

{
  "purchaseOrderPONumber": "65416981",
  "item": {
    "items": [
      {
        "itemId": "114579",//item internal id
        "line":"1",
        "quantity": "99",
        "rate": "1.00"
      }
    ]
  }
}

Suitescript

let itemArray = requestBody.item.items;
let objRecord = record.transform({
    fromType: record.Type.PURCHASE_ORDER,
    fromId: requestBody?.purchaseOrderPONumber,
    toType: record.Type.ITEM_RECEIPT,
    isDynamic: true,
});
let lineCount = objRecord.getLineCount({ sublistId: 'item' });
for (let i = 0; i < lineCount; i++) {
    objRecord.selectLine({ sublistId: 'item', line: i });
    let orderLine = objRecord.getCurrentSublistValue({
        sublistId: "item",
        fieldId: "orderline",
    });
    let itemObj = itemArray.find(el => el.line === orderLine);
    if (itemObj) {
        objRecord.setCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'itemreceive',
            value: true
        });
        objRecord.setCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'item',
            value: itemObj['itemId']
        });
        objRecord.setCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'quantity',
            value: itemObj['quantity']
        });
        objRecord.setCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'rate',
            value: itemObj['rate']
        });
    } else {
        objRecord.setCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'itemreceive',
            value: false
        });
    }
    objRecord.commitLine({
        sublistId: 'item'
    });
}
irRecordId = objRecord.save();

Leave a comment

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