2016-11-22 151 views
0

的行項目我有一個用戶事件腳本部署到銷售訂單。它使用訂單項的字段值來確定剩餘的數量。但是,如果我刪除了訂單項,則不會更新已移除項目的數量。我需要在提交後更新該項目。檢索舊記錄

是否可以編輯使用nlapiGetOldRecord()或諸如此類的東西刪除行項目的數量嗎?

下面的代碼是什麼樣子:

function afterSubmit(){ 
    var curRec = nlapiGetRecordId(); 
    var item = nlapiLoadRecord('item', curRec); 
    var sold = item.getFieldValue('cust_sold'); 
    var quantity = item.getFieldValue('cust_quantity'); 
    var leftToSell = quantity - sold; 
    item.setFieldValue('cust_lefttosell', leftToSell); 

    var finalValue = item.getFieldValue('cust_lefttosell'); 
    var old = nlapiGetOldRecord(); // only retrieves salesorder record 
    nlapiSubmitRecord(item); 

} 

編輯:因此,原來我可以用一個簡單的old.getLineItemValue('item', 'item', linenum)瞄準線項目。如Adolfo在下面指出的那樣,我可以定位舊記錄的訂單項。出於某種原因,我認爲唯一的方法是使用nlapiGetLineItemField(type, fldnm, linenum)。功能的getLineItemValue版本正是我所期待的。 這是代碼會是什麼樣子:

var old = nlapiGetOldRecord(); 
var id = old.getLineItemValue('item', 'item', linenum); 
var rec = nlapiLoadRecord('type', id); 
+0

你應該發佈你的代碼的一些例子。 – opticon

+0

@opticon添加了代碼 – VicDid

回答

1

爲什麼不cust_lefttosell因此該值從cust_quantity飛始終計算公式字段 - cust_sold?

不管怎麼說,如果你想使用afterSubmit那麼你必須通過在舊記錄的所有行項目迭代,找出哪些被拆除,然後更新這些數量。

+1

取消選中商店價值。 –

+0

有意刪除我的評論。默認值中的公式將是'{cust_quantity} - {cust_sold}',然後像您說的那樣,取消選中商店值。我也在你的回答幫助下更新了我的文章。謝謝! – VicDid