当我与选定的客户创建新的客户退款时,我现在收到错误INVALID_KEY_OR_REF无效的paymentmethod参考密钥VISA。此代码用于在最新的2016 R1升级之前工作。
// create the Customer Refund record
var customerRefund = nlapiCreateRecord("customerrefund", {
entity: creditMemo.getFieldValue("entity") // preload with customer credits
});
如何根据客户的贷记凭证创建新的客户退款,而不会出现有关付款方式的错误?我甚至没有看到Credit Memo有一个paymentmethod字段。
其他信息
我尝试在nlapiCreateRecord调用中初始化paymentmethod,现在我收到此错误:
INVALID_RCRD_INITIALIZE You have entered an invalid default value for this
record initialize operation.
答案 0 :(得分:0)
退款方法(字段的内部ID为 - paymentmethod)字段存在于“退款方法”选项卡下的客户退款记录中,而不存在于贷项凭证记录中。
由于此字段是必填字段,因此您必须设置此字段。您可以通过导航到会计>来查看NetSuite帐户中可用付款方式的内部ID。会计列表>新>付款方式,并列出付款方式列表的值。在您的代码中,您必须按如下方式设置字段 -
customerRefund.setFieldValue('paymentmethod', 1); //In my account 1 is for Visa
答案 1 :(得分:0)
对于你的nlapiCreateRecord调用,你需要提供的就是你正在做的客户内部代码。
如果没有涉及某些用户事件脚本或worflow,您可能还需要确保您使用的表单没有任何特殊要求。在我的帐户中,以下是创建客户退款所需的全部内容。客户内部ID为996,目标贷记凭证ID为1189.客户有一个默认信用卡,退款自动提取。
var ref = nlapiCreateRecord('customerrefund', {entity:996,customform:41});
for(var i = ref.getLineItemCount('apply'); i>0; i--){
if(1189 == ref.getLineItemValue('apply', 'doc', i)){
ref.setLineItemValue('apply', 'apply', i, 'T');
ref.setLineItemValue('apply', 'amount', i, ref.getLineItemValue('apply', 'due', i));
}
console.log(
i +' '+
ref.getLineItemValue('apply', 'doc', i) +' '+
ref.getLineItemValue('apply', 'apply', i) +' '+
ref.getLineItemValue('apply', 'amount', i) + ' '+
ref.getLineItemValue('apply', 'total', i));
}
console.log(nlapiSubmitRecord(ref, true));