如果项目具有权重,则使用recalc函数更改字段

Joh*_*ohn 1 netsuite suitescript

我目前有一个重新计算功能,如果订单项已更改,则会重置运费成本字段,但如果商品有权重,我真的只需要这样做.如何检索更改的订单项的权重?

这是我现在拥有的:

function recalc(){  
    nlapiSetFieldValue('shippingcost', '0.00');
}
Run Code Online (Sandbox Code Playgroud)

eri*_*ugh 5

recalc当对行项目的更改影响事务的总计时才会触发,因此,可能不是您要完成的事件的可靠事件.

我建议不要使用,validateLine因为该事件应该用于确定字段的新值是否有效.

我建议您使用它fieldChanged来响应已更改的字段值.就像是:

function fieldChanged(type, name, linenum) {
    if (type == 'item') {
        if (name == 'item') {
            handleItemChange(linenum);
        }
    }
}

function handleItemChange(linenum) {
    var itemWeight = parseFloat(nlapiGetFieldValue('item', 'weight', linenum)) || 0;
    if (itemWeight > 0) {
        nlapiSetFieldValue('shippingcost', 0);
    }
}
Run Code Online (Sandbox Code Playgroud)

您可能还想考虑postSourcing事件而不是fieldChanged,取决于哪些字段应该实际触发此逻辑.