/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0791_KKSV0791OPDBMapper
*	ソースファイル名：KKSV0791_KKSV0791OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2014年06月12日
*＜機能概要＞
*	BP（オプションチャンネル受付履歴一覧ディレイド処理）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2014/06/12	Fujitsu		新規作成
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.web.webview.KKW10401SF.KKW10401SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0791_KKSV0791OPDBMapper {
	
	/** KEY 機能コード */
	private static final String KEY_FUNC_CODE = "func_code";

	/**
	 * コンストラクタ
	 */
	public KKSV0791_KKSV0791OPDBMapper(){
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：オプションチャンネル受付履歴一覧ディレイド処理画面
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	public HashMap<String, Object> setKKSV079101CC(X31SDataBeanAccess[] bean, HashMap<String, Object> 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(KEY_FUNC_CODE, func_code);

		// 申込受付年月日（ＦＲＯＭ）
		StringBuilder sb = new StringBuilder();
		sb.append(bean[0].sendMessageString(KKW10401SFConst.KN_MSKM_YEAR_FROM, X31CWebConst.DATABEAN_GET_VALUE))
			.append(bean[0].sendMessageString(KKW10401SFConst.KN_MSKM_MON_FROM, X31CWebConst.DATABEAN_GET_VALUE))
			.append(bean[0].sendMessageString(KKW10401SFConst.KN_MSKM_DAY_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("key_mskm_uk_ymd_from", sb.toString());
		
		// 申込受付年月日（ＴＯ）
		sb = new StringBuilder();
		sb.append(bean[0].sendMessageString(KKW10401SFConst.KN_MSKM_YEAR_TO, X31CWebConst.DATABEAN_GET_VALUE))
			.append(bean[0].sendMessageString(KKW10401SFConst.KN_MSKM_MON_TO, X31CWebConst.DATABEAN_GET_VALUE))
			.append(bean[0].sendMessageString(KKW10401SFConst.KN_MSKM_DAY_TO, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("key_mskm_uk_ymd_to", sb.toString());
		
		// 申込チャネル
		X31SDataBeanAccess mskmChannelBean = bean[0].getDataBeanArray(KKW10401SFConst.KN_MSKM_CHANNEL).getDataBean(0);
		int mskmChannelIndex = Integer.parseInt(mskmChannelBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_GET_VALUE));
		String selectedMskmChannel = mskmChannelBean.sendMessageString(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, mskmChannelIndex);
		if("01".equals(selectedMskmChannel)){
			parentMap.put("key_mskm_channel", "1");
		} else {
			parentMap.put("key_mskm_channel", "2");
		}
		// 受付区分
		parentMap.put("key_uk_kbn", bean[0].sendMessageString(KKW10401SFConst.KN_UK_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		// 処理方法
		parentMap.put("key_trn_way", bean[0].sendMessageString(KKW10401SFConst.KN_TRAN_WAY, X31CWebConst.DATABEAN_GET_VALUE));
		// 反映区分
		parentMap.put("key_hanei_kbn", bean[0].sendMessageString("反映区分", X31CWebConst.DATABEAN_GET_VALUE));
		// オプションサービスコード、オプションチャンネル
		X31SDataBeanAccess opChBean = bean[0].getDataBeanArray(KKW10401SFConst.KN_OP_CH).getDataBean(0);
		int opChIndex = Integer.parseInt(opChBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_GET_VALUE));
		
		String selectedOpSvcCd = opChBean.sendMessageString(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, opChIndex);
		parentMap.put("key_op_svc_cd", selectedOpSvcCd);
		
		String selectedOpChNm = opChBean.sendMessageString(KKW10401SFConst.CD_DIV_NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, opChIndex);
		parentMap.put("key_op_ch_nm", selectedOpChNm.substring(selectedOpChNm.indexOf(".") + 1));
		

		// ＳＹＳＩＤ
		parentMap.put("key_sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV079101CC", parentMap);
		
		return outputMap;
	}
}
