0

这与我之前提出的一个问题有关:

如何从 Netsuite restlet 获取客户老化字段

该问题的答案中描述的技术效果很好,但它不处理贷项通知单。我在弄清楚如何将贷项通知单考虑在内时遇到问题。

例如,我有一个显示以下值的客户记录:

BALANCE
1950.00

OVERDUE BALANCE
2000.00

CURRENT     1-30 DAYS     31-60 DAYS     61-90 DAYS     OVER 90 DAYS
0.00        -50.00        2,000.00       0.00           0.00

我可以很好地取出 2000,但我似乎无法从贷项通知单中获得 -50。

我尝试调整发票查询来做到这一点:

new nlobjSearchFilter('amountremaining', null, 'notequalto', 0),

我还尝试对贷项通知单进行单独查询:

var agingcmemo = nlapiSearchRecord(
    'creditmemo',
    null,
    [
        new nlobjSearchFilter('daysoverdue', null, 'greaterthan', 0),
        new nlobjSearchFilter('mainline', null, 'is', 'T'),
        new nlobjSearchFilter('amountremaining', null, 'notequalto', 0),
        new nlobjSearchFilter('entity', null, 'is', result[0].id)
    ],
    [
        new nlobjSearchColumn('entity', null, 'group'),
        new nlobjSearchColumn('formulanumeric', null, 'sum').setFormula('case when {daysoverdue} < 31 then {amountremaining} else 0 end'),
        new nlobjSearchColumn('formulanumeric', null, 'sum').setFormula('case when {daysoverdue} between 31 and 60 then {amountremaining} else 0 end'),
        new nlobjSearchColumn('formulanumeric', null, 'sum').setFormula('case when {daysoverdue} between 61 and 90 then {amountremaining} else 0 end'),
        new nlobjSearchColumn('formulanumeric', null, 'sum').setFormula('case when {daysoverdue} > 90 then {amountremaining} else 0 end')                    
    ]
);

该查询不返回任何行。如果我删除除了实体之外的所有条件,它会返回两行,这两行都不是实际的贷项通知单。

有人对如何获得包括贷项通知单在内的正确数字有任何想法吗?

4

3 回答 3

1

贷项通知单没有逾期天数的概念。如果你运行下面的代码,总和是 50 美元吗?您应该能够使用它来获取您的未结贷记凭证价值并将其与您的未结发票金额相结合。

除此之外,您是否可能有未申请的付款或客户存款?

var agingcmemo = nlapiSearchRecord(
    'creditmemo',
    null,
    [
        new nlobjSearchFilter('mainline', null, 'is', 'T'),
        new nlobjSearchFilter('status', null, 'anyof', ['CustCred:A']),
        new nlobjSearchFilter('entity', null, 'is', 996)
    ],
    [
        new nlobjSearchColumn('entity', null, 'group'),
        new nlobjSearchColumn('amountremaining', null, 'sum')                 
    ]
);
agingcmemo.forEach(function(c){
var cols = c.getAllColumns();
cols.forEach(function(col, idx){ console.log(idx +': '+c.getValue(col));});
console.log('');
});
于 2015-08-24T22:25:45.867 回答
0

我使用了一种不同的方法在“已保存的搜索”中构建账龄报告,这可能对您更有效,因为它也考虑了贷项通知单。(以下组的年龄按月而不是 30 天为增量,但您可以将它们替换为您之前使用的公式):

标准

结果

于 2015-08-25T00:54:05.573 回答
0

您可以在搜索条件中定义“交易类型”,这样您就可以为每个特定交易类型创建保存的搜索。或者,您可以将交易类型添加为过滤器,甚至按交易类型对其进行颜色编码。在我看来,事务搜索是 NS 中所有搜索之母,因为大多数对象和字段都暴露于这种搜索类型。

于 2015-08-26T18:10:30.293 回答