I'm very raw at scripting. I am trying to create a...
# suitescript
e
I'm very raw at scripting. I am trying to create a script that will loop through the lines on a purchase order, and replace each item with a new item that is defined on the item record that I am changing. This should only happen when that item has not been received or billed on each line. Any pointers would be great. function updatePOLines(recType, recId) { var loadPO = nlapiLoadRecord(recType, recId); var approvalStatus = loadPO.getFieldValue('approvalstatus'); var itemCount = loadPO.getLineItemCount('item'); for(x = 1; x <= itemCount; x++){ var itemRecord = loadPO.getLineItemValue('item','item', x); var itemReceived = loadPO.getLineItemValue('item','quantityreceived', x); var itemBilled = loadPO.getLineItemValue('item','quantitybilled', x); var itemDescription = loadPO.getLineItemValue('item','description', x); var itemQuantity = loadPO.getLineItemValue('item','quantity', x); var itemRate = loadPO.getLineItemValue('item','rate', x); var itemAmount = loadPO.getLineItemValue('item','amount', x); var itemReceiptDate = loadPO.getLineItemValue('item','expectedreceiptdate', x); var itemClosed = loadPO.getLineItemValue('item','isclosed', x); var itemMatch = loadPO.getLineItemValue('item','matchbilltoreceipt', x); var itemNewCode = nlapiLookupField('item', itemRecord, 'custitem_mz_new_ite_rec') if (itemReceived[x] == 0 && itemBilled[x] == 0) { loadPO.setLineItemValue('item', 'item', x, itemNewCode); loadPO.setLineItemValue('item', 'description', x, itemDescription); loadPO.setLineItemValue('item', 'quantity', x, itemQuantity); loadPO.setLineItemValue('item', 'rate', x, itemRate); loadPO.setLineItemValue('item', 'amount', x, itemAmount); loadPO.setLineItemValue('item', 'expectedreceiptdate', x, itemReceiptDate); loadPO.setLineItemValue('item', 'isclosed', x, itemClosed); loadPO.setLineItemValue('item', 'matchbilltoreceipt', x, itemMatch); } } nlapiSetFieldValue('approvalstatus', approvalStatus); var submitRec = nlapiSubmitRecord(loadPO); }