/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CNSV0023_CNSV0023OPDBMapper
*	ソースファイル名：CNSV0023_CNSV0023OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年08月03日
*＜機能概要＞
*	BP（コンテンツ契約変更履歴(検索ボタン押下)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/03	FJ		新規作成
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CVector;
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.CNW01201SF.CNW01201SFConst;
import eo.web.webview.common.JCNWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CNSV0023_CNSV0023OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public CNSV0023_CNSV0023OPDBMapper(){
	}
	

	// ANK-4346-00-00 DEL START
//	/**
//	 * 上りマッピングをする
//	 * @param bean　[0]：コンテンツ契約変更履歴
//	 * @param outputMap
//	 * @param func_code　機能コード
//	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setCNSV002301SC(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);
//
//		// ＳＹＳＩＤ → コンテンツ契約変更履歴マップ.SYSID
//		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
//		// コンテンツサービスコード選択値 → コンテンツ契約変更履歴マップ.コンテンツサービスコード
//		parentMap.put("cont_svc_cd", bean[0].sendMessageString("コンテンツサービスコード選択値", X31CWebConst.DATABEAN_GET_VALUE));
//		// 変更日時（ＦＲＯＭ）選択値 → コンテンツ契約変更履歴マップ.変更日時（FROM）
//		parentMap.put("chge_dtm_from", bean[0].sendMessageString("変更日時（ＦＲＯＭ）選択値", X31CWebConst.DATABEAN_GET_VALUE));
//		// 変更日時（ＴＯ）選択値 → コンテンツ契約変更履歴マップ.変更日時（TO）
//		parentMap.put("chge_dtm_to", bean[0].sendMessageString("変更日時（ＴＯ）選択値", X31CWebConst.DATABEAN_GET_VALUE));
//		// 異動履歴コード選択値 → コンテンツ契約変更履歴マップ.異動履歴コード
//		parentMap.put("ido_rireki_cd", bean[0].sendMessageString("異動履歴コード選択値", X31CWebConst.DATABEAN_GET_VALUE));
//
//		outputMap.put("CNSV002301SC", parentMap);
//						
//		return outputMap;
//	}
	// ANK-4346-00-00 DEL END
	// ANK-4346-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：コンテンツ契約変更履歴
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCNSV002301CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String nowPageNum, String idoSelectStr) {
		
		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);

		// ＳＹＳＩＤ → 契約変更履歴マップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動履歴コード選択値 → 契約変更履歴マップ.変更履歴コード
		parentMap.put("change_recode_cd", bean[0].sendMessageString("異動履歴コード選択値", X31CWebConst.DATABEAN_GET_VALUE));
		// 変更日時（ＦＲＯＭ）選択値 → 契約変更履歴マップ.変更日時(開始)
		parentMap.put("change_from", bean[0].sendMessageString("変更日時（ＦＲＯＭ）選択値", X31CWebConst.DATABEAN_GET_VALUE));
		// 変更日時（ＴＯ）選択値 → 契約変更履歴マップ.変更日時(終了)
		parentMap.put("change_to", bean[0].sendMessageString("変更日時（ＴＯ）選択値", X31CWebConst.DATABEAN_GET_VALUE));
		// ソート順：3（更新日時） → 契約変更履歴マップ.ソート順
		parentMap.put("sort", "3");
		// 昇順/降順：1(降順) → 契約変更履歴マップ.昇順/降順
		parentMap.put("sort_order", "0,0");
		// 初期表示時：常に1ページ → 契約変更履歴マップ.ページ番号
		parentMap.put("page", nowPageNum);
		// 1ページに表示する件数（5件） → 契約変更履歴マップ.1ページに表示する件数
		parentMap.put("per_page", "5");

		parentMap.put("select_radio", idoSelectStr);


		outputMap.put("CNSV002301CC", parentMap);
						
		return outputMap;
	}
	// ANK-4346-00-00 ADD END

	/**
	 * 下りマッピング
	 * @param bean　[0]：コンテンツ契約変更履歴
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCNSV002301SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CNSV002301SC")){
			parentMap = (HashMap)outputMap.get("CNSV002301SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCNSV002301SC_cont_kei_chge_list_kei_chge_jsk_list = bean[0].getDataBeanArray("コンテンツ契約変更履歴");
		childList = null;
		if(listCNSV002301SC_cont_kei_chge_list_kei_chge_jsk_list != null && parentMap != null && parentMap.containsKey("kei_chge_jsk_list")){
			childList = (ArrayList)parentMap.get("kei_chge_jsk_list");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCNSV002301SC_cont_kei_chge_list_kei_chge_jsk_list.getCount() -1 >= i){
					subbean = listCNSV002301SC_cont_kei_chge_list_kei_chge_jsk_list.getDataBean(i);
				}else{
					subbean = listCNSV002301SC_cont_kei_chge_list_kei_chge_jsk_list.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// コンテンツ契約変更履歴.変更年月日時分秒 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.変更年月日時分秒
				if (childMap != null) {
					String work = (String)childMap.get("chge_dtm");
					subbean.sendMessageString("変更年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, work.substring(0, 12));
				} else {
					subbean.sendMessageString("変更年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.コンテンツ契約番号 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.コンテンツ契約番号
				if (childMap != null) {
					subbean.sendMessageString("コンテンツ契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_kei_no"));
				} else {
					subbean.sendMessageString("コンテンツ契約番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.コンテンツ名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.コンテンツ名
				if (childMap != null) {
					subbean.sendMessageString("コンテンツ名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_nm"));
				} else {
					subbean.sendMessageString("コンテンツ名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.ＣＣＭＧデータ更新者ＩＤ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.CCMGデータ更新者ID
				if (childMap != null) {
					subbean.sendMessageString("ＣＣＭＧデータ更新者ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ccmg_data_ksnsha_id"));
				} else {
					subbean.sendMessageString("ＣＣＭＧデータ更新者ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.ＣＣＭＧデータ更新者名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.CCMGデータ更新者名
				if (childMap != null) {
					subbean.sendMessageString("ＣＣＭＧデータ更新者名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ccmg_data_ksnsha_nm"));
				} else {
					subbean.sendMessageString("ＣＣＭＧデータ更新者名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.変更前データ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.変更前データ
				if (childMap != null) {
					subbean.sendMessageString("変更前データ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chge_bf_data"));
				} else {
					subbean.sendMessageString("変更前データ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.変更後データ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.変更後データ
				if (childMap != null) {
					subbean.sendMessageString("変更後データ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chge_af_data"));
				} else {
					subbean.sendMessageString("変更後データ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.異動履歴コード名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.異動履歴コード名
				if (childMap != null) {
					subbean.sendMessageString("異動履歴コード名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_rireki_cd_nm"));
				} else {
					subbean.sendMessageString("異動履歴コード名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.課金訂正変更メモ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.課金訂正変更メモ
				if (childMap != null) {
					subbean.sendMessageString("課金訂正変更メモ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chrg_teise_rsn_memo"));
				} else {
					subbean.sendMessageString("課金訂正変更メモ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				if (i % 2 == 1) {
					subbean.sendMessageString("ＣＳＳクラス名", X31CWebConst.DATABEAN_SET_VALUE, "odd");
				} else {
					subbean.sendMessageString("ＣＳＳクラス名", X31CWebConst.DATABEAN_SET_VALUE, "even");
				}
				// コンテンツ契約変更履歴.０５０電話番号 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.０５０電話番号
				if (childMap != null) {
					subbean.sendMessageString("０５０電話番号", X31CWebConst.DATABEAN_SET_VALUE, JCNWebCommon.formatTelNo((String)childMap.get("n_050_telno")));
				} else {
					subbean.sendMessageString("０５０電話番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	
	// ANK-4346-00-00 ADD START
	/**
	 * 下りマッピング
	 * @param bean　[0]：コンテンツ契約変更履歴
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCNSV002301CC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CNSV002301CC")){
			parentMap = (HashMap)outputMap.get("CNSV002301CC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCNSV002301CC_cont_kei_chge_list_kei_chge_jsk_list = bean[0].getDataBeanArray("コンテンツ契約変更履歴");
		childList = null;
		if(listCNSV002301CC_cont_kei_chge_list_kei_chge_jsk_list != null && parentMap != null && parentMap.containsKey("contract_histories")){
			childList = (ArrayList)parentMap.get("contract_histories");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCNSV002301CC_cont_kei_chge_list_kei_chge_jsk_list.getCount() -1 >= i){
					subbean = listCNSV002301CC_cont_kei_chge_list_kei_chge_jsk_list.getDataBean(i);
				}else{
					subbean = listCNSV002301CC_cont_kei_chge_list_kei_chge_jsk_list.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// コンテンツ契約変更履歴.変更年月日時分秒 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.変更年月日時分秒
				if (childMap != null) {
					String work = (String)childMap.get("chge_dtm");
					if(work != null && !"".equals(work))
					{
						String replaceWork = work.replaceAll("[^0-9]","");
						subbean.sendMessageString("変更年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, replaceWork.substring(0, 12));
					}
					else
					{
						subbean.sendMessageString("変更年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
				} else {
					subbean.sendMessageString("変更年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.コンテンツ契約番号 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.コンテンツ契約番号
				if (childMap != null) {
					subbean.sendMessageString("コンテンツ契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_kei_no"));
				} else {
					subbean.sendMessageString("コンテンツ契約番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.コンテンツ名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.コンテンツサービス名
				if (childMap != null) {
					subbean.sendMessageString("コンテンツサービス名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_svc_nm"));
				} else {
					subbean.sendMessageString("コンテンツサービス名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.コンテンツ名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.コンテンツ名
				if (childMap != null) {
					subbean.sendMessageString("コンテンツ名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_nm"));
				} else {
					subbean.sendMessageString("コンテンツ名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.ＣＣＭＧデータ更新者ＩＤ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.CCMGデータ更新者ID
				if (childMap != null) {
					subbean.sendMessageString("ＣＣＭＧデータ更新者ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ccmg_data_ksnsha_id"));
				} else {
					subbean.sendMessageString("ＣＣＭＧデータ更新者ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.ＣＣＭＧデータ更新者名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.CCMGデータ更新者名
				if (childMap != null) {
					subbean.sendMessageString("ＣＣＭＧデータ更新者名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ccmg_data_ksnsha_nm"));
				} else {
					subbean.sendMessageString("ＣＣＭＧデータ更新者名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.変更前データ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.変更前データ
				if (childMap != null) {
					subbean.sendMessageString("変更前データ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chge_bf_data"));
				} else {
					subbean.sendMessageString("変更前データ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.変更後データ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.変更後データ
				if (childMap != null) {
					subbean.sendMessageString("変更後データ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chge_af_data"));
				} else {
					subbean.sendMessageString("変更後データ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.異動履歴コード名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.異動履歴コード名
				if (childMap != null) {
					subbean.sendMessageString("異動履歴コード名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_rireki_cd_nm"));
				} else {
					subbean.sendMessageString("異動履歴コード名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.課金訂正変更メモ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.課金訂正変更メモ
				if (childMap != null) {
					subbean.sendMessageString("課金訂正変更メモ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chrg_teise_rsn_memo"));
				} else {
					subbean.sendMessageString("課金訂正変更メモ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				if (i % 2 == 1) {
					subbean.sendMessageString("ＣＳＳクラス名", X31CWebConst.DATABEAN_SET_VALUE, "odd");
				} else {
					subbean.sendMessageString("ＣＳＳクラス名", X31CWebConst.DATABEAN_SET_VALUE, "even");
				}
				// コンテンツ契約変更履歴.０５０電話番号 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.０５０電話番号
				if (childMap != null) {
					subbean.sendMessageString("０５０電話番号", X31CWebConst.DATABEAN_SET_VALUE, JCNWebCommon.formatTelNo((String)childMap.get("n_050_telno")));
				} else {
					subbean.sendMessageString("０５０電話番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


			
		return bean;
	}
	// ANK-4346-00-00 ADD END
	

}