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);
}