NetSuite Item Receipt Расчет общей суммы - PullRequest
0 голосов
/ 21 марта 2020

В NetSuite мне нужно рассчитать общую сумму (ie количество позиций кол-во x тариф позиции) в квитанции. Это недоступно в стандартных функциях, поэтому необходим сценарий.

Ниже приведен сценарий на стороне клиента, который работает нормально, если мы помечаем позиции вручную. Однако он искажается, когда мы используем кнопку «Отметить все» или «Снять отметку со всех» в получении элемента, потому что, к сожалению, эти кнопки не запускают клиентские сценарии. Я думаю об использовании кнопки пересчета для корректировки сумм до того, как пользователь сохранит транзакцию. Любые идеи?

Я также пробовал сценарий действия рабочего процесса, но кнопка восстановления c выглядит серой при первом создании / редактировании транзакции. Большое спасибо.

function fieldChng() {
  var qty = nlapiGetCurrentLineItemValue('item', 'quantity');
  var rate = nlapiGetCurrentLineItemValue('item', 'rate');
  var total = qty * rate;
  nlapiSetCurrentLineItemValue('item', 'custcol_ir_line_item_amount', total.toFixed(2), false);
  //'custcol_ir_line_item_amount' is the internal id of Custom Transaction Line Field

}
function updateTotalAmount(type, name) {
  // initialize variable for total amount
  var totalAmount = 0;

  // count number of lines in 'item' sublist
  var itemCount = nlapiGetLineItemCount('item');

  // for each line in the 'item' sublist, add value in amount column to
  // the total amount variable
  for (var i = 1; i <= itemCount; i++) {
    lineLevelAmount = nlapiGetLineItemValue('item', 'custcol_ir_line_item_amount', i)
    if (lineLevelAmount != '' && lineLevelAmount != null) {
      totalAmount += parseFloat(lineLevelAmount);
    }
  }

  // assuming custbody_ir_total_amount is the custom body field for the total
  // amount, change its value based the value from the computation above
  nlapiSetFieldValue('custbody_ir_total_amount', totalAmount.toFixed(2), false);
}

1 Ответ

0 голосов
/ 30 марта 2020

Как сказал Майк, лучше делать это при «сохранении», но всегда есть возможность взломать кнопку «Пометить все» и запустить этот сценарий. Он менее одобрен NetSuite, но работает так же хорошо.

...