/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：FUW00959SFLogic
*   ソースファイル名：FUW00959SFLogic.java
*   作成者          ：富士通
*   日付            ：2018年11月08日
*＜機能概要＞
*   キャンペーン選択（量販・訪販）画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v39.00.00   2018/11/08   FJ）大島    新規作成
*   v41.00.00   2019/04/05   FJ) 大島    ANK-3596-00-00_量販ＷＥＢでのマンションタイプ受付可能対応
*   v42.00.00   2019/05/15   FJ) 大島   【ANK-3642-00-00】スマートリンクタブレット新機種追加（2019年6月〜）
*   v42.00.00   2019/05/30   FJ) 大島   【ANK-3606-00-00】201907CP切替案件他
*   v50.00.00   2020/05/14   FJ)大島    【ANK-3832-00-00】202007CP対応
*   v51.00      2020/11/12   FJ）張本   【ANK-3949-00-00】Netflix導入対応（STEP1）
*   v51.01      2020/11/29   FJ）張本   【IT1-2020-0000068】量販店で商品券選択時にキャンペーン詳細エリアに２重表示される
*   v52.00      2021/01/22   FJ）張本   【ANK-3987-00-00】Netflix導入対応（STEP2）
*   v53.00      2021/05/28   FJ) 張本   【ANK-4062-00-00】202107月CP対応
*   v60.00      2022/09/01   FJ) 西川   【ANK-4319-00-00】202210月CP対応
*   v64.00      2023/02/27   FJ) 西川   【ANK-4389-00-00】202304月CP対応
*   v70.00      2024/02/05   FJ) 美濃原 【ANK-4551-00-00】202404CP対応
*   v73.00      2024/10/17   FJ) 浅井   【ANK-4427-00-00】NTT卸対応
*   v73.01      2024/09/24   FJ）福山   【ANK-4570-00-00】コンテンツ新規同時申込み時契約仕様見直し対応
*   v74.00      2025/01/09   FJ) 余野木 【ANK-4592-00-00】テレビ新コース（スカパー用）導入対応
*   v74.01      2025/03/19   FJ) 飯田   【ANK-4639-00-00】eo光ネットの一部コース料金改定
**********************************************************************/
package eo.web.webview.FUW00959SF;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.common.JCMConstants;
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 com.fujitsu.futurity.web.x31.X31CMessageResult.X31CMessageMoreInfo;

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.JFULinkSettingCache;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0330_FUSV0330OPDBMapper;

/**
 * キャンペーン選択画面サービスフォームBeanビューロジック
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00959SFLogic extends JCCWebBusinessLogic
{
	/** 確認画面へ戻るボタン表示フラグ:1:表示 */
	private static final String KAKUNIN_BACK_BTN_DSP_FLG_ON = "1";
	/** 戻るボタン表示フラグ:1:表示 */
	private static final String BACK_BTN_DSP_FLG_ON = "1";
// ANK-4570-00-00 ADD START
	/** 戻るボタン表示フラグ:0:非表示 */
	private static final String BACK_BTN_DSP_FLG_OFF = "0";
// ANK-4570-00-00 ADD END
	/** 次へボタン表示フラグ:1:表示 */
	private static final String NEXT_BTN_DSP_FLG_ON = "1";
	/** エラー表示用定数 */
	private static final String ERR_CD_EKF1040_TW = "EKF1040-TW";
	/** エラー表示用定数 */
	private static final String ERR_CD_EKF1590_TW = "EKF1590-KW";
	/** エラー表示用文 */
	private static final String CAMPAIGN = "キャンペーン";
	/** エラー表示用項目ID */
	private static final String CAMPAIGNLIST = "campaign_list";

	/** ユースケースＩＤ　FUSV0330 */
	private static final String USECASE_ID_FUSV0330 = "FUSV0330";
	/** 画面プロパティアクセッサ */
	private static final String COMMONSETTING = "COMMONSETTING";
	/** プロパティファイル取得文字列（グループID指定）キャンペーン */
	private static final String CAMPAIGN_PATTERN_START = "DISPSETTING/SETTING[@screenId='COMMONSETTING']/DISPTEXT[@groupid='CMP_";
	private static final String CAMPAIGN_PATTERN_END = "']";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";

	/**
	 * 初期処理
	 * 
	 * @return true
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定
		JCCWebCommon.getScreenInfo(this);

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// WEB新規
		X31SDataBeanAccessArray webnewList = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webnewBean = webnewList.getDataBean(0);

		// WEB割キャンペーンリスト
		String campaignDispDefine = JFUWebCommon.getWebWariCampList(JCCWebCommon.getOpeDate(this, null));
		List<String> webWariCmpList = new ArrayList<String>();
		if (campaignDispDefine != null)
		{
			webWariCmpList = Arrays.asList(campaignDispDefine.split(","));
		}

		// WEB割特別キャンペーンリスト
		String spCampaignDispDefine = JFUWebCommon.getDispText("COMMONSETTING", "WEB_WARI_SP_CAMP_LIST");
		List<String> webWariSpeCmpList = new ArrayList<String>();
		if (spCampaignDispDefine != null)
		{
			webWariSpeCmpList = Arrays.asList(spCampaignDispDefine.split(","));
		}

		// その他情報を取得
		X31SDataBeanAccess elseInfoBean = webnewBean.getDataBeanArray(CommonInfoCFConst.ELSE_INFO).getDataBean(0);

		// GMSイベントフラグを設定
// TODO: 注意！AUTO_CAMPAIGN_AGNTは、Beanによって逆の意味になっている。共有フォームBean：自動適用代理店、サービスフォームBean：量販店
//		boolean ryohanCampaign = false;
//		if (JFUStrConst.HNBAI_TYPE_RYOHAN.equals(webnewBean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE)))
//		{
//			if (!elseInfoBean.sendMessageBoolean(CommonInfoCFConst.AUTO_CAMPAIGN_AGNT_18, X31CWebConst.DATABEAN_GET_VALUE))
//			{
//				ryohanCampaign = true;
//			}
//		}
		boolean ryohanCampaign = false;
		String mskmRoute = webnewBean.sendMessageString(CommonInfoCFConst.MSKM_ROUTE_06, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.MSKM_ROUTE_RYOHAN.equals(mskmRoute))
		{
			ryohanCampaign = true;
		}
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		serviceFormBean.sendMessageBoolean(FUW00959SFConst.AUTO_CAMPAIGN_AGNT, X31CWebConst.DATABEAN_SET_VALUE, ryohanCampaign);

		// 選択キャンペーンリストを作成
		campaignListEdit(serviceFormBean, webnewBean, webWariSpeCmpList);
		// キャンペーン注釈リストを作成
		campaignTextEdit(serviceFormBean, webnewBean, webWariSpeCmpList);

		// 選択キャンペーンエリア
		boolean isSelectCampaign = false;
		// 選択されているキャンペーンを設定
		X31SDataBeanAccessArray campaignSelectList = serviceFormBean.getDataBeanArray(FUW00959SFConst.CAMPAIGN_LIST);
		if (campaignSelectList != null && campaignSelectList.getCount() > 0)
		{
			for (int i = 0; i < campaignSelectList.getCount(); i++){
				X31SDataBeanAccess campaignInfo = campaignSelectList.getDataBean(i);
				String campaignCd = campaignInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

				X31SDataBeanAccessArray hanyoCdListBeanArray = webnewBean.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);
				// 選択されているキャンペーンを設定
				if (hanyoCdListBeanArray != null && hanyoCdListBeanArray.getCount() > 0)
				{
					if (ryohanCampaign)
					{
						for (int k = 0; k < hanyoCdListBeanArray.getCount(); k++)
						{
							// 汎用コードリストを取得
							X31SDataBeanAccess hanyoInfoBean = hanyoCdListBeanArray.getDataBean(k);
							String selectHanyoCd = hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_GET_VALUE);

							if (campaignCd.startsWith(selectHanyoCd))
							{
								campaignInfo.sendMessageBoolean(FUW00959SFConst.CHK_01, X31CWebConst.DATABEAN_SET_VALUE, true);
							}
						}
					}
					else
					{
						for (int k = 0; k < hanyoCdListBeanArray.getCount(); k++)
						{
							// 汎用コードリストを取得
							X31SDataBeanAccess hanyoInfoBean = hanyoCdListBeanArray.getDataBean(k);
							String selectHanyoCd = hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_GET_VALUE);

							if (campaignCd.startsWith(selectHanyoCd))
							{
								serviceFormBean.sendMessageString(FUW00959SFConst.CAMPAIGN_SELECT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
								isSelectCampaign = true;
							}
						}
					}
				}
			}

			if (!isSelectCampaign)
			{
				for (int i = 0; i < campaignSelectList.getCount(); i++){
					X31SDataBeanAccess campaignInfo = campaignSelectList.getDataBean(i);
					String campaignCd = campaignInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
					// 選択されているキャンペーンを設定
					if (webWariCmpList.contains(campaignCd))
					{
						serviceFormBean.sendMessageString(FUW00959SFConst.CAMPAIGN_SELECT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
					}
				}
			}
		}

		// 特別キャンペーンエリア
		boolean isSelectSpCampaign = false;
		X31SDataBeanAccessArray spCampaignSelectList = serviceFormBean.getDataBeanArray(FUW00959SFConst.SP_CAMPAIGN_LIST);
		Integer spCampaignSelectListCount = spCampaignSelectList.getCount();
		if (spCampaignSelectList != null && spCampaignSelectListCount > 0)
		{
			for (int j = 0; j < spCampaignSelectListCount; j++)
			{
				X31SDataBeanAccess spCampaignInfo = spCampaignSelectList.getDataBean(j);
				String spCampaignCd = spCampaignInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_CD_03, X31CWebConst.DATABEAN_GET_VALUE);

				// 選択されているキャンペーンを設定
				X31SDataBeanAccessArray hanyoCdListBeanArray = webnewBean.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);
				if (hanyoCdListBeanArray != null)
				{
					for (int k = 0; k < hanyoCdListBeanArray.getCount(); k++)
					{
						// 汎用コードリストを取得
						X31SDataBeanAccess hanyoInfoBean = hanyoCdListBeanArray.getDataBean(k);
						String selectHanyoCd = hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_GET_VALUE);

						if (spCampaignCd.startsWith(selectHanyoCd))
						{
							serviceFormBean.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_SELECT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(j));
							isSelectSpCampaign = true;
						}
					}
				}
			}

			if (!isSelectSpCampaign)
			{
				serviceFormBean.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_SELECT, X31CWebConst.DATABEAN_SET_VALUE, "0");
			}
		}

		// 画面遷移モード：1:確認画面遷移の場合
		if (webnewBean.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.SCREEN_MODE_KAKUNIN))
		{
			// 確認画面へ戻るボタン表示
			serviceFormBean.sendMessageString(FUW00959SFConst.KAKUNIN_BACK_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, KAKUNIN_BACK_BTN_DSP_FLG_ON);
		}
		// 画面遷移モード：0:通常遷移の場合
		else if (webnewBean.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, X31CWebConst.DATABEAN_GET_VALUE).equals(JFUStrConst.SCREEN_MODE_DEF))
		{

// ANK-4570-00-00 MOD START
			boolean tvSingleflg = tvSingleCheck(commonInfoBean);

			// FUW00931(登録完了)から遷移してきた場合(テレビ単独(地デジ・BS、WiFi・WiMAX&白ロム)
			if (tvSingleflg)
			{
				serviceFormBean.sendMessageString(FUW00959SFConst.BACK_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BACK_BTN_DSP_FLG_OFF);
			}
			else
			// それ以外
			{
				serviceFormBean.sendMessageString(FUW00959SFConst.BACK_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BACK_BTN_DSP_FLG_ON);
			}
// ANK-4570-00-00 MOD END

			// 次へボタン表示
			serviceFormBean.sendMessageString(FUW00959SFConst.NEXT_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, NEXT_BTN_DSP_FLG_ON);
		}

		// 処理結果コード
		String resultCode = elseInfoBean.sendMessageString(CommonInfoCFConst.CAMPAIGN_RESULTCODE_18, X31CWebConst.DATABEAN_GET_VALUE);

		// キャンペーン選択.処理結果コードが "1" (キャンペーン存在チェックエラー) の場合
		if ("1".equals(resultCode))
		{
			// 指定されたキャンペーンは存在しません。
			JCCWebCommon.setMessageInfo(this, ERR_CD_EKF1040_TW, new String[] { CAMPAIGN }, CAMPAIGNLIST);

			// 処理結果コードを初期化する。
			elseInfoBean.sendMessageString(CommonInfoCFConst.CAMPAIGN_RESULTCODE_18, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		// 共有フォームBean.キャンペーン選択.処理結果コードが "2" (受付期間外) の場合
		if ("2".equals(resultCode))
		{
			// 指定されたキャンペーンは受付期間外です。
			JCCWebCommon.setMessageInfo(this, ERR_CD_EKF1590_TW, new String[] { CAMPAIGN }, CAMPAIGNLIST);

			// 処理結果コードを初期化する。
			elseInfoBean.sendMessageString(CommonInfoCFConst.CAMPAIGN_RESULTCODE_18, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		return true;
	}

	/**
	 * 次へボタン押下
	 * 
	 * @return 必ずtrue
	 * @throws Exception
	 */
	public boolean next() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定
		JCCWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// WEB新規
		X31SDataBeanAccessArray webnewList = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webnewBean = webnewList.getDataBean(0);
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 共有フォームBeanに選択されたキャンペーンを設定する。
		setSelectCampaign(serviceFormBean, webnewBean);

		// サービス呼び出し
		if (!callService(serviceFormBean, commonInfoBean))
		{
			return true;
		}

		// お支払い方法入力(量販・訪販)画面へ遷移
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00945);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00945);

		return true;
	}

	/**
	 * 戻るボタン押下
	 * 
	 * @return true
	 * @throws Exception
	 */
	public boolean back() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// WEB新規
		X31SDataBeanAccessArray webnewList = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webnewBean = webnewList.getDataBean(0);

		// 契約サービス情報
		X31SDataBeanAccessArray keiyakuSvcInfoList = webnewBean.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		X31SDataBeanAccess keiyakuSvcInfoBean = keiyakuSvcInfoList.getDataBean(0);

		// 共有フォームBeanにデータを設定
		webnewBean.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.SCREEN_MODE_DEF);

		// クリア処理
		JFUWebCommon.comClear(this);
		webnewBean.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST).clearArray();

		// テレビコース（ｅｏ光テレビ入力）
		// ■共有フォームBean.ｅｏ光テレビ
		X31SDataBeanAccessArray bean_array = webnewBean.getDataBeanArray(CommonInfoCFConst.EOTV);
		X31SDataBeanAccess eo_tv_bean = bean_array.getDataBean(0);
		String tvCrs = eo_tv_bean.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE);
		// 申込区分
		String mskmKbn = webnewBean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);

// ANK-4427-00-00 MOD START
//		if (JFUStrConst.MSKM_KBN_NEW.equals(mskmKbn))
		String typenFlg = webnewBean.sendMessageString(CommonInfoCFConst.TYPEN_FLG_06, X31CWebConst.DATABEAN_GET_VALUE);
		//NTT卸の場合
		if (!JFUWebCommon.isNull(typenFlg))
		{
			JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00959, JFUScreenConst.SCREEN_ID_FUW00916);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00916);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00916);
		}
// ANK-4570-00-00 MOD START
		// 新規申し込みかつネットが申し込まれている場合、コンテンツ申込画面へ遷移
		else if (JFUStrConst.MSKM_KBN_NEW.equals(mskmKbn) && JFUStrConst.SELECT_SVC_NET_CHOICE.equals(keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE)))
// ANK-4570-00-00 MOD END
// ANK-4427-00-00 MOD END

		{
			JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00959, JFUScreenConst.SCREEN_ID_FUW00965);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00965);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00965);
		}
// ANK-4592-00-00 MOD START
		// 選択サービス(テレビ)が1:選択の場合
		else if (keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE).equals(
				JFUStrConst.SELECT_SVC_TV_CHOICE) && (JFUStrConst.EO_TV_COURSE_BASIC.equals(tvCrs)
				|| JFUStrConst.EO_TV_COURSE_CS_PRE.equals(tvCrs) || JFUStrConst.EO_TV_COURSE_CS_BAS.equals(tvCrs)))
// ANK-4592-00-00 MOD END
		{
			// eo光テレビオプション選択(量販・訪販)画面へ遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00919);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00919);
		}
		// 選択サービス(電話)が1:選択の場合
		else if (keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE).equals(
				JFUStrConst.SELECT_SVC_TEL_CHOICE))
		{
			// eo光電話オプション選択(量販・訪販)画面へ遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00917);
			commonInfoBean
					.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00917);
		}
		else
		{

			// eo光ネットオプション選択(量販・訪販)画面へ遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00916);
			commonInfoBean
					.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00916);
		}

		return true;

	}

	/**
	 * 確認画面へ戻るボタン押下
	 * 
	 * @return true
	 * @throws Exception
	 */
	public boolean backKakunin() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// WEB新規
		X31SDataBeanAccessArray webnewList = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webnewBean = webnewList.getDataBean(0);
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 共有フォームBeanに選択されたキャンペーンを設定する。
		setSelectCampaign(serviceFormBean, webnewBean);
		
		// サービス呼び出し
		if (!callService(serviceFormBean, commonInfoBean))
		{
			return true;
		}

		// オプション選択内容確認(量販・訪販)画面へ遷移
		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00928);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00928);

		return true;
	}
	/**
	 * キャンペーン選択CCを呼び出す
	 * @param serviceFormBean
	 * @param commonInfoBean
	 * @return
	 * @throws Exception
	 */
	private boolean callService(X31SDataBeanAccess serviceFormBean, X31SDataBeanAccess commonInfoBean) throws Exception
	{
		// WEB新規
		X31SDataBeanAccessArray webnewList = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webnewBean = webnewList.getDataBean(0);
		
		HashMap<String, String> paramMap = new HashMap<String, String>();
		// ユースケースID
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0330);
		// 機能コード:2
		paramMap.put(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_2);
		// 設定値格納用マップを生成。
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		X31SDataBeanAccess[] paramBean = { commonInfoBean, serviceFormBean };
		// DataBean-BPマッピング
		FUSV0330_FUSV0330OPDBMapper mapper = new FUSV0330_FUSV0330OPDBMapper();
		// 登録可能なキャンペーンがある場合のみマッピング
		if (isHanyoCdAri(webnewBean))
		{
			// サービスの入力値設定
			mapper.setFUSV033002CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		}

		try
		{
			// サービス呼出
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException e)
		{
			// 例外詳細情報を取得
			X31CMessageMoreInfo[] moreInfo = e.getMessageList().getMessageMoreInfoList();
			// メッセージ詳細情報クラスを取得
			// (関連チェック系は必ずエラーが1つのため0番目から取得する)
			X31CMessageMoreInfo info = moreInfo[0];

			String itemid = info.getItemId();
			String status = info.getStatus();
			String errFlg = info.getItemCheckErr();

			if (String.valueOf(JPCModelConstant.RELATION_ERR).equals(status))
			{
				if (JFUStrConst.RELATION_CHECK_ERR_EA.equals(errFlg))
				{
					if ("notfound".equals(itemid))
					{
						// データなし
						JCCWebCommon.setMessageInfo(this, ERR_CD_EKF1040_TW, new String[] { CAMPAIGN }, CAMPAIGNLIST);
						return false;
					} else if("outofrange".equals(itemid))
					{
						// キャンペーン適用期間外
						JCCWebCommon.setMessageInfo(this, ERR_CD_EKF1590_TW, new String[] { CAMPAIGN }, CAMPAIGNLIST);
						return false;
					}
				}
			}
			// 上記以外の場合システムエラーをスロー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		return true;
	}

	/**
	 * キャンペーン選択リストの作成
	 * @param serviceFormBean
	 * @param webnewBean
	 * @param webWariSpeCmpList WEB割特別キャンペーンリスト
	 * @throws Exception
	 */
	private void campaignListEdit(X31SDataBeanAccess serviceFormBean, X31SDataBeanAccess webnewBean, List<String> webWariSpeCmpList) throws Exception
	{
		// その他情報
		X31SDataBeanAccess elseInfoBean = webnewBean.getDataBeanArray(CommonInfoCFConst.ELSE_INFO).getDataBean(0);
		String auShopFlg = elseInfoBean.sendMessageString(CommonInfoCFConst.AU_SHOP_TRAT_FLG_18, X31CWebConst.DATABEAN_GET_VALUE);

		// キャンペーンリストをクリア
		X31SDataBeanAccessArray campaignSelectList = serviceFormBean.getDataBeanArray(FUW00959SFConst.CAMPAIGN_LIST);
		campaignSelectList.clearArray();

		// 特別キャンペーンリストをクリア
		X31SDataBeanAccessArray spCampaignSelectList = serviceFormBean.getDataBeanArray(FUW00959SFConst.SP_CAMPAIGN_LIST);
		spCampaignSelectList.clearArray();

		// 選択可能キャンペーンリストを取得
		X31SDataBeanAccessArray campaignList = webnewBean.getDataBeanArray(CommonInfoCFConst.CAMPAIGN_LIST);
		// GMSイベントのWEB割コードを取得
		String webwariGMS = JFUWebCommon.getDispText(COMMONSETTING, "WEB_WARI_CAMP_GMS");
		// 代理店非表示のキャンペーンコードを取得
		List<String> agentNodispCmpList = Arrays.asList(JFUWebCommon.getDispText(COMMONSETTING, "CAMP_CHK_LIST_AGENT_NODISP").split(","));

		// 商品券自動適用代理店以外の量販店
		boolean isAutoCampaignAgent = serviceFormBean.sendMessageBoolean(FUW00959SFConst.AUTO_CAMPAIGN_AGNT, X31CWebConst.DATABEAN_GET_VALUE);

		String opeDate = JCCWebCommon.getOpeDate(this, null);

		// 代理店以外の量販店は、チェックボックス１行目を選択状態にする
		if (isAutoCampaignAgent)
		{
			// 量販WEB割プロパティ取得
			String prpName = JFUStrConst.EMPTY;
			// 申込マンションタイプ
			String mskmMnsYype = webnewBean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
			// マンション情報
			X31SDataBeanAccess mansionInfoBean = webnewBean.getDataBeanArray(CommonInfoCFConst.MANSION_INFO).getDataBean(0);
			// 加入契約申込条件コード
			String knykeiMskmJokenCd = mansionInfoBean.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
			// 支払方式コード
			String paywayCd = mansionInfoBean.sendMessageString(CommonInfoCFConst.PAYWAY_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
			// マンションタイプで全戸一括以外
			if (JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mskmMnsYype)
					&& (!JFUStrConst.KNYKEI_MSKM_JOKEN_IKT.equals(knykeiMskmJokenCd) && !JFUStrConst.CD01216_003.equals(paywayCd) && !JFUStrConst.CD01216_004.equals(paywayCd)))
			{
				prpName = "RYOHAN_WEBWARI_MF";
			}
			else
			{
				prpName = "RYOHAN_WEBWARI";
			}

			X31SDataBeanAccess campaignSelectInfo = campaignSelectList.addDataBean();
			setCampaignRyohan(campaignSelectInfo, prpName, "1", JFUStrConst.EMPTY);
		}
		// GMSイベントか判定
		boolean gmsEventFlg = false;
		// キャンペーンリストを設定
		for (int i = 0; i < campaignList.getCount(); i++)
		{
			// 共有フォームBean.選択可能キャンペーン
			X31SDataBeanAccess campaignInfo = campaignList.getDataBean(i);
			if (webwariGMS.equals(campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_CD_66, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				gmsEventFlg = true;
			}
		}

		// 販売タイプ
		String hanbaiType = webnewBean.sendMessageString(CommonInfoCFConst.HANBAI_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
		// キャンペーンリストを設定
		for (int i = 0; i < campaignList.getCount(); i++)
		{
			// 共有フォームBean.選択可能キャンペーン
			X31SDataBeanAccess campaignInfo = campaignList.getDataBean(i);
			String campaignCd = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_CD_66, X31CWebConst.DATABEAN_GET_VALUE);

			// eo光NetflixパックスタートキャンペーンDを表示制御
			if (isAutoCampaignAgent)
			{
				// 量販店の場合は商品券とプラスで表示
				setCampaignRyohan(campaignSelectList.getDataBean(0), "RYOHAN_WEBWARI_NF", "2", campaignCd);
				continue;
			}
			else
			{
				// キャンペーンが表示対象でない場合
				if (!JFUWebCommon.isCampaignDisp(webnewBean, campaignCd, JCCWebCommon.getOpeDate(this, null)))
				{
					continue;
				}
				if (JFUStrConst.HNBAI_TYPE_RYOHAN.equals(hanbaiType))
				{
					if (!gmsEventFlg)
					{
						// GMSイベント以外の量販店は、キャンペーンを表示しない
						if (agentNodispCmpList.contains(campaignCd))
						{
							continue;
						}
					}
				}
			}

			// タブレット用のキャンペーンを表示
			if (JFUWebCommon.isTabletCampaign(campaignCd))
			{
				// 訪販でAUショップ以外の場合は表示
				if (!(JFUStrConst.AU_SHOP_TRAT_FLG_AU.equals(auShopFlg) && JFUStrConst.HNBAI_TYPE_HOHAN.equals(hanbaiType)))
				{
					setTabletCampaign(webnewBean, campaignSelectList, campaignCd);
				}
				continue;
			}

			if (webWariSpeCmpList.contains(campaignCd))
			{
				// 特別キャンペーンエリア

				X31SDataBeanAccess spCampaignSelectInfo = spCampaignSelectList.addDataBean();
				// 特別キャンペーンコード
				spCampaignSelectInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_CD_03, X31CWebConst.DATABEAN_SET_VALUE, campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_CD_66,
						X31CWebConst.DATABEAN_GET_VALUE));
				// 特別キャンペーン名称
				spCampaignSelectInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_NAME_03, X31CWebConst.DATABEAN_SET_VALUE, campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_NM_66,
						X31CWebConst.DATABEAN_GET_VALUE));
				// 受付開始日
				spCampaignSelectInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_STA_DTM_03, X31CWebConst.DATABEAN_SET_VALUE, campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_STA_DTM_66,
						X31CWebConst.DATABEAN_GET_VALUE));
				// 受付終了日
				spCampaignSelectInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_END_DTM_03, X31CWebConst.DATABEAN_SET_VALUE, campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_END_DTM_66,
						X31CWebConst.DATABEAN_GET_VALUE));
				// 特別キャンペーン種別コード
				spCampaignSelectInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_SBT_CD_03, X31CWebConst.DATABEAN_SET_VALUE, campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_SBT_CD_66,
						X31CWebConst.DATABEAN_GET_VALUE));

				// 複数特別キャンペーン表示の場合、プロパティより取得する
				Map<String, String> servicenameMap = JFUWebCommon.getDispItemsAsMap(CAMPAIGN_PATTERN_START + campaignCd + CAMPAIGN_PATTERN_END, QUERY_ATTR_NAME);
				for (Map.Entry<String, String> entry : servicenameMap.entrySet())
				{
					if (entry.getKey().equals("group_cd"))
					{
						// 特別キャンペーンコード
						spCampaignSelectInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_CD_03, X31CWebConst.DATABEAN_SET_VALUE, entry.getValue());
					}
					if (entry.getKey().equals("group_nm"))
					{
						// 特別キャンペーン名称
						spCampaignSelectInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_NAME_03, X31CWebConst.DATABEAN_SET_VALUE, entry.getValue());
					}
				}
			}
			else
			{
				// 選択キャンペーンエリア

				campaignSelectList.addDataBean();
				X31SDataBeanAccess campaignSelectInfo = campaignSelectList.getDataBean(campaignSelectList.getCount() - 1);
				// キャンペーンコード
				campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_CD_66,
						X31CWebConst.DATABEAN_GET_VALUE));
				// キャンペーン名称
				campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_NAME_01, X31CWebConst.DATABEAN_SET_VALUE, campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_NM_66,
						X31CWebConst.DATABEAN_GET_VALUE));
				// 受付開始日
				campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_STA_DTM_01, X31CWebConst.DATABEAN_SET_VALUE, campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_STA_DTM_66,
						X31CWebConst.DATABEAN_GET_VALUE));
				// 受付終了日
				campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_END_DTM_01, X31CWebConst.DATABEAN_SET_VALUE, campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_END_DTM_66,
						X31CWebConst.DATABEAN_GET_VALUE));
				// キャンペーン種別コード
				campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_SBT_CD_01, X31CWebConst.DATABEAN_SET_VALUE, campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_SBT_CD_66,
						X31CWebConst.DATABEAN_GET_VALUE));

				// 複数キャンペーン表示の場合、プロパティより取得する
				Map<String, String> servicenameMap = JFUWebCommon.getDispItemsAsMap(CAMPAIGN_PATTERN_START + campaignCd + CAMPAIGN_PATTERN_END, QUERY_ATTR_NAME);
				for (Map.Entry<String, String> entry : servicenameMap.entrySet())
				{

					if (entry.getKey().startsWith("group_cd_"))
					{
						// idが「"group_cd_"」+「開始日」+「"_"」+「終了日」の場合は、運用日付が有効範囲内の値を処理対象とする。
						String[] groupCdInfo = entry.getKey().split("_");
						if (groupCdInfo.length == 4 && Integer.parseInt(groupCdInfo[2]) <= Integer.parseInt(opeDate) && Integer.parseInt(opeDate) <= Integer.parseInt(groupCdInfo[3]))
						{
							// キャンペーンコード
							campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, entry.getValue());
						}
					}

					if (entry.getKey().equals("group_cd"))
					{
						// キャンペーンコード
						campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, entry.getValue());
					}
					if (entry.getKey().equals("group_nm"))
					{
						// キャンペーン名称
						campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_NAME_01, X31CWebConst.DATABEAN_SET_VALUE, entry.getValue());
					}
				}
			}
		}
	}

	/**
	 * タブレット割引情報を追加
	 * @param webnewBean
	 * @param campaignSelectList
	 * @param campaignCd
	 * @param webWariSpeCmpList WEB割特別キャンペーンリスト
	 * @throws Exception
	 */
	private void setTabletCampaign(X31SDataBeanAccess webnewBean, X31SDataBeanAccessArray campaignSelectList, String campaignCd)
			throws Exception
	{
		// タブレット割引情報を追加
		HashMap<String, String> tabletCamPaignMap = JFUWebCommon.getTabletCampaignInfo(webnewBean, JCCWebCommon.getOpeDate(this, null));
		if (!tabletCamPaignMap.isEmpty())
		{
			String waribikiSvcCd = tabletCamPaignMap.get("waribikiSvcCd");
			String waribikiSvcName = tabletCamPaignMap.get("waribikiSvcName");
			if (!JFUWebCommon.isNull(waribikiSvcCd) && waribikiSvcCd.equals(campaignCd))
			{
				campaignSelectList.addDataBean();
				X31SDataBeanAccess campaignSelectInfo = campaignSelectList.getDataBean(campaignSelectList.getCount() - 1);
				// キャンペーンコード
				campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, waribikiSvcCd);
				// キャンペーン名称
				campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_NAME_01, X31CWebConst.DATABEAN_SET_VALUE, waribikiSvcName);
				// 受付開始日
				campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_STA_DTM_01, X31CWebConst.DATABEAN_SET_VALUE, "");
				// 受付終了日
				campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_END_DTM_01, X31CWebConst.DATABEAN_SET_VALUE, "");
				// キャンペーン種別コード
				campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_SBT_CD_01, X31CWebConst.DATABEAN_SET_VALUE, "2");
			}
		}
	}

	/**
	 * キャンペーン注釈リストの出力
	 * @param serviceFormBean
	 * @param webnewBean
	 * @param webWariSpeCmpList WEB割特別キャンペーンリスト
	 * @throws Exception 
	 */
// ANK-3596-00-00 MOD START
	private void campaignTextEdit(X31SDataBeanAccess serviceFormBean, X31SDataBeanAccess webnewBean, List<String> webWariSpeCmpList) throws Exception
// ANK-3596-00-00 MOD END
	{
		// 運用日付を取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// キャンペーン注釈リストをクリア
		serviceFormBean.getDataBeanArray(FUW00959SFConst.CAMPAIGN_TEXT_LIST).clearArray();
		X31SDataBeanAccessArray campaignTextList = serviceFormBean.getDataBeanArray(FUW00959SFConst.CAMPAIGN_TEXT_LIST);

		// 特別キャンペーン注釈リストをクリア
		serviceFormBean.getDataBeanArray(FUW00959SFConst.SP_CAMPAIGN_TEXT_LIST).clearArray();
		X31SDataBeanAccessArray spCampaignTextList = serviceFormBean.getDataBeanArray(FUW00959SFConst.SP_CAMPAIGN_TEXT_LIST);

		// リンクプロパティのインスタンス作成
		JFULinkSettingCache linkProp = JFULinkSettingCache.getInstance();

		Map<String, String> servicenameMap = null;
		X31SDataBeanAccess campaignTextInfo = null;
		String campaignText = null;
		String campaignTitle = null;
		String campaignLinkId = null;
		// GCMイベント以外の量販店は、量販店WEB割の情報を取得する
		if (serviceFormBean.sendMessageBoolean(FUW00959SFConst.AUTO_CAMPAIGN_AGNT, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 量販WEB割プロパティ取得
// ANK-3596-00-00 MOD START
			String prpName = JFUStrConst.EMPTY;
			// 申込マンションタイプ
			String mskmMnsYype = webnewBean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);
			// マンション情報
			X31SDataBeanAccess mansionInfoBean = webnewBean.getDataBeanArray(CommonInfoCFConst.MANSION_INFO).getDataBean(0);
			// 加入契約申込条件コード
			String knykeiMskmJokenCd = mansionInfoBean.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
			// 支払方式コード
			String paywayCd = mansionInfoBean.sendMessageString(CommonInfoCFConst.PAYWAY_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
			// マンションタイプで全戸一括以外
			if (JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mskmMnsYype)
					&& (!JFUStrConst.KNYKEI_MSKM_JOKEN_IKT.equals(knykeiMskmJokenCd) && !JFUStrConst.CD01216_003.equals(paywayCd) && !JFUStrConst.CD01216_004
							.equals(paywayCd)))
			{
				prpName = "RYOHAN_WEBWARI_MF";
			}
			else
			{
				prpName = "RYOHAN_WEBWARI";
			}
			servicenameMap = JFUWebCommon.getDispItemsAsMap(CAMPAIGN_PATTERN_START + prpName + CAMPAIGN_PATTERN_END, QUERY_ATTR_NAME);
// ANK-3596-00-00 MOD END
			// キャンペーン注釈を設定する。
			for (Map.Entry<String, String> entry : servicenameMap.entrySet())
			{
				if (entry.getKey().equals("disp"))
				{
					campaignTitle = entry.getValue();
				}
				if (entry.getKey().equals("text"))
				{
					campaignText = entry.getValue();
				}
				if (entry.getKey().equals("link_id"))
				{
					// リンクプロパティより取得
					String strlink = linkProp.getLink(JFUScreenConst.SCREEN_ID_FUW00959, entry.getValue());
					campaignLinkId = strlink;
				}
			}
			campaignTextList.addDataBean();
			campaignTextInfo = campaignTextList.getDataBean(campaignTextList.getCount() - 1);
			campaignTextInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_TITLE_02, X31CWebConst.DATABEAN_SET_VALUE, campaignTitle);
			campaignTextInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_TEXT_02, X31CWebConst.DATABEAN_SET_VALUE, campaignText);
			campaignTextInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_LINK_02, X31CWebConst.DATABEAN_SET_VALUE, campaignLinkId);
		}

		// 選択可能キャンペーンリストを取得
		X31SDataBeanAccessArray campaignList = webnewBean.getDataBeanArray(CommonInfoCFConst.CAMPAIGN_LIST);
		// タブレット割引情報を追加
		HashMap<String, String> tabletCamPaignMap = JFUWebCommon.getTabletCampaignInfo(webnewBean, JCCWebCommon.getOpeDate(this, null));
		String waribikiSvcCd = JFUStrConst.EMPTY;
		String waribikiSvcName = JFUStrConst.EMPTY;
		String waribikiSvcInfo = JFUStrConst.EMPTY;
		String waribikiSvcLink = JFUStrConst.EMPTY;
		if (!tabletCamPaignMap.isEmpty())
		{
			waribikiSvcCd = tabletCamPaignMap.get("waribikiSvcCd");
			waribikiSvcName = tabletCamPaignMap.get("waribikiSvcName");
			waribikiSvcInfo = tabletCamPaignMap.get("waribikiSvcInfo");
			waribikiSvcLink = tabletCamPaignMap.get("waribikiSvcLink");
			
		}
		for (int i = 0; i < campaignList.getCount(); i++)
		{
			// サービスフォームBean.選択可能キャンペーン
			// プロパティよりキャンペーンの注釈を取得
			X31SDataBeanAccess campaignInfo = campaignList.getDataBean(i);
			String campaignCd = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_CD_66, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JFUWebCommon.isNull(waribikiSvcCd) && waribikiSvcCd.equals(campaignCd))
			{
				campaignTitle = waribikiSvcName;
				campaignText = waribikiSvcInfo;
				campaignTitle = waribikiSvcName;
				String strlink = linkProp.getLink(JFUScreenConst.SCREEN_ID_FUW00959, waribikiSvcLink);
				campaignLinkId = strlink;
			}
			else
			{
				servicenameMap = null;
				servicenameMap = JFUWebCommon.getDispItemsAsMap(CAMPAIGN_PATTERN_START + campaignCd + CAMPAIGN_PATTERN_END, QUERY_ATTR_NAME);
				if (!servicenameMap.isEmpty())
				{
					for (Map.Entry<String, String> entry : servicenameMap.entrySet())
					{
						if (entry.getKey().equals("disp"))
						{
							campaignTitle = entry.getValue();
						}
						if (entry.getKey().equals("text"))
						{
							campaignText = entry.getValue();
						}
						// idが「"text_"」+「開始日」+「"_"」+「終了日」の場合は、運用日付が有効範囲内の値を処理対象とする。
						if (entry.getKey().startsWith("text_"))
						{
							String[] textInfo = entry.getKey().split("_");
							if (textInfo.length == 3 && Integer.parseInt(textInfo[1]) <= Integer.parseInt(opeDate) && Integer.parseInt(opeDate) <= Integer.parseInt(textInfo[2]))
							{
								campaignText = entry.getValue();
							}
						}
						if (entry.getKey().equals("link_id"))
						{
							// リンクプロパティより取得
							String strlink = linkProp.getLink(JFUScreenConst.SCREEN_ID_FUW00959, entry.getValue());
							campaignLinkId = strlink;
						}
					}
				}
				else
				{
					continue;
				}
			}
			// キャンペーン注釈を設定する。
			if (webWariSpeCmpList.contains(campaignCd))
			{
				// 特別キャンペーン注釈エリア

				spCampaignTextList.addDataBean();
				X31SDataBeanAccess spCampaignTextInfo = spCampaignTextList.getDataBean(spCampaignTextList.getCount() - 1);
				spCampaignTextInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_TITLE_04, X31CWebConst.DATABEAN_SET_VALUE, campaignTitle);
				spCampaignTextInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_TEXT_04, X31CWebConst.DATABEAN_SET_VALUE, campaignText);
				spCampaignTextInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_LINK_04, X31CWebConst.DATABEAN_SET_VALUE, campaignLinkId);
				spCampaignTextInfo.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_CD_CTL_04, X31CWebConst.DATABEAN_SET_VALUE, campaignCd);
			}
			else
			{
				campaignTextList.addDataBean();
				campaignTextInfo = campaignTextList.getDataBean(campaignTextList.getCount() - 1);
				campaignTextInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_TITLE_02, X31CWebConst.DATABEAN_SET_VALUE, campaignTitle);
				campaignTextInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_TEXT_02, X31CWebConst.DATABEAN_SET_VALUE, campaignText);
				campaignTextInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_LINK_02, X31CWebConst.DATABEAN_SET_VALUE, campaignLinkId);
				campaignTextInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_CTL_02, X31CWebConst.DATABEAN_SET_VALUE, campaignCd);
			}
		}
	}

	/**
	 * 共有フォームBeanに選択されたキャンペーンを設定する。
	 * @param serviceFormBean
	 * @param webnewBean
	 * @throws Exception 
	 */
	private void setSelectCampaign(X31SDataBeanAccess serviceFormBean, X31SDataBeanAccess webnewBean) throws Exception
	{
		// 汎用コードリストに選択されたキャンペーン情報を設定
		webnewBean.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST).clearArray();
		X31SDataBeanAccessArray hanyoInfoBeanList = webnewBean.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);
		X31SDataBeanAccessArray campaignBeanList = serviceFormBean.getDataBeanArray(FUW00959SFConst.CAMPAIGN_LIST);
		X31SDataBeanAccess hanyoInfoBean = null;
		String selectCampaignCd = "";
		String selectCampaignNm = "";
		String selectCampaignStaDtm = "";
		String selectCampaignEndDtm = "";
		String selectCampaignSbtCd = "";
		// 量販店の場合
		if (serviceFormBean.sendMessageBoolean(FUW00959SFConst.AUTO_CAMPAIGN_AGNT, X31CWebConst.DATABEAN_GET_VALUE))
		{
			for (int i = 0; i < campaignBeanList.getCount(); i++)
			{
				X31SDataBeanAccess campaignInfoBean = campaignBeanList.getDataBean(i);
				// キャンペーンコードが設定されている場合のみ選択済リストに設定
				if (!JFUStrConst.EMPTY.equals(campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_01, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					if (campaignInfoBean.sendMessageBoolean(FUW00959SFConst.CHK_01, X31CWebConst.DATABEAN_GET_VALUE) || i==0)
					{
						selectCampaignCd = campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
						selectCampaignNm = campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_NAME_01, X31CWebConst.DATABEAN_GET_VALUE);
						selectCampaignStaDtm = campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_STA_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
						selectCampaignEndDtm = campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_END_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
						selectCampaignSbtCd = campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_SBT_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
						// 量販の商品券＋Netflixキャンペーンに対応
						if (i == 0)
						{
							// キャンペーン名称を取得
							Map<String, String> servicenameMap =
									JFUWebCommon.getDispItemsAsMap(CAMPAIGN_PATTERN_START + selectCampaignCd + CAMPAIGN_PATTERN_END, QUERY_ATTR_NAME);
							for (Map.Entry<String, String> entry : servicenameMap.entrySet())
							{
								if (entry.getKey().equals("disp"))
								{
									// キャンペーン名称
									selectCampaignNm = entry.getValue();
								}
							}
							// 選択可能キャンペーンリストを取得
							X31SDataBeanAccessArray campaignList = webnewBean.getDataBeanArray(CommonInfoCFConst.CAMPAIGN_LIST);
							for (int j = 0; j < campaignList.getCount(); j++)
							{
								X31SDataBeanAccess campaignInfo = campaignList.getDataBean(j);
								if (selectCampaignCd.equals(campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_STA_DTM_66,
										X31CWebConst.DATABEAN_GET_VALUE)))
								{
									// 受付開始日
									selectCampaignStaDtm =
											campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_STA_DTM_66, X31CWebConst.DATABEAN_GET_VALUE);
									// 受付終了日
									selectCampaignEndDtm =
											campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_END_DTM_66, X31CWebConst.DATABEAN_GET_VALUE);
									// キャンペーン種別コード
									selectCampaignSbtCd =
											campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_SBT_CD_66, X31CWebConst.DATABEAN_GET_VALUE);

								}
							}
						}
						hanyoInfoBean =  hanyoInfoBeanList.addDataBean();
						hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, selectCampaignCd);
						hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_NM_46, X31CWebConst.DATABEAN_SET_VALUE, selectCampaignNm);
						hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_STA_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, selectCampaignStaDtm);
						hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_END_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, selectCampaignEndDtm);
						hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, selectCampaignSbtCd);
					}
				}
			}
		}
		else
		{
			// 選択されているキャンペーンコードを取得
			String selectIndex = serviceFormBean.sendMessageString(FUW00959SFConst.CAMPAIGN_SELECT, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JFUStrConst.EMPTY.equals(selectIndex) && selectIndex.length() > 0)
			{
				// 選択キャンペーンエリア

				// キャンペーン数が4桁超えたらシステムエラーとする。
				if (selectIndex.length() > 4)
				{
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
				}
				X31SDataBeanAccess campaignInfoBean = campaignBeanList.getDataBean(Integer.parseInt(selectIndex));
				selectCampaignCd = campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				selectCampaignNm = campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_NAME_01, X31CWebConst.DATABEAN_GET_VALUE);
				selectCampaignStaDtm = campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_STA_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
				selectCampaignEndDtm = campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_END_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
				selectCampaignSbtCd = campaignInfoBean.sendMessageString(FUW00959SFConst.CAMPAIGN_SBT_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

				// 選択可能キャンペーンリストを取得
				X31SDataBeanAccessArray campaignList = webnewBean.getDataBeanArray(CommonInfoCFConst.CAMPAIGN_LIST);
				// キャンペーンリストを設定
				for (int i = 0; i < campaignList.getCount(); i++)
				{
					// 共有フォームBean.選択可能キャンペーン
					X31SDataBeanAccess campaignInfo = campaignList.getDataBean(i);
					String campaignCd = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_CD_66, X31CWebConst.DATABEAN_GET_VALUE);

					// キャンペーンが表示対象でない場合
					if (!selectCampaignCd.startsWith(campaignCd) && !selectCampaignCd.endsWith(campaignCd))
					{
						continue;
					}
					// 選択したキャンペーンが複数の場合
					if (!selectCampaignCd.equals(campaignCd))
					{
						// 共有フォームBeanから取り直す
						selectCampaignNm = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_NM_66, X31CWebConst.DATABEAN_GET_VALUE);
						selectCampaignStaDtm = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_STA_DTM_66, X31CWebConst.DATABEAN_GET_VALUE);
						selectCampaignEndDtm = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_END_DTM_66, X31CWebConst.DATABEAN_GET_VALUE);
						selectCampaignSbtCd = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_SBT_CD_66, X31CWebConst.DATABEAN_GET_VALUE);
					}

					// 汎用コードリストに選択されたキャンペーン情報を設定
					hanyoInfoBean =  hanyoInfoBeanList.addDataBean();
					hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, campaignCd);
					hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_NM_46, X31CWebConst.DATABEAN_SET_VALUE, selectCampaignNm);
					hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_STA_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, selectCampaignStaDtm);
					hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_END_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, selectCampaignEndDtm);
					hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, selectCampaignSbtCd);

				}
			}

			// 選択されている特別キャンペーンコードを取得
			String selectSpCmpIndex = serviceFormBean.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_SELECT, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JFUWebCommon.isNull(selectSpCmpIndex) || !JFUStrConst.EMPTY.equals(selectSpCmpIndex))
			{
				// 特別キャンペーンエリア

				X31SDataBeanAccessArray spCampaignBeanList = serviceFormBean.getDataBeanArray(FUW00959SFConst.SP_CAMPAIGN_LIST);
				X31SDataBeanAccess spCampaignInfoBean = spCampaignBeanList.getDataBean(Integer.parseInt(selectSpCmpIndex));
				String selectSpCampaignCd = spCampaignInfoBean.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
				String selectSpCampaignNm = spCampaignInfoBean.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_NAME_03, X31CWebConst.DATABEAN_GET_VALUE);
				String selectSpCampaignStaDtm = spCampaignInfoBean.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_STA_DTM_03, X31CWebConst.DATABEAN_GET_VALUE);
				String selectSpCampaignEndDtm = spCampaignInfoBean.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_END_DTM_03, X31CWebConst.DATABEAN_GET_VALUE);
				String selectSpCampaignSbtCd = spCampaignInfoBean.sendMessageString(FUW00959SFConst.SP_CAMPAIGN_SBT_CD_03, X31CWebConst.DATABEAN_GET_VALUE);

				// 選択可能特別キャンペーンリストを取得
				X31SDataBeanAccessArray spCampaignList = webnewBean.getDataBeanArray(CommonInfoCFConst.CAMPAIGN_LIST);
				// 特別キャンペーンリストを設定
				for (int i = 0; i < spCampaignList.getCount(); i++)
				{
					// 共有フォームBean.選択可能特別キャンペーン
					X31SDataBeanAccess campaignInfo = spCampaignList.getDataBean(i);
					String campaignCd = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_CD_66, X31CWebConst.DATABEAN_GET_VALUE);

					// 特別キャンペーンが表示対象でない場合
					if (!selectSpCampaignCd.startsWith(campaignCd) && !selectSpCampaignCd.endsWith(campaignCd))
					{
						continue;
					}
					// 選択した特別キャンペーンが複数の場合
					if (!selectSpCampaignCd.equals(campaignCd))
					{
						// 共有フォームBeanから取り直す
						// 共有フォームBeanから取り直す
						selectSpCampaignNm = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_NM_66, X31CWebConst.DATABEAN_GET_VALUE);
						selectSpCampaignStaDtm = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_STA_DTM_66, X31CWebConst.DATABEAN_GET_VALUE);
						selectSpCampaignEndDtm = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_END_DTM_66, X31CWebConst.DATABEAN_GET_VALUE);
						selectSpCampaignSbtCd = campaignInfo.sendMessageString(CommonInfoCFConst.CAMPAIGN_SBT_CD_66, X31CWebConst.DATABEAN_GET_VALUE);
					}

					// 汎用コードリストに選択された特別キャンペーン情報を設定
					hanyoInfoBean =  hanyoInfoBeanList.addDataBean();
					hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_SET_VALUE, campaignCd);
					hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_NM_46, X31CWebConst.DATABEAN_SET_VALUE, selectSpCampaignNm);
					hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_STA_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, selectSpCampaignStaDtm);
					hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_END_DTM_46, X31CWebConst.DATABEAN_SET_VALUE, selectSpCampaignEndDtm);
					hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_SBT_CD_46, X31CWebConst.DATABEAN_SET_VALUE, selectSpCampaignSbtCd);
				}
			}
		}
	}

	/**
	 * 汎用コードに登録可能なキャンペーンがあるか
	 * @param bnWebinfo
	 * @return
	 */
	private boolean isHanyoCdAri(X31SDataBeanAccess bnWebinfo)
	{
		boolean retFlg = false;

		// String配列汎用コードの要素数を取得
		Integer hanyoCdLength = bnWebinfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST).getCount();

		X31SDataBeanAccessArray hanyoCdList = bnWebinfo.getDataBeanArray(CommonInfoCFConst.HANYO_CD_LIST);
		X31SDataBeanAccess hanyoInfoBean = null;

		// 汎用コード、汎用コード区分をマッピング
		for (int i = 0; i < hanyoCdLength; i++)
		{
			hanyoInfoBean = hanyoCdList.getDataBean(i);

			// 汎用コード
			String hanyoCd = hanyoInfoBean.sendMessageString(CommonInfoCFConst.HANYO_CD_46, X31CWebConst.DATABEAN_GET_VALUE);

			if (!JFUWebCommon.isNull(hanyoCd))
			{
				retFlg = true;
				break;
			}
		}

		return retFlg;
	}

	/**
	 * キャンペーンの設定（量販）
	 * @param campaignSelectInfo
	 * @param prpName
	 * @param cmpSbtCd
	 * @param campaignCd
	 * @return
	 * @throws Exception
	 */
	private void setCampaignRyohan(X31SDataBeanAccess campaignSelectInfo, String prpName, String cmpSbtCd, String campaignCd) throws Exception
	{
		Map<String, String> servicenameMap =
				JFUWebCommon.getDispItemsAsMap(CAMPAIGN_PATTERN_START + prpName + CAMPAIGN_PATTERN_END, QUERY_ATTR_NAME);

		String campaignCode = "";
		String campaignName = "";
		for (Map.Entry<String, String> entry : servicenameMap.entrySet())
		{
			if (entry.getKey().equals("campaign_cd"))
			{
				campaignCode = entry.getValue();
			}
			if (entry.getKey().equals("disp"))
			{
				campaignName = entry.getValue();
			}
		}

		if (!campaignCd.equals(campaignCode))
		{
			return;
		}

		// キャンペーンコード
		campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, campaignCode);
		// キャンペーン名称
		campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_NAME_01, X31CWebConst.DATABEAN_SET_VALUE, campaignName);
		// キャンペーン選択
		campaignSelectInfo.sendMessageBoolean(FUW00959SFConst.CHK_01, X31CWebConst.DATABEAN_SET_VALUE, true);
		// キャンペーン種別
		campaignSelectInfo.sendMessageString(FUW00959SFConst.CAMPAIGN_SBT_CD_01, X31CWebConst.DATABEAN_SET_VALUE, cmpSbtCd);
	}
	
// ANK-4570-00-00 ADD START
	/**
	 * テレビ単独チェック
	 * @param commonInfoBean 共有フォームBean
	 * @return boolean true:テレビ単独  false:それ以外
	 */
	private boolean tvSingleCheck(X31SDataBeanAccess commonInfoBean)
	{
		boolean result = false;
		
		// 共有フォームBean.ＷＥＢ新規情報を取得する
		X31SDataBeanAccessArray webNewInfoArray = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webNewInfoBean = getDataBeanZero(webNewInfoArray);
		
		// 共有フォームBean.契約サービス情報を取得する
		X31SDataBeanAccessArray keiyakuSvcInfoArray = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		X31SDataBeanAccess keiyakuSvcInfoBean = getDataBeanZero(keiyakuSvcInfoArray);
		
		// 共有フォームBean.ｅｏ光テレビを取得する
		X31SDataBeanAccessArray eotvArray = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.EOTV);
		X31SDataBeanAccess eotvBean = getDataBeanZero(eotvArray);
		
		// 選択サービス(ネット)を取得する
		String selSvcNet = keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 選択サービス(電話)を取得する
		String selSvcTel = keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 選択サービス(テレビ)を取得する
		String selSvcTv = keiyakuSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		
		// テレビコース（ｅｏ光テレビ入力）を取得する
		String tvCourse = eotvBean.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 画面遷移元IDを取得する
		String screenId = JFUWebCommon.getScreenId(this);
		
		// 遷移元の画面ＩＤが「FUW00931_登録完了（量販・訪販）」の場合
		if (JFUScreenConst.SCREEN_ID_FUW00931.equals(screenId))
		{
			return true;
		}
		
		// 選択サービス（テレビ）が「1:選択」、かつ、
		// ｅｏ光テレビ テレビコース（ｅｏ光テレビ入力）が「1:地デジ・BS」又は「3:地デジ・BSコース　スターチャンネルセット」、かつ、
		// 選択サービス（ネット）が「0:未選択」、かつ、
		// 選択サービス（電話）が「0:未選択」の場合
		if (JFUStrConst.SELECT_SVC_TV_CHOICE.equals(selSvcTv)
				&& (JFUStrConst.EO_TV_COURSE_BS.equals(tvCourse) || JFUStrConst.EO_TV_COURSE_BS_STAR.equals(tvCourse))
				&& JFUStrConst.SELECT_SVC_NET_MI_CHOICE.equals(selSvcNet)
				&& JFUStrConst.SELECT_SVC_TEL_MI_CHOICE.equals(selSvcTel))
		{
			result = true;
		}
		
		return result;
	}
	
	/**
	 * Beanの子要素の配列1番目を取得（子要素無い場合作成）
	 * @param beanArray Beanアクセサの配列
	 * @return 子要素配列１番目へのアクセサ
	 */
	private X31SDataBeanAccess getDataBeanZero(X31SDataBeanAccessArray beanArray)
	{
		if (beanArray.getCount() <= 0)
		{
			beanArray.addDataBean();
		}

		return beanArray.getDataBean(0);
	}
// ANK-4570-00-00 ADD END
}
