如何在保存的搜索中获取客户存款的剩余金额(包括 SuiteScript 代码)
How to get Remaining Amount of Customer Deposits in Saved Search (includes SuiteScript code)
我需要获取链接到特定销售订单[=20]的所有客户存款的剩余余额 =]
余额 = available/unapplied金额
下面,我将在保存的搜索中向您展示我是如何解决这个问题的。
作为奖励,我还将包括 SuiteScript 1.0 代码来执行相同的操作。
显示链接到特定销售订单的所有客户存款的剩余金额记录:
创建交易保存搜索如下:
条件(使用表达式)
- ( 类型 IS 存款申请 AND
- 创建自字段 > 销售订单 IS 销售订单 #xyz ) OR
- ( 类型 IS 客户存款 AND
- 创建自 IS 销售订单#xyz)
结果
- 公式(数值)(汇总类型 SUM):
CASE WHEN {type} = 'Customer Deposit' THEN {debitamount} ELSE -{creditamount} END
奖金,SuiteScript 1.0 代码可获取链接到特定销售订单[的所有客户存款的剩余金额 =50=]记录:
function customerDepositsRemainingBalance(salesorder_internalid) {
var filters = [[["type","anyof","DepAppl"],"AND",["createdfrom.salesorder","anyof",salesorder_internalid]],"OR",[["type","anyof","CustDep"],"AND",["createdfrom","anyof",salesorder_internalid]]];
var columns = [new nlobjSearchColumn('formulanumeric',null,'SUM')];
columns[0].setFormula("CASE WHEN {type} = 'Customer Deposit' THEN {debitamount} ELSE -{creditamount} END");
var search = nlapiSearchRecord('transaction',null,filters,columns);
if(search == null) return 0;
return Number(search[0].getValue(columns[0]));
}
// Example Usage
balance = customerDepositsRemainingBalance(3247434); // returns 50
balance = customerDepositsRemainingBalance(3256644); // returns 0
我需要获取链接到特定销售订单[=20]的所有客户存款的剩余余额 =]
余额 = available/unapplied金额
下面,我将在保存的搜索中向您展示我是如何解决这个问题的。 作为奖励,我还将包括 SuiteScript 1.0 代码来执行相同的操作。
显示链接到特定销售订单的所有客户存款的剩余金额记录:
创建交易保存搜索如下:
条件(使用表达式)
- ( 类型 IS 存款申请 AND
- 创建自字段 > 销售订单 IS 销售订单 #xyz ) OR
- ( 类型 IS 客户存款 AND
- 创建自 IS 销售订单#xyz)
结果
- 公式(数值)(汇总类型 SUM):
CASE WHEN {type} = 'Customer Deposit' THEN {debitamount} ELSE -{creditamount} END
- 公式(数值)(汇总类型 SUM):
奖金,SuiteScript 1.0 代码可获取链接到特定销售订单[的所有客户存款的剩余金额 =50=]记录:
function customerDepositsRemainingBalance(salesorder_internalid) {
var filters = [[["type","anyof","DepAppl"],"AND",["createdfrom.salesorder","anyof",salesorder_internalid]],"OR",[["type","anyof","CustDep"],"AND",["createdfrom","anyof",salesorder_internalid]]];
var columns = [new nlobjSearchColumn('formulanumeric',null,'SUM')];
columns[0].setFormula("CASE WHEN {type} = 'Customer Deposit' THEN {debitamount} ELSE -{creditamount} END");
var search = nlapiSearchRecord('transaction',null,filters,columns);
if(search == null) return 0;
return Number(search[0].getValue(columns[0]));
}
// Example Usage
balance = customerDepositsRemainingBalance(3247434); // returns 50
balance = customerDepositsRemainingBalance(3256644); // returns 0