/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom						 *
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW05905SFLogic
*   ソースファイル名：KKW05905SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年01月30日
*＜機能概要＞
*   面開発案件情報更新のビューロジックです
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/02/24   FJ          新規作成
*   v4.00.00    2013/01/13   FJ）野口	【IT1-2013-0000061】対応
*   v4.01.00    2013/02/16   FJ）藤原    【ST3-2013-0000040】対応
*
**********************************************************************/

package eo.web.webview.KKW05905SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.ZMW10601SF.ZMW10601SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.KKSV0469_KKSV0469OPDBMapper;
import eo.web.webview.mapping.KKSV0470_KKSV0470OPDBMapper;
import eo.web.webview.mapping.KKSV0471_KKSV0471OPDBMapper;

/**
 * 面開発案件情報更新のビューロジックです。
 * 
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW05905SFLogic extends JCCWebBusinessLogic
{

	/** ユースケースID(KKSV0469) 割引サービス取得処理サービス */
	private static final String USECASE_ID_KKSV0469 = "KKSV0469";

	/** ユースケースID(KKSV0470) 面開発案件情報更新初期表示処理サービス */
	private static final String USECASE_ID_KKSV0470 = "KKSV0470";

	/** ユースケースID(KKSV0471) 面開発案件情報更新処理サービス */
	private static final String USECASE_ID_KKSV0471 = "KKSV0471";
	
	/** メッセージID(EKB0370--I) 確認用メッセージ **/
	private static final String MSG_ID_COMFIRM = "EKB0370--I";
	
	/** メッセージID(EKB5940-KW) キャンペーンコードチェック用メッセージ **/
	private static final String MSG_ID_CMP_CD_CHK = "EKB5940-KW";
	
	/** メッセージID(EKB4390--I) 完了用メッセージ **/
	private static final String MSG_ID_FIN = "EKB4390--I";
	
	/** メッセージ置換文字列(更新用) **/
	private static final String MESSAGE_WORD_UPD = "面開発案件情報の更新";
	/** キャンペーンコード(面開発案件用) **/
	private static final String CMP_CD_MKHT = "51";
	
// ++++++++++ v4.01.00 修正開始 ++++++++++
	/** 住所チェック警告値 */
	private static final String STATUS_WARNING = "WA";
	
	/** 住所チェック対象リスト */
	private static final String[] AD_CHK_LV_ERR = {"menkaihat_ad_chk_lv_err"};
	
	/** 住所チェック置き換え文字リスト */
	private static final String[] AD_CHK_LV_ERR_CHG = {"面開発案件住所"};
// ++++++++++ v4.01.00 修正終了 ++++++++++

	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean init() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 引継ぎ情報の取得
		JCCWebCommon.getScreenInfo(this);

		// オンライン運用日付取得
		String ope_date = JCCWebCommon.getOpeDate(this, null);
		bean.sendMessageString(KKW05905SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, ope_date);

		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_KKSV0470);

		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// コンボ情報取得
		X31SDataBeanAccess[] paramBean = {bean};

		KKSV0470_KKSV0470OPDBMapper mapper = new KKSV0470_KKSV0470OPDBMapper();
		mapper.setKKSV047001SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047002SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047003SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047004SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047005SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047006SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047007SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047008SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047009SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047010SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047011SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047012SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);

		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		mapper.getKKSV047001SC(paramBean, outputMap); // 物件パターン
		mapper.getKKSV047002SC(paramBean, outputMap); // インセ対象
		mapper.getKKSV047003SC(paramBean, outputMap); // 関電支店
		mapper.getKKSV047004SC(paramBean, outputMap); // 標準サービス区分
		mapper.getKKSV047005SC(paramBean, outputMap); // 獲得チャネル
		mapper.getKKSV047006SC(paramBean, outputMap); // 前受金（ネット）
		mapper.getKKSV047007SC(paramBean, outputMap); // 前受金（電話）
		mapper.getKKSV047008SC(paramBean, outputMap); // 前受金（テレビ）
		mapper.getKKSV047009SC(paramBean, outputMap); // 面開発案件一意照会
		mapper.getKKSV047010SC(paramBean, outputMap); // 面開発保証金一覧照会（面開発案件番号）
		mapper.getKKSV047011SC(paramBean, outputMap); // 面開発担当者一覧照会（面開発案件番号）
		mapper.getKKSV047012SC(paramBean, outputMap); // 割引サービス一意照会

		setDispData(bean);

		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05905);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05905);

		return true;
	}

	/**
	 * 初期表示のための表示用データの編集を行います。
	 * @param bean
	 */
	private void setDispData(X31SDataBeanAccess bean)
	{
		// コンボボックスの設定
		setSelectComboData(KKW05905SFConst.BKN_PATTERN);
		setSelectComboData(KKW05905SFConst.INSE_TG);
		setSelectComboData(KKW05905SFConst.KEPCO_SHITEN);
		setSelectComboData(KKW05905SFConst.STDARD_SVC_DIV);
		setSelectComboData(KKW05905SFConst.KAKUTOKU_CHANNEL);

		// 覚書有効期限(年)、覚書有効期限(月)、覚書有効期限(日)
		setToYMD(bean,
				KKW05905SFConst.OBOEGAKI_YK_KIGEN_Y,
				KKW05905SFConst.OBOEGAKI_YK_KIGEN_M,
				KKW05905SFConst.OBOEGAKI_YK_KIGEN_D,
				KKW05905SFConst.OBOEGAKI_YK_KIGEN);

		// 覚書締結年月日(年)、覚書締結年月日(月)、覚書締結年月日(日)
		setToYMD(bean,
				KKW05905SFConst.OBOEGAKI_CND_YMD_Y,
				KKW05905SFConst.OBOEGAKI_CND_YMD_M,
				KKW05905SFConst.OBOEGAKI_CND_YMD_D,
				KKW05905SFConst.OBOEGAKI_CND_YMD);

		// 受注年月(年)、受注年月(月)
		setToYM(bean, KKW05905SFConst.JUCHU_YM_Y, KKW05905SFConst.JUCHU_YM_M, KKW05905SFConst.JUCHU_YM);

		// 内示年月(年)、内示年月(月)
		setToYM(bean, KKW05905SFConst.NAIZI_YM_Y, KKW05905SFConst.NAIZI_YM_M, KKW05905SFConst.NAIZI_YM);

		// Eハウス報告(年)、Eハウス報告(月)
		setToYM(bean, KKW05905SFConst.EHAUSU_HOUKOKU_YM_Y, KKW05905SFConst.EHAUSU_HOUKOKU_YM_M, KKW05905SFConst.EHAUSU_HOUKOKU_YM);

		// 郵便番号
		String pcd = bean.sendMessageString(KKW05905SFConst.PCD, X31CWebConst.DATABEAN_GET_VALUE);
		if (pcd != null && pcd.length() != 0)
		{
			// 郵便番号(上3桁)
			bean.sendMessageString(KKW05905SFConst.PCD_1, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toTopThreeDigitFromPcd(pcd));
			// 郵便番号(下4桁)
			bean.sendMessageString(KKW05905SFConst.PCD_2, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toUnderFourDigitFromPcd(pcd));
		}
		
		// 住所コード
		String adcd = bean.sendMessageString(KKW05905SFConst.AD_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if (adcd != null && adcd.length() != 0)
		{
			setToAdCd(bean, adcd.substring(0, 2), adcd.substring(2, 5), adcd.substring(5, 8), adcd.substring(8, 11));
		}
	}

	/**
	 * 住所検索ボタン押下処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean searchAd() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		this.setAddress(bean);
		
		//引継情報作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		dataMap.put(ZMW10601SFConst.SESSION_KEY_PCD_1, bean.sendMessageString(KKW05905SFConst.PCD_1, X31CWebConst.DATABEAN_GET_VALUE));
		dataMap.put(ZMW10601SFConst.SESSION_KEY_PCD_2, bean.sendMessageString(KKW05905SFConst.PCD_2, X31CWebConst.DATABEAN_GET_VALUE));
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10601, dataMap);

		// 戻り先画面ＩＤを設定
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW10601, JKKScreenConst.SCREEN_ID_KKW05905);

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// ■ 「お約束」遷移先画面ID取得し、設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10601);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW10601);

		return true;
	}

	/**
	 * 住所検索画面からの復帰処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean retSearchAd() throws Exception
	{
		HashMap<String, Object> mp = JCCWebCommon.getScreenInfo(this);

		// ■ 画面情報を取得し、サービスフォームBeanに設定
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 選択された住所情報の設定を行う
		setRetAddMsg(bean, mp);
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05905);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05905);

		return true;
	}

	/**
	 * 検索ボタン押下処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean searchCmp() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		this.setAddress(bean);
		
		//引継情報作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01004, dataMap);
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW05905, dataMap);

		// 戻り先画面ＩＤを設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW01004 + "0PJP", JKKScreenConst.SCREEN_ID_KKW05905);

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// ■ 「お約束」遷移先画面ID取得し、設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW01004);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW01004);

		return true;
	}

	/**
	 * 割引サービス選択画面からの復帰処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean retSearchCmp() throws Exception
	{
		HashMap<String, Object> mp = JCCWebCommon.getScreenInfo(this);

		// ■ 画面情報を取得し、サービスフォームBeanに設定
		X31SDataBeanAccess bean = super.getServiceFormBean();

		//引継情報設定
		bean.sendMessageString(KKW05905SFConst.CMP_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)mp.get("表示用キャンペーンコード"));

		// 割引サービス選択画面で指定したキャンペーンコードに値が設定されていた場合、面開発用のキャンペーンか確認する
		String dsp_campaign_cd = (String)mp.get("表示用キャンペーンコード");
		if (dsp_campaign_cd != null && !"".equals(dsp_campaign_cd))
		{
			//関連チェック
			// オンライン運用日付取得
			String ope_date = JCCWebCommon.getOpeDate(this, null);
			bean.sendMessageString(KKW05905SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, ope_date);

			// ■ サービス呼び出し準備
			HashMap<String, String> paramMap = new HashMap<String, String>();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_KKSV0469);

			HashMap<String, Object> inputMap = new HashMap<String, Object>();
			HashMap<String, Object> outputMap = new HashMap<String, Object>();

			X31SDataBeanAccess[] paramBean = {bean};

			KKSV0469_KKSV0469OPDBMapper mapper = new KKSV0469_KKSV0469OPDBMapper();
			mapper.setKKSV046901SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);

			// ■ サービス呼び出し
			X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

			// エラー処理 
			if (msgResult != null)
			{
				JCCWebCommon.setMessageInfo(this, msgResult);
				return true;
			}

			// 面開発用のキャンペーンでない場合、エラー
			if (!CMP_CD_MKHT.equals(getCmpType(outputMap, "KKSV046901SC")))
			{
				JCCWebCommon.setMessageInfo(this, MSG_ID_CMP_CD_CHK, new String[]{""}, "cmp_cd");
			}
		}

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05905);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05905);

		return true;
	}

	/**
	 * 追加ボタン押下処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean addTanto() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		this.setAddress(bean);
		
		// 担当者リストを取得
		X31SDataBeanAccessArray tantolist = bean.getDataBeanArray(KKW05905SFConst.MNKHT_TNTSHA_LIST);

		//一行追加
		X31SDataBeanAccess tantobean = tantolist.addDataBean();
		tantobean.sendMessageBoolean(KKW05905SFConst.CHOICE_02, X31CWebConst.DATABEAN_SET_VALUE, false);
		tantobean.sendMessageString(KKW05905SFConst.TNTSHA_NM_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
		tantobean.sendMessageString(KKW05905SFConst.TNTSHA_KANA_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
		tantobean.sendMessageString(KKW05905SFConst.TELNO_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
		tantobean.sendMessageString(KKW05905SFConst.BIKO_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
		if (tantolist.getCount() % 2 == 0)
		{
			// 偶数行の背景色を設定
			tantobean.sendMessageString(KKW05905SFConst.RECORD_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "even");
		}
		else
		{
			// 奇数行の背景色を設定
			tantobean.sendMessageString(KKW05905SFConst.RECORD_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "odd");
		}
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05905);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05905);

		return true;
	}

	/**
	 * 削除ボタン押下処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean delTanto() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		this.setAddress(bean);
		
		// 担当者リストを取得
		X31SDataBeanAccessArray tantolist = bean.getDataBeanArray(KKW05905SFConst.MNKHT_TNTSHA_LIST);

		int row = 0;
		for (row = 0; row < tantolist.getCount(); row++)
		{
			X31SDataBeanAccess tantoBean = tantolist.getDataBean(row);

			// 選択がチェックＯＮの場合、削除
			if (tantoBean.sendMessageBoolean(KKW05905SFConst.CHOICE_02, X31CWebConst.DATABEAN_GET_VALUE) == true)
			{
				tantolist.removeDataBean(row);
				row--;
				continue;
			}
			// 背景色設定
			if ((row + 1) % 2 == 0)
			{
				// 偶数行の背景色を設定
				tantoBean.sendMessageString(KKW05905SFConst.RECORD_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
			else
			{
				// 奇数行の背景色を設定
				tantoBean.sendMessageString(KKW05905SFConst.RECORD_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}
		}

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05905);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05905);

		return true;
	}

	/**
	 * 更新確認ボタン押下処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean comfirm() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		this.setAddress(bean);
		
		//サービスに渡す情報を生成
		setComfirmData(bean);
		
		// オンライン運用日付取得
		String ope_date = JCCWebCommon.getOpeDate(this, null);
		bean.sendMessageString(KKW05905SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, ope_date);

		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_KKSV0471);

		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		X31SDataBeanAccess[] paramBean = {bean};

		KKSV0471_KKSV0471OPDBMapper mapper = new KKSV0471_KKSV0471OPDBMapper();
		mapper.setKKSV047101SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047102SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV047103CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV047104CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);

		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
// ++++++++++ v4.01.00 修正開始 ++++++++++
		//ワーニング判定
		warningChk(outputMap);
// ++++++++++ v4.01.00 修正終了 ++++++++++
		
		// 面開発用のキャンペーンでない場合、エラー
		if (!CMP_CD_MKHT.equals(getCmpType(outputMap, "KKSV047101SC")))
		{
			//メッセージ設定
			JCCWebCommon.setMessageInfo(this, MSG_ID_CMP_CD_CHK, new String[]{""}, "cmp_cd");
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05905);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05905);
		}
		else
		{
			//コンボボックスの選択情報を設定
			setSelectComboData(KKW05905SFConst.BKN_PATTERN);
			setSelectComboData(KKW05905SFConst.INSE_TG);
			setSelectComboData(KKW05905SFConst.KEPCO_SHITEN);
			setSelectComboData(KKW05905SFConst.STDARD_SVC_DIV);
			setSelectComboData(KKW05905SFConst.KAKUTOKU_CHANNEL);
			setSelectComboDataList(KKW05905SFConst.MAEUKKIN_NET, "1");
			setSelectComboDataList(KKW05905SFConst.MAEUKKIN_TEL, "2");
			setSelectComboDataList(KKW05905SFConst.MAEUKKIN_TV, "3");

			//メッセージ設定
			JCCWebCommon.setMessageAreaBackColor(this, "1");	// 背景色、強調設定
			JCCWebCommon.setMessageInfo(this, MSG_ID_COMFIRM, new String[]{MESSAGE_WORD_UPD});
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05906);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05906);
		}

		return true;
	}

	/**
	 * 更新確認押下時のデータの編集を行います。
	 * @param bean
	 */
	private void setComfirmData(X31SDataBeanAccess bean)
	{
		// 覚書有効期限年月日
		String kigenYMD = setYMD(bean, KKW05905SFConst.OBOEGAKI_YK_KIGEN_Y, KKW05905SFConst.OBOEGAKI_YK_KIGEN_M, KKW05905SFConst.OBOEGAKI_YK_KIGEN_D);
		bean.sendMessageString(KKW05905SFConst.OBOEGAKI_YK_KIGEN, X31CWebConst.DATABEAN_SET_VALUE, kigenYMD);

		// 覚書締結年月日
		String cndYMD = setYMD(bean, KKW05905SFConst.OBOEGAKI_CND_YMD_Y, KKW05905SFConst.OBOEGAKI_CND_YMD_M, KKW05905SFConst.OBOEGAKI_CND_YMD_D);
		bean.sendMessageString(KKW05905SFConst.OBOEGAKI_CND_YMD, X31CWebConst.DATABEAN_SET_VALUE, cndYMD);

		// 受注年月
		String juchuYM = setYM(bean, KKW05905SFConst.JUCHU_YM_Y, KKW05905SFConst.JUCHU_YM_M);
		bean.sendMessageString(KKW05905SFConst.JUCHU_YM, X31CWebConst.DATABEAN_SET_VALUE, juchuYM);

		// 内示年月
		String naiziYM = setYM(bean, KKW05905SFConst.NAIZI_YM_Y, KKW05905SFConst.NAIZI_YM_M);
		bean.sendMessageString(KKW05905SFConst.NAIZI_YM, X31CWebConst.DATABEAN_SET_VALUE, naiziYM);

		// Eハウス報告
		String ehauseYM = setYM(bean, KKW05905SFConst.EHAUSU_HOUKOKU_YM_Y, KKW05905SFConst.EHAUSU_HOUKOKU_YM_M);
		bean.sendMessageString(KKW05905SFConst.EHAUSU_HOUKOKU_YM, X31CWebConst.DATABEAN_SET_VALUE, ehauseYM);

		// 郵便番号
		String pcd = JPCUtilCommon.concatPcd(bean.sendMessageString(KKW05905SFConst.PCD_1, X31CWebConst.DATABEAN_GET_VALUE),
											bean.sendMessageString(KKW05905SFConst.PCD_2, X31CWebConst.DATABEAN_GET_VALUE));
		
		if (pcd != null && pcd.length() > 0)
		{
			bean.sendMessageString(KKW05905SFConst.PCD, X31CWebConst.DATABEAN_SET_VALUE, pcd);
			bean.sendMessageString(KKW05905SFConst.PCD_DISP, X31CWebConst.DATABEAN_SET_VALUE, "〒" + JPCUtilCommon.hyhunPcd(pcd));
		}
		else
		{
			bean.sendMessageString(KKW05905SFConst.PCD, X31CWebConst.DATABEAN_SET_VALUE, "");
			bean.sendMessageString(KKW05905SFConst.PCD_DISP, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// 住所コード
		String adcd = setAdCd(bean);
		if (adcd != null)
		{
			bean.sendMessageString(KKW05905SFConst.AD_CD, X31CWebConst.DATABEAN_SET_VALUE, adcd);
			bean.sendMessageString(KKW05905SFConst.AD_CD_DISP, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.hyhunAdCd(adcd));
		}
		else
		{
			bean.sendMessageString(KKW05905SFConst.AD_CD, X31CWebConst.DATABEAN_SET_VALUE, "");
			bean.sendMessageString(KKW05905SFConst.AD_CD_DISP, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

	}

	/**
	 * 戻るボタン押下処理を行います。
	 * <br>
	 * @return boolean
	 */
	public boolean back()
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		this.setAddress(bean);
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));

		return true;
	}

	/**
	 * 修正ボタン押下処理
	 * <br>
	 * @return boolean
	 */
	public boolean returnUpd()
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		this.setAddress(bean);
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05905);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05905);

		return true;
	}

	/**
	 * 確定ボタン押下処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 */
	public boolean updFix()
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		this.setAddress(bean);

		// オンライン運用日付取得
		String ope_date = JCCWebCommon.getOpeDate(this, null);
		bean.sendMessageString(KKW05905SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, ope_date);

		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_KKSV0471);

		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		X31SDataBeanAccess[] paramBean = {bean};

		KKSV0471_KKSV0471OPDBMapper mapper = new KKSV0471_KKSV0471OPDBMapper();
		mapper.setKKSV047101SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047102SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047103CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047104CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);

		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		// 面開発用のキャンペーンでない場合、エラー
		if (!CMP_CD_MKHT.equals(getCmpType(outputMap, "KKSV047101SC")))
		{
			//メッセージ設定
			JCCWebCommon.setMessageInfo(this, MSG_ID_CMP_CD_CHK);
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05906);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05906);
		}
		else
		{
			//メッセージ設定
			JCCWebCommon.setMessageInfo(this, MSG_ID_FIN, new String[]{MESSAGE_WORD_UPD});
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05907);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05907);
		}

		return true;
	}

	/**
	 * 面開発案件一覧へボタン押下処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 */
	public boolean updFin()
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		this.setAddress(bean);
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));

		return true;
	}

	/**
	 * コードタイプ コンボボックスの選択情報を転記する。
	 * 
	 * @param listItemId 対象とするコンボボックスの項目ID
	 * @param kbn 料金内訳リストの区分（1:ネット、2:電話、3:テレビ）
	 */
	private void setSelectComboDataList(String listItemId, String kbn)
	{
		String target = null;
		X31SDataBeanAccess bean = super.getServiceFormBean();

		if ("1".equals(kbn))
		{
			target = KKW05905SFConst.PRC_UW_ALI;
		}
		else if ("2".equals(kbn))
		{
			target = KKW05905SFConst.PRC_UW_ALI_TEL;
		}
		else
		{
			target = KKW05905SFConst.PRC_UW_ALI_TV;
		}
		// コンボボックスのデータタイプを取得する。
		X31SDataBeanAccessArray subbeanlist = bean.getDataBeanArray(listItemId);

		for (int i = 0; i < subbeanlist.getCount(); i++)
		{
			X31SDataBeanAccess subbean = subbeanlist.getDataBean(i);

			setSelectComboData(subbean.getDataBeanArray(target).getDataBean(0),
								KKW05905SFConst.SELECT_INDEX_01,
								KKW05905SFConst.CD_DIV_CD_01,
								KKW05905SFConst.CD_DIV_NM_01,
								KKW05905SFConst.CD_DIV_CD_LIST_01,
								KKW05905SFConst.CD_DIV_NM_LIST_01);
		}
	}

	/**
	 * コードタイプ コンボボックスの選択情報を転記する。
	 * 
	 * @param comboItemId 対象とするコンボボックスの項目ID
	 */
	private void setSelectComboData(String comboItemId)
	{
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// コンボボックスのデータタイプを取得する。
		X31SDataBeanAccess subbean = bean.getDataBeanArray(comboItemId).getDataBean(0);

		setSelectComboData(subbean,
							KKW05905SFConst.SELECT_INDEX_01,
							KKW05905SFConst.CD_DIV_CD_01,
							KKW05905SFConst.CD_DIV_NM_01,
							KKW05905SFConst.CD_DIV_CD_LIST_01,
							KKW05905SFConst.CD_DIV_NM_LIST_01);
	}

	/**
	 * コンボボックスの選択情報を転記する。
	 * 
	 * @param subbean 対象とするコンボボックスビーン情報
	 * @param selIdxId 選択行インデックスが格納されている項目ID
	 * @param selCodeId 選択されたコードを格納する項目ID
	 * @param selNameId 選択された名称を格納する項目ID
	 * @param cdListId  コードの選択候補リストを格納している項目ID
	 * @param nmListId  名称の選択候補リストを格納している項目ID
	 */
	private void setSelectComboData(X31SDataBeanAccess subbean, String selIdxId, String selCodeId, String selNameId, String cdListId, String nmListId)
	{
		String selectedIndex = subbean.sendMessageString(selIdxId, X31CWebConst.DATABEAN_GET_VALUE);
		if (selectedIndex == null || "".equals(selectedIndex))
		{
			subbean.sendMessageString(selCodeId, X31CWebConst.DATABEAN_SET_VALUE, "");
			subbean.sendMessageString(selNameId, X31CWebConst.DATABEAN_SET_VALUE, "");
			return;
		}

		int selIdx = Integer.valueOf(selectedIndex);

		subbean.sendMessageString(selCodeId,
									X31CWebConst.DATABEAN_SET_VALUE,
									subbean.sendMessageString(cdListId, X31CWebConst.DATABEAN_GET_VALUE, selIdx));

		subbean.sendMessageString(selNameId,
									X31CWebConst.DATABEAN_SET_VALUE,
									subbean.sendMessageString(nmListId, X31CWebConst.DATABEAN_GET_VALUE, selIdx));
	}

	/**
	 * 割引タイプコードを取得する。
	 * 
	 * @param map 検索結果の情報
	 * @param title 割引サービス一意照会結果が設定されるHashMapの項目名
	 * @return 割引タイプコード
	 */
	@SuppressWarnings("unchecked")
	private String getCmpType(HashMap map, String title)
	{
		String cmptype = null;

		HashMap parentMap = null;
		if (map.containsKey(title))
		{
			parentMap = (HashMap)map.get(title);
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0841B509CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0841B509CBSMsg1List");
			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				cmptype = (String)childMap.get("wrib_type_cd");
			}
		}
		return cmptype;
	}
	
	/**
	 * 住所検索画面からの戻り時の住所情報設定処理を行います。
	 * @param srvBean DataBann
	 * @param resultMap 住所検索画面からの返却値
	 */
	private void setRetAddMsg(X31SDataBeanAccess srvBean, HashMap<String, Object> resultMap)
	{
/* ++++++++++ v4.00.00 修正開始 ++++++++++ */
		// 住所情報の初期化
//		srvBean.sendMessageString(KKW05905SFConst.PCD_1, X31CWebConst.DATABEAN_CLEAR);
//		srvBean.sendMessageString(KKW05905SFConst.PCD_2, X31CWebConst.DATABEAN_CLEAR);
//		srvBean.sendMessageString(KKW05905SFConst.AD_CD_1, X31CWebConst.DATABEAN_CLEAR);
//		srvBean.sendMessageString(KKW05905SFConst.AD_CD_2, X31CWebConst.DATABEAN_CLEAR);
//		srvBean.sendMessageString(KKW05905SFConst.AD_CD_3, X31CWebConst.DATABEAN_CLEAR);
//		srvBean.sendMessageString(KKW05905SFConst.AD_CD_4, X31CWebConst.DATABEAN_CLEAR);
//		srvBean.sendMessageString(KKW05905SFConst.STATE, X31CWebConst.DATABEAN_CLEAR);
//		srvBean.sendMessageString(KKW05905SFConst.CITY, X31CWebConst.DATABEAN_CLEAR);
//		srvBean.sendMessageString(KKW05905SFConst.OAZTSU, X31CWebConst.DATABEAN_CLEAR);
//		srvBean.sendMessageString(KKW05905SFConst.AZCHO, X31CWebConst.DATABEAN_CLEAR);
		
		srvBean.sendMessage(KKW05905SFConst.PCD_1, X31CWebConst.DATABEAN_CLEAR);
		srvBean.sendMessage(KKW05905SFConst.PCD_2, X31CWebConst.DATABEAN_CLEAR);
		srvBean.sendMessage(KKW05905SFConst.AD_CD_1, X31CWebConst.DATABEAN_CLEAR);
		srvBean.sendMessage(KKW05905SFConst.AD_CD_2, X31CWebConst.DATABEAN_CLEAR);
		srvBean.sendMessage(KKW05905SFConst.AD_CD_3, X31CWebConst.DATABEAN_CLEAR);
		srvBean.sendMessage(KKW05905SFConst.AD_CD_4, X31CWebConst.DATABEAN_CLEAR);
		srvBean.sendMessage(KKW05905SFConst.STATE, X31CWebConst.DATABEAN_CLEAR);
		srvBean.sendMessage(KKW05905SFConst.CITY, X31CWebConst.DATABEAN_CLEAR);
		srvBean.sendMessage(KKW05905SFConst.OAZTSU, X31CWebConst.DATABEAN_CLEAR);
		srvBean.sendMessage(KKW05905SFConst.AZCHO, X31CWebConst.DATABEAN_CLEAR);
/* ++++++++++ v4.00.00 修正終了 ++++++++++ */
		
		//引継情報設定
		String pcd1 = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_PCD_1);
		String pcd2 = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_PCD_2);
		
		String adCd1 = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_1);
		String adCd2 = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_2);
		String adCd3 = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_3);
		String adCd4 = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_4);
		
		String state = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_STATE_NM);
		String city = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_CITY_NM);
		String oaztsu = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_OAZTSU_NM);
		String azcho = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AZCHO_NM);
		String bnchigo = srvBean.sendMessageString(KKW05905SFConst.BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE);
		
		
		if("00".equals(adCd1))
		{
			// 住所
			setAdInf(srvBean, "", "", "", "", state + city + oaztsu + azcho );

			
		}
		else if("000".equals(adCd2))
		{
			// 住所
			setAdInf(srvBean, state, "", "", "", city + oaztsu + azcho );
			
	
		}
		else if("000".equals(adCd3))
		{
			// 住所
			setAdInf(srvBean, state, city, "", "", oaztsu + azcho );
			
		
		}
		else if("000".equals(adCd4))
		{
			// 住所
			setAdInf(srvBean, state, city, oaztsu, "", azcho );
			
			
		}
		else
		{
			// 住所
			setAdInf(srvBean, state, city, oaztsu, azcho, bnchigo);
		}
		
		// 制御用の項目に同内容を設定
		srvBean.sendMessageString(KKW05905SFConst.PCD_1, X31CWebConst.DATABEAN_SET_VALUE, pcd1);
		srvBean.sendMessageString(KKW05905SFConst.PCD_2, X31CWebConst.DATABEAN_SET_VALUE, pcd2);
		srvBean.sendMessageString(KKW05905SFConst.CTRLY_PCD_1, X31CWebConst.DATABEAN_SET_VALUE, pcd1);
		srvBean.sendMessageString(KKW05905SFConst.CTRLY_PCD_2, X31CWebConst.DATABEAN_SET_VALUE, pcd2);
		
		setToAdCd(srvBean, adCd1, adCd2, adCd3, adCd4);
		
		setMoveValue(srvBean, KKW05905SFConst.CTRLY_STATE, KKW05905SFConst.STATE);
		setMoveValue(srvBean, KKW05905SFConst.CTRLY_CITY, KKW05905SFConst.CITY);
		setMoveValue(srvBean, KKW05905SFConst.CTRLY_OAZTSU, KKW05905SFConst.OAZTSU);
		setMoveValue(srvBean, KKW05905SFConst.CTRLY_AZCHO, KKW05905SFConst.AZCHO);
		
		// 手動入力チェックをOFFにする。
		srvBean.sendMessageBoolean(KKW05905SFConst.EXCEPT, X31CWebConst.DATABEAN_SET_VALUE, false);
		
		// javascript制御のために住所検索戻りフラグを設定
		srvBean.sendMessageString(KKW05905SFConst.ADD_SEARCH_BACK_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
	}
	
	/**
	 * 住所項目の値を制御項目からテキスト項目に転記します。
	 * @param srvBean DataBann
	 */
	private void setAddress(X31SDataBeanAccess srvBean)
	{
		setMoveValue(srvBean, KKW05905SFConst.PCD_1, KKW05905SFConst.CTRLY_PCD_1);
		setMoveValue(srvBean, KKW05905SFConst.PCD_2, KKW05905SFConst.CTRLY_PCD_2);
		setMoveValue(srvBean, KKW05905SFConst.AD_CD_1, KKW05905SFConst.CTRLY_AD_CD_1);
		setMoveValue(srvBean, KKW05905SFConst.AD_CD_2, KKW05905SFConst.CTRLY_AD_CD_2);
		setMoveValue(srvBean, KKW05905SFConst.AD_CD_3, KKW05905SFConst.CTRLY_AD_CD_3);
		setMoveValue(srvBean, KKW05905SFConst.AD_CD_4, KKW05905SFConst.CTRLY_AD_CD_4);
		setMoveValue(srvBean, KKW05905SFConst.STATE, KKW05905SFConst.CTRLY_STATE);
		setMoveValue(srvBean, KKW05905SFConst.CITY, KKW05905SFConst.CTRLY_CITY);
		setMoveValue(srvBean, KKW05905SFConst.OAZTSU, KKW05905SFConst.CTRLY_OAZTSU);
		setMoveValue(srvBean, KKW05905SFConst.AZCHO, KKW05905SFConst.CTRLY_AZCHO);
	}

	/**
	 * 住所情報を設定します。
	 * <br>
	 * @param bean 画面情報
	 * @param state
	 * @param city
	 * @param oaztsu
	 * @param azchi
	 * @param bnchigo
	 */
	private void setAdInf(X31SDataBeanAccess bean, String state, String city, String oaztsu, String azchi, String bnchigo)
	{
		bean.sendMessageString(KKW05905SFConst.STATE, X31CWebConst.DATABEAN_SET_VALUE, state);
		bean.sendMessageString(KKW05905SFConst.CITY, X31CWebConst.DATABEAN_SET_VALUE, city);
		bean.sendMessageString(KKW05905SFConst.OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, oaztsu);
		bean.sendMessageString(KKW05905SFConst.AZCHO, X31CWebConst.DATABEAN_SET_VALUE, azchi);
		bean.sendMessageString(KKW05905SFConst.BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, bnchigo);
	}

	/**
	 * 住所コードを連結します。
	 * <br>
	 * @param bean 画面情報
	 * <br>
	 * @return String 連結した住所コード
	 */
	private String setAdCd(X31SDataBeanAccess bean)
	{
		StringBuilder sb = null;
		String ad1 = bean.sendMessageString(KKW05905SFConst.AD_CD_1, X31CWebConst.DATABEAN_GET_VALUE);
		String ad2 = bean.sendMessageString(KKW05905SFConst.AD_CD_2, X31CWebConst.DATABEAN_GET_VALUE);
		String ad3 = bean.sendMessageString(KKW05905SFConst.AD_CD_3, X31CWebConst.DATABEAN_GET_VALUE);
		String ad4 = bean.sendMessageString(KKW05905SFConst.AD_CD_4, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (ad1 == null || ad1.length() == 0)
		{
			return null;
		}
		else if (ad2 == null || ad2.length() == 0)
		{
			return null;
		}
		else if (ad3 == null || ad3.length() == 0)
		{
			return null;
		}
		else if (ad4 == null || ad4.length() == 0)
		{
			return null;
		}
		
		sb = new StringBuilder();
		sb.append(ad1);
		sb.append(ad2);
		sb.append(ad3);
		sb.append(ad4);
		
		return sb.toString();
	}

	/**
	 * 年と月を連結します。
	 * <br>
	 * @param bean 画面情報
	 * @param keyY
	 * @param keyM
	 * <br>
	 * @return String 連結した年月
	 */
	private String setYM(X31SDataBeanAccess bean, String keyY, String keyM)
	{
		String year = bean.sendMessageString(keyY, X31CWebConst.DATABEAN_GET_VALUE);
		String month = bean.sendMessageString(keyM, X31CWebConst.DATABEAN_GET_VALUE);
		
		return JPCUtilCommon.concatYm(year, month);
	}

	/**
	 * 年と月と日を連結します。
	 * <br>
	 * @param bean 画面情報
	 * @param keyY
	 * @param keyM
	 * @param keyD
	 * <br>
	 * @return String 連結した年月
	 */
	private String setYMD(X31SDataBeanAccess bean, String keyY, String keyM, String keyD)
	{
		String year = bean.sendMessageString(keyY, X31CWebConst.DATABEAN_GET_VALUE);
		String month = bean.sendMessageString(keyM, X31CWebConst.DATABEAN_GET_VALUE);
		String day = bean.sendMessageString(keyD, X31CWebConst.DATABEAN_GET_VALUE);
		
		return JPCUtilCommon.concatYmd(year, month, day);
	}

	/**
	 * 年月を年と月に分割設定します。
	 * <br>
	 * @param bean 画面情報
	 * @param keyY
	 * @param keyM
	 * @param key
	 */
	private void setToYM(X31SDataBeanAccess bean, String keyY, String keyM, String key)
	{
		String value = bean.sendMessageString(key, X31CWebConst.DATABEAN_GET_VALUE);
		if (value != null && value.length() != 0)
		{
			bean.sendMessageString(keyY, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toYearFromYm(value));
			bean.sendMessageString(keyM, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toMonthFromYm(value));
		}
	}

	/**
	 * 年月日を年と月と日に分割設定します。
	 * <br>
	 * @param bean 画面情報
	 * @param keyY
	 * @param keyM
	 * @param keyD
	 * @param key
	 */
	private void setToYMD(X31SDataBeanAccess bean, String keyY, String keyM, String keyD, String key)
	{
		String value = bean.sendMessageString(key, X31CWebConst.DATABEAN_GET_VALUE);
		if (value != null && value.length() != 0)
		{
			bean.sendMessageString(keyY, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toYearFromYmd(value));
			bean.sendMessageString(keyM, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toMonthFromYmd(value));
			bean.sendMessageString(keyD, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toDayFromYmd(value));
		}
	}

	/**
	 * 住所コードを設定します。
	 * <br>
	 * @param bean 画面情報
	 * @param ad1
	 * @param ad2
	 * @param ad3
	 * @param ad4
	 */
	private void setToAdCd(X31SDataBeanAccess bean, String ad1, String ad2, String ad3, String ad4)
	{
		bean.sendMessageString(KKW05905SFConst.AD_CD_1, X31CWebConst.DATABEAN_SET_VALUE, ad1);
		bean.sendMessageString(KKW05905SFConst.AD_CD_2, X31CWebConst.DATABEAN_SET_VALUE, ad2);
		bean.sendMessageString(KKW05905SFConst.AD_CD_3, X31CWebConst.DATABEAN_SET_VALUE, ad3);
		bean.sendMessageString(KKW05905SFConst.AD_CD_4, X31CWebConst.DATABEAN_SET_VALUE, ad4);
		bean.sendMessageString(KKW05905SFConst.CTRLY_AD_CD_1, X31CWebConst.DATABEAN_SET_VALUE, ad1);
		bean.sendMessageString(KKW05905SFConst.CTRLY_AD_CD_2, X31CWebConst.DATABEAN_SET_VALUE, ad2);
		bean.sendMessageString(KKW05905SFConst.CTRLY_AD_CD_3, X31CWebConst.DATABEAN_SET_VALUE, ad3);
		bean.sendMessageString(KKW05905SFConst.CTRLY_AD_CD_4, X31CWebConst.DATABEAN_SET_VALUE, ad4);
	}

	/**
	 * @param bean
	 * @param setKey
	 * @param getKey
	 */
	private void setMoveValue(X31SDataBeanAccess bean, String setKey, String getKey)
	{
		bean.sendMessageString(setKey, X31CWebConst.DATABEAN_SET_VALUE, bean.sendMessageString(getKey, X31CWebConst.DATABEAN_GET_VALUE));
	}
	
// ++++++++++ v4.01.00 修正開始 ++++++++++
	/**
	 * ワーニングチェック
	 * 
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private void warningChk(HashMap outputMap)
	{
		// 戻り値
		HashMap parentMap = null;
		
		if(outputMap.containsKey("KKSV047102SC")){
			parentMap = (HashMap)outputMap.get("KKSV047102SC");
		}
		
		if (null != parentMap)
		{
			for (int i=0; i<AD_CHK_LV_ERR.length; i++)
			{
				if (parentMap.containsKey(AD_CHK_LV_ERR[i]))
				{
					String warningStatus = (String)parentMap.get(AD_CHK_LV_ERR[i]);
					if (STATUS_WARNING.equals(warningStatus))
					{
						JCCWebCommon.setMessageInfo(this, "EKBD290--Q",new String[]{AD_CHK_LV_ERR_CHG[i]});
					}
				}
			}
		}
	}
// ++++++++++ v4.01.00 修正終了 ++++++++++
}
