/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW13701SFLogic
*   ソースファイル名：KKW13701SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年06月29日
*＜機能概要＞
*   eo光テレビ 新コース登録／コース変更画面 Viewロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v4.00.00    2012/06/29   FJ）磯俣    新規作成
*   v4.00.01    2012/10/16   FJ）磯俣    サービス契約情報からの遷移処理追加
*   v4.00.02    2012/11/07   FJ）磯俣    IT1-1709(ヘッダ部表示の変更対応)
*   v4.00.03    2012/11/13   FJ）磯俣    KKW129へのパラメタ追加（進捗対応）
*   v4.00.04    2012/11/22   FJ）猪山    IT1-2012-0002195（明細0件時メッセージ表示対応）
*   v4.00.05    2013/01/21   FJ）磯俣    ST2-2013-0000186（予約レコードの表示方法変更）
*   v5.00.00    2013/01/29   FJ）磯俣    ANK-1359-00-00
*   v5.01.00    2013/02/06   FJ）野口    IT1-2013-0000208 (完了画面のメッセージ変更)
*   v4.00.06    2013/02/28   FJ）野口    IT1-2012-0002413 (共通ヘッダの項目追加)
*   v4.00.07	2013/06/01   FJ)磯俣	【IT1-2013-0001248】料金スケジュールとの過去日チェック追加
*   v4.00.08	2013/07/09   FJ)磯俣	【IT1-2013-0001369】視聴制御対応
*   v6.00.00	2014/01/27	 FJ)辛		【OM-2014-0000089】障害対応   
*   v7.00.00	2014/01/27   FJ)鳩本	【ANK-1673-00-00】案件対応
*   v9.00.00    2014/07/02   FJ)藤本    【OM-2014-0002043】STBのコース変更予約が複数投入できてしまう
*   v19.00.00   2015/09/03   FJ)森脇    【OM-2015-0000178】コース変更予約中STBの画面制御不備
*   v20.00.00   2015/11/02   FJ)中林     ANK-2197-00-00対応
*   v25.00.00	2016/03/16	 FJ)抱      【ANK-2530-00-00】TV新コースおよびVOD導入
**********************************************************************/

package eo.web.webview.KKW13701SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.sun.enterprise.tools.common.util.StringUtils;

import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKTvCrsStbHsgChk;
import eo.common.util.JPCDateUtil;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCMessageCache;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCKScreenConst;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKSvckeiCommonInfo;
import eo.web.webview.mapping.KKSV0611_KKSV0611OPDBMapper;
import eo.web.webview.mapping.KKSV0612_KKSV0612OPDBMapper;
import eo.web.webview.mapping.KKSV0613_KKSV0613OPDBMapper;


/**
 * eo光テレビ 新コース登録／コース変更画面のビューロジック処理を行います。
 * @author user
 *
 */
public class KKW13701SFLogic extends JCCWebBusinessLogic
{
	
	
	/** 顧客契約引継情報項目キー */
	private static final String[] CUST_KEI_HKTGI_KEYS = {
		JKKCommonConst.HKTGI_SYSID,
		JKKCommonConst.HKTGI_SVC_KEI_NO,
		JKKCommonConst.HKTGI_IDO_DIV,
		JKKCommonConst.HKTGI_IDO_RSN_CD,
		JKKCommonConst.HKTGI_IDO_RSN_MEMO,
		JKKCommonConst.HKTGI_OP_SVC_KEI_NO,
		JKKCommonConst.HKTGI_TRAN_DIV,
		JKKCommonConst.HKTGI_MSKM_NO,
		JKKCommonConst.HKTGI_MSKM_DTL_NO,
		JKKCommonConst.HKTGI_TOKUTEI_ID_KMK_NM,
		JKKCommonConst.HKTGI_TOKUTEI_ID_KMK_VALUE,
		JKKCommonConst.HKTGI_POPUP_MODE,
		JKKCommonConst.HKTGI_MSKM_SVC_KEI_NO
	};
	
	/**
	 * eo光テレビ 新コース登録／コース変更画面 初期表示処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定する
		HashMap<String, Object> parameterMap = JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 遷移元画面ＩＤを取得
		String gamenId = JCCWebCommon.getScreenId(this);
		
		// 運用日の取得
		String unyo_ymd = JCCWebCommon.getOpeDate(this, null);
		serviceBean.sendMessageString(KKW13701SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);
		
		// 引継情報を取得
		X31SDataBeanAccessArray custKeiHktgiList = serviceBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
		
		// サービス契約番号
		String svc_kei_no = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		serviceBean.sendMessageString(KKW13701SFConst.SVKEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_no);
		
		// 異動区分
		String ido_div = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		serviceBean.sendMessageString(KKW13701SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, ido_div);
		
		// 料金コースコード
		String pcrsCd = "";
		
		// 異動区分により画面制御フラグ設定する
		if(JKKCommonConst.IDO_DIV_VALUE_00068.equals(ido_div))
		{
			// コース変更(STB)の場合、更新確認イベントフラグ設定
			serviceBean.sendMessageString(KKW13701SFConst.TRAN_DIV, X31CWebConst.DATABEAN_SET_VALUE, "1");
		}
		else if(JKKCommonConst.IDO_DIV_VALUE_00069.equals(ido_div))
		{
			// コース変更予約取消(STB)の場合、予約取消確認イベントフラグ設定
			serviceBean.sendMessageString(KKW13701SFConst.TRAN_DIV, X31CWebConst.DATABEAN_SET_VALUE, "2");
		}
		else if(JKKCommonConst.IDO_DIV_VALUE_00009.equals(ido_div))
		{
			// コース変更の場合、適用イベントフラグ設定
			serviceBean.sendMessageString(KKW13701SFConst.TRAN_DIV, X31CWebConst.DATABEAN_SET_VALUE, "3");
			
			// 料金コースコード
			pcrsCd = (String) parameterMap.get("pcrs_cd");
			serviceBean.sendMessageString(KKW13701SFConst.H_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, pcrsCd);
		}
		else
		{
			serviceBean.sendMessageString(KKW13701SFConst.TRAN_DIV, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		// ワンストップからの遷移の場合のフラグ設定
		if(JCRScreenConst.SCREEN_ID_CRW10601.equals(gamenId)){
			serviceBean.sendMessageString(KKW13701SFConst.FORWARD_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		}
		
		// STB一覧情報を取得する
		if(!callServiceKKSV0611(serviceBean))
		{
			// 自画面へ遷移する
			setMyScreen(commonBean);
			return true;
		}
		
		String endDay = "";
		
		// 運用日の前日を求める
		serviceBean.sendMessageString(KKW13701SFConst.UNYO_BEFORE_YMD, X31CWebConst.DATABEAN_SET_VALUE, JPCDateUtil.addDay(unyo_ymd, -1));
		
		// 運用日の前月を求める
		serviceBean.sendMessageString(KKW13701SFConst.UNYO_BEFORE_MON, X31CWebConst.DATABEAN_SET_VALUE, JPCDateUtil.addMonth(unyo_ymd, -1));
		
		if(!isNull(unyo_ymd) && unyo_ymd.length() == 8)
		{
			endDay = JPCDateUtil.getEndOfMonth(unyo_ymd.substring(0, 6));
			// 運用日の月末日を求める
			serviceBean.sendMessageString(KKW13701SFConst.UNYO_MON_END_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(0, 6) + endDay);
		}
		
		// 運用日＋１か月の月末日を求める
		String addOneMonth = JPCDateUtil.addMonth(unyo_ymd, 1);
		if(!isNull(addOneMonth) && addOneMonth.length() == 8)
		{
			endDay = JPCDateUtil.getEndOfMonth(addOneMonth.substring(0, 6));
			// 運用日の翌月末日を求める
			serviceBean.sendMessageString(KKW13701SFConst.UNYO_YOKU_MON_END_YMD, X31CWebConst.DATABEAN_SET_VALUE, addOneMonth.substring(0, 6) + endDay);
		}
		
		// 運用日の翌々年月日を求める
		serviceBean.sendMessageString(KKW13701SFConst.UNYO_YOKU_YOKU_YMD, X31CWebConst.DATABEAN_SET_VALUE, JPCDateUtil.addMonth(unyo_ymd, 2));
		
		
		// 明細一覧の編集を行う
		initEdit(serviceBean, pcrsCd);
		
		
		// ヘッダー情報の表示
		JKKSvckeiCommonInfo.setSvckeiCommonInfo(this, setSvckeiCommonMap(serviceBean));
		
		// 自画面へ遷移する
		setMyScreen(commonBean);
		
		
		return true;
	}
	
	/**
	 * 画面初期表示時の明細一覧編集を行います。
	 * <br>
	 * @param serviceBean 設定する画面のBean
	 * @param pcrsCd      料金コース
	 * @return boolean サービス呼び出し結果
	 * @throws Exception
	 */
	private void initEdit(X31SDataBeanAccess serviceBean, String pcrsCd)throws Exception
	{
		// 運用日
		String unyoYmd = serviceBean.sendMessageString(KKW13701SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 運用日の月末日
		String unyoMatsubi = serviceBean.sendMessageString(KKW13701SFConst.UNYO_MON_END_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 運用日の翌月
		String unyoYokugetsu = serviceBean.sendMessageString(KKW13701SFConst.UNYO_YOKU_MON_END_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 異動区分
		String idoDiv = serviceBean.sendMessageString(KKW13701SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		X31SDataBeanAccessArray stbList = serviceBean.getDataBeanArray(KKW13701SFConst.STB_CHG_MSKM_LIST);
		int meisaiCount = stbList.getCount();
		X31SDataBeanAccess stbBean = null;
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ラジオボタンのコース変更時期を初期設定する
		for(int i = 0; i < meisaiCount; i++)
		{
			stbBean = stbList.getDataBean(i);
			
			// 異動予約
			String idoRsv = stbBean.sendMessageString(KKW13701SFConst.L_IDO_DIV_RSV_03, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 「次月より」を選択済みにする
			stbBean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_03, X31CWebConst.DATABEAN_SET_VALUE, "1");
			
			
			// KKW00129からの呼出しでない場合
			if(isNull(pcrsCd))
			{
				// 予約レコードでない場合の課金日編集
				if(isNull(idoRsv))
				{
					if(!isNull(unyoMatsubi) && unyoMatsubi.length() == 8)
					{
						// 課金終了日に運用日の月末日を設定する
						stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_YEAR_03, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toYearFromYmd(unyoMatsubi));
						stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_MON_03, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toMonthFromYmd(unyoMatsubi));
						stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_DAY_03, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toDayFromYmd(unyoMatsubi));
					}
					
					if(!isNull(unyoYokugetsu) && unyoYokugetsu.length() == 8)
					{
						// 課金開始日に運用日翌月の一日を設定する
						stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_YEAR_03, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toYearFromYmd(unyoYokugetsu));
						stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_MON_03, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toMonthFromYmd(unyoYokugetsu));
						stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_DAY_03, X31CWebConst.DATABEAN_SET_VALUE, "01");
					}
				}
				else
				{
					String endY = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_YEAR_03, X31CWebConst.DATABEAN_GET_VALUE);
					String endM = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_MON_03, X31CWebConst.DATABEAN_GET_VALUE);
					String endD = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_DAY_03, X31CWebConst.DATABEAN_GET_VALUE);
					if(!isNull(endY))
					{
						if(JKKCommonConst.MAX_YMD.equals(endY + endM + endD))
						{
							// 課金入力領域を初期化する
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_END_YEAR_03, X31CWebConst.DATABEAN_CLEAR);
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_END_MON_03, X31CWebConst.DATABEAN_CLEAR);
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_END_DAY_03, X31CWebConst.DATABEAN_CLEAR);
						}
					}
					
					String staY = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_YEAR_03, X31CWebConst.DATABEAN_GET_VALUE);
					String staM = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_MON_03, X31CWebConst.DATABEAN_GET_VALUE);
					String staD = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_DAY_03, X31CWebConst.DATABEAN_GET_VALUE);
					if(!isNull(staY))
					{
						if(JKKCommonConst.MAX_YMD.equals(staY + staM + staD))
						{
							// 課金入力領域を初期化する
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_STA_YEAR_03, X31CWebConst.DATABEAN_CLEAR);
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_STA_MON_03, X31CWebConst.DATABEAN_CLEAR);
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_STA_DAY_03, X31CWebConst.DATABEAN_CLEAR);
						}
					}
				}
			}
			else
			{
				// 予約レコードでない場合、チェック済みにする
				if(isNull(idoRsv))
				{
					// チェックボックスを選択済みにする
					stbBean.sendMessageBoolean(KKW13701SFConst.L_SELECT_ROW_03, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
					stbBean.sendMessageString(KKW13701SFConst.L_SELECT_ROW_FLG_03, X31CWebConst.DATABEAN_SET_VALUE, "1");
					
					// 課金入力領域を初期化する
					stbBean.sendMessage(KKW13701SFConst.L_CHRG_END_YEAR_03, X31CWebConst.DATABEAN_CLEAR);
					stbBean.sendMessage(KKW13701SFConst.L_CHRG_END_MON_03, X31CWebConst.DATABEAN_CLEAR);
					stbBean.sendMessage(KKW13701SFConst.L_CHRG_END_DAY_03, X31CWebConst.DATABEAN_CLEAR);
					stbBean.sendMessage(KKW13701SFConst.L_CHRG_STA_YEAR_03, X31CWebConst.DATABEAN_CLEAR);
					stbBean.sendMessage(KKW13701SFConst.L_CHRG_STA_MON_03, X31CWebConst.DATABEAN_CLEAR);
					stbBean.sendMessage(KKW13701SFConst.L_CHRG_STA_DAY_03, X31CWebConst.DATABEAN_CLEAR);
				}
				else
				{
					
					String endY = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_YEAR_03, X31CWebConst.DATABEAN_GET_VALUE);
					String endM = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_MON_03, X31CWebConst.DATABEAN_GET_VALUE);
					String endD = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_DAY_03, X31CWebConst.DATABEAN_GET_VALUE);
					if(!isNull(endY))
					{
						if(JKKCommonConst.MAX_YMD.equals(endY + endM + endD))
						{
							// 課金入力領域を初期化する
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_END_YEAR_03, X31CWebConst.DATABEAN_CLEAR);
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_END_MON_03, X31CWebConst.DATABEAN_CLEAR);
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_END_DAY_03, X31CWebConst.DATABEAN_CLEAR);
						}
					}
					
					String staY = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_YEAR_03, X31CWebConst.DATABEAN_GET_VALUE);
					String staM = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_MON_03, X31CWebConst.DATABEAN_GET_VALUE);
					String staD = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_DAY_03, X31CWebConst.DATABEAN_GET_VALUE);
					if(!isNull(staY))
					{
						if(JKKCommonConst.MAX_YMD.equals(staY + staM + staD))
						{
							// 課金入力領域を初期化する
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_STA_YEAR_03, X31CWebConst.DATABEAN_CLEAR);
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_STA_MON_03, X31CWebConst.DATABEAN_CLEAR);
							stbBean.sendMessage(KKW13701SFConst.L_CHRG_STA_DAY_03, X31CWebConst.DATABEAN_CLEAR);
						}
					}
				}
			}
			
			// 予約レコードか予約取消イベントの場合
			if(!isNull(idoRsv) || JKKCommonConst.IDO_DIV_VALUE_00069.equals(idoDiv))
			{
				// 予約の場合、空を設定します。
//				stbBean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_03, X31CWebConst.DATABEAN_SET_VALUE, "");
				
				setSelectIndex(
						bean, 
						KKW13701SFConst.TV_CRS_LIST, 
						stbBean.sendMessageString(KKW13701SFConst.L_NEW_TV_COURSE_CD_03, X31CWebConst.DATABEAN_GET_VALUE), 
						KKW13701SFConst.CD_DIV_CD_LIST_01, 
						KKW13701SFConst.SELECT_INDEX_01);
			}
			
			
			String staY = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_YEAR_03, X31CWebConst.DATABEAN_GET_VALUE);
			String staM = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_MON_03, X31CWebConst.DATABEAN_GET_VALUE);
			String staD = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_DAY_03, X31CWebConst.DATABEAN_GET_VALUE);
			String endY = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_YEAR_03, X31CWebConst.DATABEAN_GET_VALUE);
			String endM = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_MON_03, X31CWebConst.DATABEAN_GET_VALUE);
			String endD = stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_DAY_03, X31CWebConst.DATABEAN_GET_VALUE);
			
			String staYmd = staY + staM + staD;
			String endYmd = endY + endM + endD;
			
			stbBean.sendMessageString(KKW13701SFConst.L_CHRG_STA_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, staYmd);
			stbBean.sendMessageString(KKW13701SFConst.L_CHRG_END_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, endYmd);
			
			String crsNm = "";
			
			// 予約レコードの場合、コース変更時期の編集を行う
			if(!isNull(idoRsv))
			{
				if(!isNull(staYmd))
				{
					// 運用日より開始日付までの差異を求める
					int iSub = JPCDateUtil.subtractMonth(staYmd, unyoYmd);
					if(iSub < 1)
					{
						crsNm = "即時";
						stbBean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_03, X31CWebConst.DATABEAN_SET_VALUE, "0");
					}
					else if(iSub == 1)
					{
						crsNm = "翌月";
						stbBean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_03, X31CWebConst.DATABEAN_SET_VALUE, "1");
					}
					else if(iSub == 2)
					{
						crsNm = "翌々月";
						stbBean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_03, X31CWebConst.DATABEAN_SET_VALUE, "2");
					}
				}
			}
			else
			{
				// コース変更時期
				String radioSel = stbBean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_03, X31CWebConst.DATABEAN_GET_VALUE);
				if("0".equals(radioSel))
				{
					crsNm = "即時";
				}
				else if("1".equals(radioSel))
				{
					crsNm = "翌月";
				}
				else if("2".equals(radioSel))
				{
					crsNm = "翌々月";
				}
			}
			stbBean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_SEL_NM_03, X31CWebConst.DATABEAN_SET_VALUE, crsNm);

			if (i % 2 == 0)
			{
				stbBean.sendMessageString(KKW13701SFConst.L_COLOR_03, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}
			else
			{
				stbBean.sendMessageString(KKW13701SFConst.L_COLOR_03, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
		}
	}
	
	/**
	 * 画面初期表示時の取得処理を行います。
	 * <br>
	 * @param serviceBean 設定する画面のBean
	 * 
	 * @return boolean サービス呼び出し結果
	 * @throws Exception
	 */
	private boolean callServiceKKSV0611(X31SDataBeanAccess serviceBean)throws Exception
	{
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// 検索処理のユースケースID格納用マップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0611");
		
		// データBeanとBPをマッピングするインスタンスを生成
		KKSV0611_KKSV0611OPDBMapper mapper = new KKSV0611_KKSV0611OPDBMapper();
		
		// 共通情報の設定
		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
		
		
		mapper.setKKSV061101CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
//		mapper.setKKSV061102SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV061103CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV061104SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV061105SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV061106SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV061107SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV061108SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV061109SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		
		// サービスの呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}
		
		// メッセージ定義ファイルを読み込む
		JCCMessageCache.setMessageCache();
		
		// サービス結果の転記
		mapper.getKKSV061101CC(paramBean, outputMap);
//		mapper.getKKSV061102SC(paramBean, outputMap);
		mapper.getKKSV061103CC(paramBean, outputMap);
		mapper.getKKSV061104SC(paramBean, outputMap);
		
		// コース変更の場合のみ呼び出す
//		String ptn = serviceBean.sendMessageString(KKW13701SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
//		if("3".equals(ptn))
//		{
			mapper.getKKSV061107SC(paramBean, outputMap);
//		}
		
		X31SDataBeanAccessArray stbList = serviceBean.getDataBeanArray(KKW13701SFConst.STB_CHG_MSKM_LIST);
		int meisaiCount = stbList.getCount();
		// 検索結果がない場合
		if(meisaiCount == 0)
		{
			serviceBean.sendMessageBoolean(KKW13701SFConst.RESULT_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
			/* ++++++++++ v4.00.04 追加開始 ++++++++++ */
			//処理可能な明細が存在しないため、処理を続行できません。
			JCCWebCommon.setMessageInfo(this, "EKB7290-KW");
			/* ++++++++++ v4.00.04 追加終了 ++++++++++ */
		}
		// OM-2015-0000178 ADD START
		else
		{
			//更新確認ボタンを非活性
			serviceBean.sendMessageBoolean(KKW13701SFConst.RESULT_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);

			X31SDataBeanAccess stbBean = null;
			for(int i = 0; i < meisaiCount; i++)
			{
				stbBean = stbList.getDataBean(i);
				
				// 異動予約
				String idoRsv = stbBean.sendMessageString(KKW13701SFConst.L_IDO_DIV_RSV_03, X31CWebConst.DATABEAN_GET_VALUE);
				if(isNull(idoRsv))
				{
					//処理可能な明細が存在する場合は更新確認ボタンを活性化する
					serviceBean.sendMessageBoolean(KKW13701SFConst.RESULT_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
				}
			}
		}
		// OM-2015-0000178 ADD END
		return true;
	}
	
	/**
	 * 履歴参照ボタン押下処理
     * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean openRirekiSanshou() throws Exception 
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		X31SDataBeanAccess selBean = getChoiceInfo(serviceBean);
		
		// サービス契約内訳番号
		String svcKeiucwk = selBean.sendMessageString(KKW13701SFConst.L_SVC_KEI_UCWK_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 入力値を設定する
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		paramMap.put("svc_kei_ucwk_no", svcKeiucwk);
		
		
		// 次画面IDをキーに情報設定を行う
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW14201, paramMap);
		
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW14201, JKKScreenConst.SCREEN_ID_KKW13701);
		
		// 遷移先画面ID取得し、設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14201);
		
		return true;
	}
	
	/**
	 * 更新確認ボタン押下処理
     * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean forwardUpdCfm() throws Exception 
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 次画面編集
		setNextScreenEdit(serviceBean);
		
		// 更新確認を行う
		if(!callServiceUpdata(serviceBean, JKKCommonConst.FUNC_CODE_2))
		{
			return true;
		}
		
		// ANK-2530-00-00 2016/03/16 ADD START
		// ＳＴＢ変更申込情報の取得
		X31SDataBeanAccessArray stbHenkouList = serviceBean.getDataBeanArray(KKW13701SFConst.STB_CHG_MSKM_LIST);
		for (int i = 0; i < stbHenkouList.getCount(); i++)
		{
			X31SDataBeanAccess stbHenkouBean = stbHenkouList.getDataBean(i);
			
			String tvCourseCd = "";
			// 明細選択フラグ
			String selectRowFlg= stbHenkouBean.sendMessageString(KKW13701SFConst.L_SELECT_ROW_FLG_03, X31CWebConst.DATABEAN_GET_VALUE);
			if (selectRowFlg.equals("1") == true) 
			{
				// 変更後ＴＶコースコード
				tvCourseCd = stbHenkouBean.sendMessageString(KKW13701SFConst.L_TV_COURSE_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
				
			} else {
				// 変更前ＴＶコースコード
				tvCourseCd = stbHenkouBean.sendMessageString(KKW13701SFConst.L_OLD_TV_COURSE_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
				if (!StringUtils.isEmpty(tvCourseCd) && tvCourseCd.length() >= 6) {
					tvCourseCd = tvCourseCd.substring(1, 4);
				}
			}
			// ＨＤＤ容量コード
			String hddCapaCd = stbHenkouBean.sendMessageString(KKW13701SFConst.L_HDD_CAPA_CD_03, X31CWebConst.DATABEAN_GET_VALUE);

			// TVコース／STB不整合チェックエラーの場合
			if (!JKKTvCrsStbHsgChk.doTvCrsStbHsgChk(hddCapaCd, tvCourseCd))
			{
				JCCWebCommon.setMessageInfo(this, "EKBE197--Q", new String[]{"コース・STBの組み合わせで特殊な登録がされております。"});
			}
		}
		// ANK-2530-00-00 2016/03/16 ADD END
		
		JCCWebCommon.setMessageInfo(this, "EKB0370--I", new String[]{"eo光テレビ新コース登録／コース変更"});
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 遷移先画面IDを設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13702);
		// 遷移先画面名を設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13702);
		
		// 確認画面でのヘッダー情報の表示
		JKKSvckeiCommonInfo.setSvckeiCommonInfo(this, setSvckeiCommonMap(serviceBean));
		
		return true;
	}
	
	/**
	 * 予約取消確認ボタン押下処理
     * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean forwardRsvClUpdCfm() throws Exception 
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 次画面編集
		setNextScreenEdit(serviceBean);
		
		
		// 更新確認を行う
		if(!callServiceUpdata(serviceBean, JKKCommonConst.FUNC_CODE_2))
		{
			return true;
		}
		
		
		
		
		JCCWebCommon.setMessageInfo(this, "EKB0370--I", new String[]{"eo光テレビ新コース登録／コース変更"});
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 遷移先画面IDを設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13702);
		// 遷移先画面名を設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13702);
		
		// 確認画面でのヘッダー情報の表示
		JKKSvckeiCommonInfo.setSvckeiCommonInfo(this, setSvckeiCommonMap(serviceBean));
		
		return true;
	}
	
	/**
	 * 適用ボタン押下処理
     * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean closeAply() throws Exception 
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 呼出し画面へパラメタ設定する
		setNextScreenEdit(serviceBean);
		
		
		// 更新確認を行う
		if(!callServiceUpdata(serviceBean, JKKCommonConst.FUNC_CODE_2))
		{
			// 処理区分
			String tranDiv = serviceBean.sendMessageString(KKW13701SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
			// KKW00129より遷移の場合
			if("3".equals(tranDiv))
			{
				// 遷移先画面IDを設定
				commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13702);
				// 遷移先画面名を設定
				commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13702);
				
				return true;
			}
		}
		
		// ANK-2530-00-00 2016/03/16 ADD START
		// ＳＴＢ変更申込情報の取得
		X31SDataBeanAccessArray stbHenkouList = serviceBean.getDataBeanArray(KKW13701SFConst.STB_CHG_MSKM_LIST);
		for (int i = 0; i < stbHenkouList.getCount(); i++)
		{
			X31SDataBeanAccess stbHenkouBean = stbHenkouList.getDataBean(i);
			
			// 明細選択フラグ
			String selectRowFlg= stbHenkouBean.sendMessageString(KKW13701SFConst.L_SELECT_ROW_FLG_03, X31CWebConst.DATABEAN_GET_VALUE);
			if (selectRowFlg.equals("1") == true) 
			{
				// ＨＤＤ容量コード
				String hddCapaCd = stbHenkouBean.sendMessageString(KKW13701SFConst.L_HDD_CAPA_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
				// 変更後ＴＶコースコード
				String newTvCourseCd = stbHenkouBean.sendMessageString(KKW13701SFConst.L_TV_COURSE_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
				
				// TVコース／STB不整合チェックエラーの場合
				if (!JKKTvCrsStbHsgChk.doTvCrsStbHsgChk(hddCapaCd, newTvCourseCd))
				{
					JCCWebCommon.setMessageInfo(this, "EKBE197--Q", new String[]{"コース・STBの組み合わせで特殊な登録がされております。"});
					// 処理区分
					String tranDiv = serviceBean.sendMessageString(KKW13701SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
					// KKW00129より遷移の場合
					if("3".equals(tranDiv))
					{
						// 遷移先画面IDを設定
						commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13702);
						// 遷移先画面名を設定
						commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13702);
						
						return true;
					}
				}
			}
		}
		// ANK-2530-00-00 2016/03/16 ADD END
		
		// 呼出し元画面IDをキーに情報設定を行う
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00129, setCloseParameta(serviceBean));
		
		// モーダル用反映画面へ画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, "CCW00105");
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, "モーダル用反映画面");
		
		
		return true;
	}
	
	/**
	 * 適用ボタン押下処理(確認画面)
     * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean closeAplyKakutei() throws Exception 
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		
		// 呼出し元画面IDをキーに情報設定を行う
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00129, setCloseParameta(serviceBean));
		
		// モーダル用反映画面へ画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, "CCW00105");
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, "モーダル用反映画面");
		
		
		return true;
	}
	
	/**
	 * 確定ボタン押下処理
     * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean forwardFix() throws Exception 
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		
		// 更新確認を行う
		if(!callServiceUpdata(serviceBean, JKKCommonConst.FUNC_CODE_1))
		{
			return true;
		}
		
		
		
/* ++++++++++ v5.01.00 修正開始 ++++++++++ */
//		JCCWebCommon.setMessageInfo(this, "EKB0380--I", new String[]{"eo光テレビ新コース登録／コース変更"});
		JCCWebCommon.setMessageInfo(this, "EKB4390--I", new String[]{"eo光テレビ新コース登録／コース変更"});
/* ++++++++++ v5.01.00 修正終了 ++++++++++ */
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 遷移先画面IDを設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13703);
		// 遷移先画面名を設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13703);
		
		// 確認画面でのヘッダー情報の表示
		JKKSvckeiCommonInfo.setSvckeiCommonInfo(this, setSvckeiCommonMap(serviceBean));
		
		return true;
	}
	
	/**
	 * STB情報一覧から履歴参照ボタン押下されたレコード値を取得します。
	 * 
	 * @param serviceBean サービスフォームビーン
	 * @return 選択されたBean情報
	 */
	private X31SDataBeanAccess getChoiceInfo(X31SDataBeanAccess serviceBean)
	{
		X31SDataBeanAccess reBean = null;
		
		// コードリストを取得
		X31SDataBeanAccessArray stbList = serviceBean.getDataBeanArray(KKW13701SFConst.STB_CHG_MSKM_LIST);
		int meisaiCount = stbList.getCount();
		
		
		String no = serviceBean.sendMessageString(KKW13701SFConst.DTL_SEL, X31CWebConst.DATABEAN_GET_VALUE);
		
		for(int i = 0; 0 < meisaiCount; i++)
		{
			if(no.equals(String.valueOf(i)))
			{
				reBean = stbList.getDataBean(i);
				break;
			}
		}
		
		return reBean;
	}
	
	/**
	 * 戻るボタン押下処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean back() throws Exception 
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		
		return true;
	}
	
	/**
	 * 修正ボタン押下処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean forwardShusei() throws Exception 
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13701);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13701);
		
		return true;
	}
	
	/**
	 * 異動区分選択ボタン押下時
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean forwardIdoDivSel() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00145);
		
		return true;
	}
	
	/**
	 * お客様一覧照会へボタン押下時
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean forwardCustListShokai() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW00101);
		
		return true;
	}
	
	/**
	 * <dd>メソッド名：サービス契約共通マップ設定
	 * <dd>メソッド説明：サービス契約共通マップの生成を行う。
	 * <dd>備考：なし。
	 * @param serviceBean 設定する画面のBean
	 * @return HashMap サービス契約共通マップ
	 */
	private HashMap<String, Object> setSvckeiCommonMap(X31SDataBeanAccess serviceBean)
	{
		HashMap<String, Object> svckeiCommonMap = new HashMap<String, Object>();
		
		
		// 異動区分名称
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_IDO_DIV,
				serviceBean.sendMessageString(KKW13701SFConst.H_IDO_DIV_NM, X31CWebConst.DATABEAN_GET_VALUE));
		
		// サービス契約ステータス名称
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_SVC_KEI_STAT,
				serviceBean.sendMessageString(KKW13701SFConst.H_SVC_KEI_STAT_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// マンションＩＤ
//		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_MANSION_ID,
//				serviceBean.sendMessageString(KKW13701SFConst.H_MANSION_ID, X31CWebConst.DATABEAN_GET_VALUE));
		// マンション名称
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_MANSION_NM,
				serviceBean.sendMessageString(KKW13701SFConst.H_MANSION_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者名
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_KEISHA_NM,
				serviceBean.sendMessageString(KKW13701SFConst.H_CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 電話番号
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_TELNO,
				serviceBean.sendMessageString(KKW13701SFConst.H_KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		// 督促状態
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_TOKUSOKU_STAT,
				serviceBean.sendMessageString(KKW13701SFConst.H_TOKUSOKU_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者住所
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_KEISHA_AD,
				serviceBean.sendMessageString(KKW13701SFConst.H_KEISHA_AD, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_SVC_KEI_NO,
				serviceBean.sendMessageString(KKW13701SFConst.SVKEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_SEIKY_KEI_NO,
				serviceBean.sendMessageString(KKW13701SFConst.H_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// ＳＹＳＩＤ
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_SYSID,
				serviceBean.sendMessageString(KKW13701SFConst.H_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// ｅｏＩＤ
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_EOID,
				serviceBean.sendMessageString(KKW13701SFConst.H_EOID, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金グループ名称
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_PRC_GRP,
				serviceBean.sendMessageString(KKW13701SFConst.H_PRC_GRP_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コース名称
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_PCRS,
				serviceBean.sendMessageString(KKW13701SFConst.H_PCRS_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// ルータ有無
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_ROUTER_SBT,
				serviceBean.sendMessageString(KKW13701SFConst.H_ROUTER_UM, X31CWebConst.DATABEAN_GET_VALUE));
		// ファミリーパック有無
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_FAMILY_PACK_UM,
				serviceBean.sendMessageString(KKW13701SFConst.H_WRIB_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// ＡＤＳＬ表示フラグ
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_ADSL_DSP_FLG,
				serviceBean.sendMessageString(KKW13701SFConst.H_ADSL_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		
		// Ｐ−ＩＤ
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_P_ID,
				serviceBean.sendMessageString(KKW13701SFConst.PID, X31CWebConst.DATABEAN_GET_VALUE));
		// ＣＡＴ−ＩＤ
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_CAT_ID,
				serviceBean.sendMessageString(KKW13701SFConst.CATID, X31CWebConst.DATABEAN_GET_VALUE));
		
/* ++++++++++ v4.00.06 追加開始 ++++++++++ */
		// 予約状況
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_RSV_JOKYO,
				serviceBean.sendMessageString(KKW13701SFConst.H_RSV_JOKYO, X31CWebConst.DATABEAN_GET_VALUE));
/* ++++++++++ v4.00.06 追加終了 ++++++++++ */
		
		return svckeiCommonMap;
	}
	
	/**
	 * 更新確認および更新処理を行います。
	 * 
	 * @param serviceBean サービスフォームビーン
	 * @param funcCd 機能コード
	 * @return 取得したインデックス
	 */
	@SuppressWarnings("unchecked")
	private boolean callServiceUpdata(X31SDataBeanAccess serviceBean, String funcCd)
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 処理区分
		String tranDiv = serviceBean.sendMessageString(KKW13701SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		
		
		// マッピングクラスに渡すために配列にする（共有フォームBean込み）
		X31SDataBeanAccess[] paramBean = {serviceBean, commoninfoBean};
		
		
		// 検索処理のユースケースID格納用マップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// 共通情報の設定
		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
		
		
		
		// 更新確認か適用ボタン押下の場合
		if("1".equals(tranDiv) || "3".equals(tranDiv))
		{
			
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0612");
			
			// 更新のデータBeanとBPをマッピングするインスタンスを生成
			KKSV0612_KKSV0612OPDBMapper mapper = new KKSV0612_KKSV0612OPDBMapper();
			
			mapper.setKKSV061201CC(paramBean, inputMap, funcCd);
			mapper.setKKSV061202CC(paramBean, inputMap, funcCd);
			// ▼▼▼▼▼ ANK-2197-00-00 2015/11/02 ADD START ▼▼▼▼▼
			// STB主従切替CCマップ
			mapper.setKKSV061203CC(paramBean, inputMap, funcCd);
			// ▲▲▲▲▲ ANK-2197-00-00 2015/11/02 ADD END ▲▲▲▲▲
		}
		// 予約取消ボタン押下の場合
		else if("2".equals(tranDiv))
		{
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0613");
			
			// 更新のデータBeanとBPをマッピングするインスタンスを生成
			KKSV0613_KKSV0613OPDBMapper mapper = new KKSV0613_KKSV0613OPDBMapper();
			
			mapper.setKKSV061301CC(paramBean, inputMap, funcCd);
			mapper.setKKSV061302CC(paramBean, inputMap, funcCd);
		}
		
		
		
		// サービスの呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			
			JCCWebCommon.setMessageInfo(this, msgResult);
//			return true;
		}
		
		// 検索エラーフラグの取得
		String searchErrFlg = "";
		int gyou = 0;
		
		/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
		// ANK-1673-00-00
		// 不要オプション登録判定でメッセージ表示かつ
		// 過去日チェック、重複エラーチェックOK時に
		// メッセージ表示判定するためのフラグを作成
		boolean isDispMsgFlg = true;
		/* ++++++++++ v7.00.00 追加完了 ++++++++++ */

		// 更新確認か適用ボタン押下の場合
		if("1".equals(tranDiv) || "3".equals(tranDiv))
		{
			/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
			HashMap parentMap_temp = null;
			if(outputMap.containsKey("KKSV061201CC"))
			{
				parentMap_temp = (HashMap)outputMap.get("KKSV061201CC");
			}
			
			// エラーでも処理終了しない
			if(!isServerCheckMessage(parentMap_temp, funcCd) && "3".equals(tranDiv))
			{
				// falseを設定
				isDispMsgFlg = false;
			}
			/* ++++++++++ v7.00.00 追加完了 ++++++++++ */
			
			searchErrFlg = JCCWebCommon.getSearchErrFlg("KKSV061201CC", outputMap);
			if(!isNull(searchErrFlg))
			{
				/* ++++++++++ v6.00.00 変更開始 ++++++++++ */
//				if((searchErrFlg.startsWith("E_END") || searchErrFlg.startsWith("E_STA")) && searchErrFlg.length() == 6)
				if((searchErrFlg.startsWith("E_END") || searchErrFlg.startsWith("E_STA") || searchErrFlg.startsWith("E_FRE")) && searchErrFlg.length() == 6)
				/* ++++++++++ v6.00.00 変更完了 ++++++++++ */
				{
					gyou = Integer.parseInt(searchErrFlg.substring(5));
					searchErrFlg = searchErrFlg.substring(0, 5);
				}
			}
		}
		// 予約取消ボタン押下の場合
		else if("2".equals(tranDiv))
		{
			searchErrFlg = JCCWebCommon.getSearchErrFlg("KKSV061301CC", outputMap);
		}
		
		/* ++++++++++ v6.00.00 変更開始 ++++++++++ */
		// 無料期間チェックチェックエラーの場合
		if("E_FRE".equals(searchErrFlg))
		{
			// 「%1%に%2%の日付は設定できません。」
			JCCWebCommon.setMessageInfo(this, "EKB8330-TW", new String[]{"新コースの課金開始年月日","無料視聴期間中"}, "year_down" + gyou);
			JCCWebCommon.setMessageInfo(this, "EKB8330-TW", new String[]{"新コースの課金開始年月日","無料視聴期間中"}, "month_down" + gyou);
			JCCWebCommon.setMessageInfo(this, "EKB8330-TW", new String[]{"新コースの課金開始年月日","無料視聴期間中"}, "day_down" + gyou);
			return false;
		}
		/* ++++++++++ v6.00.00 変更完了 ++++++++++ */
		
		// 過去日チェックエラーの場合
		if("E_END".equals(searchErrFlg))
		{
			// 「入力された%1%は料金計算日を過ぎているため入力できません。」
//			JCCWebCommon.setMessageInfo(this, "EKBD640-KW", new String[]{"課金終了年月日"});
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBD640_KW, new String[]{"課金終了年月日"}, "year_up" + gyou);
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBD640_KW, new String[]{"課金終了年月日"}, "month_up" + gyou);
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBD640_KW, new String[]{"課金終了年月日"}, "day_up" + gyou);
			return false;
		}
		else if("E_STA".equals(searchErrFlg))
		{
			// 「入力された%1%は料金計算日を過ぎているため入力できません。」
//			JCCWebCommon.setMessageInfo(this, "EKBD640-KW", new String[]{"課金開始年月日"});
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBD640_KW, new String[]{"課金開始年月日"}, "year_down" + gyou);
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBD640_KW, new String[]{"課金開始年月日"}, "month_down" + gyou);
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBD640_KW, new String[]{"課金開始年月日"}, "day_down" + gyou);
			return false;
		}
		
		// 重複チェックエラーの場合
		if("E".equals(searchErrFlg))
		{
			// 「%1%を行ってください。」
			JCCWebCommon.setMessageInfo(this, "EKB1220--I", new String[]{"オプションチャンネルが重複しています。修正"});
			return false;
		}
		
		/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
		if(!isDispMsgFlg)
		{
			return false;
		}
		/* ++++++++++ v7.00.00 追加完了 ++++++++++ */
		
		return true;
	}
	
	/**
	 * 確認画面用編集を行います。
	 * <br>
	 * @param serviceBean 設定する画面のBean
	 */
	private void setNextScreenEdit(X31SDataBeanAccess serviceBean) throws Exception
	{
		// 明細一覧を取得
		X31SDataBeanAccessArray stbList = serviceBean.getDataBeanArray(KKW13701SFConst.STB_CHG_MSKM_LIST);
		int meisaiCount = stbList.getCount();
		X31SDataBeanAccess bean = null;
		
		// プルダウン情報を取得
		X31SDataBeanAccessArray tvArray = serviceBean.getDataBeanArray(KKW13701SFConst.TV_CRS_LIST);
		X31SDataBeanAccess tvBean = tvArray.getDataBean(0);
		
		
		// ラジオボタンのコース変更時期を初期設定する
		for(int i = 0; i < meisaiCount; i++)
		{
			bean = stbList.getDataBean(i);
//			stbBean.sendMessageString(KKW13701SFConst.hojiyou, X31CWebConst.DATABEAN_GET_VALUE);
			
			// コース変更時期
			String radioSel = bean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_03, X31CWebConst.DATABEAN_GET_VALUE);
			if("0".equals(radioSel))
			{
				bean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_SEL_NM_03, X31CWebConst.DATABEAN_SET_VALUE, "即時");
			}
			else if("1".equals(radioSel))
			{
				bean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_SEL_NM_03, X31CWebConst.DATABEAN_SET_VALUE, "翌月");
			}
			else if("2".equals(radioSel))
			{
				bean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_SEL_NM_03, X31CWebConst.DATABEAN_SET_VALUE, "翌々月");
			}
			else
			{
				bean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_SEL_NM_03, X31CWebConst.DATABEAN_SET_VALUE, "");
			}
			
			// 変更前TVコース
			
			
			// TVコースプルダウン選択位置を取得
			String selCd = bean.sendMessageString(KKW13701SFConst.L_NEW_TV_COURSE_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			String sIndex = getSelectNameFromCode(serviceBean, selCd);
			
			// TVコースが選択されている場合
			if(!isNull(sIndex))
			{
				// コードと名称を取得する
				String code = tvBean.sendMessageString(KKW13701SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(sIndex));
				String sname = tvBean.sendMessageString(KKW13701SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(sIndex));
				String dfCode = tvBean.sendMessageString(KKW13701SFConst.DEFAULT_CD_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(sIndex));
				// 料金プランコード
//				bean.sendMessageString(KKW13701SFConst.L_NEW_TV_COURSE_CD_03, X31CWebConst.DATABEAN_SET_VALUE, code);
				// 料金プラン名
				bean.sendMessageString(KKW13701SFConst.L_NEW_TV_COURSE_NM_03, X31CWebConst.DATABEAN_SET_VALUE, sname);
				// 料金コースコード
				bean.sendMessageString(KKW13701SFConst.L_TV_COURSE_CD_03, X31CWebConst.DATABEAN_SET_VALUE, dfCode);
				
				
			}
			else
			{
//				bean.sendMessageString(KKW13701SFConst.L_NEW_TV_COURSE_CD_03, X31CWebConst.DATABEAN_SET_VALUE, "");
				bean.sendMessageString(KKW13701SFConst.L_NEW_TV_COURSE_NM_03, X31CWebConst.DATABEAN_SET_VALUE, "");
				bean.sendMessageString(KKW13701SFConst.L_TV_COURSE_CD_03, X31CWebConst.DATABEAN_SET_VALUE, "");
			}
			
			// 課金終了日
			String endYear = bean.sendMessageString(KKW13701SFConst.L_CHRG_END_YEAR_03, X31CWebConst.DATABEAN_GET_VALUE);
			String endMon = bean.sendMessageString(KKW13701SFConst.L_CHRG_END_MON_03, X31CWebConst.DATABEAN_GET_VALUE);
			String endDay = bean.sendMessageString(KKW13701SFConst.L_CHRG_END_DAY_03, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 確認画面へ表示
			if(!isNull(endYear))
			{
				bean.sendMessageString(KKW13701SFConst.L_CHRG_END_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, endYear + endMon + endDay);
			}
			else
			{
				bean.sendMessageString(KKW13701SFConst.L_CHRG_END_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, "");
			}
			
			// 課金開始日
			String staYear = bean.sendMessageString(KKW13701SFConst.L_CHRG_STA_YEAR_03, X31CWebConst.DATABEAN_GET_VALUE);
			String staMon = bean.sendMessageString(KKW13701SFConst.L_CHRG_STA_MON_03, X31CWebConst.DATABEAN_GET_VALUE);
			String staDay = bean.sendMessageString(KKW13701SFConst.L_CHRG_STA_DAY_03, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 確認画面へ表示
			if(!isNull(staYear))
			{
				bean.sendMessageString(KKW13701SFConst.L_CHRG_STA_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, staYear + staMon + staDay);
			}
			else
			{
				bean.sendMessageString(KKW13701SFConst.L_CHRG_STA_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, "");
			}
		}
		
	}
	
	/**
	 * 遷移先画面へのパラメタ設定を行います。
	 * <br>
	 * @param serviceBean 設定する画面のBean
	 */
	private HashMap<String, Object> setCloseParameta(X31SDataBeanAccess serviceBean) throws Exception
	{
		// 明細一覧を取得
		X31SDataBeanAccessArray stbList = serviceBean.getDataBeanArray(KKW13701SFConst.STB_CHG_MSKM_LIST);
		int meisaiCount = stbList.getCount();
		X31SDataBeanAccess bean = null;
		
		// プルダウン情報を取得
		X31SDataBeanAccessArray tvArray = serviceBean.getDataBeanArray(KKW13701SFConst.TV_CRS_LIST);
		X31SDataBeanAccess tvBean = tvArray.getDataBean(0);
		
		// 返却値
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		
		ArrayList<HashMap<String, Object>> parmList = new ArrayList<HashMap<String, Object>>();
		
		
		
		for(int i = 0; i < meisaiCount; i++)
		{
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			bean = stbList.getDataBean(i);
			
			
			// 異動区分予約
			String idoDivRsv = bean.sendMessageString(KKW13701SFConst.L_IDO_DIV_RSV_03, X31CWebConst.DATABEAN_GET_VALUE);
			if(isNull(idoDivRsv))
			{
				// TVコースプルダウン選択位置を取得
				String selCd = bean.sendMessageString(KKW13701SFConst.L_NEW_TV_COURSE_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
				String sIndex = getSelectNameFromCode(serviceBean, selCd);
				
				// TVコースが選択されている場合
				if(!isNull(sIndex))
				{
					// コードと名称を取得する
					String code = tvBean.sendMessageString(KKW13701SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(sIndex));
					String dfCode = tvBean.sendMessageString(KKW13701SFConst.DEFAULT_CD_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(sIndex));
					// 料金プランコード
					childMap.put("pplan_cd", code);
					// 料金コースコード
					childMap.put("pcrs_cd", dfCode);
					
					// 料金プランコード名称
					String name = tvBean.sendMessageString(KKW13701SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(sIndex));
					childMap.put("pplan_cd_nm", name);
				}
				
				// 変更前料金プランコード名称
				String nameMt = bean.sendMessageString(KKW13701SFConst.L_OLD_TV_COURSE_NM_03, X31CWebConst.DATABEAN_GET_VALUE);
				childMap.put("pplan_cd_nm_mt", nameMt);
				
				// STBID
				String stbid = bean.sendMessageString(KKW13701SFConst.L_STBID_03, X31CWebConst.DATABEAN_GET_VALUE);
				childMap.put("stb_id", stbid);
				
				// サービス契約内訳番号
				String svc_kei_ucwk_no = bean.sendMessageString(KKW13701SFConst.L_SVC_KEI_UCWK_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
				childMap.put("svc_kei_ucwk_no", svc_kei_ucwk_no);
				
				// 提供方式契約番号
				String tk_hoshiki_kei_no = bean.sendMessageString(KKW13701SFConst.L_TK_HOSHIKI_KEI_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
				childMap.put("tk_hoshiki_kei_no", tk_hoshiki_kei_no);
				
				// 違約金発生コード
				childMap.put("pnlty_hassei_cd", "1");
				
				// ANK-1359 Start
				// コース変更時期
				String radioSel = bean.sendMessageString(KKW13701SFConst.L_CSCH_JIKI_RADIO_03, X31CWebConst.DATABEAN_GET_VALUE);
				childMap.put("csch_jiki", radioSel);
				// ANK-1359 End
				
				parmList.add(childMap);
			}
			
		}
		
		inMap.put("KKW13701List", parmList);
		
//		parentMap.put("KKW13701PARAM", inMap);
		
		return inMap;
	}
	
	/**
	 * TVコースプルダウンから対応するコード値のインデックスを取得します。
	 * 
	 * @param serviceBean サービスフォームビーン
	 * @param ctrPlnDiv 電波障害対策区分コード
	 * @param kindSelect コンボ種類
	 * @return 取得したインデックス
	 */
	private String getSelectNameFromCode(X31SDataBeanAccess serviceBean, String code)
	{
		// コードリストを取得
		X31SDataBeanAccessArray codeArray = serviceBean.getDataBeanArray(KKW13701SFConst.TV_CRS_LIST);
		X31SDataBeanAccess cdBean = codeArray.getDataBean(0);
		
		int cdList = Integer.valueOf(cdBean.sendMessage(KKW13701SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_COUNT).toString());
		
		String retIndex = "";

		for (int i = 0; i < cdList; i++)
		{
			if (code.equals(cdBean.sendMessageString(KKW13701SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
			{
				retIndex = i + "";
				break;
			}
		}
		
		return retIndex;
	}
	
	/**
	 * 自画面へ遷移します。
	 * <br>
	 * @param commoninfoBean 共有フォームBean
	 * @return なし
	 */
	private void setMyScreen(X31SDataBeanAccess commoninfoBean) 
	{
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13701);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13701);
	}
	
	/**
	 * 引数に値が設定されているか判定します。
	 * <br>
	 * @param arg0 判定する引数
	 * @return 引数に値が設定されていない場合はtrue
	 */
	private boolean isNull(String arg0) 
	{
		if (arg0 == null) 
		{
			return true;
		}

		return 0 == arg0.toString().length();
	}
	
	/**
	 * コンボボックスから対応するコード値のインデックスを設定します。
	 * <br>
	 * @param tempBean
	 * @param componentID
	 * @param code
	 * @param cdList
	 * @param select
	 */
	private void setSelectIndex(X31SDataBeanAccess tempBean, String componentID, String code, String cdList, String select)
	{
		X31SDataBeanAccessArray arraybean = tempBean.getDataBeanArray(componentID);
		if (0 < arraybean.getCount())
		{
			X31SDataBeanAccess subbean = arraybean.getDataBean(0);
			// コードタイプコード値リストの件数
			Integer count = (Integer)subbean.sendMessage(cdList, X31CWebConst.DATABEAN_GET_COUNT);
			for (int i = 0; i < count.intValue(); i++)
			{
				if (code.equals(subbean.sendMessageString(cdList, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					// 一致した場合、インデックスを設定
					subbean.sendMessageString(select, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
					return;
				}
			}
			// 一致しない場合は"0"を設定
			subbean.sendMessageString(select, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
	}

	/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
	/**	
	 * <dd>メソッド名：サーバーチェックエラー判定メソッド
	 * <dd>メソッド説明：
	 * <dd>備考：
	 * @param outputMap
	 * @param funcCd
	 * @param errMap
	 * @param pMessage
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	private boolean isServerCheckMessage(HashMap<String, Object> outputMap, 
											String funcCd)
	{
		
		ArrayList messageList = (ArrayList)outputMap.get("message_list");

		String errFlg = (String)outputMap.get("err_flg");
		String replaceChar = "";
		String errItem = "";
		
		// if(!"W".equals(errFlg) && JKKCommonConst.FUNC_CODE_1.equals(funcCd)){
		// サーバからのエラーを設定
		// OM-2014-0002043 STBのコース変更予約が複数投入できてしまう 2014/07/02 START
		// サービス契約情報更新（ｅｏ光テレビ）画面から遷移した場合に、ＴＶコースプルダウンが
		// 非活性の状態で「適用」を押下するとシステムエラーになる（既存の不具合）
//		if(0 < messageList.size())
		if (null != messageList && 0 < messageList.size())
		// OM-2014-0002043 STBのコース変更予約が複数投入できてしまう 2014/07/02 END
		{
			for (int i = 0; i < messageList.size(); i++)
			{
				HashMap messageMap = (HashMap)messageList.get(i);
				String message = (String)messageMap.get("messageId");
				replaceChar = (String)messageMap.get("replaceCha");
				errItem = (String)messageMap.get("errItem");

				if(!"".equals(replaceChar) && !"".equals(errItem))
				{
					JCCWebCommon.setMessageInfo(this, message, replaceChar.split(","), errItem);
				}
				else if(!"".equals(replaceChar))
				{
					JCCWebCommon.setMessageInfo(this, message, replaceChar.split(","));
				}
				else if(!"".equals(errItem))
				{
					JCCWebCommon.setMessageInfo(this, message, errItem);
				}
				else
				{
					JCCWebCommon.setMessageInfo(this, message);
				}
			}
			// }
		}
		
		// エラーまたはワーニングの場合、KKW13702へ遷移します。
		if("E".equals(errFlg) || "W".equals(errFlg))
		{
			return false;
		}
		
		return true;
	}	
	/* ++++++++++ v7.00.00 追加完了 ++++++++++ */

}
