/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom, 2011
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW04804SFLogic
*   ソースファイル名：KKW04804SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年04月01日
*＜機能概要＞
*   住所情報変更画面 Viewロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/04/01   FJ）□□    新規作成
*   v13.00.00	2015/03/17   FJ)舘山    【OM-2014-0003770】選択住所返却時に手動入力フラグを連携するように修正
*	v23.00.00	2016/02/16   FJ)谷口    【OM-2015-0003330】住所一括更新にて請求書部屋番号が正しく更新されない
**
**********************************************************************/

package eo.web.webview.KKW04804SF;

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 com.sun.enterprise.tools.common.util.StringUtils;

import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.mapping.KKSV0160_KKSV0160OPDBMapper;

public class KKW04804SFLogic extends JCCWebBusinessLogic {
	/** ユースケースＩＤ */
	private final String USECASE_ID = "KKSV0160";
	/** 機能コード（１） */
	private final String FUNC_ID_1 = "1";
	/** 機能コード（２） */
	private final String FUNC_ID_2 = "2";
	
//巻A ANK-0382-00-00 ADD 2012.09.14 Y.MORIMOTO START
	/** 選択住所の名称定義 */
	private static HashMap<String, String> dispSelNmMap;
	/** 選択住所名 設定 */
	static {
		dispSelNmMap = new HashMap<String, String>();
		dispSelNmMap.put(JKKCommonConst.AD_UPD_WAY_KEISHA_AD,"契約者住所");
		dispSelNmMap.put(JKKCommonConst.AD_UPD_WAY_SETPLACE_AD,"利用場所住所");
		dispSelNmMap.put(JKKCommonConst.AD_UPD_WAY_SEIKY_SHS_AD,"請求書送付先住所");
		dispSelNmMap.put(JKKCommonConst.AD_UPD_WAY_GUIDEMG_SHS_AD,"ガイド誌送付先住所");
		dispSelNmMap.put(JKKCommonConst.AD_UPD_WAY_SHS_AD,"送付先住所");
	};
//巻A ANK-0382-00-00 ADD 2012.09.14 Y.MORIMOTO END
	
// IT2-2013-0000774対応 20131124 星野 ADD START
	/** ガイド誌送付先 利用場所住所と同じ */
	private static final String GUIDEMG_SOHUS_RIYOBASHO_SAME = "利用場所住所と同じ";
// IT2-2013-0000774対応 20131124 星野 ADD END
    
	/**
	 * コピー元選択画面 初期表示処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean actionInit() throws Exception{
		//サービスフォームBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		//マッピングクラスに渡す配列
		X31SDataBeanAccess[] paramBean = {bean};

		//  セッションから検索条件を取得
		JCCWebCommon.getScreenInfo(this);
		
		// 運用年月日を設定
		paramBean[0].sendMessageString(KKW04804SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));

		// 更新方法を取得
		String updWay = paramBean[0].sendMessageString(KKW04804SFConst.UPD_WAY, X31CWebConst.DATABEAN_GET_VALUE);
		
		// HashMap定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// コピー元住所検索画面初期表示サービスパラメタ生成
		paramMap = new HashMap<String, Object>();		// パラメタ設定用マップ
		inputMap = new HashMap<String, Object>();		// 入力用マップ
		outputMap = new HashMap<String, Object>();		// 結果格納用マップ
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID);
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0160_KKSV0160OPDBMapper mapper = new KKSV0160_KKSV0160OPDBMapper();
		// お客様一意照会 上りマッピング
		mapper.setKKSV016001SC(paramBean, inputMap, FUNC_ID_2);
		// 契約者情報連絡先一覧照会 上りマッピング
		mapper.setKKSV016002SC(paramBean, inputMap, FUNC_ID_1);
		// お客様利用場所一覧照会 上りマッピング
		mapper.setKKSV016003SC(paramBean, inputMap, FUNC_ID_1);
		// 請求書送付先住所一覧照会 上りマッピング
		mapper.setKKSV016004SC(paramBean, inputMap, FUNC_ID_1);
		// ガイド誌送付先住所一覧照会 上りマッピング
		mapper.setKKSV016005SC(paramBean, inputMap, FUNC_ID_1);
		// チェック用の作業項目を設定
		mapper.setREQCHK(paramBean, inputMap);
		
		// コピー元住所検索画面初期表示サービスを実施
		invokeService(paramMap, inputMap, outputMap);
		
		// お客様一意照会 下りマッピング
		mapper.getKKSV016001SC(paramBean, outputMap);
		// お客様利用場所一覧照会 下りマッピング
		mapper.getKKSV016003SC(paramBean, outputMap);
		// 請求書送付先住所一覧照会 下りマッピング
		mapper.getKKSV016004SC(paramBean, outputMap);
		// ガイド誌送付先住所一覧照会 下りマッピング
		mapper.getKKSV016005SC(paramBean, outputMap);

		// 更新方法が"1:契約者住所"の場合
		if(JKKCommonConst.AD_UPD_WAY_KEISHA_AD.equals(updWay))
		{
			// 連絡先電話番号を設定
			setRrksTelNo(paramBean, outputMap);
		}
//巻A ANK-0382-00-00 ADD 2012.09.14 Y.MORIMOTO START
		// 更新方法が"5:送付先住所"の場合
		if(JKKCommonConst.AD_UPD_WAY_SHS_AD.equals(updWay))
		{
			// 送付先住所を設定
			setCsstiShsAd(paramBean);
		}
//巻A ANK-0382-00-00 ADD 2012.09.14 Y.MORIMOTO END
//巻A 障害対応(lot1) ADD 2012.09.14 Y.MORIMOTO START
		// 選択住所の設定
		setSelectAd(paramBean);
//巻A 障害対応(lot1) ADD 2012.09.14 Y.MORIMOTO END
		
		// １行目の住所情報を選択状態に設定
		paramBean[0].sendMessageString(KKW04804SFConst.CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		// 住所情報を設定
		setAd(paramBean);
		
// IT2-2013-0000774対応 20131124 星野 ADD START
		// 更新方法が"4：ガイド誌住所情報と同じ"の場合
		if(JKKCommonConst.AD_UPD_WAY_GUIDEMG_SHS_AD.equals(updWay)){
			setRiyobashoSame(paramBean);
		}
// IT2-2013-0000774対応 20131124 星野 ADD END
		
		return true;
	}
	
// IT2-2013-0000774対応 20131124 星野 ADD START
	private void setRiyobashoSame(X31SDataBeanAccess[] bean) {
		
		X31SDataBeanAccessArray adInfoBean = bean[0].getDataBeanArray("住所情報一覧");
		
		for(int i = 0; i < adInfoBean.getCount(); i++)
		{
			X31SDataBeanAccess subbean = adInfoBean.getDataBean(i);
			
			// 送付先名・送付先住所を取得
			String nm = subbean.sendMessageString(KKW04804SFConst.NM_01, X31CWebConst.DATABEAN_GET_VALUE);
			String ad = subbean.sendMessageString(KKW04804SFConst.AD_01, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 送付先名・送付先住所が空白の場合
			if(StringUtils.isEmpty(nm) && StringUtils.isEmpty(ad)){
				// 「利用場所住所と同じ」が選択されていると判断し、送付先名・送付先住所に「利用場所住所と同じ」を設定
				subbean.sendMessageString(KKW04804SFConst.NM_01, X31CWebConst.DATABEAN_SET_VALUE, GUIDEMG_SOHUS_RIYOBASHO_SAME);
				subbean.sendMessageString(KKW04804SFConst.AD_01, X31CWebConst.DATABEAN_SET_VALUE, GUIDEMG_SOHUS_RIYOBASHO_SAME);
			}
		}
	}
// IT2-2013-0000774対応 20131124 星野 ADD END
	
	/**
	 * 連絡先電話番号の設定を行う
     * <BR>
	 * @param bean
	 * @param outputMap
	 * @throws Exception 
	 */
	private void setRrksTelNo(X31SDataBeanAccess[] bean, HashMap outputMap) throws Exception{
		
		HashMap parentMap = (HashMap)outputMap.get("KKSV016002SC");
		
		X31SDataBeanAccessArray adInfoBean = bean[0].getDataBeanArray("住所情報一覧");
		
		if(adInfoBean != null && parentMap != null && parentMap.containsKey("ECK0201B011CBSMsg1List")){
			ArrayList childList = (ArrayList)parentMap.get("ECK0201B011CBSMsg1List");
			X31SDataBeanAccess subbean = adInfoBean.getDataBean(0);
			if(subbean == null)
			{
				return;
			}
			
			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				// 連絡方法コードを取得
				String rrkWayCd = (String)childMap.get("rrk_way_cd");
// OM-2013-0001011 2013.08.29 Y.Kanata MOD START
				//// 連絡先コードを取得
				//String rrksCd = (String)childMap.get("rrks_cd");
				// 連絡先種別コードを取得
				String rrksSbtCd = (String)childMap.get("rrks_sbt_cd");
// OM-2013-0001011 2013.08.29 Y.Kanata MOD END
				// 電話番号を取得
				String telno = (String)childMap.get("telno");
				
// OM-2013-0001011 2013.08.29 Y.Kanata MOD START
				//// 連絡方法コードが1:電話番号かつ、連絡先識別コードが2:携帯の場合
				//if(JKKCommonConst.RRKS_WAY_TELNO.equals(rrkWayCd) && JKKCommonConst.RRKS_SHITEI_SBT_2.equals(rrksCd))
				// 連絡方法コードが1:電話番号かつ、連絡先種別コードが2:携帯の場合
				if(JKKCommonConst.RRKS_WAY_TELNO.equals(rrkWayCd) && JKKCommonConst.RRKS_SHITEI_SBT_2.equals(rrksSbtCd))
// OM-2013-0001011 2013.08.29 Y.Kanata MOD END
				{
					subbean.sendMessageString(KKW04804SFConst.RRKS_TELNO_KTAI_01, X31CWebConst.DATABEAN_SET_VALUE, telno);
				}
// OM-2013-0001011 2013.08.29 Y.Kanata MOD START
				//// 連絡方法コードが1:電話番号かつ、連絡先識別コードが3:勤務先の場合
				//else if(JKKCommonConst.RRKS_WAY_TELNO.equals(rrkWayCd) && JKKCommonConst.RRKS_SHITEI_SBT_3.equals(rrksCd))
				// 連絡方法コードが1:電話番号かつ、連絡先種別コードが5:その他の場合
				// 連絡先種別コードの3:勤務先ではないのは、お客様情報照会画面における表示の仕様に合わせた結果、
				// 勤務先の電話番号が当該種別で登録されているため。
				else if(JKKCommonConst.RRKS_WAY_TELNO.equals(rrkWayCd) && JKKCommonConst.RRKS_SHITEI_SBT_5.equals(rrksSbtCd))
// OM-2013-0001011 2013.08.29 Y.Kanata MOD END
				{
					subbean.sendMessageString(KKW04804SFConst.RRKS_TELNO_OFFC_01, X31CWebConst.DATABEAN_SET_VALUE, telno);
				}
			}
		}
	}
	
//巻A ANK-0382-00-00 ADD 2012.09.14 Y.MORIMOTO START
	/**
	 * 住所情報に送付先住所を設定する
     * <BR>
	 * @param bean
	 * @throws Exception 
	 */
	private void setCsstiShsAd(X31SDataBeanAccess[] bean) throws Exception{
		
		X31SDataBeanAccessArray adInfoBean = bean[0].getDataBeanArray(KKW04804SFConst.AD_INFO_LIST);
		
		for(int i = 0; i < adInfoBean.getCount(); i++)
		{
			X31SDataBeanAccess subbean = adInfoBean.getDataBean(i);
			
// IT1-2012-0001496対応 MOD 2012.10.23 Y.MORIMOTO START
//			// 住所情報一覧.住所コード ← 住所情報一覧.お客様指定送付先住所コード
//			subbean.sendMessageString(KKW04804SFConst.AD_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_AD_CD_01, X31CWebConst.DATABEAN_SET_VALUE));
//			// 住所情報一覧.郵便番号 ← 住所情報一覧.お客様指定送付先郵便番号
//			subbean.sendMessageString(KKW04804SFConst.PCD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_PCD_01, X31CWebConst.DATABEAN_SET_VALUE));
//			// 住所情報一覧.都道府県 ← 住所情報一覧.お客様指定送付先都道府県名
//			subbean.sendMessageString(KKW04804SFConst.STATE_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_STATE_NM_01, X31CWebConst.DATABEAN_SET_VALUE));
//			// 住所情報一覧.市区町村 ← 住所情報一覧.お客様指定送付先市区町村名
//			subbean.sendMessageString(KKW04804SFConst.CITY_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_CITY_NM_01, X31CWebConst.DATABEAN_SET_VALUE));
//			// 住所情報一覧.大字通称名 ← 住所情報一覧.お客様指定送付先大字通称名
//			subbean.sendMessageString(KKW04804SFConst.OAZTSU_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_OAZTSU_NM_01, X31CWebConst.DATABEAN_SET_VALUE));
//			// 住所情報一覧.字丁目 ← 住所情報一覧.お客様指定送付先字丁目名
//			subbean.sendMessageString(KKW04804SFConst.AZCHO_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_AZCHO_NM_01, X31CWebConst.DATABEAN_SET_VALUE));
//			// 住所情報一覧.番地・号 ← 住所情報一覧.お客様指定送付先番地号
//			subbean.sendMessageString(KKW04804SFConst.BNCHIGO_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_BNCHIGO_01, X31CWebConst.DATABEAN_SET_VALUE));
//			// 住所情報一覧.建物名 ← 住所情報一覧.お客様指定送付先住所補記・建物名
//			subbean.sendMessageString(KKW04804SFConst.ADRTTM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_ADRTTM_01, X31CWebConst.DATABEAN_SET_VALUE));
//			// 住所情報一覧.部屋番号 ← 住所情報一覧.お客様指定送付先住所補記・部屋番号
//			subbean.sendMessageString(KKW04804SFConst.ADRRM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_ADRRM_01, X31CWebConst.DATABEAN_SET_VALUE));
			// 住所情報一覧.住所コード ← 住所情報一覧.お客様指定送付先住所コード
			subbean.sendMessageString(KKW04804SFConst.AD_CD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_AD_CD_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 住所情報一覧.郵便番号 ← 住所情報一覧.お客様指定送付先郵便番号
			subbean.sendMessageString(KKW04804SFConst.PCD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_PCD_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 住所情報一覧.都道府県 ← 住所情報一覧.お客様指定送付先都道府県名
			subbean.sendMessageString(KKW04804SFConst.STATE_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_STATE_NM_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 住所情報一覧.市区町村 ← 住所情報一覧.お客様指定送付先市区町村名
			subbean.sendMessageString(KKW04804SFConst.CITY_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_CITY_NM_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 住所情報一覧.大字通称名 ← 住所情報一覧.お客様指定送付先大字通称名
			subbean.sendMessageString(KKW04804SFConst.OAZTSU_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_OAZTSU_NM_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 住所情報一覧.字丁目 ← 住所情報一覧.お客様指定送付先字丁目名
			subbean.sendMessageString(KKW04804SFConst.AZCHO_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_AZCHO_NM_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 住所情報一覧.番地・号 ← 住所情報一覧.お客様指定送付先番地号
			subbean.sendMessageString(KKW04804SFConst.BNCHIGO_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_BNCHIGO_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 住所情報一覧.建物名 ← 住所情報一覧.お客様指定送付先住所補記・建物名
			subbean.sendMessageString(KKW04804SFConst.ADRTTM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_ADRTTM_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 住所情報一覧.部屋番号 ← 住所情報一覧.お客様指定送付先住所補記・部屋番号
			subbean.sendMessageString(KKW04804SFConst.ADRRM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_ADRRM_01, X31CWebConst.DATABEAN_GET_VALUE));
// IT1-2012-0001496対応 MOD 2012.10.23 Y.MORIMOTO END
			// 住所情報一覧.氏名（カナ） ← 未設定
			subbean.sendMessageString(KKW04804SFConst.NM_KANA_01, X31CWebConst.DATABEAN_SET_VALUE, new String());
			// 住所情報一覧.氏名 ← 未設定
			subbean.sendMessageString(KKW04804SFConst.NM_01, X31CWebConst.DATABEAN_SET_VALUE, new String());
			// 住所情報一覧.電話番号 ← 未設定
			subbean.sendMessageString(KKW04804SFConst.TELNO_01, X31CWebConst.DATABEAN_SET_VALUE, new String());
			// 住所情報一覧.連絡先電話番号（携帯） ← 未設定
			subbean.sendMessageString(KKW04804SFConst.RRKS_TELNO_KTAI_01, X31CWebConst.DATABEAN_SET_VALUE, new String());
			// 住所情報一覧.連絡先電話番号（勤務先） ← 未設定
			subbean.sendMessageString(KKW04804SFConst.RRKS_TELNO_OFFC_01, X31CWebConst.DATABEAN_SET_VALUE, new String());
			// ▼▼▼ OM-2014-0003770 2015/03/17 ADD START
			// 住所情報一覧.住所手動入力フラグ ← 住所情報一覧.お客様指定送付先住所手動入力フラグ
			subbean.sendMessageString(KKW04804SFConst.AD_MAN_INPUT_FLG_01, X31CWebConst.DATABEAN_SET_VALUE, (String)subbean.sendMessageString(KKW04804SFConst.CSSTI_SHS_AD_MAN_INPUT_FLG_01, X31CWebConst.DATABEAN_GET_VALUE));
			// ▲▲▲ OM-2014-0003770 2015/03/17 ADD END
		}
	}
//巻A ANK-0382-00-00 ADD 2012.09.14 Y.MORIMOTO END
//巻A 障害対応(lot1) ADD 2012.09.14 Y.MORIMOTO START
	/**
	 * 選択住所欄を設定する
     * <BR>
	 * @param bean
	 * @throws Exception 
	 */
	private void setSelectAd(X31SDataBeanAccess[] bean) throws Exception{
		
		// 更新方法を取得
		String updWay = bean[0].sendMessageString(KKW04804SFConst.UPD_WAY, X31CWebConst.DATABEAN_GET_VALUE);
		String dispSelNm = "";
		if (updWay != null && !StringUtils.isEmpty(updWay))
		{
			// 更新方法に紐づく選択住所名称を取得
			dispSelNm = (String)dispSelNmMap.get(updWay);
		}
		// 住所情報一覧.選択住所 ← 選択住所名称
		bean[0].sendMessageString(KKW04804SFConst.CHOICE_AD, X31CWebConst.DATABEAN_SET_VALUE, dispSelNm);
	}
//巻A 障害対応(lot1) ADD 2012.09.14 Y.MORIMOTO END
	
	/**
	 * 住所情報を連結して設定を行う
     * <BR>
	 * @param bean
	 * @param outputMap
	 * @throws Exception 
	 */
	private void setAd(X31SDataBeanAccess[] bean) throws Exception{
		
		X31SDataBeanAccessArray adInfoBean = bean[0].getDataBeanArray("住所情報一覧");
		
		for(int i = 0; i < adInfoBean.getCount(); i++)
		{
			X31SDataBeanAccess subbean = adInfoBean.getDataBean(i);
			
			
			// 都道府県を取得
			String statNm = subbean.sendMessageString(KKW04804SFConst.STATE_01, X31CWebConst.DATABEAN_GET_VALUE);
			// 市区町村を取得
			String cityNm = subbean.sendMessageString(KKW04804SFConst.CITY_01, X31CWebConst.DATABEAN_GET_VALUE);
			// 大字通称名を取得
			String oaztsuNm = subbean.sendMessageString(KKW04804SFConst.OAZTSU_01, X31CWebConst.DATABEAN_GET_VALUE);
			// 字丁目を取得
			String azchoNm = subbean.sendMessageString(KKW04804SFConst.AZCHO_01, X31CWebConst.DATABEAN_GET_VALUE);
			// 番地・号を取得
			String bnchigoNm = subbean.sendMessageString(KKW04804SFConst.BNCHIGO_01, X31CWebConst.DATABEAN_GET_VALUE);
			// 建物名を取得
			String adrttmNm = subbean.sendMessageString(KKW04804SFConst.ADRTTM_01, X31CWebConst.DATABEAN_GET_VALUE);
			// 部屋番号を取得
			String adrrmNm = subbean.sendMessageString(KKW04804SFConst.ADRRM_01, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 住所情報を連結して設定
			String ad = statNm + cityNm + oaztsuNm + azchoNm + bnchigoNm + adrttmNm + adrrmNm;
			subbean.sendMessageString(KKW04804SFConst.AD_01, X31CWebConst.DATABEAN_SET_VALUE, ad);
			
		}
	}
	
	/**
	 * 選択ボタン押下処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean actionChoice() throws Exception{
		//共有フォームBean
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		//サービスフォームBean
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
// IT2-2013-0000774対応 20131124 星野 ADD START
		String choice = bean.sendMessageString(KKW04804SFConst.CHOICE, X31CWebConst.DATABEAN_GET_VALUE);
		//住所一覧を取得
		X31SDataBeanAccessArray adInfoList = bean.getDataBeanArray(KKW04804SFConst.AD_INFO_LIST);
		// 選択されたBeanを取得
		X31SDataBeanAccess subBean = adInfoList.getDataBean(Integer.parseInt(choice));
		// 住所を取得
		String ad = subBean.sendMessageString(KKW04804SFConst.AD_01, X31CWebConst.DATABEAN_GET_VALUE);

		// ガイド誌送付先住所が「利用場所住所と同じ」の場合
		if(GUIDEMG_SOHUS_RIYOBASHO_SAME.equals(ad)){
			//メッセージ表示領域への文言設定
			JCCWebCommon.setMessageInfo(this, "EKB5420-JW", new String[]{"ガイド誌送付先住所", "利用場所住所と同じを指定されている為、コピー"});
			return false;
		}
// IT2-2013-0000774対応 20131124 星野 ADD END
		
		/**
		 * セッションへ詰め込むHashMap生成
		 */
		HashMap<String,Object> paramMap = setSelectAdInfo(bean);
		
		/**
		 * 親画面に渡す情報のセット
		 */
		//親画面IDを取得
		String parentScreenId = JCCWebCommon.getScreenId(this);
		//親画面に渡す情報のセット
		JCCWebCommon.setScreenInfo(this, parentScreenId, paramMap);

		/**
		 * モーダル用反映画面へ画面遷移
		 */
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,X31CWebConst.DATABEAN_SET_VALUE, "CCW00105");
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,X31CWebConst.DATABEAN_SET_VALUE, "モーダル用反映画面");

		return true;
	}
	
	/**
	 * 選択された住所情報をHashMapに詰め込む
     * <BR>
     * @param bean サービスフォームBean
     * @param strSelect 画面で選択されたラジオボタンのIndex
     * @return HashMap セッションへセットする情報
	 * @throws Exception 
	 */
	private HashMap<String,Object> setSelectAdInfo(X31SDataBeanAccess bean) throws Exception
	{
		//返却用 HashMap
		HashMap<String,Object> paramMap = new HashMap<String,Object>();
		String choice = bean.sendMessageString(KKW04804SFConst.CHOICE, X31CWebConst.DATABEAN_GET_VALUE);
		//住所一覧を取得
		X31SDataBeanAccessArray adInfoList = bean.getDataBeanArray(KKW04804SFConst.AD_INFO_LIST);
		// 選択されたBeanを取得
		X31SDataBeanAccess subBean = adInfoList.getDataBean(Integer.parseInt(choice));
		
		
		String strValue;
		/**
		 * 郵便番号
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.PCD_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.PCD_01, strValue);
		/**
		 * 住所コード
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.AD_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.AD_CD_01, strValue);
		/**
		 * 都道府県名
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.STATE_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.STATE_01, strValue);
		/**
		 * 市区町村名
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.CITY_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.CITY_01, strValue);
		/**
		 * 大字通称名
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.OAZTSU_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.OAZTSU_01, strValue);
		/**
		 * 字丁目
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.AZCHO_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.AZCHO_01, strValue);
		/**
		 * 番地・号
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.BNCHIGO_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.BNCHIGO_01, strValue);
		/**
		 * 建物名
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.ADRTTM_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.ADRTTM_01, strValue);
		/**
		 * 部屋番号
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.ADRRM_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.ADRRM_01, strValue);
		/**
		 * メモ
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.MEMO_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.MEMO_01, strValue);
		/**
		 * 連絡先電話番号（携帯）
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.RRKS_TELNO_KTAI_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.RRKS_TELNO_KTAI_01, strValue);
		/**
		 * 連絡先電話番号（勤務先）
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.RRKS_TELNO_OFFC_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.RRKS_TELNO_OFFC_01, strValue);
		/**
		 * 氏名（カナ）
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.NM_KANA_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.NM_KANA_01, strValue);
		/**
		 * 氏名
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.NM_01, strValue);
		/**
		 * 電話番号
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.TELNO_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.TELNO_01, strValue);
		
		// ▼▼▼ OM-2014-0003770 2015/03/17 ADD START
		/**
		 * 住所手動入力フラグ
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.AD_MAN_INPUT_FLG_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.AD_MAN_INPUT_FLG_01, strValue);
		// ▲▲▲ OM-2014-0003770 2015/03/17 ADD END
		// OM-2015-0003330 20160216 ADD START
		/**
		 * 請求先部屋番号
		 */
		strValue = subBean.sendMessageString(KKW04804SFConst.SKS_ADRRM_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(KKW04804SFConst.SKS_ADRRM_01, strValue);
		// OM-2015-0003330 20160216 ADD END
		return paramMap;
	}
}
