添加订单项后,是否可以更新交易列公式字段?或者仅在记录保存后

时间:2016-04-21 21:01:08

标签: netsuite

我想在费用报表费用行上创建一个“总计行”字段,该字段将税额加到小计“金额”中,以便为该特定费用计算总额。 我的问题是,在添加该行后,它是空白的。 它仅在您保存记录后才起作用,但这对于员工输入费用并没有多大帮助。 这是NetSuite的限制吗? 在添加一行之后,我是否必须放入一个以某种方式刷新记录的脚本?我不熟悉脚本。

公式为{amount} +({amount} * {taxrate1})+({amount} * {taxrate2})

字段ID为custcol_total_line

由于

http://i.imgur.com/NWTzrai.jpg

2 个答案:

答案 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;

}
}