月額データの算出(in:文字列型A/数値型B/日付型C/数値型D、out:テーブル型E)

長期サービスの前受金について、契約月数分の売上振替伝票データをデータ項目に格納します

    A. 摘要データが格納されている文字列型データ項目を選択してくださいデータ項目選択文字列型必須
    B. 総額が格納されている数値型データ項目を選択してくださいデータ項目選択数値型必須
    C. サービス開始月が格納されている日付型データ項目を選択してくださいデータ項目選択日付型必須
    D. 契約月数が格納されている数値型データ項目を選択してくださいデータ項目選択数値型必須
    E. テーブル型データ項目を選択してください(更新)データ項目選択テーブル型必須
    F. 借方勘定科目をセットしてください (例 "前受金")単一行記述
    G. 借方補助勘定科目をセットしてください (例 "保守サービス")単一行記述
    H. 貸方勘定科目をセットしてください (例 "売上高")単一行記述
    I. 貸方補助勘定科目をセットしてください (例 "保守サービス")単一行記述
    -設定変数名設定ラベル
    Aconf_DataIdA摘要データが格納されている文字列型データ項目を選択してください
    Bconf_DataIdB総額が格納されている数値型データ項目を選択してください
    Cconf_DataIdCサービス開始月が格納されている日付型データ項目を選択してください
    Dconf_DataIdD契約月数が格納されている数値型データ項目を選択してください
    Econf_DataIdEテーブル型データ項目を選択してください(更新)
    Fconf_debitsTitle借方勘定科目をセットしてください (例 "前受金")
    Gconf_debitsSubTitle借方補助勘定科目をセットしてください (例 "保守サービス")
    Hconf_creditsTitle貸方勘定科目をセットしてください (例 "売上高")
    Iconf_creditsSubTitle貸方補助勘定科目をセットしてください (例 "保守サービス")
    // Transfer Slip Records Generation (ver. 20160908)
    // (c) 2016, Questetra, Inc. (the MIT License)
    
    //// == 工程コンフィグの参照 / Config Retrieving ==
    var dataIdA = configs.get( "conf_DataIdA" ); // (returns Number)
    var dataIdB = configs.get( "conf_DataIdB" ); // (returns Number)
    var dataIdC = configs.get( "conf_DataIdC" ); // (returns Number)
    var dataIdD = configs.get( "conf_DataIdD" ); // (returns Number)
    var dataIdE = configs.get( "conf_DataIdE" ); // (returns Number)
    
    var debitsTitle     = configs.get( "conf_debitsTitle" ) + "";
    var debitsSubTitle  = configs.get( "conf_debitsSubTitle" ) + "";
    var creditsTitle    = configs.get( "conf_creditsTitle" ) + "";
    var creditsSubTitle = configs.get( "conf_creditsSubTitle" ) + "";
    
    //// == ワークフローデータの参照 / Data Retrieving ==
    var remarkString = data.get( dataIdA ) + "";
    var totalAmount = data.get( dataIdB );
    var startMonth = data.get( dataIdC ).getFirstDateInMonth();
    //  startMonth: com.questetra.bpms.util.AddableDate()
    var termsMonth = data.get( dataIdD ) - 0;
    
    //// == 演算 / Calculating ==
    var monthlyAmount = Math.floor( totalAmount / termsMonth );
    var startAmount = totalAmount - monthlyAmount * (termsMonth -1);
    
    var myTable = new com.questetra.bpms.core.model.formdata.ListArray();
    for (var i=0; i < termsMonth; i++){
      var tmpRow = new com.questetra.bpms.core.model.formdata.ListArray.ListRow();
      tmpRow.addCol( startMonth.addMonths(i) + "" );
      tmpRow.addCol( debitsTitle );
      tmpRow.addCol( debitsSubTitle );
      if( i === 0 ){
        tmpRow.addCol( startAmount );
      }else{
        tmpRow.addCol( monthlyAmount );
      }
      tmpRow.addCol( creditsTitle );
      tmpRow.addCol( creditsSubTitle );
      if( i === 0 ){
        tmpRow.addCol( startAmount );
      }else{
        tmpRow.addCol( monthlyAmount );
      }
      var yyyy_MM = (startMonth.addMonths(i) + "").slice(0,7);
      tmpRow.addCol( yyyy_MM + "_@_" + remarkString );
      myTable.addRow( tmpRow );
    }
    
    //// == ワークフローデータへの代入 / Data Updating ==
    retVal.put( dataIdE, myTable );
    

    • A’: Aで選択したデータ項目に格納されている摘要
    • B’: Bで選択したデータ項目に格納されている総額
    • C’: Cで選択したデータ項目に格納されているサービス開始月
    • D’: Dで選択したデータ項目に格納されている契約月数
    • 長期サービスの前受金について、契約月数分の売上振替伝票データが、Eで選択したテーブル型データ項目に格納されます
    • 金額は整数値が想定されています。B’がD’にて割り切れない場合は小数点以下が切り捨てられ、端数分は初月の金額に加算されます
    • テーブル想定:年月情報(文字列カラム)、借方勘定科目名(文字列カラム)、借方補助勘定科目名(文字列カラム)、借方金額(数値カラム)、貸方勘定科目名(文字列カラム)、貸方補助勘定科目名(文字列カラム)、貸方金額(数値カラム)、摘要名(文字列カラム)