У меня есть сценарий пользовательского события, который развертывается в заказе на продажу. Он использует значения полей позиций для определения оставшегося количества. Однако, если я удаляю позицию, она не обновляет количество удаляемого элемента. Мне нужно, чтобы элемент обновлялся после отправки.Извлечение позиции старой записи
Возможно ли отредактировать количество удаленной позиции с помощью 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);
}
EDIT: Так получается, можно настроить таргетинг на отдельные позиции с помощью простого old.getLineItemValue('item', 'item', linenum)
. Как указал Адольфо ниже, я могу настроить таргетинг на позицию старой записи. По какой-то причине я думал, что единственный способ нацелиться - использовать nlapiGetLineItemField(type, fldnm, linenum)
. Версия функции getLineItemValue
была именно тем, что я искал. Это то, что код будет выглядеть следующим образом:
var old = nlapiGetOldRecord();
var id = old.getLineItemValue('item', 'item', linenum);
var rec = nlapiLoadRecord('type', id);
Вы должны разместить несколько примеров своего кода. – opticon
@opticon добавлен код – VicDid