0

特定の販売注文にリンクされたすべての顧客預金の残高を取得する必要があります

残高= 利用可能/未適用額

以下では、保存された検索でこれをどのように解決したかを示します。おまけとして、同じことを行うための SuiteScript 1.0 コードも含めます。

4

1 に答える 1

1

特定のセールス オーダーレコードにリンクされたすべての顧客預金の残高を表示するには:

次のように、トランザクションの保存済み検索を作成します。

  • 基準(式を使用)

    • (タイプISデポジット アプリケーションAND
    • フィールドから作成 > 販売注文IS販売注文 #xyz ) または
    • (タイプIS顧客保証金AND
    • IS販売注文 #xyzから作成) 保存された検索条件
  • 結果

    • 数式 (数値) (集計型SUM ):CASE WHEN {type} = 'Customer Deposit' THEN {debitamount} ELSE -{creditamount} END 保存された検索結果

ボーナス、特定のセールス オーダーレコードにリンクされたすべての顧客預金の残りの金額を取得するための SuiteScript 1.0 コード:

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
于 2020-06-09T12:16:57.750 に答える