/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：ACSV0014_ACSV0014OPDBMapper
*	ソースファイル名：ACSV0014_ACSV0014OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年08月03日
*＜機能概要＞
*	BP（通話明細再発行画面情報取得）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/08/03	FJ		新規作成
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.web.webview.ACW00602SF.ACW00602SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class ACSV0014_ACSV0014OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public ACSV0014_ACSV0014OPDBMapper(){
	}
	
	/** 無（値） */
	private static final String DATA_NONE_VALUE = "";
	
	/** 無（名称） */
	private static final String DATA_NONE_NM = "無";
	
	/** 料金 */
	private static final String PRC = "prc";

	/** 料金 円 */
	private static final String PRC_YEN = "円";
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：通話明細再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setACSV001401SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 業務パラメータＩＤ → 定額料金手数料一覧照会マップ.ＫＥＹ＿業務パラメータID
		parentMap.put("key_work_param_id", bean[0].sendMessageString("業務パラメータＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// システムコード → 定額料金手数料一覧照会マップ.ＫＥＹ＿システムコード
		parentMap.put("key_sys_cd", bean[0].sendMessageString("システムコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 抽出変換コード → 定額料金手数料一覧照会マップ.ＫＥＹ＿抽出変換コード
		parentMap.put("key_chsht_chg_cd", bean[0].sendMessageString("抽出変換コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用日付 → 定額料金手数料一覧照会マップ.ＫＥＹ＿運用日付
		parentMap.put("key_unyo_ymd", bean[0].sendMessageString("運用日付", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("ACSV001401SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：通話明細再発行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getACSV001401SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("ACSV001401SC")){
			parentMap = (HashMap)outputMap.get("ACSV001401SC");
		}

		ArrayList<HashMap> childList = null;
		
		X31SDataBeanAccessArray listACSV001401SC_commision_um_list_EAC0281B020CBSMsg1List = bean[0].getDataBeanArray(ACW00602SFConst.COMMISION_UM_LIST);
		
		//データBeanアクセスクラスに対象のプルダウン情報Beanを設定します
		X31SDataBeanAccess pulldownSubbean = listACSV001401SC_commision_um_list_EAC0281B020CBSMsg1List.getDataBean(0);
		//プルダウン情報Beanの領域(手数料値)のクリアを行います
		pulldownSubbean.sendMessage(ACW00602SFConst.COMMISION_VALUE_01, X31CWebConst.DATABEAN_CLEAR);
		//プルダウン情報Beanの領域(手数料名称)のクリアを行います
		pulldownSubbean.sendMessage(ACW00602SFConst.COMMISION_NM_01, X31CWebConst.DATABEAN_CLEAR);
		
		childList = null;
		if(parentMap.containsKey("EAC0281B020CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EAC0281B020CBSMsg1List");

			// 手数料有無リスト.手数料値の設定
			pulldownSubbean.sendMessageString(ACW00602SFConst.COMMISION_VALUE_01, X31CWebConst.DATABEAN_ADD_VALUE, DATA_NONE_VALUE);
			// 手数料有無リスト.手数料名称の設定
			pulldownSubbean.sendMessageString(ACW00602SFConst.COMMISION_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, DATA_NONE_NM);
			// 手数料有無リスト.出力料金グループコードリストの設定
			pulldownSubbean.sendMessageString(ACW00602SFConst.OUTPUT_PRC_GRP_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, DATA_NONE_VALUE);
			// 手数料有無リスト.出力料金コースコードリストの設定
			pulldownSubbean.sendMessageString(ACW00602SFConst.OUT_PCRS_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, DATA_NONE_VALUE);
			// 手数料有無リスト.出力料金サービスコードリストの設定
			pulldownSubbean.sendMessageString(ACW00602SFConst.OUT_PRC_SVC_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, DATA_NONE_VALUE);
			// 手数料有無リスト.出力料金項目コードリストの設定
			pulldownSubbean.sendMessageString(ACW00602SFConst.OUT_PRC_KMK_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, DATA_NONE_VALUE);
			
			for (HashMap childMap : childList)
			{
				// 手数料有無マップ.手数料値
				String value = (String) childMap.get(PRC);
				// 手数料有無リスト.手数料値の設定
				pulldownSubbean.sendMessageString(ACW00602SFConst.COMMISION_VALUE_01, X31CWebConst.DATABEAN_ADD_VALUE, value);
				// 手数料有無リスト.手数料名称の設定
				pulldownSubbean.sendMessageString(ACW00602SFConst.COMMISION_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, value + PRC_YEN);
				// 手数料有無リスト.出力料金グループコードリストの設定
				pulldownSubbean.sendMessageString(ACW00602SFConst.OUTPUT_PRC_GRP_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("output_prc_grp_cd"));
				// 手数料有無リスト.出力料金コースコードリストの設定
				pulldownSubbean.sendMessageString(ACW00602SFConst.OUT_PCRS_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("out_pcrs_cd"));
				// 手数料有無リスト.出力料金サービスコードリストの設定
				pulldownSubbean.sendMessageString(ACW00602SFConst.OUT_PRC_SVC_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("out_prc_svc_cd"));
				// 手数料有無リスト.出力料金項目コードリストの設定
				pulldownSubbean.sendMessageString(ACW00602SFConst.OUT_PRC_KMK_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("out_prc_kmk_cd"));
			}
		}


		return bean;
	}


}