如何使用 Credit Memos 为客户创建客户退款?
How to create a Customer Refund for a customer with Credit Memos?
当我为选定的客户创建新的客户退款时,我现在收到 INVALID_KEY_OR_REF 无效的付款方式参考密钥 VISA 错误。此代码用于在最新的 2016 R1 升级之前工作。
// create the Customer Refund record
var customerRefund = nlapiCreateRecord("customerrefund", {
entity: creditMemo.getFieldValue("entity") // preload with customer credits
});
如何根据客户的贷记凭证创建新的客户退款,而不会出现有关付款方式的错误?我什至没有看到 Credit Memo 有 paymentmethod 字段。
附加信息
我尝试在 nlapiCreateRecord 调用中初始化付款方式,但现在出现此错误:
INVALID_RCRD_INITIALIZE You have entered an invalid default value for this
record initialize operation.
退款方式(字段的内部 ID 为 - 付款方式)字段存在于 "Refund Method" 选项卡下的客户退款记录中,而不存在于贷记凭证记录中。
由于此字段是必填字段,因此您必须进行设置。您可以通过导航到会计 > 会计列表 > 新建 > 付款方式查看 NetSuite 帐户中可用付款方式的内部 ID,然后列出付款方式列表的值。在您的代码中之后,您必须按如下方式设置字段 -
customerRefund.setFieldValue('paymentmethod', 1); //In my account 1 is for Visa
对于您的 nlapiCreateRecord 调用,您需要提供的只是客户内部 ID,就像您正在做的那样。
如果不涉及某些用户事件脚本或工作流,您可能还需要确保您使用的表单没有任何特殊要求。在我的帐户中,以下是创建客户退款所需的全部内容。客户内部 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));
当我为选定的客户创建新的客户退款时,我现在收到 INVALID_KEY_OR_REF 无效的付款方式参考密钥 VISA 错误。此代码用于在最新的 2016 R1 升级之前工作。
// create the Customer Refund record
var customerRefund = nlapiCreateRecord("customerrefund", {
entity: creditMemo.getFieldValue("entity") // preload with customer credits
});
如何根据客户的贷记凭证创建新的客户退款,而不会出现有关付款方式的错误?我什至没有看到 Credit Memo 有 paymentmethod 字段。
附加信息
我尝试在 nlapiCreateRecord 调用中初始化付款方式,但现在出现此错误:
INVALID_RCRD_INITIALIZE You have entered an invalid default value for this
record initialize operation.
退款方式(字段的内部 ID 为 - 付款方式)字段存在于 "Refund Method" 选项卡下的客户退款记录中,而不存在于贷记凭证记录中。
由于此字段是必填字段,因此您必须进行设置。您可以通过导航到会计 > 会计列表 > 新建 > 付款方式查看 NetSuite 帐户中可用付款方式的内部 ID,然后列出付款方式列表的值。在您的代码中之后,您必须按如下方式设置字段 -
customerRefund.setFieldValue('paymentmethod', 1); //In my account 1 is for Visa
对于您的 nlapiCreateRecord 调用,您需要提供的只是客户内部 ID,就像您正在做的那样。
如果不涉及某些用户事件脚本或工作流,您可能还需要确保您使用的表单没有任何特殊要求。在我的帐户中,以下是创建客户退款所需的全部内容。客户内部 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));