NetSuite:获取发票余额

时间:2013-05-29 09:28:28

标签: api netsuite

我搜索hi和lo但是找不到任何合适的参考如何使用SuiteTalk API在NetSuite中获得发票和未付金额。

文档不存在,样本也是如此,所以我在这里瞎了。

当使用get方法检索发票时,我希望指定这些(字段amountPaid和amountRemaining),但它们不是。

遗憾的是,下一个停靠港是搜索已应用于目标发票的客户付款。搜索有效,但是,更糟糕的是,每笔付款都会返回,而不会提供任何申请详情,因此需要额外的电话才能获得所有申请详情并计算出应用于发票的总付款金额。

这是真的唯一的方法吗?!

(我可能不得不考虑存款和存款申请,因为它们是单独的记录类型。叹气)

感谢任何帮助

乔治

更新:工作代码示例

long internalInvoiceId = 42;
TransactionSearchAdvanced tsa = new TransactionSearchAdvanced()
{
    columns = new TransactionSearchRow()
    {
        basic = new TransactionSearchRowBasic()
        {
            total = new SearchColumnDoubleField[] { new SearchColumnDoubleField() },
            amount = new SearchColumnDoubleField[] { new SearchColumnDoubleField() },
            amountPaid = new SearchColumnDoubleField[] { new SearchColumnDoubleField() },
            amountRemaining = new SearchColumnDoubleField[] { new SearchColumnDoubleField() }
        }
    },
    criteria = new TransactionSearch()
    {
        basic = new TransactionSearchBasic()
        {
            mainLine = new SearchBooleanField()
            {
                searchValue = true,
                searchValueSpecified = true
            },
            type = new SearchEnumMultiSelectField()
            {
                @operator = SearchEnumMultiSelectFieldOperator.anyOf,
                operatorSpecified = true,
                searchValue = new string[] { "_invoice" }
            },
            internalIdNumber = new SearchLongField()
            {
                @operator = SearchLongFieldOperator.equalTo,
                operatorSpecified = true,
                searchValue = internalInvoiceId,
                searchValueSpecified = true
            }
        }
    }
};

SearchResult sr = nss.search(tsa);

2 个答案:

答案 0 :(得分:2)

进行交易搜索。

标准:

主线:是
类型:发票
(可选)内部ID:“发票的内部ID”

结果/列:

支付金额
剩余金额

将上述内容翻译成SuiteTalk API(TransactionSearchAdvanced),您应该能够得到您想要的内容。

答案 1 :(得分:0)

这是一个使用NetSuite ruby​​绑定的函数,用于检索发票上的剩余金额(到期日):

def amount_due_for_invoice(ns_invoice)
  search = NetSuite::Records::Invoice.search(
    criteria: {
      basic: [
        {
          field: 'type',
          operator: 'anyOf',
          value: %w(_invoice)
        },
        {
          field: 'mainLine',
          value: true
        },
        {
          field: 'internalIdNumber',
          operator: 'equalTo',
          value: ns_invoice.internal_id
        }
      ]
    },

    columns: {
      'tranSales:basic' => {
        'platformCommon:internalId/' => {},
        'platformCommon:amountRemaining' => {}
      }
    }
  )

  if search.results.size > 1
    fail "invoice search on internalId should never return more than a single result"
  end

  search.results.first.attributes[:amount_remaining].to_f
end

此处的另一种解决方案是创建一个自定义交易正文公式字段,用于提取发票的amountremainingtotalbox字段的值。