【问题标题】:How to create a Customer Refund for a customer with Credit Memos?如何使用 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 时是否可能有另一个脚本或工作流在运行?

标签: netsuite suitescript


【解决方案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 的参数中设置支付方式?
    猜你喜欢
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 2019-12-31
    • 2017-11-20
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多