2016-11-22 2 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); 

} 

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); 
+0

Вы должны разместить несколько примеров своего кода. – opticon

+0

@opticon добавлен код – VicDid

ответ

1

Почему бы не сделать cust_lefttosell поля формулы, так что значение всегда рассчитывается на лету из cust_quantity - cust_sold?

В любом случае, если вы хотите использовать afterSubmit, вам нужно выполнить итерацию по всем позициям старой записи, узнать, какие из них были удалены, а затем обновить количество на них.

+1

Снимите отметку с магазина. –

+0

Случайно удалил мой комментарий. Формула в значении по умолчанию будет '{cust_quantity} - {cust_sold}', а затем, как вы сказали, снимите значение хранилища. Я также обновил свой пост с помощью вашего ответа. Благодаря! – VicDid

Смежные вопросы