Моя функция проверки строки ниже работает только при втором нажатии кнопки «Добавить». Итак, если сумма равна 500, а я установил скидку на 100, при нажатии кнопки «Добавить» она должна быть 400. Это не работает. Если я нажму на строку еще раз, скидка будет применена дважды - сумма станет равной 300. Как мне решить эту проблему?
function OnValidateLine(type, name) {
var count = nlapiGetLineItemCount('expense')
var total = nlapiGetFieldValue('usertotal')
for (var x = 1; x <= count; x++) {
var amount = nlapiGetCurrentLineItemValue('expense', 'amount');
var discount = nlapiGetCurrentLineItemValue('expense', 'custcolptc_discount');
if (discount) {
nlapiSetCurrentLineItemValue('expense', 'amount', amount - discount)
}
return true;
}
return true;
}
fieldChanged
вместо этого? Вы можете инициировать обновление каждый раз, когда изменяется поле Сумма или Скидка, хотя, похоже, будет гораздо больше сценариев и вариантов использования, которые вам придется обрабатывать с помощью этой логики. . - person erictgrubaugh   schedule 30.08.2016x
илиcount
. Вам вообще не нужен циклfor
, поскольку вы изменяете только одну строку. - person erictgrubaugh   schedule 30.08.2016