我在原始发票过期一段时间后生成发票。我想知道我们是否可以使用nlapiCopyRecord制作原始发票的副本,但是允许我们插入一个替换旧订单项的新行?我没有找到任何样本来说明这是如何完成的。
感谢。
编辑1:
var new_inv = nlapiCopyRecord('invoice', internal_id,
{
item : 66,
amount: amount,
description: 'TEST'
});
var copiedId = nlapiSubmitRecord(new_inv);
return copiedId;
以上代码在我的预定脚本中失败。 您为此记录初始化操作输入了无效的默认值。
我想覆盖新复制的发票上的订单项
答案 0 :(得分:1)
是的,这是可能的,就像在UI中复制记录一样,您可以修改副本。您还需要记住在复制后需要保存记录对象。
答案 1 :(得分:1)
你为什么要这样做?如果您试图收取滞纳金,那么通过在原始发票记录中添加费用行可能会更好。如果您没有开启费用,那么您可以添加其他"其他费用待售"
如果您的代码在服务器端运行,那么:
var invRec = nlapiLoadRecord('invoice', internal_id);
var chargeIndex = invRec.getLineItemCount('item') + 1;
// don't think you need this for the end position invRec.insertLineItem('item', chargeIndex);
invRec.setLineItemValue('item', 'item', chargeIndex, charge_item_id);
invRec.setLineItemValue('item', 'rate', chargeIndex, amount);
invRec.setLineItemValue('item', 'amount', chargeIndex, amount);
nlapiSubmitRecord(invRec);
如果您使用费用<或者
var invRec = nlapiLoadRecord('invoice', internal_id);
invRec.insertLineItem('expense', 1);
invRec.setLineItemValue('expense', 'account', 1, penalty_account);
invRec.setLineItemValue('expense', 'amount', 1, amount);
invRec.setLineItemValue('expense', 'memo', 1, 'TEST');
nlapiSubmitRecord(invRec);