Example #1
0
  public ArrayList<VRMap> getServiceCode(Map<String, String> map, ACDBManager dbm) {
    ArrayList<VRMap> al = super.getServiceCode(map, dbm);
    Map<String, Integer> mp = null;
    // 特定入所者チェックがついてなかった場合は食費を上書きせずに返す
    // [ID:0000749][Shin Fujihara] 2012/10 edit begin 2012年度対応 特定入所者の履歴管理機能
    //        if (new Integer(1).equals(map.get("7")) || "1".equals(map.get("7"))) {
    //            // 食費は必要ないためデータを消す
    //            return al;
    //        }
    if (ACCastUtilities.toInt(map.get("7"), 1) != 2) {
      // 食費は必要ないためデータを消す
      return al;
    }
    // [ID:0000749][Shin Fujihara] 2012/10 edit end 2012年度対応 特定入所者の履歴管理機能

    // 事業所情報の取得
    VRList temp = new VRArrayList();

    try {
      temp =
          QkanCommon.getProviderServiceDetail(
              dbm,
              ACCastUtilities.toString(map.get("PROVIDER_ID")),
              ACCastUtilities.toInt(getSystemServiceKindDetail(), 0));
    } catch (Exception e) {
      return al;
    }

    VRMap providerInfo = (VRMap) temp.get(0);

    for (int i = 0; i < al.size(); i++) {
      mp = (Map<String, Integer>) al.get(i);

      String val = ACCastUtilities.toString(mp.get("SYSTEM_SERVICE_CODE_ITEM"), "");
      if (SERVICE_CODE_SHOKUHI.equals(val)) {
        // 食費のレコード
        if (this.shokuhi <= 0) {
          // 食費が0円以下の場合
          // 該当レコードを削除する。
          al.remove(i);
          // 削除したためインデックスを1つ戻す。
          i--;
        } else {
          // 食費が0円以下でない場合
          // 食費を業務から渡された値で上書きする。
          mp.put("SERVICE_UNIT", new Integer(this.shokuhi));
        }
      } else if (SERVICE_CODE_UNIT_ROOM.equals(val)) {
        // ユニット型個室のレコード
        // 費用単価が0以下で設定されている場合、戻り値から削除
        // ユニット型個室の費用単価を取得
        int unitRoom = ACCastUtilities.toInt(providerInfo.get(this.PATH_UNIT_ROOM), 0);
        if (unitRoom <= 0) {
          // 該当レコードを削除する。
          al.remove(i);
          // 削除したためインデックスを1つ戻す。
          i--;
        }
      } else if (SERVICE_CODE_UNIT_SEMI_ROOM.equals(val)) {
        // ユニット型準個室のレコード
        // 費用単価が0以下で設定されている場合、戻り値から削除
        // ユニット型準個室の費用単価を取得
        int unitSemiRoom = ACCastUtilities.toInt(providerInfo.get(this.PATH_UNIT_SEMI_ROOM), 0);
        if (unitSemiRoom <= 0) {
          // 該当レコードを削除する。
          al.remove(i);
          // 削除したためインデックスを1つ戻す。
          i--;
        }
      } else if (SERVICE_CODE_NORMAL_ROOM.equals(val)) {
        // 従来型個室のレコード
        // 費用単価が0以下で設定されている場合、戻り値から削除
        // 従来型個室の費用単価を取得
        int normalRoom = ACCastUtilities.toInt(providerInfo.get(this.PATH_NORMAL_ROOM), 0);
        if (normalRoom <= 0) {
          // 該当レコードを削除する。
          al.remove(i);
          // 削除したためインデックスを1つ戻す。
          i--;
        }
      } else if (SERVICE_CODE_TASHO_ROOM.equals(val)) {
        // 多床室のレコード
        // 費用単価が0以下で設定されている場合、戻り値から削除
        // 多床室の費用単価を取得
        int tashoRoom = ACCastUtilities.toInt(providerInfo.get(this.PATH_TASHO_ROOM), 0);
        if (tashoRoom <= 0) {
          // 該当レコードを削除する。
          al.remove(i);
          // 削除したためインデックスを1つ戻す。
          i--;
        }
      }
    }

    return al;
  }