首页 > 解决方案 > Netsuite Suitescript 2 - 搜索中的客户存款剩余金额

问题描述

我在使用 SuiteScript 2.0 对 NetSuite 中的客户存款执行自定义搜索时遇到问题

我需要获取所有客户存款 ID、状态、存款金额和剩余金额(我的意思是尚未应用于任何发票的金额)。我的问题是我不知道如何获取剩余的金额。

我试过这个:

var results = [];

search.create({           
    type: search.Type.CUSTOMER_DEPOSIT,
    filters: [['lastmodifieddate', 'within', context.from_datetime, context.to_datetime]],
    columns: [
        'entity',
        'status',
        'amount',
        'amountremaining'
    ]
}).run().forEach(function() {
    results.push(result);
    return true;
});

return results;

但是amountremaining所有存款的字段都是空的。

标签: javascriptnetsuitesuitescript2.0

解决方案


amountremaining列与客户存款无关,但您可以使用以下方法实现您的需求。

首先,您需要添加一个过滤器以确保您提取正确的“应用交易”:

["applyingtransaction.type","anyof","DepAppl"]

这可以确保您获得“存款申请”,而不是可能正在应用客户存款交易的“存款”。然后,您需要添加一个带有公式的列,以将所有这些存款申请的金额添加到客户存款的总金额中:

search.createColumn({
     name: "formulacurrency",
     summary: "MIN",
     formula: "min({amount}) + SUM({applyingtransaction.amount})",
     label: "Formula (Currency)"
  })

请注意,这是添加而不是减去,因为applyingtransaction.amount返回的是负数。

也不是说这需要一个汇总列才能工作(因为每个客户存款可能有多个应用交易),因此您需要将分组或汇总功能应用于您需要返回的所有列。最重要的是,您需要按客户存款的内部 ID 或文件编号进行 GROUP。


推荐阅读