/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：エリア検索
 *   ソースファイル名：FUW00906SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2012年01月13日
 *＜機能概要＞
 *  エリア検索のビューロジッククラスです。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v1.00.00    2012/01/13   FJ）大塚    新規作成
 *   v1.00.01    2012/05/26   FJ）馬場    パスコ連携処理追加
 *   v4.00.00    2012/11/22   FJ) 大塚   【IT2-2012-0001790】
 *   v40.00      2019/01/09   FJ) 岡井   【ANK-3506-00-00】量販Webのエリアリクエスト機能追加
 *   v57.00      2022/02/09	  FJ) 張本   【ANK-4173-00-00】【eo顧客】解約後の契約情報表示、再申込対応
 *   v73.00.00   2024/09/04	  FJ) 余野木 【ANK-4427-00-00】NTT卸対応
 *
 **********************************************************************/
package eo.web.webview.FUW00906SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
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.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0140_FUSV0140OPDBMapper;
import eo.web.webview.mapping.FUSV0178_FUSV0178OPDBMapper;
import eo.web.webview.FUW00906SF.FUW00906SFConst;

/**
 * エリア検索のビューロジッククラスです。
 * <p>
 * <BR>
 * 
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00906SFLogic extends JCCWebBusinessLogic
{

	/** ユースケースID（FUSV0140） */
	private static final String USECASE_ID_FUSV0140 = "FUSV0140";

	/** ボタン制御(next1:郵便番号) */
	private static final String BTN_CTRL_1 = "1";

	/** ボタン制御(next2:住所) */
	private static final String BTN_CTRL_2 = "2";

	/** ボタン制御(next3) */
	private static final String BTN_CTRL_3 = "3";

	/** 共有フォームBeanの設定パス：リダイレクト情報 */
	private static final String REDIRECT_PATH = CommonInfoCFConst.REDIRECT_INFO + "[0].";

	/** 共有フォームBeanの設定パス：契約サービス情報 */
	private static final String KEIYAKU_SVC_PATH = CommonInfoCFConst.KEIYAKU_SVC_INFO + "[0].";

	/** 共有フォームBeanの設定パス：契約サービス情報 */
	private static final String ELSE_INFO_PATH = CommonInfoCFConst.ELSE_INFO + "[0].";

	/** [PASCOパラメータ]申込区分:新規 */
	private static final String APPL_CLASS_NEW = "01";

	/** [PASCOパラメータ]仮申込サービス:"03"(ホームタイプ) */
	private static final String KARI_SVC_HOME = "03";

	/** [PASCOパラメータ]仮申込サービス:"11"(光テレビ) */
	private static final String KARI_SVC_TV = "11";

	/** [PASCOパラメータ]遷移区分:本申込 */
	private static final String TRANS_HON = "04";

	/** [PASCOパラメータ]遷移区分:仮申込 */
	private static final String TRANS_KARI = "03";

	/** [PASCOパラメータ]遷移区分:料金シミュレーション（量販）*/
	private static final String TRANS_DIV_SIML = "05";

	/** [PASCOパラメータ]インデックス(代理店フラグ):"1"(量販WEB) */
	private static final String AGENT_FLG_ON = "1";

	/** [PASCOパラメータ]インデックス(代理店フラグ):"2"(訪販WEB) */
	private static final String AGENT_FLG_HOHAN = "2";

	/** OSID（PASCO:FUIFE001_PASCO住所検索起動依頼） */
	private static final String OSID_FUIFE001 = "OS001";

	/**
	 * 初期表示処理
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean init() throws Exception
	{
		// サービスフォームBean取得
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// コード種別をセット
		serviceInfoBean.sendMessageString(FUW00906SFConst.CODE_SBT, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD_SBT_CD00691);
		// 基準日をセット
		serviceInfoBean.sendMessageString(FUW00906SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));

		// サービスIDをparamにセット
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0140);

		// DataBean-BPマッピング
		FUSV0140_FUSV0140OPDBMapper mapper = new FUSV0140_FUSV0140OPDBMapper();

		HashMap<Object, Object> inputMap = new HashMap<Object, Object>();
		HashMap<Object, Object> outputMap = new HashMap<Object, Object>();

		X31SDataBeanAccess[] paramBean = { serviceInfoBean };
		X31SDataBeanAccess[] paramBeans = { serviceInfoBean, getCommonInfoBean() };

		// 機能コード「1」を設定
		mapper.setMskmUcwkMap(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		// Web申込機能が再申込の場合
		if (isWebMskmFuncCd3(getCommonInfoBean()))
		{
			mapper.setFUSV014001SC(paramBeans, inputMap, JPCModelConstant.FUNC_CD_2);
		}

		try
		{
			// サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// システムエラー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		X31SDataBeanAccess[] paramBeanOut = { serviceInfoBean };

		// サービスからの戻りデータをBeanにセット
		mapper.getMskmUcwkMap(paramBeanOut, outputMap);

		// Web申込機能が再申込の場合
		if (isWebMskmFuncCd3(getCommonInfoBean()))
		{
			// 回線場所を取得
			mapper.getFUSV014001SC(paramBeanOut, outputMap);
			// 遷移先画面ＩＤにPASCOのosidを指定して他サイト連携
			getCommonInfoBean().sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, OSID_FUIFE001);

		}

		// ANK-4427-00-00 ADD START
		// 府県リストの再設定
		if (JFUWebCommon.isTypen(getCommonInfoBean())) {
	        X31SDataBeanAccess prefecture_list = serviceInfoBean.getDataBeanArray(FUW00906SFConst.PREFECTURE_LIST).getDataBean(0);
			int selectCount = (Integer)prefecture_list.sendMessage(FUW00906SFConst.PREFECTURE_NAME_LIST_01, X31CWebConst.DATABEAN_GET_COUNT);

			for (int i=0; i < selectCount; i++) {
				String selectNm = prefecture_list.sendMessageString(FUW00906SFConst.PREFECTURE_NAME_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);
				if (selectNm.equals("福井県")) {
			        prefecture_list.sendMessage(FUW00906SFConst.PREFECTURE_NAME_LIST_01, X31CWebConst.DATABEAN_REMOVE, i);
			        prefecture_list.sendMessage(FUW00906SFConst.PREFECTURE_CODE_LIST_01, X31CWebConst.DATABEAN_REMOVE, i);
				}
			}
		}
		// ANK-4427-00-00 ADD END

		return true;
	}

	/**
	 * 次へボタン押下時（郵便番号から検索）
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean next1() throws Exception
	{

// ANK-4427-00-00 MOD START
//		redirectPasco(BTN_CTRL_1);
		if (JFUWebCommon.isTypen(getCommonInfoBean()))
		{
			redirectTypen(BTN_CTRL_1);
		}
		else
		{
			redirectPasco(BTN_CTRL_1);
		}
// ANK-4427-00-00 MOD END

		return true;
	}

	/**
	 * 次へボタン押下時（住所から検索）
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean next2() throws Exception
	{

// ANK-4427-00-00 MOD START
//		redirectPasco(BTN_CTRL_2);
		if (JFUWebCommon.isTypen(getCommonInfoBean()))
		{
			redirectTypen(BTN_CTRL_2);
		}
		else
		{
			redirectPasco(BTN_CTRL_2);
		}
// ANK-4427-00-00 MOD END

		return true;
	}

	/**
	 * サービス可能エリア検索ボタン押下時
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean next3() throws Exception
	{
		redirectPasco(BTN_CTRL_3);

		return true;
	}

	/**
	 * 戻るボタン押下時
	 * 
	 * @return 処理結果
	 * @throws Exception  例外
	 */
	public boolean back() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// 次画面IDの設定
		// 遷移先画面ＩＤ
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00942);
		// 遷移先画面名称
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00942);

		return true;
	}

	/**
	 * <DL>
	 * <DT>PASCOリダイレクト処理(他サイト連携)
	 * </DL>
	 * <p>
	 * 
	 * @return true(固定)
	 */
	@SuppressWarnings("unchecked")
	public boolean redirectPasco(String btn)
	{
		X31SDataBeanAccess common_info_bean = null;

		// 共有フォームBean
		common_info_bean = getCommonInfoBean();
		X31SDataBeanAccess beanNew = common_info_bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO).getDataBean(0); // ＷＥＢ新規情報
		// サービスフォームBean
		X31SDataBeanAccess serviceBean = getServiceFormBean();

		// ----------------------------------------------------
		// 制御用の項目を取得
		// ----------------------------------------------------
		String tmp_path = "";

		// 申込区分 0:未定 1:新規 2:追加
		tmp_path = CommonInfoCFConst.MSKM_KBN_06;
		String mskm_kbn_value = getValueFromBean(beanNew, tmp_path);

		// IT2-2012-1790 2012/11/26 Otsuka start
		// 申込区分2の値
		tmp_path = CommonInfoCFConst.MSKM_KBN2_06;
		String mkm_kbn = getValueFromBean(beanNew, tmp_path);
		// IT2-2012-1790 2012/11/26 Otsuka end

		// リダイレクト情報.KCN申込フラグの値
		tmp_path = REDIRECT_PATH + CommonInfoCFConst.RED_KCN_MSKM_17;
		String red_kcn_mskm_value = getValueFromBean(beanNew, tmp_path);

		// IT2-2012-1790 2012/11/26 Otsuka start
		// リダイレクト情報.ナビゲータパターンの値
		tmp_path = REDIRECT_PATH + CommonInfoCFConst.NAVIGATOR_PTN_17;
		String red_trans_div_value = getValueFromBean(beanNew, tmp_path);

		// IT2-2012-1790 2012/11/26 Otsuka 申込区分2に移動。

		// 契約サービス情報.選択サービス（ネット）の値
		tmp_path = KEIYAKU_SVC_PATH + CommonInfoCFConst.SELECT_SVC_NET_10;
		String select_svc_net = getValueFromBean(beanNew, tmp_path);

		// 契約サービス情報.選択サービス（電話）の値
		tmp_path = KEIYAKU_SVC_PATH + CommonInfoCFConst.SELECT_SVC_TEL_10;
		String select_svc_tel = getValueFromBean(beanNew, tmp_path);

		// 販売タイプ
		tmp_path = CommonInfoCFConst.HANBAI_TYPE_06;
		String hanbai_type = getValueFromBean(beanNew, tmp_path);

		// ----------------------------------------------------
		// 値の補正処理
		// ----------------------------------------------------
		// (仮申込サービス) ===================================
		String kari_svc = "";

		// @ナビゲータパターンがエリア検索
		if (JFUStrConst.NAVI_PTN_AREA.equals(red_trans_div_value))
		{
			kari_svc = KARI_SVC_HOME; // 03:ホームタイプ

		}
		// Aナビゲータパターンが料金シミュレーション
		else if (JFUStrConst.NAVI_PTN_SIML.equals(red_trans_div_value))
		{
			// 選択サービス（ネット） "1"(選択)、または選択サービス（電話） "1"(選択)の場合
			if ((JFUStrConst.SELECT_SVC_NET_CHOICE.equals(select_svc_net)) || (JFUStrConst.SELECT_SVC_TEL_CHOICE.equals(select_svc_tel)))
			{
				kari_svc = KARI_SVC_HOME; // 03:ホームタイプ
			}
			// 上記以外(すべて未選択はありえないため、TV単独)
			else
			{
				kari_svc = KARI_SVC_TV; // 11：光テレビ
			}
		}

		// (遷移区分) ======================================
		if (JFUStrConst.NAVI_PTN_AREA.equals(red_trans_div_value)) // "1":エリア検索
		{
			// 
			if (JFUStrConst.MSKM_KBN_HON.equals(mkm_kbn))
			{
				red_trans_div_value = TRANS_HON; // 04：本申込（量販）
			}
			else
			{
				red_trans_div_value = TRANS_KARI; // 03：仮申込（量販）
			}
		}
		else if (JFUStrConst.NAVI_PTN_SIML.equals(red_trans_div_value)) // "2":料金シミュレーション
		{
			red_trans_div_value = TRANS_DIV_SIML; // 05：料金シミュレーション（量販）
		}
		// IT2-2012-1790 2012/11/26 Otsuka end

		// ----------------------------------------------------
		// サービスフォームBeanに送信パラメータを設定
		// ----------------------------------------------------
		// セッションＩＤ sesid
		serviceBean.sendMessageString(FUW00906SFConst.SESID, X31CWebConst.DATABEAN_SET_VALUE, this.getSessionId());
		// 申込区分 appl_class
		serviceBean.sendMessageString(FUW00906SFConst.MSKM_KBN, X31CWebConst.DATABEAN_SET_VALUE, APPL_CLASS_NEW);
		// 仮申込サービス s
		serviceBean.sendMessageString(FUW00906SFConst.KRMSKM_SERVICE, X31CWebConst.DATABEAN_SET_VALUE, kari_svc);
		/**
		 * 郵便番号
		 */
		if (BTN_CTRL_1.equals(btn))
		{
			serviceBean.sendMessageString(FUW00906SFConst.ZIP, X31CWebConst.DATABEAN_SET_VALUE, serviceBean.sendMessageString(FUW00906SFConst.PCD1,
					X31CWebConst.DATABEAN_GET_VALUE)
					+ serviceBean.sendMessageString(FUW00906SFConst.PCD2, X31CWebConst.DATABEAN_GET_VALUE));
		}

		/**
		 * 都道府県名、市町村名
		 */
		if (BTN_CTRL_2.equals(btn))
		{
			int prefecture_select =
					Integer.valueOf(serviceBean.getDataBeanArray(FUW00906SFConst.PREFECTURE_LIST).getDataBean(0).sendMessageString(
							FUW00906SFConst.PREFECTURE_SELECT_01, X31CWebConst.DATABEAN_GET_VALUE));
			String state =
					serviceBean.getDataBeanArray(FUW00906SFConst.PREFECTURE_LIST).getDataBean(0).sendMessageString(
							FUW00906SFConst.PREFECTURE_NAME_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, prefecture_select);

			serviceBean.sendMessageString(FUW00906SFConst.ADD1, X31CWebConst.DATABEAN_SET_VALUE, state);

			serviceBean.sendMessageString(FUW00906SFConst.ADD2, X31CWebConst.DATABEAN_SET_VALUE, serviceBean.sendMessageString(
					FUW00906SFConst.CITY_AZA_CHO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 代理店フラグ ind ※(WEB新規は"0"固定)
		if (JFUStrConst.HNBAI_TYPE_RYOHAN.equals(hanbai_type))
		{
			// 量販WEB
			serviceBean.sendMessageString(FUW00906SFConst.AGENT_FLG, X31CWebConst.DATABEAN_SET_VALUE, AGENT_FLG_ON);
		}
		else if (JFUStrConst.HNBAI_TYPE_HOHAN.equals(hanbai_type))
		{
			// 訪販WEB
			serviceBean.sendMessageString(FUW00906SFConst.AGENT_FLG, X31CWebConst.DATABEAN_SET_VALUE, AGENT_FLG_HOHAN);
		}

		// ＫＣＮリンク link
		serviceBean.sendMessageString(FUW00906SFConst.LINK, X31CWebConst.DATABEAN_SET_VALUE, red_kcn_mskm_value);
		// 遷移区分 trans_div
		serviceBean.sendMessageString(FUW00906SFConst.TRANS_DIV, X31CWebConst.DATABEAN_SET_VALUE, red_trans_div_value);

		// 遷移先画面ＩＤにPASCOのosidを指定して他サイト連携
		common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, OSID_FUIFE001);

		return true;
	}

// ANK-4427-00-00 ADD START
	/**
	 * <DL>
	 * <DT>NTT卸用リダイレクト処理
	 * </DL>
	 * <p>
	 * 
	 * @return true(固定)
	 */
	@SuppressWarnings("unchecked")
	public boolean redirectTypen(String btn)
	{
		X31SDataBeanAccess common_info_bean = null;

		// 共有フォームBean
		common_info_bean = getCommonInfoBean();
		X31SDataBeanAccess beanNew = common_info_bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO).getDataBean(0); // ＷＥＢ新規情報
		// サービスフォームBean
		X31SDataBeanAccess serviceBean = getServiceFormBean();

		if (JFUWebCommon.isTypen(common_info_bean) && BTN_CTRL_1.equals(btn)) {
			String stateNm = "";
			String cityNm = "";
			String oaztsuNm = "";
			String azchoNm = "";

			// リダイレクト情報に値を設定
			X31SDataBeanAccessArray redirect_bean_array = beanNew.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO);
			X31SDataBeanAccess redirect_bean = redirect_bean_array.getDataBean(0);

			redirect_bean.sendMessageString("リダイレクト・郵便番号（上）", X31CWebConst.DATABEAN_SET_VALUE, serviceBean.sendMessageString(FUW00906SFConst.PCD1, X31CWebConst.DATABEAN_GET_VALUE));
			redirect_bean.sendMessageString("リダイレクト・郵便番号（下）", X31CWebConst.DATABEAN_SET_VALUE, serviceBean.sendMessageString(FUW00906SFConst.PCD2, X31CWebConst.DATABEAN_GET_VALUE));
			serviceBean.sendMessageString("基準日", X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getOpeDate(this, null));

			// サービスIDをparamにセット
			Map<String, String> paramMap = new HashMap<String, String>();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "FUSV0178");

			// DataBean-BPマッピング
			FUSV0178_FUSV0178OPDBMapper mapper = new FUSV0178_FUSV0178OPDBMapper();

			HashMap<String, Object> inputMap = new HashMap<String, Object>();
			HashMap<String, Object> outputMap = new HashMap<String, Object>();

			X31SDataBeanAccess[] paramBean = { serviceBean, common_info_bean };

			// 機能コード「1」を設定
			mapper.setFUSV017808SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
			mapper.setFUSV0178TypeNSC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

			try
			{
				// サービス呼び出し
				invokeService(paramMap, inputMap, outputMap);
			}
			catch (JCCWebServiceException se)
			{
				// システムエラー
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
			}

			X31SDataBeanAccess[] paramBeanOut = { serviceBean };

			// サービスからの戻りデータをBeanにセット(下りマッピング)
			mapper.getFUSV017808SC(paramBeanOut, outputMap);

			HashMap<String, Object> parentMap = null;

			ArrayList<Object> childList = null;

			if (outputMap.containsKey("FUSV017808SC"))
			{
				parentMap = (HashMap)outputMap.get("FUSV017808SC");
			}

			if (!((HashMap)parentMap).isEmpty() && parentMap.containsKey("EZM0081B012CBSMsg1List"))
			{
				childList = (ArrayList)parentMap.get("EZM0081B012CBSMsg1List");
			}

			if (!((ArrayList)childList).isEmpty() && childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				stateNm = (String)childMap.get("state_nm");
				cityNm = (String)childMap.get("city_nm");
				oaztsuNm = (String)childMap.get("oaztsu_nm");
				azchoNm = (String)childMap.get("azcho_nm");
			}

			// 2府4県のみ対象
			if (!(stateNm.equals("大阪府") || stateNm.equals("京都府") || stateNm.equals("兵庫県") || 
					stateNm.equals("奈良県") || stateNm.equals("和歌山県") || stateNm.equals("滋賀県"))) {
				// エラーメッセージを表示する。
				JCCWebCommon.setMessageInfo(this, "EKF1770-NW", new String[] { "typeN提供範囲内", "郵便番号" }, "zipFront");
				return true;
			}

			//共有フォームBeanのＰＡＳＣＯ情報データタイプBean定義
			X31SDataBeanAccessArray pascoInfoBeanArray = beanNew.getDataBeanArray(CommonInfoCFConst.PASCO_INFO);
			if (pascoInfoBeanArray.getCount() == 0)
			{
				pascoInfoBeanArray.addDataBean();
			}
			X31SDataBeanAccess pascoInfoBean = pascoInfoBeanArray.getDataBean(0);

			//共有フォームBeanのＰＡＳＣＯ情報データタイプBean定義に取得した値を設定
			pascoInfoBean.sendMessageString(CommonInfoCFConst.PCD_07, X31CWebConst.DATABEAN_SET_VALUE, serviceBean.sendMessageString(FUW00906SFConst.PCD1,X31CWebConst.DATABEAN_GET_VALUE) + serviceBean.sendMessageString(FUW00906SFConst.PCD2, X31CWebConst.DATABEAN_GET_VALUE));
			pascoInfoBean.sendMessageString(CommonInfoCFConst.STATE_07, X31CWebConst.DATABEAN_SET_VALUE, stateNm + cityNm);
			pascoInfoBean.sendMessageString(CommonInfoCFConst.BNCHI_07, X31CWebConst.DATABEAN_SET_VALUE, oaztsuNm);
			pascoInfoBean.sendMessageString(CommonInfoCFConst.CHO_AZA_07, X31CWebConst.DATABEAN_SET_VALUE, azchoNm);
		}

		// FUW00911に遷移
		common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00911);

		return true;
	}
// ANK-4427-00-00 ADD END

	/**
	 * <DL>
	 * <DT>Beanから任意項目の文字列を取得します 項目の指定には任意ノードからのパス表現を使用できます
	 * <DT>"top_node[index1].1st_node[index2].2nd_node[index3].item_name"
	 * </DL>
	 * <p>
	 * 
	 * @param i_web_new_bean
	 *            共有フォームBean.ＷＥＢ新規へのアクセサ
	 * @param i_key
	 *            項目名
	 * @return 値（文字列）
	 */
	private String getValueFromBean(X31SDataBeanAccess i_web_new_bean, String i_key)
	{
		X31SDataBeanAccess bean_access = null;
		X31SDataBeanAccessArray bean_access_array = null;
		Pattern ptn1 = null;
		Pattern ptn2 = null;
		Matcher mtr1 = null;
		Matcher mtr2 = null;
		String column = "";
		String value = "";
		int index = 0;

		bean_access = i_web_new_bean;

		ptn1 = Pattern.compile("[^\\.=]+"); // 項目名切出用（配列添字含む）
		ptn2 = Pattern.compile("([^\\[\\]]+)\\[([0-9]+)\\]"); // 項目名と配列添字の分離
		mtr1 = ptn1.matcher(i_key);
		while (mtr1.find())
		{
			column = mtr1.group();
			mtr2 = ptn2.matcher(column);
			if (mtr2.find())
			{
				// 配列への対処
				column = mtr2.group(1); // 配列添字を除いた項目名
				index = Integer.parseInt(mtr2.group(2)); // 配列インデックス
				bean_access_array = bean_access.getDataBeanArray(column); // 配列項目取得

				while (bean_access_array.getCount() <= index)
				{
					bean_access_array.addDataBean();
				}
				bean_access = bean_access_array.getDataBean(index);
			}
			else
			{
				// 値の格納
				value = bean_access.sendMessageString(column, X31CWebConst.DATABEAN_GET_VALUE);
			}
		}

		return value;
	}

	/**
	 * Webアクセス機能コードが再申込
	 * 
	 * @param commonInfoBean
	 * @return 再申込の場合、True
	 */
	private boolean isWebMskmFuncCd3(X31SDataBeanAccess commonInfoBean)
	{

		// ＷＥＢ新規情報取得
		X31SDataBeanAccess webNewBean = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO).getDataBean(0);

		// ＷＥＢアクセス情報
		X31SDataBeanAccessArray array = webNewBean.getDataBeanArray(CommonInfoCFConst.WEB_ACCESS_INFO);
		if (array.getCount() == 0)
		{
			array.addDataBean();
		}
		X31SDataBeanAccess bean = array.getDataBean(0);

		// Webアクセス機能コードが再申込
		if (JPCModelConstant.FUNC_CD_3.equals(bean.sendMessageString(CommonInfoCFConst.WEB_MSKM_FUNC_CD_69, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return true;
		}

		return false;
	}

}
