/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0534_KKSV0534OPDBMapper
*	ソースファイル名：KKSV0534_KKSV0534OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2012年03月23日
*＜機能概要＞
*	BP（eo光テレビケーブルテレビガイド誌更新画面初期表示サービス）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/03/23	Fujitsu		新規作成
*	v4.00.00	2012/10/25	FJ）庭山	【IT1-2012-0001572】対応
*	v4.01.00	2012/11/08	FJ）庭山	【IT2-2012-0001650】対応
*	v4.02.00	2013/03/03	FJ）稲岡	【ST1-2013-0000253】対応
*	v8.00.00	2014/04/21	FJ）石橋	【OM-2014-0001530】 対応
**********************************************************************/
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.common.constant.JZM0171Constant;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.KKW02522SF.KKW02522SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0534_KKSV0534OPDBMapper {
	
	/** 最大終了年月日 */
	private static final String MAX_ENDYMD = "20991231";
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
	/** 利用場所と同じ */
	private static final String USE_PC_AD_D_DOITSU = "0";
/* ++++++++++ v4.02.00 追加終了 ++++++++++ */

	/**
	 * コンストラクタ
	 */
	public KKSV0534_KKSV0534OPDBMapper(){
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光テレビガイド誌更新
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV053401CC(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);
		
		// "CD01195"(資料送付先識別コード) → 住所情報識別コード取得マップ.ＫＥＹ＿コード種別コード
		parentMap.put("key_cd_sbt_cd", JZM0171Constant.CD01195);
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
		// 顧客契約引継＿ＳＹＳＩＤ
		parentMap.put("sys_id", bean[0].sendMessageString(KKW02522SFConst.CUST_KEI_HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
		// 顧客契約引継＿サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString(KKW02522SFConst.CUST_KEI_HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 顧客契約引継＿オプションサービス契約番号
		parentMap.put("op_svc_kei_no", bean[0].sendMessageString(KKW02522SFConst.CUST_KEI_HKTGI_OP_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日
		parentMap.put("stdardymd", bean[0].sendMessageString(KKW02522SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		// オプションチャンネル利用終了日数 → 業務パラメータ管理一意照会マップ.ＫＥＹ＿業務パラメータID
		parentMap.put("key_work_param_id", "KK_OP_CNL_END DAYS");
		
		outputMap.put("KKSV053401CC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光テレビガイド誌更新
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV053401ShokaiCC(X31SDataBeanAccess[] bean, HashMap outputMap) 
	{
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
		// 顧客契約引継＿ＳＹＳＩＤ
		parentMap.put("sys_id", bean[0].sendMessageString(KKW02522SFConst.CUST_KEI_HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 顧客契約引継＿サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString(KKW02522SFConst.CUST_KEI_HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
/* ++++++++++ v4.02.00 追加終了 ++++++++++ */
		// 顧客契約引継＿オプションサービス契約番号
		parentMap.put("op_svc_kei_no", bean[0].sendMessageString(KKW02522SFConst.CUST_KEI_HKTGI_OP_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日
		parentMap.put("stdardymd", bean[0].sendMessageString(KKW02522SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV053401ShokaiCC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：ｅｏ光テレビガイド誌更新
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV053401CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV053401CC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV053401CC");
		}
		
		ArrayList childList = null;
		String staYmd = "";
		String endYmd = "";
		
		X31SDataBeanAccessArray listKKSV053401SC_ad_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("住所情報");
		listKKSV053401SC_ad_info_EZM0171B012CBSMsg1List.clearArray();
		X31SDataBeanAccess subbean = listKKSV053401SC_ad_info_EZM0171B012CBSMsg1List.addDataBean();
		
		// 空白選択支の設定
		subbean.sendMessageString(KKW02522SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW02522SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW02522SFConst.DEFAULT_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
		
		// 初期表示コード
		String shkDspCd = null;
		
		if(parentMap.containsKey("EZM0171B012CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");
			
			int index = 1;
			
			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				
				// "2":利用場所住所情報と同じ は対象外
				if ("2".equals((String)childMap.get("cd_div")))
				{
					continue;
				}
				
				// 住所情報.コードタイプコード値リスト ← 住所情報識別コード取得マップ.コード名称管理コード区分一覧照会明細.コード区分
				subbean.sendMessageString("コードタイプコード値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
				// 住所情報.コードタイプ名称リスト ← 住所情報識別コード取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
				subbean.sendMessageString("コードタイプ名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, index + "." + (String)childMap.get("cd_div_nm"));
				
				// 初期表示コード取得
				shkDspCd = (String)childMap.get("shk_dsp_cd");
				
				// 選択インデックス設定
				if(shkDspCd != null && ("1").equals(shkDspCd))
				{
					// 契約者住所情報と同じ 選択
					subbean.sendMessageString(KKW02522SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i + 1));
				}
				
				index++;
			}
		}
		
		// サービス契約一意照会
		if(parentMap.containsKey("EKK0081A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0081A010CBSMsg1List");
			
			if(childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// サービス契約ステータス（サービス契約） ← サービス契約一意照会マップ.サービス契約一意照会明細.サービス契約ステータス
				bean[0].sendMessageString(KKW02522SFConst.KK0081_SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_stat"));
				// 最終更新年月日時分秒（サービス契約） ← サービス契約一意照会マップ.サービス契約一意照会明細.最終更新年月日時分秒
				bean[0].sendMessageString(KKW02522SFConst.KK0081_LAST_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("last_upd_dtm"));
			}
		}
		
		/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
		// オプションサービス契約ステータス ← オプションサービス契約一覧照会.オプションサービス契約ステータス(eo光テレビガイド誌)
		bean[0].sendMessageString(KKW02522SFConst.KK0351_OP_SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("op_svc_kei_stat"));
		/* ++++++++++ v8.00.00 追加終了 ++++++++++ */

		// オプションサービス契約一意照会
		if(parentMap.containsKey("EKK0351A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0351A010CBSMsg1List");
			
			if(childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// オプションサービス契約番号
				bean[0].sendMessageString(KKW02522SFConst.CUST_KEI_HKTGI_OP_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("op_svc_kei_no"));
				// オプションサービス契約ステータス（オプションサービス契約） ← オプションサービス一意照会マップ.オプションサービス契約一意照会明細.オプションサービス契約ステータス
				bean[0].sendMessageString(KKW02522SFConst.KK0351_OP_SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("op_svc_kei_stat"));
				// オプションサービス一意照会マップ.オプションサービス契約一意照会明細.サービス開始年月日
				staYmd = (String)childMap.get("svc_staymd");
				// オプションサービス一意照会マップ.オプションサービス契約一意照会明細.サービス終了年月日
				endYmd = (String)childMap.get("svc_endymd");
			}
		}
		
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
		// 送付先関連情報
		setSohusInfoToBean(bean, parentMap);
/* ++++++++++ v4.02.00 追加終了 ++++++++++ */
		
		// 利用開始年月日 ← 異動予約一覧照会マップ.異動予約一覧照会明細.予約適用年月日
		bean[0].sendMessageString(KKW02522SFConst.USE_STAYMD, X31CWebConst.DATABEAN_SET_VALUE, getYmd(staYmd, (String)parentMap.get("use_staymd")));
		// 利用終了年月日 ← 異動予約一覧照会マップ.異動予約一覧照会明細.予約適用年月日
		bean[0].sendMessageString(KKW02522SFConst.USE_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, getYmd(endYmd, (String)parentMap.get("use_endymd")));
		// テレビガイド誌利用終了可能日数 ← 業務パラメータ管理一意照会マップ.業務パラメータ管理一意照会明細.業務パラメータ設定値
		bean[0].sendMessageString(KKW02522SFConst.KK_OP_CNL_END_DAYS, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("work_param_sette_value"));
		
		return bean;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：ｅｏ光テレビガイド誌更新
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV053401ShokaiCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV053401ShokaiCC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV053401ShokaiCC");
		}
		
		ArrayList childList = null;
		String staYmd = "";
		String endYmd = "";
		
		// オプションサービス契約一意照会
		if(parentMap.containsKey("EKK0351A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0351A010CBSMsg1List");
			
			if(childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// オプションサービス契約番号
				bean[0].sendMessageString(KKW02522SFConst.CUST_KEI_HKTGI_OP_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("op_svc_kei_no"));
				// オプションサービス契約ステータス（オプションサービス契約） ← オプションサービス一意照会マップ.オプションサービス契約一意照会明細.オプションサービス契約ステータス
				bean[0].sendMessageString(KKW02522SFConst.KK0351_OP_SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("op_svc_kei_stat"));
				// オプションサービス一意照会マップ.オプションサービス契約一意照会明細.サービス開始年月日
				staYmd = (String)childMap.get("svc_staymd");
				// オプションサービス一意照会マップ.オプションサービス契約一意照会明細.サービス終了年月日
				endYmd = (String)childMap.get("svc_endymd");
			}
		}
		
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
		// 送付先関連情報
		setSohusInfoToBean(bean, parentMap);
/* ++++++++++ v4.02.00 追加終了 ++++++++++ */
		
		// 利用開始年月日 ← オプションサービス契約.サービス開始年月日もしくは異動予約.予約適用年月日
		bean[0].sendMessageString(KKW02522SFConst.USE_STAYMD, X31CWebConst.DATABEAN_SET_VALUE, getYmd(staYmd, (String)parentMap.get("use_staymd")));
		// 利用終了年月日格納
		setUseEndYM(bean[0], endYmd, (String)parentMap.get("use_endymd"));
		
		return bean;
	}
	
	/**
	 * ガイド誌送付先情報を格納します。
	 * <br>
	 * @param bean
	 * @param parentMap
	 */
	@SuppressWarnings("unchecked")
	private void setSohusInfoToBean(X31SDataBeanAccess[] bean, HashMap parentMap)
	{
		// 送付先関連
		if (parentMap.containsKey("guidemg_shs_ksitei_flg"))
		{
			// ガイド誌送付先個別指定フラグ ← オプションサービス契約<TV>.ガイド誌送付先個別指定フラグ
			String guidemgShsKsiteiFlg = (String)parentMap.get("guidemg_shs_ksitei_flg");
			bean[0].sendMessageString(KKW02522SFConst.GUIDEMG_SHS_KSITEI_FLG, X31CWebConst.DATABEAN_SET_VALUE, guidemgShsKsiteiFlg);
			
			// ガイド誌送付先個別指定フラグ = "0":利用場所住所と同じ
			if (USE_PC_AD_D_DOITSU.equals((String)parentMap.get("guidemg_shs_ksitei_flg")))
			{
				bean[0].sendMessageBoolean(KKW02522SFConst.USEPCAD_DOITSU, X31CWebConst.DATABEAN_SET_VALUE, true);		// 利用場所と同じ
				bean[0].sendMessageBoolean(KKW02522SFConst.CHG_USEPCAD_DOITSU, X31CWebConst.DATABEAN_SET_VALUE, true);	// 利用場所と同じ（更新用）
				
				// サービス契約回線内訳
				setSohusAdInfoToBean(bean, parentMap, setHashKeys());
			}
			// ガイド誌送付先個別指定フラグ = "1"
			else
			{
				bean[0].sendMessageBoolean(KKW02522SFConst.USEPCAD_DOITSU, X31CWebConst.DATABEAN_SET_VALUE, false);		// 利用場所と同じ
				bean[0].sendMessageBoolean(KKW02522SFConst.CHG_USEPCAD_DOITSU, X31CWebConst.DATABEAN_SET_VALUE, false);	// 利用場所と同じ（更新用）
				
				// オプションサービス契約<TV>
				setSohusAdInfoToBean(bean, parentMap, setHashKeys());
			}
		}
	}
	
	/**
	 * ガイド誌送付先住所情報を格納します。
	 * <br>
	 * @param bean
	 * @param parentMap
	 * @param hashKeys
	 */
	@SuppressWarnings("unchecked")
	private void setSohusAdInfoToBean(X31SDataBeanAccess[] bean, HashMap parentMap, String[] hashKeys)
	{
		// ガイド誌送付先郵便番号
		String guideSohusPcd = (String)parentMap.get(hashKeys[0]);
		bean[0].sendMessageString(KKW02522SFConst.PCD, X31CWebConst.DATABEAN_SET_VALUE, guideSohusPcd);
		if (isNotBlank(guideSohusPcd)){
			
			String pcd1 = JPCUtilCommon.toTopThreeDigitFromPcd(guideSohusPcd);
			String pcd2 = JPCUtilCommon.toUnderFourDigitFromPcd(guideSohusPcd);
			
			bean[0].sendMessageString(KKW02522SFConst.PCD1, X31CWebConst.DATABEAN_SET_VALUE, pcd1);
			bean[0].sendMessageString(KKW02522SFConst.PCD2, X31CWebConst.DATABEAN_SET_VALUE, pcd2);
			bean[0].sendMessageString(KKW02522SFConst.CHG_PCD1, X31CWebConst.DATABEAN_SET_VALUE, pcd1);
			bean[0].sendMessageString(KKW02522SFConst.CHG_PCD2, X31CWebConst.DATABEAN_SET_VALUE, pcd2);
			bean[0].sendMessageString(KKW02522SFConst.CHK_PCD1, X31CWebConst.DATABEAN_SET_VALUE, pcd1);
			bean[0].sendMessageString(KKW02522SFConst.CHK_PCD2, X31CWebConst.DATABEAN_SET_VALUE, pcd2);
			
			// 表示＿郵便番号
			bean[0].sendMessageString(KKW02522SFConst.DISP_PCD, X31CWebConst.DATABEAN_SET_VALUE, "〒" + JPCUtilCommon.hyhunPcd(guideSohusPcd));
		}
		
		// ガイド誌送付先住所コード
		String guideSohusAdCd = (String)parentMap.get(hashKeys[1]);
		bean[0].sendMessageString(KKW02522SFConst.AD_CD, X31CWebConst.DATABEAN_SET_VALUE, guideSohusAdCd);
		if (isNotBlank(guideSohusAdCd)){
			
			String adCd1 = guideSohusAdCd.substring(0, 2);
			String adCd2 = guideSohusAdCd.substring(2, 5);
			String adCd3 = guideSohusAdCd.substring(5, 8);
			String adCd4 = guideSohusAdCd.substring(8, 11);
			
			bean[0].sendMessageString(KKW02522SFConst.AD_CD1, X31CWebConst.DATABEAN_SET_VALUE, adCd1);
			bean[0].sendMessageString(KKW02522SFConst.AD_CD2, X31CWebConst.DATABEAN_SET_VALUE, adCd2);
			bean[0].sendMessageString(KKW02522SFConst.AD_CD3, X31CWebConst.DATABEAN_SET_VALUE, adCd3);
			bean[0].sendMessageString(KKW02522SFConst.AD_CD4, X31CWebConst.DATABEAN_SET_VALUE, adCd4);
			bean[0].sendMessageString(KKW02522SFConst.CHG_AD_CD1, X31CWebConst.DATABEAN_SET_VALUE, adCd1);
			bean[0].sendMessageString(KKW02522SFConst.CHG_AD_CD2, X31CWebConst.DATABEAN_SET_VALUE, adCd2);
			bean[0].sendMessageString(KKW02522SFConst.CHG_AD_CD3, X31CWebConst.DATABEAN_SET_VALUE, adCd3);
			bean[0].sendMessageString(KKW02522SFConst.CHG_AD_CD4, X31CWebConst.DATABEAN_SET_VALUE, adCd4);
			bean[0].sendMessageString(KKW02522SFConst.CHK_AD_CD1, X31CWebConst.DATABEAN_SET_VALUE, adCd1);
			bean[0].sendMessageString(KKW02522SFConst.CHK_AD_CD2, X31CWebConst.DATABEAN_SET_VALUE, adCd2);
			bean[0].sendMessageString(KKW02522SFConst.CHK_AD_CD3, X31CWebConst.DATABEAN_SET_VALUE, adCd3);
			bean[0].sendMessageString(KKW02522SFConst.CHK_AD_CD4, X31CWebConst.DATABEAN_SET_VALUE, adCd4);
			
			// 表示＿住所コード
			bean[0].sendMessageString(KKW02522SFConst.DISP_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, guideSohusAdCd);
		}
		
		// ガイド誌送付先都道府県名
		String state = (String)parentMap.get(hashKeys[2]);
		bean[0].sendMessageString(KKW02522SFConst.STATE, X31CWebConst.DATABEAN_SET_VALUE, state);
		bean[0].sendMessageString(KKW02522SFConst.CHG_STATE, X31CWebConst.DATABEAN_SET_VALUE, state);
		bean[0].sendMessageString(KKW02522SFConst.CHK_STATE, X31CWebConst.DATABEAN_SET_VALUE, state);
		
		// ガイド誌送付先市区町村名
		String city = (String)parentMap.get(hashKeys[3]);
		bean[0].sendMessageString(KKW02522SFConst.CITY, X31CWebConst.DATABEAN_SET_VALUE, city);
		bean[0].sendMessageString(KKW02522SFConst.CHG_CITY, X31CWebConst.DATABEAN_SET_VALUE, city);
		bean[0].sendMessageString(KKW02522SFConst.CHK_CITY, X31CWebConst.DATABEAN_SET_VALUE, city);
		
		// ガイド誌送付先大字通称名
		String oaztsu = (String)parentMap.get(hashKeys[4]);
		bean[0].sendMessageString(KKW02522SFConst.OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, oaztsu);
		bean[0].sendMessageString(KKW02522SFConst.CHG_OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, oaztsu);
		bean[0].sendMessageString(KKW02522SFConst.CHK_OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, oaztsu);
		
		// ガイド誌送付先字丁目名
		String azcho = (String)parentMap.get(hashKeys[5]);
		bean[0].sendMessageString(KKW02522SFConst.AZCHO, X31CWebConst.DATABEAN_SET_VALUE, azcho);
		bean[0].sendMessageString(KKW02522SFConst.CHG_AZCHO, X31CWebConst.DATABEAN_SET_VALUE, azcho);
		bean[0].sendMessageString(KKW02522SFConst.CHK_AZCHO, X31CWebConst.DATABEAN_SET_VALUE, azcho);
		
		// ガイド誌送付先番地号
		String bnchigo = (String)parentMap.get(hashKeys[6]);
		bean[0].sendMessageString(KKW02522SFConst.BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, bnchigo);
		bean[0].sendMessageString(KKW02522SFConst.CHG_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, bnchigo);
		bean[0].sendMessageString(KKW02522SFConst.CHK_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, bnchigo);
		
		// ガイド誌送付先住所補記・建物名
		String adrttm = (String)parentMap.get(hashKeys[7]);
		bean[0].sendMessageString(KKW02522SFConst.ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, adrttm);
		bean[0].sendMessageString(KKW02522SFConst.CHG_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, adrttm);
		bean[0].sendMessageString(KKW02522SFConst.CHK_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, adrttm);
		
		// ガイド誌送付先住所補記・部屋番号
		String adrrm = (String)parentMap.get(hashKeys[8]);
		bean[0].sendMessageString(KKW02522SFConst.ADRRM, X31CWebConst.DATABEAN_SET_VALUE, adrrm);
		bean[0].sendMessageString(KKW02522SFConst.CHG_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, adrrm);
		bean[0].sendMessageString(KKW02522SFConst.CHK_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, adrrm);
		
		// ガイド誌送付先住所補記・部屋番号
		String telNo = (String)parentMap.get(hashKeys[9]);
		bean[0].sendMessageString(KKW02522SFConst.TELNO, X31CWebConst.DATABEAN_SET_VALUE, telNo);
		bean[0].sendMessageString(KKW02522SFConst.CHG_TELNO, X31CWebConst.DATABEAN_SET_VALUE, telNo);
		bean[0].sendMessageString(KKW02522SFConst.CHK_TELNO, X31CWebConst.DATABEAN_SET_VALUE, telNo);
		
		// ｅｏ光テレビガイド誌申込数 ← オプションサービス契約<TV>一意照会マップ.オプションサービス契約<TV>一意照会明細.ケーブルガイド申込数
		String cableGuideMskmCnt = (String)parentMap.get("cable_guide_mskm_cnt");
		bean[0].sendMessageString(KKW02522SFConst.TV_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_SET_VALUE, cableGuideMskmCnt);
		bean[0].sendMessageString(KKW02522SFConst.CHG_TV_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_SET_VALUE, cableGuideMskmCnt);
		bean[0].sendMessageString(KKW02522SFConst.CHK_TV_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_SET_VALUE, cableGuideMskmCnt);
		
		// ガイド誌送付先名 ← オプションサービス契約<TV>一意照会マップ.オプションサービス契約<TV>一意照会明細.ガイド誌送付先名
		String guidemgSohusNm = (String)parentMap.get("guidemg_sohus_nm");
		bean[0].sendMessageString(KKW02522SFConst.SHS_NM, X31CWebConst.DATABEAN_SET_VALUE, guidemgSohusNm);
		bean[0].sendMessageString(KKW02522SFConst.CHG_SHS_NM, X31CWebConst.DATABEAN_SET_VALUE, guidemgSohusNm);
		bean[0].sendMessageString(KKW02522SFConst.CHK_SHS_NM, X31CWebConst.DATABEAN_SET_VALUE, guidemgSohusNm);
		
		// ガイド誌送付先カナ名 ← オプションサービス契約<TV>一意照会マップ.オプションサービス契約<TV>一意照会明細.ガイド誌送付先カナ名
		String guidemgSohusKana = (String)parentMap.get("guidemg_sohus_kana");
		bean[0].sendMessageString(KKW02522SFConst.SHS_KANA, X31CWebConst.DATABEAN_SET_VALUE, guidemgSohusKana);
		bean[0].sendMessageString(KKW02522SFConst.CHG_SHS_KANA, X31CWebConst.DATABEAN_SET_VALUE, guidemgSohusKana);
		bean[0].sendMessageString(KKW02522SFConst.CHK_SHS_KANA, X31CWebConst.DATABEAN_SET_VALUE, guidemgSohusKana);
	}
	
	/**
	 * ガイド誌送付先項目名を設定します。
	 * <br>
	 * @return String[]
	 */
	private String[] setHashKeys()
	{
		String[] hashKeys = new String[10];
		
		hashKeys[0] = "guidemg_sohus_pcd";
		hashKeys[1] = "guidemg_sohus_ad_cd";
		hashKeys[2] = "guidemg_sohus_state_nm";
		hashKeys[3] = "guidemg_sohus_city_nm";
		hashKeys[4] = "guidemg_sohus_oaztsu_nm";
		hashKeys[5] = "guidemg_sohus_azcho_nm";
		hashKeys[6] = "guidemg_sohus_bnchigo";
		hashKeys[7] = "guidemg_sohus_adrttm";
		hashKeys[8] = "guidemg_sohus_adrrm";
		hashKeys[9] = "guidemg_sohus_telno";
		
		return hashKeys;
	}
	
	/**
	 * 利用終了月を格納します。
	 * ※"20991231"の場合は表示しない。
	 * <br>
	 * @param bean
	 * @param endYmdOpSvcKei
	 * @param endYmdIdoRsv
	 */
	private void setUseEndYM(X31SDataBeanAccess bean, String endYmdOpSvcKei, String endYmdIdoRsv)
	{
		// オプションサービス契約＿利用終了年月日 <> "20991231"
		if(!MAX_ENDYMD.equals(endYmdOpSvcKei))
		{
			// オプションサービス契約＿利用終了年月日 格納
			bean.sendMessageString(KKW02522SFConst.USE_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, endYmdOpSvcKei);
		}
		else
		{
			// 異動予約＿予約適用年月日 <> "20991231"
			if(!MAX_ENDYMD.equals(endYmdIdoRsv))
			{
				// 異動予約＿予約適用年月日 格納
				bean.sendMessageString(KKW02522SFConst.USE_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, endYmdIdoRsv);
			}
		}
	}
	
	/**
	 * 引数に値が設定されているか判定します。
	 * <br>
	 * @param	arg0	判定する引数
	 * @return	boolean	引数に値が設定されている場合はtrue
	 */
	private boolean isNotBlank(String arg0)
	{
		if (arg0 == null || arg0.length() == 0) 
		{
			return false;
		}
		
		return true;
	}
	
	/**
	 * 年月日を取得します。
	 * <br>
	 * @param ymd
	 * @param rsvYmd
	 * @return String
	 */
	private String getYmd(String ymd, String rsvYmd)
	{
		if (isNotBlank(ymd))
		{
			return ymd;
		}
		return rsvYmd;
	}
}