/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：○○○○○○○
 *   モジュール名    ：割引サービス選択
 *   ソースファイル名：KKW01033SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2011年05月11日
 *＜機能概要＞
 *   
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v1.00.00    2011/05/11   富士通      新規作成
 *   v4.01.00    2012/10/26   FJ         【IT1-2012-0001711】サービス情報タブ遷移対応
 *   v4.02.00    2012/11/13   FJ         【IT1-2012-0001709】ファミリーパック、ルータ出力対応
 *   v4.03.00    2012/11/29   FJ         【ANK-1289-00-00】異動区分選択画面の遷移対応
 *   v4.04.00    2012/12/04   FJ         【ANK-1296-00-00】eo64エア、IPテレメト画面出力対応
 *   v4.05.00    2012/12/17   FJ         【IT2-2012-0002122】マンション名出力対応
 *   v4.06.00    2013/03/01   FJ         【IT1-2012-0002413】共通ヘッダ予約状況出力対応
 *   v5.00.00    2013/03/17   FJ         【OT-2013-0000372】長期継続利用割引情報表示対応
 *   v5.01.00    2013/04/26   FJ         【ST3-2013-0000978】閉じる戻るボタン対応
 *   v5.02.00    2013/06/04   FJ         【IT2-2013-0000475】戻るボタンでの遷移エラー対応
 *   v5.03.00    2013/07/07   FJ         【LT-2013-0000191 】一覧情報の取得方法変更によるソート処理削除対応
 *   v7.00.00    2014/01/28   FJ         【ANK-1756-00-00  】紹介対応
 *   v8.00.00    2014/01/16   FJ         【ANK-1584-00-00  】画面遷移対応
 *   v9.00.00    2014/06/26   FJ) 藤田   【ANK-2121-00-00  】フッター揃え対応
 *   v13.00.00   2015/02/03   FJ) 福岡   【ANK-2398-00-00  】お客さまIDに紐づく割引出力対応
 *   v16.00.00   2015/06/24   FJ) 鯵坂   【ANK-2480-00-00】新電力対応
 *   v25.00.00   2016/05/26   FJ)柳      【ANK-2754-00-00】お客様情報タブへのコンテンツ契約情報表示
 *   v26.00.00   2016/06/01   FJ) 三宅   【ANK-2687-00-00  】プレミアムサポート施策
 *   v28.00.00   2016/12/07   FJ) 三原   【ANK-3034-00-00】【eoプレミアムクラブ】eo画面へのチケット残枚数追加表示
 *   v35.00.00   2017/12/22   FJ) 麻生   【ANK-3346-01-00】【解約レター機能関連】改善要望　Ｓｔｅｐ１
 *   v37.00.00   2018/03/15   FJ) 三原   【ANK-3366-00-00】eo光設備卸対応
 *   v38.00.00   2018/06/06   FJ)柳      【ANK-3436-00-00】eo光×eo電気×mineoセット割対応
 *   v44.00.00	 2019/05/08   FJ）澤田	 【ANK-3610-00-00】CASHPOST登録
 *   v48.00.00	 2020/01/31	  FJ) 吉田	 【OM-2019-0000973】eo電気を選択してサービス契約照会画面で割引情報タブを選択するとシステムエラー
 *	 v48.01.00	 2020/01/24   FJ)中野	 【ANK-3796-00-00】テレビリースサービス導入対応
 *	 v48.02.00	 2020/03/06   FJ)鈴木	 【IT1-2020-0000019】割引サービス契約割引情報照会画面のリース契約の画面遷移先誤り
 *   v49.00.00	 2020/06/10	  FJ)荒木	 【ANK-3840-00-00】テレビリースサービス新規申込対応
 *   v57.00.00	 2022/01/17   FJ)杉本	 【ANK-4075-00-00】マンション卸回線(WI-FIスキーム)の不備対応
 **********************************************************************/

package eo.web.webview.KKW01033SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CVector;
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.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JCCFrameworkException;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW00128SF.KKW00128SFConst;
import eo.web.webview.KKW01023SF.KKW01023SFConst;
import eo.web.webview.KKW01033SF.KKW01033SFConst.FunctionCode;
import eo.web.webview.KKW01033SF.KKW01033SFConst.Service;
import eo.web.webview.KKW21811SF.KKW21811SFConst;
import eo.web.webview.KKW22301SF.KKW22301SFConst;
import eo.web.webview.common.JCCScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCHCommonConst;
import eo.web.webview.common.JCKScreenConst;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKTabCommonLogic;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.mapping.CCSV0006_CCSV0006OPDBMapper;
import eo.web.webview.mapping.KKSV0793_KKSV0793OPDBMapper;

import static eo.web.webview.common.JKKKeiNewCmnLogicUtil.CCSV0006;
import static eo.web.webview.common.JKKKeiNewCmnLogicUtil.PROP_SIMS_MAP_SYS_ID;

/**
 * <dd>クラス名：KKW01023SFLogic <dd>クラス説明：割引サービス契約の一覧照会を行う。 <dd>備考：なし。
 * 
 * @version 1.00.00 2011/03/31
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW01033SFLogic extends JCCWebBusinessLogic
{

//▽2013.03.15 Start
	/** 長期継続利用割引の状態（予約） */
	private static final String CHOUKI_KEIZOKU_WRIB_STAT_RSV   = "予約";
	/** 長期継続利用割引の状態（適用） */
	private static final String CHOUKI_KEIZOKU_WRIB_STAT_APPLY = "適用";
	/** 長期継続利用割引の状態（無） */
	private static final String CHOUKI_KEIZOKU_WRIB_STAT_NASHI = "無";
//△2013.03.15 End

	// ANK-2121-00-00 フッター揃え対応 2014/06/26 藤田 ADD START
	/** 顧客契約引継リスト 異動区分選択画面遷移パターン：親画面遷移パターン(一時的) */
	private static final String IDO_DIV_SENI_PTN_TMP_OYA_SENI = "99";
	// ANK-2121-00-00 フッター揃え対応 2014/06/26 藤田 ADD END
	
	/**
	 * <dd>メソッド名：初期表示処理 <dd>メソッド説明：一覧照会画面の初期表示を行う。 <dd>備考：なし。
	 * 
	 * @param
	 * @return true
	 */
	@SuppressWarnings("unchecked")
	public boolean actionInit()
	{
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		// /// 共有フォームBean設定（画面名設定） /////
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW01033);

		// /// セッション情報取得 /////
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 割引キャンペーン一覧リストの作成
		editWribCampaignList(bean);

		// ヘッダ情報源取得
		BeanMap sfBean = Mover.getBeanMapFromDataBean(bean, KKW01033SFConst.SFBEAN);
		ArrayList<BeanMap> custList= (ArrayList<BeanMap>)sfBean.take(KKW01033SFConst.CUST);
		BeanMap cust=custList.get(0);
		
		// ヘッダ情報取得
		HashMap<String, Object> header = getSvckeiCommonMap(cust);
		// ヘッダ情報設定
		try
		{
			JKKWebCommon.setSvckeiInfo(this, header);
		}
		catch (Exception e)
		{
			throw new RuntimeException(e);
		}

// v5.02.00  2013.06.04 Mod Start
		// 顧客契約引継リスト取得
		ArrayList<BeanMap> hktgiDataList = (ArrayList<BeanMap>)sfBean.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		
		// ANK-2121-00-00 フッター揃え対応 2014/06/26 藤田 ADD START
		// 地図画面を開くための設定
		setMapGmnData(bean);
		
		// 地図ボタン、利用不可期間履歴ボタンの表示区分取得・設定
		setFooterBtnDispFlg(bean);
		
		// OM-2019-0000973 ADD START
		// 自治体割引回線取得フラグ
		String jct_wrib_kisn_get_ffg = (String)sfBean.take(KKW01033SFConst.JCT_WRIB_KISN_GET_FFG);
		// 自治体割引回線取得フラグが"1"の場合、メッセージを出力する。
		if ("1".equals(jct_wrib_kisn_get_ffg))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBF410__I, new String[]{""}, "");
		}
		// OM-2019-0000973 ADD END
		
		// 異動区分選択画面遷移パターン
		String idoDivSeniPtn = (String)hktgiDataList.get(0).get(JKKCommonConst.HKTGI_IDO_DIV_SENI_PTN);
		// 一時的な親画面遷移パターンの場合
		if (IDO_DIV_SENI_PTN_TMP_OYA_SENI.equals(idoDivSeniPtn))
		{
			// 自画面遷移パターンに戻す
			hktgiDataList.get(0).put(JKKCommonConst.HKTGI_IDO_DIV_SENI_PTN, JKKCommonConst.HKTGI_IDO_DIV_SENI_PTN_SELF_SENI);
		}
		// ANK-2121-00-00 フッター揃え対応 2014/06/26 藤田 ADD END
		
		// 戻り時の情報を保持
		BeanMap target = new BeanMap();
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, hktgiDataList);
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01033, target);
// v5.02.00  2013.06.04 Mod End

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		return true;
	}
	
// v13.00.00 ADD START
	
	/**
	 * <dd>メソッド名：ラジオボタン押下時。 <dd>備考：なし。
	 * 
	 * @param
	 * @return true
	 */
	@SuppressWarnings("unchecked")
	public boolean actionRadioChange() {
		
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 割引キャンペーン一覧リストの作成
		editWribCampaignList(bean);

		// ヘッダ情報源取得
		BeanMap sfBean              = Mover.getBeanMapFromDataBean(bean, KKW01033SFConst.SFBEAN);
		ArrayList<BeanMap> custList = (ArrayList<BeanMap>)sfBean.take(KKW01033SFConst.CUST);
		BeanMap cust                = custList.get(0);
		
		// ヘッダ情報取得
		HashMap<String, Object> header = getSvckeiCommonMap(cust);
		
		// ヘッダ設定：異常時は、throw.
		try { JKKWebCommon.setSvckeiInfo(this, header); } catch (Exception e) { throw new RuntimeException(e); }
		
		// OM-2019-0000973 ADD START
		// 自治体割引回線取得フラグ
		String jct_wrib_kisn_get_ffg = (String)sfBean.take(KKW01033SFConst.JCT_WRIB_KISN_GET_FFG);
		// 自治体割引回線取得フラグが"1"の場合、メッセージを出力する。
		if ("1".equals(jct_wrib_kisn_get_ffg))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBF410__I, new String[]{""}, "");
		}
		// OM-2019-0000973 ADD END
		
		// 共通フッター設定
		conBtn(bean, sfBean);
		
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		// 共有フォームBean設定, 
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,   X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW01033);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW01033);
		
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		return true;
	}
	
	@SuppressWarnings("unchecked")
	private void conBtn(X31SDataBeanAccess bean, BeanMap sfBean) {
		
		// 顧客契約引継リスト取得
		ArrayList<BeanMap> hktgiDataList = (ArrayList<BeanMap>)sfBean.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		
		// 地図画面を開くための設定
		setMapGmnData(bean);
		
		// 地図ボタン、利用不可期間履歴ボタンの表示区分取得・設定
		setFooterBtnDispFlg(bean);
		
		// 異動区分選択画面遷移パターン
		String idoDivSeniPtn = (String)hktgiDataList.get(0).get(JKKCommonConst.HKTGI_IDO_DIV_SENI_PTN);
		
		// 一時的な親画面遷移パターンの場合
		if (IDO_DIV_SENI_PTN_TMP_OYA_SENI.equals(idoDivSeniPtn)) {
			
			// 自画面遷移パターンに戻す
			hktgiDataList.get(0).put(JKKCommonConst.HKTGI_IDO_DIV_SENI_PTN, JKKCommonConst.HKTGI_IDO_DIV_SENI_PTN_SELF_SENI);
		}
		
		// 戻り時の情報を保持
		BeanMap target = new BeanMap();
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, hktgiDataList);
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01033, target);
	}
// v13.00.00 ADD END
	
	/**
	 * 
	 * 共通ヘッダ情報設定処理
	 * 
	 * @param  cust
	 * @return 共通Map
	 */
	private HashMap<String, Object> getSvckeiCommonMap(BeanMap cust)
	{
		HashMap<String, Object> result = new HashMap<String, Object>(50);

		result.put(JKKCommonConst.SVCKEICOMMON_ID_MANSION_ID, cust.take(KKW01033SFConst.MANSION_ID_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_MANSION_NM, cust.take(KKW01033SFConst.MANSION_NM_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_KEISHA_NM, cust.take(KKW01033SFConst.CUST_NM_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_TELNO, cust.take(KKW01033SFConst.KEISHA_TELNO_02));
				String keishaAd = JPCUtilCommon.trim((String)cust.take(KKW01033SFConst.KEISHA_STATE_NM_02))
						+ JPCUtilCommon.trim((String)cust.take(KKW01033SFConst.KEISHA_CITY_NM_02))
						+ JPCUtilCommon.trim((String)cust.take(KKW01033SFConst.KEISHA_OAZTSU_NM_02))
						+ JPCUtilCommon.trim((String)cust.take(KKW01033SFConst.KEISHA_AZCHO_NM_02))
						+ JPCUtilCommon.trim((String)cust.take(KKW01033SFConst.KEISHA_BNCHIGO_02))
						+ JPCUtilCommon.trim((String)cust.take(KKW01033SFConst.KEISHA_ADRTTM_02))
						+ JPCUtilCommon.trim((String)cust.take(KKW01033SFConst.KEISHA_ADRRM_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_KEISHA_AD, keishaAd);
		result.put(JKKCommonConst.SVCKEICOMMON_ID_SVC_KEI_NO, cust.take(KKW01033SFConst.SVC_KEI_NO_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_SEIKY_KEI_NO, cust.take(KKW01033SFConst.SEIKY_KEI_NO_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_SYSID, cust.take(KKW01033SFConst.SYSID_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_EOID, cust.take(KKW01033SFConst.EOID_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_PRC_GRP, cust.take(KKW01033SFConst.PRC_GRP_NM_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_PCRS, cust.take(KKW01033SFConst.PCRS_NM_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_IDO_DIV, cust.take(KKW01033SFConst.IDO_DIV_NM_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_SVC_KEI_STAT, cust.take(KKW01033SFConst.SVC_KEI_STAT_NM_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_FAMILY_PACK_UM, cust.take(KKW01033SFConst.FAMILY_PACK_UM_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_TOKUSOKU_STAT, cust.take(KKW01033SFConst.TOKUSOKU_STAT_02));
		
		// ++++++++++++++ 2012/11/13 v4.02.00 IT1-2012-0001709 追加開始 ++++++++++++++++ //
		result.put(JKKCommonConst.SVCKEICOMMON_ID_ROUTER_SBT, cust.take(KKW01033SFConst.ROUTER_SBT_02));
		// ++++++++++++++ 2012/11/13 v4.02.00 IT1-2012-0001709 追加終了 ++++++++++++++++ //
		
// ++++++++++++++ 2012/12/17 v4.05.00 IT2-2012-0002122 追加開始 ++++++++++++++++ //
		
		result.put(JKKCommonConst.SVCKEICOMMON_ID_P_ID,   cust.take(KKW01033SFConst.P_ID_02));
		result.put(JKKCommonConst.SVCKEICOMMON_ID_CAT_ID, cust.take(KKW01033SFConst.CAT_ID_02));
		
// ++++++++++++++ 2012/12/17 v4.05.00 IT2-2012-0002122 追加開始 ++++++++++++++++ //
		
/* v4.06.00 add start       ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// 予約状況
		result.put(JKKCommonConst.SVCKEICOMMON_ID_RSV_JOKYO, cust.take(KKW01033SFConst.RSV_JOKYO_02));
/* v4.06.00 add end         ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
// v26.00.00 ADD START
		// 会員ランク
		result.put(JKKCommonConst.SVCKEICOMMON_ID_RANK_NM, cust.take(KKW01033SFConst.RANK_NM_02));
// v26.00.00 ADD END
// 2016/12/07 ANK-3034-00-00 ADD START
		// チケット残枚数(保有eoポイント数)
		result.put(JKKCommonConst.SVCKEICOMMON_ID_TIC_NUM, cust.take(KKW01033SFConst.TIC_NUM_02));
// 2016/12/07 ANK-3034-00-00 ADD END
		// ANK-3366-00-00 ADD START
		// 卸先事業者名
		result.put(JKKCommonConst.SVCKEICOMMON_ID_ORSJGS_NM, cust.take(KKW01033SFConst.ORSJGS_NM_02));
		// ANK-3366-00-00 ADD END
// ANK-3840-00-00 ADD START
		// 定額サービス契約有無
		result.put(JKKCommonConst.SVCKEICOMMON_ID_TEGAK_SVC_UM, cust.take(KKW01033SFConst.TEGAK_SVC_UM_02));
// ANK-3840-00-00 ADD END
		// ANK-4075-00-00 ADD START
		// スキームタイプ名
		result.put(JKKCommonConst.SVCKEICOMMON_ID_SCM_TYPE_NM, cust.take(KKW01033SFConst.SCM_TYPE_NM_02));
		// スキーム事業者名
		result.put(JKKCommonConst.SVCKEICOMMON_ID_SCM_JGS_NM, cust.take(KKW01033SFConst.SCM_JGS_NM_02));
		// ANK-4075-00-00 ADD END
		
		String prcGrpCd = (String)cust.take(KKW01033SFConst.PRC_GRP_CD_02);

		if (JKKCommonConst.PRC_GRP_CD_05.equals(prcGrpCd) || JKKCommonConst.PRC_GRP_CD_06.equals(prcGrpCd))
		{
			result.put(JKKCommonConst.SVCKEICOMMON_ID_ADSL_DSP_FLG, "1");
		}
		else
		{
			result.put(JKKCommonConst.SVCKEICOMMON_ID_ADSL_DSP_FLG, "0");
		}
		
		

		// ANK-2754-00-00 2016/05/26 MOD START
		// result.put(JKKCommonConst.SVCKEICOMMON_ID_NEXT_TAB, "Tab8");
		result.put(JKKCommonConst.SVCKEICOMMON_ID_NEXT_TAB, "Tab9");
		// ANK-2754-00-00 2016/05/26 MOD END

		return result;
	}


	/**
	 * <dd>メソッド名：戻るボタン押下 <dd>メソッド説明：一覧照会画面の戻るボタン押下時処理を行う。 <dd>備考：なし。
	 * 
	 * @param
	 * @return true
	 */
	@SuppressWarnings("unchecked")
	public boolean actionReturn()
	{
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		// /// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon
				.getScreenId(this));

//▽2012-11-29 v4.03.00 Start
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(svcFormBean, KKW01033SFConst.SFBEAN);
		// 顧客契約引継リスト
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>)beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
		// 顧客契約内引継ぎデータセット
		JCCWebCommon.setScreenInfo(this, JCCWebCommon.getScreenId(this), target);
//△2012-11-29 v4.03.00 End

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}


	/**
	 * <dl>
	 * <dt>処理概要:
	 * <dd>割引サービス契約一覧照会サービスを呼び出し、割引キャンペーン一覧のリストを作成する。
	 * <dt>処理補足:
	 * <dd>・一覧照会画面では、有効なステータスの割引キャンペーンのみ表示する。
	 * <dd>・履歴照会画面では、サービスで取得した全レコードを表示する。
	 * </dl>
	 * 
	 * @param bean
	 *            割引サービス契約一覧照会サービスフォームBean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public void editWribCampaignList(X31SDataBeanAccess bean)
	{
		// サービス呼び出し
		Service.KKSV0229.invokeAndApplySFBean(this, bean,FunctionCode.ICRN_SHOKAI.getCode());
		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(bean, KKW01033SFConst.SFBEAN);
		
		// 割引キャンペーンを取得。
		ArrayList<BeanMap> campaignIcrn = (ArrayList<BeanMap>)beanMap.get(KKW01033SFConst.CAMPAIGN_ICRN);

		for(BeanMap databean : campaignIcrn){
			String  data_tem_staymd = (String)databean.get(KKW01033SFConst.STAYMD_03);
			String  data_tem_end_ymd = (String)databean.get(KKW01033SFConst.ENDYMD_03);
			String  data_tem_msk_ymd = (String)databean.get(KKW01033SFConst.MSKM_YMD_03);
			
			if(null == data_tem_staymd.trim() || 8 != data_tem_staymd.trim().length() || JKKCommonConst.MAX_YMD.equals(data_tem_staymd.trim()))
			{
				databean.put(KKW01033SFConst.STAYMD_03,"");
			}
			if(null == data_tem_end_ymd.trim() || 8 != data_tem_end_ymd.trim().length() || JKKCommonConst.MAX_YMD.equals(data_tem_end_ymd.trim()))
			{
				databean.put(KKW01033SFConst.ENDYMD_03,"");
			}
			if(null == data_tem_msk_ymd.trim() || 8 != data_tem_msk_ymd.trim().length() || JKKCommonConst.MAX_YMD.equals(data_tem_msk_ymd.trim()))
			{
				databean.put(KKW01033SFConst.MSKM_YMD_03,"");
			}
//▽2013.03.17 OT-2013-0000372 Start
			if(JKKCommonConst.WRIB_TYPE_CD_CHOUKI_KEIZOKU.equals(databean.get(KKW01033SFConst.TYPE_CD_03)))
			{
				String svcKeiStat    = (String)databean.get(KKW01033SFConst.STAT_03);
				String svcChrgStaYmd = (String)databean.get(KKW01033SFConst.STAYMD_03);
				if(JKKCommonConst.WRIB_SVC_KEI_STAT_DSL_ZM.equals(svcKeiStat) || 
						JKKCommonConst.WRIB_SVC_KEI_STAT_CNCL_ZM.equals(svcKeiStat) || JKKCommonConst.WRIB_SVC_KEI_STAT_APLY_ZM.equals(svcKeiStat))
				{
					// 解約済・キャンセル済・適用済の場合には"無"
					databean.put(KKW01033SFConst.CHOUKI_KEIZOKU_WRIB_STAT_03, CHOUKI_KEIZOKU_WRIB_STAT_NASHI);
				}
				if(JKKCommonConst.WRIB_SVC_KEI_STAT_UK_ZM.equals(svcKeiStat))
				{
					// 受付済の場合には"予約"
					databean.put(KKW01033SFConst.CHOUKI_KEIZOKU_WRIB_STAT_03, CHOUKI_KEIZOKU_WRIB_STAT_RSV);
				}
				if(JKKCommonConst.WRIB_SVC_KEI_STAT_SVCTK_CHU.equals(svcKeiStat) && svcChrgStaYmd.compareTo(JCCWebCommon.getOpeDate(this, null)) > 0)
				{
					// サービス提供中でサービス課金開始年月日以前の場合
					databean.put(KKW01033SFConst.CHOUKI_KEIZOKU_WRIB_STAT_03, CHOUKI_KEIZOKU_WRIB_STAT_RSV);	
				}
				else if(JKKCommonConst.WRIB_SVC_KEI_STAT_SVCTK_CHU.equals(svcKeiStat) && svcChrgStaYmd.compareTo(JCCWebCommon.getOpeDate(this, null)) <= 0)
				{
					// サービス課金開始年月日が運用日を過ぎている場合
					databean.put(KKW01033SFConst.CHOUKI_KEIZOKU_WRIB_STAT_03, CHOUKI_KEIZOKU_WRIB_STAT_APPLY);
				}
			}
//△2013.03.17 OT-2013-0000372 End
		}
		
//▽2013.03.17 OT-2013-0000372 Start
		// 先頭のものを初期選択とする
		beanMap.pair(KKW01033SFConst.SELECTED, "0");
//△2013.03.17 OT-2013-0000372 End

// v5.03.00 DEL START
//		// 一覧ソート条件
//		Comparator<BeanMap> comparator=new IcrnComparator();
//		Collections.sort(campaignIcrn, comparator);
// v5.03.00 DEL END

		//抽出後のキャンペーン一覧をSFBeanへ書き戻し
		beanMap.pair(KKW01033SFConst.CAMPAIGN_ICRN, campaignIcrn);
		Mover.setBeanMapToDataBean(beanMap, bean);
	}


	@SuppressWarnings("unchecked")
	private void forwardTab(String screenId, String screenName)
	{
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(svcFormBean, KKW01033SFConst.SFBEAN);
		// 顧客契約引継リスト
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>)beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);

		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);

		// 顧客契約内引継ぎデータセット
		JCCWebCommon.setScreenInfo(this, screenId, target);
		
// ++++++++++++++ 2013/04/26 v5.01.00 追加開始 ++++++++++++++++ //
		// 遷移先から戻る際に必要な情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01033, target);
		//画面情報を設定
		JCCWebCommon.setScreenId(this, screenId, JKKScreenConst.SCREEN_ID_KKW01033);
// ++++++++++++++ 2013/04/26 v5.01.00 追加終了 ++++++++++++++++ //

		// 共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, screenId);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, screenName);
	}

	/**
	 * 「申込情報」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTab1()
	{
		forwardTab(JKKScreenConst.SCREEN_ID_KKW00127, JKKScreenConst.SCREEN_NAME_KKW00127);

		return true;
	}

	/**
	 * 「サービス契約」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean actionTab2()
	{
// ++++++++++++++ 2012/10/26 v4.01.00 IT1-2012-0001711 削除開始 ++++++++++++++++ //
//		forwardTab(JKKScreenConst.SCREEN_ID_KKW00128, JKKScreenConst.SCREEN_NAME_KKW00128);
// ++++++++++++++ 2012/10/26 v4.01.00 IT1-2012-0001711 削除終了 ++++++++++++++++ //
		
// ++++++++++++++ 2012/10/26 v4.01.00 IT1-2012-0001711 追加開始 ++++++++++++++++ //
		
		// 
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		// 
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 
		// 料金グループコード取得
		// 
		BeanMap            sfBean   = Mover.getBeanMapFromDataBean(bean, KKW01033SFConst.SFBEAN);
		ArrayList<BeanMap> custList = (ArrayList<BeanMap>) sfBean.take(KKW01033SFConst.CUST);
		String             prcGrpCd = (String) custList.get(0).take(KKW01033SFConst.PRC_GRP_CD_02);
		
		// 
		// 画面遷移判定処理
		// 
		
// ++++++++++++++ 2012/12/04 v4.02.00 ANK-1296-00-00 変更開始 ++++++++++++++++ //
		
//		if (JKKCommonConst.PRC_GRP_CD_02.equals(prcGrpCd) 
//					|| JKKCommonConst.PRC_GRP_CD_03.equals(prcGrpCd)
//					|| JKKCommonConst.PRC_GRP_CD_04.equals(prcGrpCd)) {
			
		if (JKKCommonConst.PRC_GRP_CD_01.equals(prcGrpCd)
				|| JKKCommonConst.PRC_GRP_CD_02.equals(prcGrpCd) 
				|| JKKCommonConst.PRC_GRP_CD_03.equals(prcGrpCd)
				|| JKKCommonConst.PRC_GRP_CD_04.equals(prcGrpCd)
				|| JKKCommonConst.PRC_GRP_CD_15.equals(prcGrpCd)) {
		
// ++++++++++++++ 2012/12/04 v4.02.00 ANK-1296-00-00 変更終了 ++++++++++++++++ //
			// 
			// サービス契約情報更新（eo光ネット）画面へ遷移
			// 
			// 
			//《料金グループコード》
			// 
			//  ・eo64エア
			//  ・eo光ネットホームタイプ
			//  ・eo光ネットメゾンタイプ
			//  ・eo光ネットマンションタイプ
			//  ・IPテレメト
			// 
			forwardTab(JKKScreenConst.SCREEN_ID_KKW00128, JKKScreenConst.SCREEN_NAME_KKW00128);
			
		} else if (JKKCommonConst.PRC_GRP_CD_11.equals(prcGrpCd)
					|| JKKCommonConst.PRC_GRP_CD_12.equals(prcGrpCd)
					|| JKKCommonConst.PRC_GRP_CD_13.equals(prcGrpCd)) {
		
			// 
			// サービス契約情報更新（ｅｏ光テレビ）画面へ遷移
			// 
			// 
			// 《料金グループコード》
			// 
			//  ・eo光テレビ(K-CAT)
			//  ・eo光テレビ(KCN)
			//  ・eo光テレビ(再送信)
			// 
			forwardTab(JKKScreenConst.SCREEN_ID_KKW00129, JKKScreenConst.SCREEN_NAME_KKW00129);
			
			
		} else if (JKKCommonConst.PRC_GRP_CD_10.equals(prcGrpCd)) {
			
			// 
			// サービス契約情報更新（eo光電話）画面へ遷移
			// 
			// 
			// 《料金グループコード》
			//  ・eo光電話
			// 
			forwardTab(JKKScreenConst.SCREEN_ID_KKW00130, JKKScreenConst.SCREEN_NAME_KKW00130);
			
		} else if (JKKCommonConst.PRC_GRP_CD_07.equals(prcGrpCd)
					|| JKKCommonConst.PRC_GRP_CD_08.equals(prcGrpCd)
					|| JKKCommonConst.PRC_GRP_CD_09.equals(prcGrpCd)
					|| JKKCommonConst.PRC_GRP_CD_16.equals(prcGrpCd)) {
			
			// 
			// サービス契約情報更新（eoモバイル）画面へ遷移
			// 
			// 
			//《料金グループコード》
			// 
			//  ・eoモバイル(Wi-Fi)
			//  ・eoモバイル(EM)
			//  ・eoモバイル(UQ-WiMAX)
			// 
			forwardTab(JKKScreenConst.SCREEN_ID_KKW00131, JKKScreenConst.SCREEN_NAME_KKW00131);
			
		} else if (JKKCommonConst.PRC_GRP_CD_05.equals(prcGrpCd)
					|| JKKCommonConst.PRC_GRP_CD_06.equals(prcGrpCd)) {
			
			// 
			// サービス契約情報更新（eoADSL）画面へ遷移
			// 
			// 
			//《料金グループコード》
			// 
			//  ・eoADSL(eAccess) 
			//  ・eoADSL(フレッツ)
			// 
			forwardTab(JKKScreenConst.SCREEN_ID_KKW00132, JKKScreenConst.SCREEN_NAME_KKW00132);
		}
// v8.00.00 add start
		else if ("51".equals(prcGrpCd)){
			
			forwardTab(JKKScreenConst.SCREEN_ID_KKW00194, JKKScreenConst.SCREEN_NAME_KKW00194);
		}
// v8.00.00 add end	
// ANK-2480-00-00 ADD START
		else if (JKKCommonConst.PRC_GRP_CD_17.equals(prcGrpCd)) {
		
		// 
		// サービス契約情報照会（eo電気）画面へ遷移
		// 
		// 
		//《料金グループコード》
		// 
		//  ・eo電気
		// 
		forwardTab(JKKScreenConst.SCREEN_ID_KKW00195, JKKScreenConst.SCREEN_NAME_KKW00195);
		}
// ANK-2480-00-00 ADD END

// ++++++++++++++ 2012/10/26 v4.01.00 IT1-2012-0001711 追加終了 ++++++++++++++++ //
		return true;
	}

	/**
	 * 「お客様情報」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTab3()
	{
		forwardTab(JCKScreenConst.SCREEN_ID_CKW00401, JCKScreenConst.SCREEN_NAME_CKW00401);

		return true;
	}

	/**
	 * 「機器情報」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTab4()
	{
		forwardTab(JKKScreenConst.SCREEN_ID_KKW03301, JKKScreenConst.SCREEN_NAME_KKW03301);

		return true;
	}

	/**
	 * 「オプション情報」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTab5()
	{
		forwardTab(JKKScreenConst.SCREEN_ID_KKW02301, JKKScreenConst.SCREEN_NAME_KKW02301);

		return true;
	}

	/**
	 * 「請求契約情報」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTab6()
	{
		forwardTab(JKKScreenConst.SCREEN_ID_KKW01601, JKKScreenConst.SCREEN_NAME_KKW01601);

		return true;
	}

	/**
	 * 「進捗情報」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTab7()
	{
		forwardTab(JKKScreenConst.SCREEN_ID_KKW06101, JKKScreenConst.SCREEN_NAME_KKW06101);

		return true;
	}

	/**
	 * 「割引情報」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTab8()
	{
		forwardTab(JKKScreenConst.SCREEN_ID_KKW01033, JKKScreenConst.SCREEN_NAME_KKW01033);

		return true;
	}

	/**
	 * 「住所情報」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTab9()
	{
		forwardTab(JKKScreenConst.SCREEN_ID_KKW04801, JKKScreenConst.SCREEN_NAME_KKW04801);

		return true;
	}

	/**
	 * 「ADSL工事情報」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTab10()
	{
		forwardTab(JKKScreenConst.SCREEN_ID_KKW01801, JKKScreenConst.SCREEN_NAME_KKW01801);

		return true;
	}
	
	// ANK-2754-00-00 2016/05/26 ADD START
	/**
	 * 「コンテンツ」タブ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTab11() throws Exception
	{
		return JKKTabCommonLogic.actionTab11(this,
				super.getCommonInfoBean(),
				super.getServiceFormBean(),
				JKKScreenConst.SCREEN_ID_KKW01033);
	}
	// ANK-2754-00-00 2016/05/26 ADD END

// 2013.03.17 OT-2013-0000372 Start
	/**
	 * 「照会」ボタン押下時処理
	 * 
	 * @param
	 * @return true
	 */
	@SuppressWarnings("unchecked")
	public boolean actionShokai() 
	{
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(bean, KKW01033SFConst.SFBEAN);
		
		// 選択番号を取得
		String selected=(String)beanMap.take(KKW01033SFConst.SELECTED);
		int selectedNumber=Integer.parseInt(selected);
		
		// キャンペーン一覧を取得
		ArrayList<BeanMap> campaignIcrn = (ArrayList<BeanMap>)beanMap.get(KKW01033SFConst.CAMPAIGN_ICRN);
		// 選択されたキャンペーンを取得
		BeanMap selectedCampaign=campaignIcrn.get(selectedNumber);

		// 選択されたキャンペーンの契約番号を取得
		String selectedKeiNo=(String)selectedCampaign.take(KKW01033SFConst.NO_03);
		String[] keiNoList=new String[]{selectedKeiNo};
		// 選択されたキャンペーンの契約種別を取得
		String selectedKeiKind=(String)selectedCampaign.take(KKW01033SFConst.KEI_KIND_03);
		String[] keiKindList=new String[]{selectedKeiKind};
		
		// 次画面への引継情報設定
		// 顧客契約引継リスト取得
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>)beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);

		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		// 顧客契約引継リスト設定
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
		// 契約番号リスト設定
		target.pair(KKW01023SFConst.KEI_NO_LIST,keiNoList);
		// 契約種別リスト設定
		target.pair(KKW01023SFConst.KEI_KIND_LIST,keiKindList);
		// ポップアップモード
		target.pair(KKW01023SFConst.POPUP_MODE, "1");

		// 顧客契約内引継ぎデータセット
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01023, target);
		
		// 遷移先情報の設定
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW01023);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		return true;
	}
// 2013.03.17 OT-2013-0000372 End

// v7.00.00 add start
	
	/**
	 * 
	 * 「紹介情報照会」ボタン押下時処理
	 * 
	 * @param
	 * @return true
	 */
	@SuppressWarnings({ "static-access", "unchecked" })
	public boolean actionIntrShokai() {
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(bean, KKW01033SFConst.SFBEAN);
		
		// 顧客契約引継リスト取得（影響範囲を絞り込み）
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>) ((ArrayList<BeanMap>) beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST)).clone();
		
		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		
		// 顧客契約引継リスト設定
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
		target.pair(KKW01023SFConst.POPUP_MODE, "1");
		
		// 顧客契約内引継ぎデータセット
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01037, target);
		
		// 遷移先情報の設定
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW01037);
		
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		return true;
	}
// v7.00.00 add end

	// ANK-2121-00-00 フッター揃え対応 2014/06/26 藤田 ADD START
	/**
	 * 「地図」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionItiKakunin() throws Exception
	{
		// 共有フォームBean設定
		JKKWebCommon.setSelfScreenID(this);
		
		X31SDataBeanAccess dataBean = getServiceFormBean();
		
		// パラメータマップを作成する。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, CCSV0006);
		
		CCSV0006_CCSV0006OPDBMapper mapper = new CCSV0006_CCSV0006OPDBMapper();
		X31SDataBeanAccess[] paramBean = { dataBean };
		HashMap dataMap = new HashMap();
		mapper.setCCSV000601SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// 検索結果格納用マップ
		HashMap outputMap = new HashMap();
		
		try
		{
			invokeService(paramMap, dataMap, outputMap);
		}
		catch (JCCWebServiceException e1)
		{
			// エラーの場合はシステムエラーを表示する
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0400_CE, new String[]{""}, "");
			return false;
		}

		HashMap parentMap = null;
		if(outputMap.containsKey("CCSV000601SC")){
			parentMap = (HashMap)outputMap.get("CCSV000601SC");
		}
		// プロパティファイルより総合営業C向けエリアチェック画面のURLを取得
		String mapGmnURL = JCMAPLConstMgr.getString(JKKCommonConst.PROP_MAP_GMN_URL);

		// ワンタイムパスワード 
		String encryptPw = (String)parentMap.get("one_time_pwd");
		
		// 地図用情報取得
		if (getMapInfo(dataBean)) {
			
			String cnsmrLng = dataBean.sendMessageString(KKW01033SFConst.LGTD, X31CWebConst.DATABEAN_GET_VALUE);
			String cnsmrLat = dataBean.sendMessageString(KKW01033SFConst.LTTD, X31CWebConst.DATABEAN_GET_VALUE);
			
			String formatUrl = String.format(mapGmnURL, encryptPw, cnsmrLng, cnsmrLat);
			dataBean.sendMessageString(KKW01033SFConst.MAP_GMN_URL, X31CWebConst.DATABEAN_SET_VALUE, formatUrl);
			dataBean.sendMessageString(KKW01033SFConst.MAP_OPEN_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
			
		} else {
			return false;
		}

		return true;
	}

	/**
	 * 「利用不可期間履歴」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionRiyofukaRireki() throws Exception
	{
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(svcFormBean, KKW01033SFConst.SFBEAN);
		
		// 顧客契約引継リスト取得
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>) ((ArrayList<BeanMap>) beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST)).clone();
		
		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		
		// 顧客契約引継リスト設定
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
//		target.pair(KKW01023SFConst.POPUP_MODE, "1");
		
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW17801, target);

		// 戻り先画面IDを設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW17801, JKKScreenConst.SCREEN_ID_KKW01033);

		// 共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW17801);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW17801);

		return true;
	}

	/**
	 * 「異動区分選択」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionIdodivChoice() throws Exception
	{
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(svcFormBean, KKW01033SFConst.SFBEAN);
		
		// 顧客契約引継リスト取得
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>) ((ArrayList<BeanMap>) beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST)).clone();

		// 異動区分選択画面遷移パターン
		String idoDivSeniPtn = (String)custKeiHktgiList.get(0).get(KKW01033SFConst.IDO_DIV_SENI_PTN_01);

		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		
		// 顧客契約引継リスト設定
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
		
		// 戻り時の情報を保持
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01033, target);

		// 自画面遷移パターンの場合
		if (JKKCommonConst.HKTGI_IDO_DIV_SENI_PTN_SELF_SENI.equals(idoDivSeniPtn))
		{
			JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00145, target);

			// 戻り先画面IDを設定
			JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW00145, JKKScreenConst.SCREEN_ID_KKW01033);

			// 共有フォームBean設定
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_ID_KKW00145);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW00145);
		}
		// 親画面遷移パターンの場合
		else
		{
			// ポップアップモード
			String popupMode = (String)custKeiHktgiList.get(0).take(KKW01033SFConst.POPUP_MODE_01);
			if (JKKCommonConst.HKTGI_POPUP_MODE_MODAL.equals(popupMode))
			{
				// モーダル用反映画面へ画面遷移
				commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_ID_CCW00105);
				commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_NAME_CCW00105);
			}
			else
			{
				// モーダレス用反映画面へ画面遷移
				commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_ID_CCW00104);
				commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_NAME_CCW00104);
			}
		}
		
		// 一時的な親画面遷移パターンの場合
		if (IDO_DIV_SENI_PTN_TMP_OYA_SENI.equals(idoDivSeniPtn))
		{
			// 自画面遷移パターンに戻す
			custKeiHktgiList.get(0).put(JKKCommonConst.HKTGI_IDO_DIV_SENI_PTN, JKKCommonConst.HKTGI_IDO_DIV_SENI_PTN_SELF_SENI);
		}

		return true;
	}

	/**
	 * 「他システム」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTasys() throws Exception
	{
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(svcFormBean, KKW01033SFConst.SFBEAN);
		
		// 顧客契約引継リスト取得
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>) ((ArrayList<BeanMap>) beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST)).clone();
		
		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		
		// 顧客契約引継リスト設定
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
		
		// 画面情報を設定（他システム選択画面）
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00146, target);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW00146, JKKScreenConst.SCREEN_ID_KKW01033);

		// 共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW00146);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW00146);

		return true;
	}

	/**
	 * 「料金」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionPrche() throws Exception
	{
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		X31SDataBeanAccess[] paramBean = {svcFormBean};

		// お客様
		X31SDataBeanAccessArray svcKeiCommonInfoList = paramBean[0].getDataBeanArray(KKW01033SFConst.CUST);
		X31SDataBeanAccess subbean = svcKeiCommonInfoList.getDataBean(0);
		String seikyKeiNo = subbean.sendMessageString(KKW01033SFConst.SEIKY_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE);

		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(svcFormBean, KKW01033SFConst.SFBEAN);
		
		// 顧客契約引継リスト取得
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>) ((ArrayList<BeanMap>) beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST)).clone();
		
		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		
		// 顧客契約引継リスト設定
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
		// 請求契約番号
		target.pair(JCHCommonConst.SCREEN_HKTGI_SEIKY_KEI_NO, seikyKeiNo);

		// 画面情報を設定（債権照会画面）
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_CHW00101, target);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_CHW00101, JKKScreenConst.SCREEN_ID_KKW01033);

		// 遷移先から戻る際に必要な情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01033, target);

		// 共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_CHW00101);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_CHW00101);

		return true;
	}

	// ANK-3346-01-00 ADD START
	/**
	 * 解約レター検索ボタン押下時に解約レター検索画面に遷移を行います。
	 * <br>
	 * @return true/false
	 * @exception Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean actionDslLetterSch() throws Exception
	{
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(svcFormBean, KKW01033SFConst.SFBEAN);

		// 顧客契約引継リスト取得
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>)((ArrayList<BeanMap>)beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST)).clone();

		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();

		// 顧客契約引継リスト設定
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
		target.pair(KKW21811SFConst.SEARCH_FLG, JKKStrConst.CD00001_0);

		// 画面情報を設定（解約レター検索画面）
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW21811, target);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW21811, JKKScreenConst.SCREEN_ID_KKW01033);

		// 共有BeanのSCREEN_ID、SCREEN_NMに遷移先の画面IDをセット
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW21811);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW21811);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}
	// ANK-3346-01-00 ADD END

	/**
	 * 「対応履歴」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTaiorrki() throws Exception
	{
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();


		// お客様
		X31SDataBeanAccessArray svcKeiCommonInfoList = svcFormBean.getDataBeanArray(KKW01033SFConst.CUST);
		X31SDataBeanAccess subbean = svcKeiCommonInfoList.getDataBean(0);

		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(svcFormBean, KKW01033SFConst.SFBEAN);
		
		// 顧客契約引継リスト取得
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>) ((ArrayList<BeanMap>) beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST)).clone();
		
		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		
		// 顧客契約引継リスト設定
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
		target.pair("ＳＹＳＩＤ", subbean.sendMessageString(KKW01033SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE));
		target.pair("サービス契約番号", subbean.sendMessageString(KKW01033SFConst.SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 遷移先から戻る際に必要な情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01033, target);
		
		// 画面情報を設定（総合案内問合せ対応画面）
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_CRW01201, target);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_CRW01201, JKKScreenConst.SCREEN_ID_KKW01033);
		
		//共有BeanのSCREEN_ID、SCREEN_NMに遷移先の画面IDをセット
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_CRW01201);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_CRW01201);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}

// v26.00.00 ADD START
	/**
	 * 「会員ランク」アンカ押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTransferTrank()
	{
		forwardTab(JKKScreenConst.SCREEN_ID_KKW00196, JKKScreenConst.SCREEN_NAME_KKW00196);

		return true;
	}
// v26.00.00 ADD END
// ★★★★★ ANK-3796-00-00 2020/01/24 ADD START ★★★★★
	/**
	 * 「リース契約画面へ遷移」リンク押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionTransferVcms()
	{
		// IT1-2020-0000019 2020/03/06 MOD START
//		forwardTab(JKKScreenConst.SCREEN_ID_KKW00196, JKKScreenConst.SCREEN_NAME_KKW00196);
		forwardTab(JKKScreenConst.SCREEN_ID_KKW00198, JKKScreenConst.SCREEN_NAME_KKW00198);
		// IT1-2020-0000019 2020/03/06 MOD END

		return true;
	}

// ★★★★★ ANK-3796-00-00 2020/01/24 ADD END   ★★★★★
	/**
	 * ワンタイムパスワード登録サービスに必要な項目を取得し、サービスフォームBeanに設定する
	 * 
	 * @param svcFormBean	DataBeanアクセスクラス
	 */
	private void setMapGmnData(X31SDataBeanAccess svcFormBean){

		// ユーザーIDの取得
		X31SDataBeanAccess commonBean = getCommonInfoBean();
		String userId = commonBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		String orgCd = "";
		String positionCd = "";

		X31SDataBeanAccessArray kggrpCdList = commonBean.getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST);
		X31SDataBeanAccess subbean = kggrpCdList.getDataBean(0);
		if (subbean != null)
		{
			// 組織コードの取得
			orgCd = subbean.sendMessageString(CommonInfoCFConst.ORG_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			// 立場コードの取得
			positionCd = subbean.sendMessageString(CommonInfoCFConst.POSITION_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		}
		svcFormBean.sendMessageString(KKW01033SFConst.ONE_TIME_USER_ID, X31CWebConst.DATABEAN_SET_VALUE, userId);
		svcFormBean.sendMessageString(KKW01033SFConst.ONE_TIME_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, orgCd);
		svcFormBean.sendMessageString(KKW01033SFConst.ONE_TIME_POSITION_CD, X31CWebConst.DATABEAN_SET_VALUE, positionCd);

		// プロパティファイルより共通(地図)システムのシステムIDを取得
		String mapSysId = JCMAPLConstMgr.getString(PROP_SIMS_MAP_SYS_ID);
		svcFormBean.sendMessageString(KKW01033SFConst.ONE_TIME_SYS_ID, X31CWebConst.DATABEAN_SET_VALUE, mapSysId);

		// 地図を開くフラグの初期設定
		svcFormBean.sendMessageString(KKW01033SFConst.MAP_OPEN_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
	}

	/**
	 * 地図用情報を取得し、サービスフォームBeanに設定する
	 * 
	 * @param dataBean	DataBeanアクセスクラス
	 */
	private boolean getMapInfo(X31SDataBeanAccess dataBean){

		// パラメータマップを作成する。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0793");
		
		X31SDataBeanAccessArray custKeiHktgiList = dataBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
		
		// 顧客契約引継情報に「サービス契約番号」の値がセットされていること
		KKSV0793_KKSV0793OPDBMapper mapper0793 = new KKSV0793_KKSV0793OPDBMapper();
		X31SDataBeanAccess[] paramBean = { custKeiHktgiInf };
		HashMap dataMap = new HashMap();
		mapper0793.setKKSV079301SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// 検索結果格納用マップ
		HashMap outputMap = new HashMap();
		
		try
		{
			invokeService(paramMap, dataMap, outputMap);
		}
		catch (JCCWebServiceException e1)
		{
			// エラーの場合はシステムエラーを表示する
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0400_CE, new String[]{""}, "");
			return false;
		}
		
		// Bean に経度、緯度をセット
		mapper0793.getKKSV079301SC(new X31SDataBeanAccess[]{dataBean}, outputMap);

		return true;
	}

	
	/**
	 * 地図ボタン、利用不可期間履歴ボタンの表示区分をセット
	 * @param svcFormBean
	 */
	private void setFooterBtnDispFlg(X31SDataBeanAccess svcFormBean)
	{
		String mapBtnDispFlg = "0";		// 非表示
		String riyoFukaBtnDispFlg = "0";	// 非表示
		// 料金グループコードを保存されているBeanの情報から取得
		// お客様
		X31SDataBeanAccessArray svcKeiInfoList = svcFormBean.getDataBeanArray(KKW01033SFConst.CUST);
		X31SDataBeanAccess svcKeiSubbean = svcKeiInfoList.getDataBean(0);

		String prcGrpCd = svcKeiSubbean.sendMessageString(KKW01033SFConst.PRC_GRP_CD_02,
				X31CWebConst.DATABEAN_GET_VALUE);
		
		HashMap paramMapKKSV0793 = new HashMap();
		HashMap inputMapKKSV0793 = new HashMap();
		// 検索結果格納用マップ
		HashMap outputMapKKSV0793 = new HashMap();
		paramMapKKSV0793.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0793");
		paramMapKKSV0793.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0793OP");
		KKSV0793_KKSV0793OPDBMapper mapper0793 = new KKSV0793_KKSV0793OPDBMapper();
		// 顧客契約引継情報に「サービス契約番号」の値がセットされていること
		X31SDataBeanAccessArray custKeiHktgiList = svcFormBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
		String svcKeiNo = custKeiHktgiInf.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		if (svcKeiNo == null || "".equals(svcKeiNo))
		{
			// サービス契約番号がセットされていない場合は、以降の処理を行わない
			return;
		}
		X31SDataBeanAccess[] paramBeanKKSV0793 = { custKeiHktgiInf };
		mapper0793.setKKSV079302SC(paramBeanKKSV0793, inputMapKKSV0793, JCCWebCommon.getOpeDate(this, null));
		// サービス実行
		invokeService(paramMapKKSV0793, inputMapKKSV0793, outputMapKKSV0793);
		// 結果を保存
		HashMap parentMapKKSV0793 = null;
		if(outputMapKKSV0793.containsKey("KKSV079302SC")){
			parentMapKKSV0793 = (HashMap)outputMapKKSV0793.get("KKSV079302SC");
			// サービスの結果からマンション物件コードを取得
			String mansionBukkenCd = (String)parentMapKKSV0793.get("mansion_bukken_cd");

			// 地図ボタンの表示／非表示判定
			if (JKKWebCommon.isMapViewAvailable(prcGrpCd, mansionBukkenCd))
			{
				mapBtnDispFlg = "1";		// 表示
			}
			
			// 利用不可期間履歴ボタンの表示／非表示判定
			if (JKKWebCommon.isRiyofukaRirekiAvailable(prcGrpCd))
			{
				riyoFukaBtnDispFlg = "1";		// 表示
			}
		}
		
		// 地図ボタン表示区分
		svcFormBean.sendMessageString(KKW01033SFConst.MAP_BTN_V_KBN, X31CWebConst.DATABEAN_SET_VALUE, mapBtnDispFlg);
		// 利用不可期間履歴ボタン表示区分
		svcFormBean.sendMessageString(KKW01033SFConst.RIYOFUKARRK_BTN_V_KBN, X31CWebConst.DATABEAN_SET_VALUE, riyoFukaBtnDispFlg);
	}
	// ANK-2121-00-00 フッター揃え対応 2014/06/26 藤田 ADD END
	// ANK-3436-00-00 2018/06/06 ADD START
	/**
	 * 「セット割登録」ボタン押下時処理
	 * <br>
	 * @return true/false
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean actionSetWariAdd() throws Exception
	{
		// サービスフォームBeanアクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(svcFormBean, KKW01033SFConst.SFBEAN);
		
		// 顧客契約引継リスト取得
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>)((ArrayList<BeanMap>)beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST)).clone();
		
		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		
		// 請求契約番号を設定
		ArrayList<BeanMap> custList = (ArrayList<BeanMap>) beanMap.take(KKW01033SFConst.CUST);
		String seikyKeiNo = (String) custList.get(0).take(KKW01033SFConst.SEIKY_KEI_NO_02);
		custKeiHktgiList.get(0).pair(KKW22301SFConst.SEIKY_KEI_NO_01, seikyKeiNo);
		
		// 顧客契約引継リストを設定
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
		
		// 引渡しデータの設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW22301, target);
		
		// 遷移元画面の設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW22301, JKKScreenConst.SCREEN_ID_KKW01033);
		
		// 共有フォームBeanアクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		// 遷移先画面の設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW22301);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW22301);
		
		return true;
	}
	// ANK-3436-00-00 2018/06/06 ADD END
	// ANK-3610-00-00 ADD START
	/**
	 * 「CASHPOST登録」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionCashPost() throws Exception
	{
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		// SFBean書き出し
		BeanMap beanMap = Mover.getBeanMapFromDataBean(svcFormBean, KKW01033SFConst.SFBEAN);
		
		// 顧客契約引継リスト取得
		ArrayList<BeanMap> custKeiHktgiList = (ArrayList<BeanMap>) ((ArrayList<BeanMap>) beanMap.get(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST)).clone();
		
		// 遷移先画面で必要な引継情報を設定
		BeanMap target = new BeanMap();
		
		// 顧客契約引継リスト設定
		target.pair(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, custKeiHktgiList);
//		target.pair(KKW01023SFConst.POPUP_MODE, "1");
		
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW22401, target);

		// 戻り先画面IDを設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW22401, JKKScreenConst.SCREEN_ID_KKW01033);

		// 共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW22401);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW22401);

		return true;
	}
	// ANK-3610-00-00 ADD END
}


@SuppressWarnings("serial")
class BeanMap extends HashMap<String, Object>
{
	static final int DEFAULT_HASH_SIZE=50;

	public BeanMap(HashMap<String, Object> beanMap)
	{
		super(beanMap);
	}

	public BeanMap()
	{
		super(DEFAULT_HASH_SIZE);
	}

	public BeanMap pair(String item, Object value)
	{
		super.put(item, value);
		return this;
	}

	public Object take(String item)
	{
		return super.get(item);
	}
}

class Mover
{

	enum ValueType
	{
		NULL(null), ARRAY_LIST(ArrayList.class), STRING(String.class), LONG(Long.class), BOOLEAN(Boolean.class), STRINGS(
				String[].class), LONGS(Long[].class), BOOLEANS(Boolean[].class), ;

		Class<?> type;

		private ValueType(Class<?> type)
		{
			this.type = type;
		}

		public boolean isMatch(Object value)
		{
			if (null == value)
			{
				return (this.equals(NULL));
			}
			if (this.equals(NULL))
			{
				return false;
			}
			else
			{
				return this.type.isInstance(value);
			}
		}

		static public ValueType resolve(Object value)
		{
			ValueType[] types = ValueType.values();
			for (ValueType type : types)
			{
				if (type.isMatch(value))
				{
					return type;
				}
			}
			return ValueType.NULL;
		}
	}

	enum StructureType
	{
		NULL(null), DATABEAN(Object[].class), STRING(String.class), LONG(Long.class), BOOLEAN(Boolean.class), STRINGS(
				String[].class), LONGS(Long[].class), BOOLEANS(Boolean[].class), ;

		Class<?> type;

		private StructureType(Class<?> type)
		{
			this.type = type;
		}

		public boolean isMatch(Object value)
		{
			if (null == value)
			{
				return (this.equals(NULL));
			}
			if (this.equals(NULL))
			{
				return false;
			}
			if (value instanceof Class<?>)
			{
				return this.type.equals(value);
			}
			else
			{
				return this.type.equals(value.getClass());
			}
		}

		static public StructureType resolve(Object value)
		{
			StructureType[] types = StructureType.values();
			for (StructureType type : types)
			{
				if (type.isMatch(value))
				{
					return type;
				}
			}
			return StructureType.NULL;
		}
	}

	public static void setString(X31SDataBeanAccess bean, String item, String value)
	{
		bean.sendMessageString(item, X31CWebConst.DATABEAN_SET_VALUE, value);
	}

	public static void setLong(X31SDataBeanAccess bean, String item, Long value)
	{
		bean.sendMessageLong(item, X31CWebConst.DATABEAN_SET_VALUE, value);
	}

	public static void setBoolean(X31SDataBeanAccess bean, String item, Boolean value)
	{
		bean.sendMessageBoolean(item, X31CWebConst.DATABEAN_SET_VALUE, value);
	}

	public static void setStringArrayAt(X31SDataBeanAccess bean, String item, int index, String value)
	{
		bean.sendMessageString(item, X31CWebConst.DATABEAN_SET_VALUE, index, value);
	}

	public static void setLongAt(X31SDataBeanAccess bean, String item, int index, Long value)
	{
		bean.sendMessageLong(item, X31CWebConst.DATABEAN_SET_VALUE, index, value);
	}

	public static void setBooleanAt(X31SDataBeanAccess bean, String item, int index, Boolean value)
	{
		bean.sendMessageBoolean(item, X31CWebConst.DATABEAN_SET_VALUE, index, value);
	}

	public static void setStringArray(X31SDataBeanAccess bean, String item, String[] values)
	{
		X31CVector<String> vector = new X31CVector<String>();
		for (String value : values)
		{
			vector.add(value);
		}
		bean.sendMessageStringArray(item, X31CWebConst.DATABEAN_SET_DEF_VALUE, vector);
	}

	public static void setLongArray(X31SDataBeanAccess bean, String item, Long[] values)
	{
		X31CVector<Long> vector = new X31CVector<Long>();
		for (Long value : values)
		{
			vector.add(value);
		}
		bean.sendMessageLongArray(item, X31CWebConst.DATABEAN_SET_DEF_VALUE, vector);
	}

	public static void setBooleanArray(X31SDataBeanAccess bean, String item, Boolean[] values)
	{
		X31CVector<Boolean> vector = new X31CVector<Boolean>();
		for (Boolean value : values)
		{
			vector.add(value);
		}
		bean.sendMessageBooleanArray(item, X31CWebConst.DATABEAN_SET_DEF_VALUE, vector);
	}

	public static void clearBeanArray(X31SDataBeanAccess bean, String item)
	{
		X31SDataBeanAccessArray beanArray = bean.getDataBeanArray(item);
		beanArray.clearArray();
	}

	public static X31SDataBeanAccessArray getBeanArray(X31SDataBeanAccess bean, String item)
	{
		return bean.getDataBeanArray(item);
	}

	public static String getString(X31SDataBeanAccess bean, String item)
	{
		return bean.sendMessageString(item, X31CWebConst.DATABEAN_GET_VALUE);
	}

	public static Long getLong(X31SDataBeanAccess bean, String item)
	{
		return bean.sendMessageLong(item, X31CWebConst.DATABEAN_GET_VALUE);
	}

	public static Boolean getBoolean(X31SDataBeanAccess bean, String item)
	{
		return bean.sendMessageBoolean(item, X31CWebConst.DATABEAN_GET_VALUE);
	}

	public static String getStringAt(X31SDataBeanAccess bean, String item, int index)
	{
		return bean.sendMessageString(item, X31CWebConst.DATABEAN_GET_VALUE, index);
	}

	public static Long getLongAt(X31SDataBeanAccess bean, String item, int index)
	{
		return bean.sendMessageLong(item, X31CWebConst.DATABEAN_GET_VALUE, index);
	}

	public static Boolean getBooleanAt(X31SDataBeanAccess bean, String item, int index)
	{
		return bean.sendMessageBoolean(item, X31CWebConst.DATABEAN_GET_VALUE, index);
	}

	public static int getArrayCount(X31SDataBeanAccess bean, String item)
	{
		Integer count = (Integer)bean.sendMessage(item, X31CWebConst.DATABEAN_GET_COUNT);
		return count.intValue();
	}

	public static String[] getStringArray(X31SDataBeanAccess bean, String item)
	{
		int count = getArrayCount(bean, item);
		ArrayList<String> result = new ArrayList<String>(count);
		for (int i = 0; i < count; i++)
		{
			String element = getStringAt(bean, item, i);
			result.add(element);
		}
		return (String[])result.toArray(new String[0]);
	}

	public static Long[] getLongArray(X31SDataBeanAccess bean, String item)
	{
		int count = getArrayCount(bean, item);
		ArrayList<Long> result = new ArrayList<Long>(count);
		for (int i = 0; i < count; i++)
		{
			Long element = getLongAt(bean, item, i);
			result.add(element);
		}
		return (Long[])result.toArray(new Long[0]);
	}

	public static Boolean[] getBooleanArray(X31SDataBeanAccess bean, String item)
	{
		int count = getArrayCount(bean, item);
		ArrayList<Boolean> result = new ArrayList<Boolean>(count);
		for (int i = 0; i < count; i++)
		{
			Boolean element = getBooleanAt(bean, item, i);
			result.add(element);
		}
		return (Boolean[])result.toArray(new Boolean[0]);
	}

	public static X31SDataBeanAccess createBeanFromArray(X31SDataBeanAccessArray beanArray)
	{
		return beanArray.addDataBean();
	}

	public static BeanMap getBeanMapFromDataBean(X31SDataBeanAccess bean, Object[] structure)
	{
		BeanMap result = new BeanMap();
		for (Object node : structure)
		{
			Object[] pair = (Object[])node;
			String item = (String)pair[0];
			Object value = pair[1];

			StructureType type = StructureType.resolve(value);

			switch (type)
			{
			case DATABEAN:
			{
				X31SDataBeanAccessArray beanArray = Mover.getBeanArray(bean, item);
				ArrayList<BeanMap> content = getBeanMapListFromDataBeanArray(beanArray, (Object[])value);
				result.pair(item, content);
			}
				break;
			case STRING:
			{
				String content = Mover.getString(bean, item);
				result.pair(item, content);
			}
				break;
			case LONG:
			{
				Long content = Mover.getLong(bean, item);
				result.pair(item, content);
			}
				break;
			case BOOLEAN:
			{
				Boolean content = Mover.getBoolean(bean, item);
				result.pair(item, content);
			}
				break;
			case STRINGS:
			{
				String[] content = Mover.getStringArray(bean, item);
				result.pair(item, content);
			}
				break;
			case LONGS:
			{
				Long[] content = Mover.getLongArray(bean, item);
				result.pair(item, content);
			}
				break;
			case BOOLEANS:
			{
				Boolean[] content = Mover.getBooleanArray(bean, item);
				result.pair(item, content);
			}
				break;

			default:
				break;
			}
		}
		return result;
	}

	public static ArrayList<BeanMap> getBeanMapListFromDataBeanArray(X31SDataBeanAccessArray beanArray, Object[] structure)
	{
		int count = beanArray.getCount().intValue();
		ArrayList<BeanMap> result = new ArrayList<BeanMap>(count);
		for (int i = 0; i < count; i++)
		{
			X31SDataBeanAccess bean = beanArray.getDataBean(i);
			BeanMap content = getBeanMapFromDataBean(bean, structure);
			result.add(content);
		}
		return result;
	}

	@SuppressWarnings("unchecked")
	public static void setBeanMapToDataBean(BeanMap beanMap, X31SDataBeanAccess bean)
	{
		for (String key : beanMap.keySet())
		{
			Object value = beanMap.get(key);
			ValueType type = ValueType.resolve(value);

			switch (type)
			{
			case NULL:
				break;
			case STRING:
				Mover.setString(bean, key, (String)value);
				break;
			case LONG:
				Mover.setLong(bean, key, (Long)value);
				break;
			case BOOLEAN:
				Mover.setBoolean(bean, key, (Boolean)value);
				break;
			case STRINGS:
			{
				X31CVector<String> vec = new X31CVector<String>();
				for (String s : (String[])value)
				{
					vec.add(s);
				}
				bean.sendMessageStringArray(key, X31CWebConst.DATABEAN_SET_DEF_VALUE, vec);
			}
				break;
			case LONGS:
			{
				X31CVector<Long> vec = new X31CVector<Long>();
				for (Long s : (Long[])value)
				{
					vec.add(s);
				}
				bean.sendMessageLongArray(key, X31CWebConst.DATABEAN_SET_DEF_VALUE, vec);
			}
				break;
			case BOOLEANS:
			{
				X31CVector<Boolean> vec = new X31CVector<Boolean>();
				for (Boolean s : (Boolean[])value)
				{
					vec.add(s);
				}
				bean.sendMessageBooleanArray(key, X31CWebConst.DATABEAN_SET_DEF_VALUE, vec);
			}
				break;
			case ARRAY_LIST:
			{
				X31SDataBeanAccessArray subBeanArray = null;
				subBeanArray = bean.getDataBeanArray(key);
				setBeanMapListForDataBeanArray(subBeanArray, (ArrayList<BeanMap>)value);
			}
				break;

			default:
				throw new JCCFrameworkException("JCCWebCommon#getScreenInfoでサポートされていないオブジェクトの型です。");
			}
		}
	}

	public static void setBeanMapListForDataBeanArray(X31SDataBeanAccessArray beanArray, ArrayList<BeanMap> beanMapList)
	{
		beanArray.clearArray();
		for (BeanMap beanMap : beanMapList)
		{
			X31SDataBeanAccess bean = beanArray.addDataBean();
			// 再帰呼び出し
			setBeanMapToDataBean(beanMap, bean);
		}
	}

	public static void addBeanMapForDataBeanArray(X31SDataBeanAccessArray beanArray, BeanMap beanMap)
	{
		X31SDataBeanAccess bean = beanArray.addDataBean();
		setBeanMapToDataBean(beanMap, bean);
	}

}

class Items
{

	interface Transformer<I, O>
	{

		O transform(I input);
	}

	interface Closure<I>
	{

		void execute(I input);
	}

	interface Predicater<I>
	{

		boolean evaluate(I input);
	}

	public static <I, O> ArrayList<O> map(ArrayList<I> in, final Transformer<I, O> transformer)
	{
		final ArrayList<O> result = new ArrayList<O>(in.size());
		each(in, new Closure<I>()
		{

			@Override
			public void execute(I input)
			{
				result.add(transformer.transform(input));
			}
		});
		return result;
	}

	public static <I> void each(ArrayList<I> in, Closure<I> closure)
	{
		for (I item : in)
		{
			closure.execute(item);
		}
	}

	public static <I> ArrayList<I> select(ArrayList<I> in, Predicater<I> predicater)
	{
		ArrayList<I> result = new ArrayList<I>(in.size());
		for (I item : in)
		{
			if (predicater.evaluate(item))
			{
				result.add(item);
			}
		}
		return result;
	}

	public static <I> boolean exist(ArrayList<I> in, Predicater<I> predicater)
	{
		for (I item : in)
		{
			if (predicater.evaluate(item))
			{
				return true;
			}
		}
		return false;
	}

	public static <I> I find(ArrayList<I> in, Predicater<I> predicater)
	{
		for (I item : in)
		{
			if (predicater.evaluate(item))
			{
				return item;
			}
		}
		return null;
	}
}

// v5.03.00 DEL START
//class IcrnComparator implements Comparator<BeanMap>
//{
//	@Override
//	public int compare(BeanMap left, BeanMap right)
//	{
//		String leftMskmYmd=(String)left.take(KKW01033SFConst.MSKM_YMD_03);
//		String rightMskmYmd=(String)right.take(KKW01033SFConst.MSKM_YMD_03);
//		int compareResult =leftMskmYmd.compareTo(rightMskmYmd);
//		int reversedResult=compareResult * (-1);
//		return reversedResult;
//	}
//}
//  v5.03.00 DEL END

