如何在保存的搜索中获取客户存款的剩余金额(包括 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