如何使用 Credit Memos 为客户创建客户退款?

Posted

技术标签:

【中文标题】如何使用 Credit Memos 为客户创建客户退款?【英文标题】:How to create a Customer Refund for a customer with Credit Memos? 【发布时间】:2016-04-12 22:37:35 【问题描述】:

当我使用选定的客户创建新的客户退款时,我现在收到错误 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.

【问题讨论】:

如果您尝试在 GUI 中手动模拟此脚本,例如从贷项通知单屏幕创建客户退款,然后将客户设置为相同,您是否收到任何错误? 不,没有错误,当创建一个新的客户退款时,它会弹出一个空白表格,我输入客户编号并在列表中选择客户,然后信用和存款列在应用选项卡中.调用 nlapiCreateRecord 时会发生此错误,在调用 nlapiSubmitRecord 的后续操作之前。 调用 CreateRecord 时是否可能有另一个脚本或工作流在运行? 【参考方案1】:

对于您的 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));

【讨论】:

【参考方案2】:

Refund Method (internal id of field is - paymentmethod) 字段存在于“Refund Method”选项卡下的 Customer Refund 记录中,而不存在于贷项通知单记录中。

由于此字段是必填字段,因此您必须进行设置。您可以通过导航到会计 > 会计列表 > 新建 > 付款方式来查看 NetSuite 帐户中可用付款方式的内部 ID,然后列出付款方式列表的值。在您的代码中之后,您必须按如下方式设置字段 -

customerRefund.setFieldValue('paymentmethod', 1); //In my account 1 is for Visa

【讨论】:

我在 nlapiCreateRecord 而不是 nlapiSubmitRecord 上收到此错误。你是说除了预先设置客户之外,我还应该在传递给 nlapiCreateRecord 的参数中设置支付方式?

以上是关于如何使用 Credit Memos 为客户创建客户退款?的主要内容,如果未能解决你的问题,请参考以下文章

云原生之Docker实战使用docker部署Memos碎片化知识管理工具

VA01信贷使用

VA01信贷使用

IOS上的 Audio Memos SE 如何分享和传输录音到电脑?

如何使用精确的数据透视表关系

如何使用 OpenSSL 为 Postgresql DB 的多个用户创建客户端证书?