我想在费用报表费用行上创建一个“总计行”字段,该字段将税额加到小计“金额”中,以便为该特定费用计算总额。 我的问题是,在添加该行后,它是空白的。 它仅在您保存记录后才起作用,但这对于员工输入费用并没有多大帮助。 这是NetSuite的限制吗? 在添加一行之后,我是否必须放入一个以某种方式刷新记录的脚本?我不熟悉脚本。
公式为{amount} +({amount} * {taxrate1})+({amount} * {taxrate2})
字段ID为custcol_total_line
由于
答案 0 :(得分:1)
以下是我将使用的字段更改功能。我会使用以下函数将其设为客户端脚本。如果线上的金额发生变化,目前会触发。
/**
* The recordType (internal id) corresponds to the "Applied To" record in your script deployment.
* @appliedtorecord recordType
*
* @param {String} type Sublist internal id
* @param {String} name Field internal id
* @param {Number} linenum Optional line item number, starts from 1
* @returns {Void}
*/
function clientFieldChanged(type, name, linenum){
if(type == 'item' && name == 'amount'){
var amount = nlapiGetLineItemValue('item','amount', linenum);
var taxRate1 = nlapiGetLineItemValue('item','taxrate1', linenum);
var taxRate2 = nlapiGetLineItemValue('item','taxrate2', linenum);
var totalLineAmt = amount + (amount*taxRate1) + (amount*taxRate2);
nlapiSetLineItemValue('item', 'custcol_total_line', linenum, totalLineAmt);
}
}
答案 1 :(得分:0)
我无法完成上述工作,所以我向NetSuite寻求了他们的帮助,如果它对其他人有用,这就是我们最终的结果。我们将其作为验证线功能。我将它添加到费用报表表单上的自定义代码中。非常感谢你的帮助@TMAnn
function validatetotalline(type){
if(type == 'expense'){
var amount = parseFloat(nlapiGetCurrentLineItemValue('expense','amount'));
var taxRate1 = parseFloat(nlapiGetCurrentLineItemValue('expense','taxrate1'));
var taxRate2 = parseFloat(nlapiGetCurrentLineItemValue('expense','taxrate2'));
var totalLineAmt = (amount) + (amount*taxRate1/100) + (amount*taxRate2/100);
nlapiSetCurrentLineItemValue('expense', 'custcol_total_line', totalLineAmt);
return true;
}
}