如何在NetSuite中查找与客户退款相关的客户存款

时间:2016-01-29 20:25:47

标签: netsuite

我有客户退款记录,现在我需要找到相关的客户存款记录?我已经查看了SuiteScript记录浏览器,但我没有看到其中的数据字段来连接它们。

谢谢, 拉斯

1 个答案:

答案 0 :(得分:1)

如果您仍在尝试处理特定销售订单的存款,则可以进行简单搜索:

nlapiSearchRecord('customerdeposit', null, new nlobjSearchFilter('createdfrom', null, 'is', 1217));
//1217 is internal id of original sales order

但是,如果您仍在寻求退还特定存款,您还应该知道正确创建客户退款的方式仍未记录:

var cr = nlapiCreateRecord('customerrefund',{entity:127}); // id of customer
cr.setFieldValue('paymentmethod', 1);
//may need to cycle through deposit lines to find the right one(s)
//cr.setLineItemValue('deposit', 'doc', 1, '1226');
//cr.setLineItemValue('deposit', 'amount', 1, 500);
cr.setLineItemValue('deposit', 'apply', 1, 'T');  // need this for at least one line.
nlapiSubmitRecord(cr);

然后,如果你想再次找到受影响的存款,这很奇怪。如果您可以从退款的文档编号开始,您将收集应用它的交易的ID,然后获取适用的交易:

var appliedIds = nlapiSearchRecord('customerrefund', null, [new nlobjSearchFilter('tranid', null, 'is', '2073'),
    new nlobjSearchFilter('applyingtransaction', null, 'noneof', ['@NONE@'])
], [
    new nlobjSearchColumn('tranid'),
    new nlobjSearchColumn('applyingtransaction'),
    new nlobjSearchColumn('applyinglinktype')
]).map(function(cr) {
    console.log(cr.getValue('deposit', 'applying'));
    console.log(cr.getValue('applyinglinktype'));
    if ('payment' == cr.getValue('applyinglinktype')) {
        return cr.getValue('applyingtransaction');
    }
    return null;
}).filter(function(id) {
    return id;
});
nlapiSearchRecord('depositapplication', null, [
    new nlobjSearchFilter('internalid', null, 'anyof', appliedIds),
    new nlobjSearchFilter('appliedtolinktype', null, 'anyof', ['DepAppl'])
], new nlobjSearchColumn('appliedtotransaction')).
forEach(function(da) {
    console.log(da.getValue('appliedtotransaction'));
});