/**
* @NApiVersion 2.1
* @NScriptType Suitelet
*/
define(['N/record', 'N/ui/serverWidget'], function (record, serverWidget) {
function onRequest(context) {
if (context.request.method === 'GET') {
let form = serverWidget.createForm({
title: 'Create Item Receipt'
});
let purchaseOrderField = form.addField({
id: 'purchaseorder',
type: serverWidget.FieldType.SELECT,
label: 'Select Purchase Order'
});
// Populate purchase order options in the dropdown
// Search for purchase orders
let purchaseOrderSearch = search.create({
type: search.Type.PURCHASE_ORDER,
filters:
[
["type", "anyof", "PurchOrd"],
"AND",
["status", "anyof", "PurchOrd:B"],
"AND",
["mainline", "is", "T"],
"AND",
["cogs", "is", "F"],
"AND",
["taxline", "is", "F"],
"AND",
["shipping", "is", "F"]
],
columns: [
search.createColumn({ name: "tranid", label: "Document Number" })
]
});
purchaseOrderSearch.run().each(function (result) {
let purchaseOrderId = result.id;
let purchaseOrderNumber = result.getValue({ name: "tranid", label: "Document Number" });
purchaseOrderField.addSelectOption({
value: purchaseOrderId,
text: purchaseOrderNumber
});
return true;
});
form.addSubmitButton({
label: 'Create Item Receipt'
});
context.response.writePage(form);
} else if (context.request.method === 'POST') {
// Get the selected purchase order from the request
let purchaseOrderId = context.request.parameters.purchaseorder;
// Transform the selected purchase order into an item receipt
let itemReceiptId = record.transform({
fromType: record.Type.PURCHASE_ORDER,
fromId: purchaseOrderId,
toType: record.Type.ITEM_RECEIPT
}).save();
}
}
return {
onRequest: onRequest
};
});
We can generate Item receipts using a backend Suitelet script within the Employee Center role. But it is not possible to view the created Item receipt using the role.