/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW03901SFLogic
*   ソースファイル名：KKW03901SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年11月18日
*＜機能概要＞
*   機器引継画面のビューロジックです
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/11/18   FJ          新規作成
*   v4.00.00    2012/12/17   FJ)猪山    【IT1-2012-0002513】引継元契約情報エラー時メッセージ表示不備対応
*   v5.00.00    2013/02/06   FJ)野口    【IT1-2013-0000208】対応
*   v4.01.00    2013/02/20   FJ)鳩本    【OT-2013-0000192】障害対応
*   v4.02.00    2013/04/11   FJ)鳩本    【IT1-2013-0000873】障害対応
*   v4.03.00    2013/07/02   FJ)馬場    【IT1-2013-0001328】障害対応
*   v4.04.00    2013/07/09   FJ)鳩本    【IT1-2013-0001330】障害対応
*   v6.00.00    2014/01/08   FJ)稲岡    【OM-2013-0005408】障害対応
*   v9.00.00    2014/08/12   FJ)高田    【OM-2014-0002545】障害対応
*   v23.00.00   2015/12/21   FJ)山口    【ANK-2612-00-00】10Gコース導入対応
**********************************************************************/

package eo.web.webview.KKW03901SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JKKStrConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCKScreenConst;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0416_KKSV0416OPDBMapper;
import eo.web.webview.mapping.KKSV0417_KKSV0417OPDBMapper;
import eo.web.webview.mapping.KKSV0418_KKSV0418OPDBMapper;
import eo.web.webview.mapping.KKSV0419_KKSV0419OPDBMapper;

/**
 * 機器引継画面のビューロジックです
 * 
 * @author 富士通
 */
public class KKW03901SFLogic extends JCCWebBusinessLogic 
{
	
	/** 引継元サービス契約一覧の最小表示行数 */
	private static final int HKTGI_MOTO_SVC_KEI_LIST_MIN_LENGTH = 3;
	
	/** 引継元接続機器一覧の最小表示行数 */
	private static final int HKTGI_MOTO_KIKI_LIST_MIN_LENGTH = 3;
	
	/** 引継先接続機器一覧の最小表示行数 */
	private static final int HKTGI_SAKI_KIKI_LIST_MIN_LENGTH = 6;
	
	/** 引継先接続機器一覧（機器引継確認）の最小表示行数 */
	private static final int HKTGI_SAKI_KIKI_CFM_LIST_MIN_LENGTH = 6;
	
	/* ++++++++++ v4.01.00 追加開始 ++++++++++ */
	/** 機器提供サービスコード(ONU) */
	private static final String KKTK_SVC_CD_ONU = "C012";
	/** 機器提供サービスコード(V-ONU) */
	private static final String KKTK_SVC_CD_VONU = "C013";
	/* ++++++++++ v4.01.00 追加完了 ++++++++++ */
	
	/**
	 * 初期表示処理
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean init() throws Exception
	{
		
		// ■ 引継情報の取得
		JCCWebCommon.getScreenInfo(this);
		
		return initAction();
	}
	
	/**
	 * 検索ボタン押下処理
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean search() throws Exception
	{
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		String input_sysid = bean.sendMessageString(KKW03901SFConst.INPUT_SYSID,  X31CWebConst.DATABEAN_GET_VALUE);
		String input_svc_kei_no = bean.sendMessageString(KKW03901SFConst.INPUT_SVC_KEI_NO,  X31CWebConst.DATABEAN_GET_VALUE);
		
		// 入力＿ＳＹＳＩＤと入力＿サービス契約番号が両方とも値が入力されている場合
		if (!"".equals(input_sysid) && !"".equals(input_svc_kei_no))
		{
			// 入力＿ＳＹＳＩＤの値をクリアする。
			bean.sendMessageString(KKW03901SFConst.INPUT_SYSID,  X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// ■ 画面項目の制御
		// リセットボタンを活性に設定
		bean.sendMessageBoolean(KKW03901SFConst.RESET_BTN_CTL_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);

		// ■ サービス呼び出し準備
		bean.sendMessage(KKW03901SFConst.HKTGI_MOTO_CUST_NM, X31CWebConst.DATABEAN_CLEAR);
		X31SDataBeanAccess[] paramBean = {bean};
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0417");
		
		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
		
		KKSV0417_KKSV0417OPDBMapper mapper = new KKSV0417_KKSV0417OPDBMapper();
		mapper.setKKSV041701SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV041702SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV041703SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041704SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV041705SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041706CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);

		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		mapper.getKKSV041701SC(paramBean, outputMap);
		mapper.getKKSV041702SC(paramBean, outputMap);
		mapper.getKKSV041703SC(paramBean, outputMap);
		mapper.getKKSV041704SC(paramBean, outputMap);
		mapper.getKKSV041705SC(paramBean, outputMap);
		
		// 選択＿業務チェック＿エラー有無フラグ
		bean.sendMessageBoolean(KKW03901SFConst.CHOICE_CHK_ERR_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		
		// 引継元＿選択＿サービス契約＿インデックス
		bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_INDEX, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(0));
		
		// 2012.04.20 add 一覧チェック
		// ■ 引継元一覧の編集…サービス契約１件時のみ実行
		int hktgi_moto_svc_kei_list_cnt =  bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST).getCount();
		
		if(hktgi_moto_svc_kei_list_cnt == 1)
		{
			// 異動予約一覧、業務パラメータの取得
			mapper.getKKSV041706CC_2(paramBean, outputMap);
			// 引継元一覧の編集
			editkikiList(bean);
		}
		
		// ■ 有効データ件数の設定
		setDataCnt(bean);
		
		// ■ 業務エラーチェック
		// サービス契約番号存在チェックでエラーがある場合
		if(checkSvcKeiNo(bean, outputMap) == false)
		{
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
			return true;
		}
		
		// SYSID存在チェックでエラーがある場合
		if(checkSysid(bean, outputMap, "KKSV041702SC", "KKSV041703SC") == false)
		{
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
			return true;
		}
		
		int hktgi_moto_svc_kei_list_data_cnt =
				Integer.parseInt(bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 引継元のサービス契約(有効データ件数)が１件のみの場合、選択イベントのチェックも行う。
		if(hktgi_moto_svc_kei_list_data_cnt == 1)
		{
			// 引継元＿サービス契約一覧
			X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
			X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.getDataBean(0);
			
			// 引継元＿サービス契約番号を引継元＿選択＿サービス契約番号にセット
			bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE,
					hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
			
			// サービス契約番号チェックでエラーがある場合
			// 契約状態チェックでエラーがある場合
			// 引継可能機器チェック(接続機器チェック)でエラーがある場合
			// 督促ステータスチェックでエラーがある場合
			if(checkSvcKeiNo(bean) == false
					|| checkSvcKeiStat(bean) == false
					|| checkHktgiKiki(bean) == false
					|| checkTokusokuStat(bean) == false)
			{
				// 選択＿業務チェック＿エラー有無フラグ
				bean.sendMessageBoolean(KKW03901SFConst.CHOICE_CHK_ERR_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
				
				// 画面遷移
				commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
				commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
				return true;
			}
		}
		
/* ++++++++++ v6.00.00 追加開始 ++++++++++ */
		bean.sendMessageString(KKW03901SFConst.EVENT_ID, X31CWebConst.DATABEAN_SET_VALUE, "");
/* ++++++++++ v6.00.00 追加終了 ++++++++++ */
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
		
		return true;
	}
	
	/**
	 * 選択ボタン押下処理
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean choice() throws Exception
	{
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		bean.getDataBeanArray(KKW03901SFConst.EKK1681B001CBSMSG1LIST).clearArray();
		
		// ■関連チェック
		// サービス契約番号チェックでエラーがある場合
		// 契約状態チェックでエラーがある場合
		if(checkSvcKeiNo(bean) == false
				|| checkSvcKeiStat(bean) == false)
		{
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
			return true;
		}
		
		// 引継元＿サービス契約一覧から選択されたサービス契約のBeanを取得
		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
		String index = bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.getDataBean(Integer.parseInt(index));
		
		// ラジオボタンで選択された、引継元＿サービス契約番号を引継元＿選択＿サービス契約番号にセット
		bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE,
				hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		
		
		// ■ サービス呼び出し準備
		X31SDataBeanAccess[] paramBean = {bean};
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0418");
		
		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
		
		KKSV0418_KKSV0418OPDBMapper mapper = new KKSV0418_KKSV0418OPDBMapper();
		mapper.setKKSV041801SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV041802SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041803CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		mapper.getKKSV041801SC(paramBean, outputMap);
		mapper.getKKSV041802SC(paramBean, outputMap);
		mapper.getKKSV041803CC_2(paramBean, outputMap);
		
		// 選択＿業務チェック＿エラー有無フラグ
		bean.sendMessageBoolean(KKW03901SFConst.CHOICE_CHK_ERR_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		
		// 2012.04.20 add 一覧チェック
		// ■ 引継元一覧の編集
		editkikiList(bean);
		
		// ■ 有効データ件数の設定
		setDataCnt(bean);
		
		// ■ 業務エラーチェック
		// 引継可能機器チェック(接続機器チェック)でエラーがある場合
		// 督促ステータスチェックでエラーがある場合
		if(checkHktgiKiki(bean) == false || checkTokusokuStat(bean) == false)
		{
			// 選択＿業務チェック＿エラー有無フラグ
			bean.sendMessageBoolean(KKW03901SFConst.CHOICE_CHK_ERR_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
			return true;
		}
		
		// ■ 画面項目の制御
		// リセットボタンを活性に設定
		bean.sendMessageBoolean(KKW03901SFConst.RESET_BTN_CTL_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		
/* ++++++++++ v6.00.00 追加開始 ++++++++++ */
		bean.sendMessageString(KKW03901SFConst.EVENT_ID, X31CWebConst.DATABEAN_SET_VALUE, "choice");
/* ++++++++++ v6.00.00 追加終了 ++++++++++ */
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
		
		return true;
	}
	
	/**
	 * 登録確認ボタン押下処理
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean forwardAddCfm() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ■関連チェック
		if(!checkKanrenErr(bean))
		{
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
			return true;
		}
		
		// オンライン運用日付取得
		String ope_date = JCCWebCommon.getOpeDate(this, null);
		bean.sendMessageString(KKW03901SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, ope_date);
		
		// オンライン運用日付取得
		String ope_date_time_stamp = JCCWebCommon.getOpeDateTimeStamp(this, null);
		bean.sendMessageString(KKW03901SFConst.OPE_DATE_DTM, X31CWebConst.DATABEAN_SET_VALUE, ope_date_time_stamp);
		
		// ■ サービス呼び出し準備
		X31SDataBeanAccess[] paramBean = {bean};
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0419");
		
		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
		
		KKSV0419_KKSV0419OPDBMapper mapper = new KKSV0419_KKSV0419OPDBMapper();
		
		mapper.setKKSV041901SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV041902SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041908SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041903SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041905CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV041906SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV0419WORK01(paramBean, inputMap);
		
		/* ++++++++++ v4.04.00 修正開始 ++++++++++ */
		// 異動区分による上りマッピング作成判定
		/* ++++++++++ v4.04.00 修正完了 ++++++++++ */
		if(isSyousamaeIdoDiv(bean))
		{
			mapper.setKKSV041909SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		}
		else
		{
			mapper.setKKSV041904SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
			mapper.setKKSV041907SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		}
		
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		mapper.getKKSV041901SC(paramBean, outputMap);
		mapper.getKKSV041902SC(paramBean, outputMap);
		
		// サービス層における処理において業務エラーとするエラーが存在する場合
		if (!checkBusinessErr(bean, outputMap))
		{
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
			return true;
		}
		
		// ■ 引継対象機器の表示設定(機器引継確認画面表示用)
		setHktgiKiki(bean);
		
		// 引継対象機器の選択チェックボックスの表示設定
		setHktgiKikiChoiceDsp(bean);
		
		// ■ 画面項目の制御
		// リセットボタンを活性に設定
		bean.sendMessageBoolean(KKW03901SFConst.RESET_BTN_CTL_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		
		// ■ インフォメーションメッセージ設定
		// メッセージエリアにインフォメーションメッセージを表示する。
		// EKB0370--I：＜＜以下の内容で%1%を行います。よろしいですか？＞＞
		JCCWebCommon.setMessageInfo(this, "EKB0370--I", new String[]{"機器引継の登録"});
		
		// ■ 警告メッセージ設定
		// 引継元＿サービス契約一覧から選択されたサービス契約のBeanを取得
		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
		String index = bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.getDataBean(Integer.parseInt(index));
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccess hktgiSakiSvcKeiBean = bean.getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST).getDataBean(0);
		
		String hktgi_moto_sysid = bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		String hktgi_saki_sysid = hktgiSakiSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SYSID_03, X31CWebConst.DATABEAN_GET_VALUE);
		
		String hktgi_moto_seiky_kei_no = 
				hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		String hktgi_saki_seiky_kei_no = 
				hktgiSakiSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SEIKY_KEI_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (hktgi_moto_sysid.equals(hktgi_saki_sysid))
		{
			// 引継元と引継先のＳＹＳＩＤが同一で、かつ、引継元と引継先の請求契約番号が同一でない場合
			if (!hktgi_moto_seiky_kei_no.equals(hktgi_saki_seiky_kei_no))
			{
				// メッセージエリアに警告メッセージを表示する。
				// EKB4530--Q：引継ぎ元と引継ぎ先の請求先が違います。よろしいですか。
				JCCWebCommon.setMessageInfo(this, "EKB4530--Q");
			}
		}
		else
		{
			// 引継元と引継先のＳＹＳＩＤが同一でなく、かつ、引継元と引継先の請求契約番号が同一の場合
			if (hktgi_moto_seiky_kei_no.equals(hktgi_saki_seiky_kei_no))
			{
				// メッセージエリアに警告メッセージを表示する。
				// EKB4520--Q：引継ぎ元と引継ぎ先の契約者が違います。よろしいですか。
				JCCWebCommon.setMessageInfo(this, "EKB4520--Q");
			}
			// 引継元と引継先のＳＹＳＩＤが同一でなく、かつ、引継元と引継先の請求契約番号が同一でない場合
			else
			{
				// メッセージエリアに警告メッセージを表示する。
				// EKB4540--Q：引継ぎ元と引継ぎ先の契約者及び請求先が違います。よろしいですか。
				JCCWebCommon.setMessageInfo(this, "EKB4540--Q");
			}
		}
		
		// メッセージエリアに警告メッセージを表示する。
		// EKB4550--Q：登録を行うと照査取消が行えなくなります。よろしいですか。
		JCCWebCommon.setMessageInfo(this, "EKB4550--Q");
		
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03902);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03902);
		
		return true;
	}
	
	/**
	 * リセットボタン押下処理
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean reset() throws Exception
	{
		
		return initAction();
	}
	
	/**
	 * 戻るボタン押下処理
	 * <br>
	 * @return boolean
	 */
	public boolean back()
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		return true;
	}
	
	/**
	 * 修正ボタン押下処理
	 * <br>
	 * @return boolean
	 */
	public boolean forwardShusei()
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
		
		return true;
	}
	
	/**
	 * 確定ボタン押下処理
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean forwardFix() throws Exception
	{
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ■関連チェック
		if(!checkKanrenErr(bean))
		{
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03902);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03902);
			return true;
		}
		
		// オンライン運用日付取得
		String ope_date = JCCWebCommon.getOpeDate(this, null);
		bean.sendMessageString(KKW03901SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, ope_date);
		
		// オンライン運用日付取得
		String ope_date_time_stamp = JCCWebCommon.getOpeDateTimeStamp(this, null);
		bean.sendMessageString(KKW03901SFConst.OPE_DATE_DTM, X31CWebConst.DATABEAN_SET_VALUE, ope_date_time_stamp);
		
		// ■ サービス呼び出し準備
		X31SDataBeanAccess[] paramBean = {bean};
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0419");
		
		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
		
		KKSV0419_KKSV0419OPDBMapper mapper = new KKSV0419_KKSV0419OPDBMapper();
		mapper.setKKSV041901SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV041902SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041908SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041903SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041905CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041906SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV0419WORK01(paramBean, inputMap);
		
		/* ++++++++++ v4.04.00 修正開始 ++++++++++ */
		// 異動区分による上りマッピング作成判定
		/* ++++++++++ v4.04.00 修正完了 ++++++++++ */
		if(isSyousamaeIdoDiv(bean))
		{
			mapper.setKKSV041909SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		}
		else
		{
			mapper.setKKSV041904SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
			mapper.setKKSV041907SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		}
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		mapper.getKKSV041901SC(paramBean, outputMap);
		mapper.getKKSV041902SC(paramBean, outputMap);
		
		// サービス層における処理において業務エラーとするエラーが存在する場合
		if (!checkBusinessErr(bean, outputMap))
		{
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03902);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03902);
			return true;
		}
		
		// 引継対象機器の選択チェックボックスの表示設定
		setHktgiKikiChoiceDsp(bean);
		
		// ■ インフォメーションメッセージ設定
		// メッセージエリアにインフォメーションメッセージを表示する。
		// EKB0380--I：＜＜以下の内容で%1%が完了しました。＞＞
/* ++++++++++ v5.00.00 修正開始 ++++++++++ */
//		JCCWebCommon.setMessageInfo(this, "EKB0380--I", new String[]{"機器引継の登録"});
		JCCWebCommon.setMessageInfo(this, "EKB4390--I", new String[]{"機器引継の登録"});
/* ++++++++++ v5.00.00 修正終了 ++++++++++ */
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03903);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03903);
		
		return true;
	}
	
	/**
	 * 異動区分選択へボタン押下処理
	 * <br>
	 * @return boolean
	 */
	public boolean forwardIdoDivChoice()
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00145);
		
		return true;
	}
	
	/**
	 * お客様一覧照会へボタン押下処理
	 * <br>
	 * @return boolean
	 */
	public boolean forwardCustListShokai()
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW00101);
		
		return true;
	}
	
	/* ++++++++++ v4.04.00 修正開始 ++++++++++ */
	/**
	 * 照査前異動区分か判定します。
	 * <br>
	 * @param bean
	 * @return
	 */
	private boolean isSyousamaeIdoDiv(X31SDataBeanAccess bean)
	{
		// 顧客契約引継リスト
		X31SDataBeanAccessArray custKeiHktgiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiSubBean = custKeiHktgiList.getDataBean(0);
		
		// 異動区分
		String idoDiv = custKeiHktgiSubBean.sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE);
		
		// 異動区分が"00001"（新規契約）か"00002"（サービス追加）の場合のみマッピングする
		if (JKKCommonConst.IDO_DIV_VALUE_00001.equals(idoDiv) || JKKCommonConst.IDO_DIV_VALUE_00002.equals(idoDiv))
		{
			return true;
		}
		
		return false;
	}
	/* ++++++++++ v4.04.00 修正完了 ++++++++++ */
	
	/**
	 * 初期表示処理
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	private boolean initAction() throws Exception
	{
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 顧客契約引継リスト
		X31SDataBeanAccessArray custKeiHktgiList =  bean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccessArray hktgiSakiSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess sakiSvcKeiSubbean = hktgiSakiSvcKeiList.getDataBean(0);
		
		// INPUTサービス契約番号の初期化
		bean.sendMessage(KKW03901SFConst.INPUT_SVC_KEI_NO, X31CWebConst.DATABEAN_CLEAR);
		
		// 入力＿ＳＹＳＩＤ
		bean.sendMessageString(KKW03901SFConst.INPUT_SYSID, 
				X31CWebConst.DATABEAN_SET_VALUE,
				custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 引継先＿ＳＹＳＩＤ
		sakiSvcKeiSubbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SYSID_03,
				X31CWebConst.DATABEAN_SET_VALUE,
				custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 引継先＿サービス契約番号
		sakiSvcKeiSubbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_NO_03,
				X31CWebConst.DATABEAN_SET_VALUE,
				custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// オンライン運用日付取得
		String ope_date = JCCWebCommon.getOpeDate(this, null);
		bean.sendMessageString(KKW03901SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, ope_date);
		
		// ■ 画面項目の制御
		// リセットボタンを非活性に設定
		bean.sendMessageBoolean(KKW03901SFConst.RESET_BTN_CTL_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		
		// 2012.06.12 IT2-2012-0000780対応 処理順序を変更
		// ■ 画面項目の制御
		// 画面モードフラグ(戻る・閉じるボタン制御)を設定する。
		bean.sendMessageBoolean(KKW03901SFConst.GAMEN_MODE_FLG, X31CWebConst.DATABEAN_SET_VALUE, setGameModeFlg(bean));
		
		// ■ 遷移先画面の設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
		
		// ■ サービス呼び出し準備
		X31SDataBeanAccess[] paramBean = {bean};
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0416");
		
		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
		
		KKSV0416_KKSV0416OPDBMapper mapper = new KKSV0416_KKSV0416OPDBMapper();
		mapper.setKKSV041601SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV041602SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041603SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041604SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV041605SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041606SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		mapper.setKKSV041607SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV041608CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		/* ++++++++++ v4.01.00 追加開始 ++++++++++ */
		mapper.setKKSV041610SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		/* ++++++++++ v4.01.00 追加完了 ++++++++++ */
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		mapper.getKKSV041601SC(paramBean, outputMap);
		mapper.getKKSV041602SC(paramBean, outputMap);
		mapper.getKKSV041603SC(paramBean, outputMap);
		mapper.getKKSV041604SC(paramBean, outputMap);
		mapper.getKKSV041605SC(paramBean, outputMap);
		mapper.getKKSV041606SC(paramBean, outputMap);
		mapper.getKKSV041607SC(paramBean, outputMap);
		/* ++++++++++ v4.01.00 追加開始 ++++++++++ */
		mapper.getKKSV041610SC(paramBean, outputMap);
		/* ++++++++++ v4.01.00 追加完了 ++++++++++ */
		
		// 選択＿業務チェック＿エラー有無フラグ
		bean.sendMessageBoolean(KKW03901SFConst.CHOICE_CHK_ERR_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		
		// 引継元＿選択＿サービス契約＿インデックス
		bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_INDEX, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(0));
		
//		// ■ 有効データ件数の設定
//		setDataCnt(bean);
		
		// 2012.04.20 add 一覧チェック
		// ■ 引継元一覧の編集…サービス契約１件時のみ実行
		int hktgi_moto_svc_kei_list_cnt =  bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST).getCount();
		
		if(hktgi_moto_svc_kei_list_cnt == 1)
		{
			// 異動予約情報、業務パラメータ情報の取得
			mapper.getKKSV041608CC_2(paramBean, outputMap);
			// 引継不可チェック
			editkikiList(bean);
		}
		
		// ■ 有効データ件数の設定
		setDataCnt(bean);
		
		
		// ■ 業務エラーチェック
		// 引継先状態チェック
		String hktgi_saki_svc_kei_stat = 
			sakiSvcKeiSubbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_STAT_03, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継先のサービス契約ステータスが「"920":キャンセル済」または「"220":停止中」または「"910":解約済」の場合
		if(JKKCommonConst.SVC_KEI_STAT_920.equals(hktgi_saki_svc_kei_stat)
				|| JKKCommonConst.SVC_KEI_STAT_220.equals(hktgi_saki_svc_kei_stat)
				|| JKKCommonConst.SVC_KEI_STAT_910.equals(hktgi_saki_svc_kei_stat))
		{
			// EKB0930-NW：%1%為%2%は行えません。
			JCCWebCommon.setMessageInfo(this, "EKB0930-NW", 
					new String[]{"引継先の契約サービスの状態が、「キャンセル」「停止中」「解約済」である", "引継"});
			return true;
		}
		
		// SYSID存在チェックでエラーがある場合
		if(checkSysid(bean, outputMap, "KKSV041604SC", "KKSV041605SC") == false)
		{
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
			return true;
		}
		
		int hktgi_moto_svc_kei_list_data_cnt =
			Integer.parseInt(bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 引継元のサービス契約(有効データ件数)が１件のみの場合、選択イベントのチェックも行う。
		if(hktgi_moto_svc_kei_list_data_cnt == 1)
		{
			// 引継元＿サービス契約一覧
			X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
			X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.getDataBean(0);
			
			// 引継元＿サービス契約番号を引継元＿選択＿サービス契約番号にセット
			bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE,
					hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
			
			// サービス契約番号チェックでエラーがある場合
			// 契約状態チェックでエラーがある場合
			// 引継可能機器チェック(接続機器チェック)でエラーがある場合
			// 督促ステータスチェックでエラーがある場合
			if(checkSvcKeiNo(bean) == false
					|| checkSvcKeiStat(bean) == false
					|| checkHktgiKiki(bean) == false
					|| checkTokusokuStat(bean) == false)
			{
				// 選択＿業務チェック＿エラー有無フラグ
				bean.sendMessageBoolean(KKW03901SFConst.CHOICE_CHK_ERR_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
				
				// 画面遷移
				commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03901);
				commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03901);
				return true;
			}
		}
		
/* ++++++++++ v6.00.00 追加開始 ++++++++++ */
		bean.sendMessageString(KKW03901SFConst.EVENT_ID, X31CWebConst.DATABEAN_SET_VALUE, "");
/* ++++++++++ v6.00.00 追加終了 ++++++++++ */
		
		return true;
	}
	
	/**
	 * 顧客契約引継リスト.ポップアップモード設定値から画面モードフラグを設定します。
	 * <br>
	 * @param bean
	 * @return boolean true:戻るボタン表示, false:閉じるボタン表示
	 */
	private boolean setGameModeFlg(X31SDataBeanAccess bean)
	{

		// 遷移元画面が以下の場合は必ず「閉じる」ボタンにする
		// KKW00124 照査前登録(eo光ネット)
		// KKW00125 照査前登録(eo光電話1)
		// KKW00179 照査前登録(eo光電話2)
		// KKW00180 照査前登録(eo光テレビ)
		String screenId = JCCWebCommon.getScreenId(this);
		
		if(JKKScreenConst.SCREEN_ID_KKW00124.equals(screenId)
				|| JKKScreenConst.SCREEN_ID_KKW00125.equals(screenId)
				|| JKKScreenConst.SCREEN_ID_KKW00179.equals(screenId)
				|| JKKScreenConst.SCREEN_ID_KKW00180.equals(screenId))
		{
			// 閉じるボタンを表示する。
			return false;
		}

		/* ++++++++++ v9.00.00 修正開始 ++++++++++ */
		// 遷移元画面が異動区分選択画面の場合は「戻る」ボタンを表示する
		if(JKKScreenConst.SCREEN_ID_KKW00145.equals(screenId))
		{
			// 戻るボタンを表示する
			return true;
		}
		/* ++++++++++ v9.00.00 修正終了 ++++++++++ */
		
		// 顧客契約リスト取得
		if(  !(bean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST) == null))
		{
			// 顧客契約リスト存在時
			X31SDataBeanAccessArray custKeiHktgiList =  bean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
			X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
			
			// ポップアップモード設定値を取得
			String popupMode = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_POPUP_MODE, X31CWebConst.DATABEAN_GET_VALUE);
			
			if("1".equals(popupMode) || "2".equals(popupMode))
			{
				// "1":新規画面モード（モーダル）
				// "2":新規画面モード（モーダレス）
				// 上記設定時は閉じるボタンを表示する。
				return false;
				
			}
			else
			{
				// "0":画面遷移モード
				// 未設定、null、その他
				// 上記設定時は戻るボタンを表示する。
				return true;
			}
			
			
			
		}
		else
		{
			// 顧客契約リスト未設定時、閉じるボタンを表示する。
			return false;
			
		}
	}
	
	
	/**
	 * 引継元＿接続機器一覧の編集を行います。
	 * 
	 * @param bean
	 */
	private void editkikiList(X31SDataBeanAccess bean)
	{
		// 引継元＿接続機器一覧の取得
		X31SDataBeanAccessArray hktgiMotoKikiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST);
		// 引継元＿サービス契約一覧の取得
		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
		// 引継先＿サービス契約一覧のBeanを取得
		X31SDataBeanAccess sakiSvcKeiSubbean = bean.getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST).getDataBean(0);
		// 引継元＿サービスコード
		X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.getDataBean(0);
		String hktgi_moto_svc_cd = hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		// 引継先＿サービスコード
		String hktgi_saki_svc_cd = sakiSvcKeiSubbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SVC_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継元＿サービス契約一覧が１件のみの場合
		if(hktgiMotoSvcKeiList.getCount() == 1)
		{
			// 【引継先の契約サービス】が、不一致の場合
			if(!hktgi_saki_svc_cd.equals(hktgi_moto_svc_cd))
			{
				// 引継元機器提供サービス契約一覧をリセットして処理終了する。
				hktgiMotoKikiList.clearArray();

				return;
			}
		}
		
		// 引継不可機器のチェック
		if(hktgiMotoKikiList.getCount() == 0)
		{
			// 取得結果０件なら処理終了
			return;
		}
		
		// 2012.05.12 選択ボタン押下時対応
		// 画面一覧で選択した引継元＿サービス契約を取得する
		String index = bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccess hktgiMotoSvcKeiBean_select = hktgiMotoSvcKeiList.getDataBean(Integer.parseInt(index));
		// 引継元＿サービス契約からサービスコードを取得する
		String hktgi_moto_svc_cd_select = hktgiMotoSvcKeiBean_select.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 最大件数を取得
		int maxCount = hktgiMotoKikiList.getCount();
				
		// 引継元機器一覧のループチェック
//		for(int i =0; i < hktgiMotoKikiList.getCount(); i++)
		for(int i =maxCount -1; i >= 0; i--)
		{
			// 一覧から１件ずつ取得
			X31SDataBeanAccess subbean = hktgiMotoKikiList.getDataBean(i);
			
			// 引継先＿返品日
			String hmpin_kuraire_ymd = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_RTN_YMD_02, X31CWebConst.DATABEAN_GET_VALUE);
			// 引継元＿機器提供サービス契約ステータス
			String kktk_svc_kei_stat = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_STAT_02, X31CWebConst.DATABEAN_GET_VALUE);
			// 引継元＿機器出荷判定区分(配送ステータス)
			String haiso_stat = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_SYUKKA_DIV_02, X31CWebConst.DATABEAN_GET_VALUE);
			// 引継元＿機器契約区分
			String kktk_sbt_cd = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_DIV_02, X31CWebConst.DATABEAN_GET_VALUE);
			// 引継元＿契約引継発生年月日
			String kktk_svc_kei_hkhasymd = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_HKHASYMD_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// a.返却済チェック…引継先＿返品日に日付が設定されていれば一覧から削除
			boolean hktgiCheck_a = (!(hmpin_kuraire_ymd == null || "".equals(hmpin_kuraire_ymd)));
			
			// b.機器変更中チェック…接続元＿状態が "110":契約変更中の場合
			boolean hktgiCheck_b = ("110".equals(kktk_svc_kei_stat));
			
			// c.修理中チェック
			boolean hktgiCheck_c = checkSyuri(subbean);
			
			// d.未出荷チェック…配送ステータスが"001:受付済"、または、"002:指示済"の場合
			boolean hktgiCheck_d = ("001".equals(haiso_stat) || "002".equals(haiso_stat));
			
			// e.接続機器状態チェック…接続元＿状態が "920":キャンセル済の場合
			boolean hktgiCheck_e = ("920".equals(kktk_svc_kei_stat));
			
			// f.接続元・接続先のサービスコードチェック
			boolean hktgiCheck_f = (!hktgi_saki_svc_cd.equals(hktgi_moto_svc_cd_select));
			
			// g.引継対象外機器チェック１（修理交換グループ）
			boolean hktgiCheck_g = checkKoukan(subbean, bean);
			
			// h.引継対象外機器チェック２（マンションタイプ通信機器）
			/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
//			boolean hktgiCheck_h = checkMansion(subbean);
			boolean hktgiCheck_h = checkMansion(bean, subbean);
			/* ++++++++++ v4.01.00 修正完了 ++++++++++ */
			
			// 上記チェックのうち１つでも該当するかチェック
			if(hktgiCheck_a || hktgiCheck_b || hktgiCheck_c || hktgiCheck_d
					|| hktgiCheck_e || hktgiCheck_f || hktgiCheck_g || hktgiCheck_h)
//			if(hktgiCheck_a || hktgiCheck_b || hktgiCheck_c || hktgiCheck_d
//					|| hktgiCheck_e || hktgiCheck_g || hktgiCheck_h)
			{
				// 対象行を引継元＿接続機器一覧から削除する
				hktgiMotoKikiList.removeDataBean(i);
				
				continue;
			}
			
			// 機器提供種別コードが"03"(持込)の場合、かつ、
			// 機器提供サービス契約引継発生年月日の値が""(空文字)でない場合、
			if("03".equals(kktk_sbt_cd) && (!"".equals(kktk_svc_kei_hkhasymd)))
			{
				// 引継元＿機器契約区分名に、"引継"を設定する。
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_DIV_NM_02, X31CWebConst.DATABEAN_SET_VALUE, "引継");
			}
		}
	}

	/**
	 * 物流保全一意照会取得結果を確認します。
	 * @param bean
	 * @return true:一覧表示なし false:一覧表示あり
	 */
	private boolean checkSyuri(X31SDataBeanAccess bean)
	{
		// 引継＿物流保全番号
		String btryhozn_no = bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_BTRYHOZN_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		// 引継元＿物流保全ステータス
		String btryhozn_stat = bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_BTRYHOZN_STAT_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継＿物流保全番号が未設定の場合、falseを返す
		if(btryhozn_no == null || "".equals(btryhozn_no))
		{
			return false;
		}
		
		// 引継元＿物流保全ステータスが"004":完了済みの場合、表示
		if("004".equals(btryhozn_stat))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	
	/**
	 * 引継元＿修理交換グループ種別コードと業務パラメータ設定値を比較します。
	 * @param bean
	 * @return true:一覧表示なし false:一覧表示あり
	 */
	private boolean checkKoukan(X31SDataBeanAccess subbean, X31SDataBeanAccess bean)
	{
		// 引継元＿修理交換グループ種別コードを格納する。
		String shuri_kokan_grp_sbt_cd = subbean.sendMessageString(KKW03901SFConst.HKTGI_SHURI_KOKAN_GRP_SBT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		
		// 業務パラメータ一覧を取得し、配列に格納する。
		String kokanString = bean.sendMessageString(KKW03901SFConst.GYOMU_PARAM_VALUE, X31CWebConst.DATABEAN_GET_VALUE);
		String[] kokanList = bean.sendMessageString(KKW03901SFConst.GYOMU_PARAM_VALUE, X31CWebConst.DATABEAN_GET_VALUE).split(",");
		
		for(int i =0; i < kokanList.length; i++)
		{
			// 業務パラメータから１件取得する
			String param_value = kokanList[i];
			
			// 引継元＿修理交換グループ種別コードと業務パラメータを比較する。
			if(param_value.equals(shuri_kokan_grp_sbt_cd))
			{
				// 一致する場合は false を返す。
				return false;
			}
		}
		// １件も該当しない場合は false を返す。
		return true;
	}
	

	/**
	 * マンション物件かを確認します。
	 * @param subbean
	 * @return boolean true:一覧表示しない、false:一覧表示する。
	 */
	private boolean checkMansion(X31SDataBeanAccess bean, X31SDataBeanAccess subbean)
	{
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
		// 引継対象機器がC012:ONUの場合はチェック不要として処理終了
		String hktgi_moto_kktk_svc_cd = 
			subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KKTK_SVC_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(KKTK_SVC_CD_ONU.equals(hktgi_moto_kktk_svc_cd))
		{
			return false;
		}
		
		// 引継対象機器の宅内機器型式コード
		String taknkiki_model_cd_hktgi = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_MDL_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		// マンション通信機器型式一覧を取得し、型番が一致すれば画面表示する。
		X31SDataBeanAccessArray mansion_kiki_model_list = bean.getDataBeanArray(KKW03901SFConst.MANSION_KIKI_MODEL_LIST);
		
		for(int i=0; i < mansion_kiki_model_list.getCount(); i++ )
		{
			// マンション通信機器型式一覧から１件取得
			X31SDataBeanAccess mansion_list_sub = mansion_kiki_model_list.getDataBean(i);
			
			String taknkiki_model_cd_mansion = 
				mansion_list_sub.sendMessageString(KKW03901SFConst.TAKNKIKI_MODEL_CD_07, X31CWebConst.DATABEAN_GET_VALUE);
			
			if(taknkiki_model_cd_mansion.equals(taknkiki_model_cd_hktgi))
			{
				// 一致した場合、画面表示する。
				return false;
			}
		}
		
		return true;
		/* ++++++++++ v4.01.00 修正完了 ++++++++++ */
	}
	
	
	/**
	 * SYSID存在チェックを行う
	 * <br>
	 * SYSIDが入力されている場合にチェックを行う。<br>
	 * 入力されたSYSIDがお客様テーブルに存在しない場合、
	 * 入力されたSYSIDがサービス契約テーブルに存在しない場合、
	 * エラーメッセージを設定し、falseを返却する。
	 * 
	 * @param bean
	 * @param outputMap
	 * @param custKey
	 * @param svcKeiKey
	 * @return boolean
	 */
	private boolean checkSysid(X31SDataBeanAccess bean, HashMap outputMap, String custKey, String svcKeiKey)
	{
		// 入力＿ＳＹＳＩＤ
		String input_sysid = bean.sendMessageString(KKW03901SFConst.INPUT_SYSID,  X31CWebConst.DATABEAN_GET_VALUE);
		
		// SYSIDが入力されている場合にチェックを行う
		if (!"".equals(input_sysid))
		{
			HashMap parentCustMap = null;
			if(outputMap.containsKey(custKey))
			{
				parentCustMap = (HashMap)outputMap.get(custKey);
			}
			
			if(parentCustMap.containsKey("ECK0011A010CBSMsg1List"))
			{
				ArrayList childList = (ArrayList)parentCustMap.get("ECK0011A010CBSMsg1List");
				
				// お客様テーブルに存在しない場合
				if(childList.size() == 0)
				{
					// EKB0300-KW：%1%に該当の%2%が存在しません。
					/* ++++++++++ v4.02.00 修正開始 ++++++++++ */
//					JCCWebCommon.setMessageInfo(this, "EKB0300-KW", new String[]{"お客様", "SYSID"}, "input_sysid");
					JCCWebCommon.setMessageInfo(this, "EKB0300-KW", new String[]{"お客様", "ＳＹＳＩＤ"}, "input_sysid");
					/* ++++++++++ v4.02.00 修正完了 ++++++++++ */
					return false;
				}
			}
			
			HashMap parentSvcKeiMap = null;
			if(outputMap.containsKey(svcKeiKey))
			{
				parentSvcKeiMap = (HashMap)outputMap.get(svcKeiKey);
			}
			
			if(parentSvcKeiMap.containsKey("EKK0081B006CBSMsg1List"))
			{
				ArrayList childList = (ArrayList)parentSvcKeiMap.get("EKK0081B006CBSMsg1List");
				
				// サービス契約テーブルに存在しない場合
				if(childList.size() == 0)
				{
					/* ++++++++++ v4.00.00 修正開始 ++++++++++ */
					// EKB0300-KW：%1%に該当の%2%が存在しません。
					JCCWebCommon.setMessageInfo(this, "EKB0300-KW", new String[]{"ＳＹＳＩＤ", "契約サービス"}, "input_sysid");
					/* ++++++++++ v4.00.00 修正終了 ++++++++++ */
					return false;
				}
			}
		}
		return true;
	}
	
	/**
	 * サービス契約番号存在チェックを行う
	 * <br>
	 * サービス契約番号が入力されている場合にチェックを行う。<br>
	 * 入力されたサービス契約番号がサービス契約テーブルに存在しない場合
	 * エラーメッセージを設定し、falseを返却する。
	 * 
	 * @param bean
	 * @param outputMap
	 * @return boolean
	 */
	private boolean checkSvcKeiNo(X31SDataBeanAccess bean, HashMap outputMap)
	{
		// 入力＿サービス契約番号
		String input_svc_kei_no = bean.sendMessageString(KKW03901SFConst.INPUT_SVC_KEI_NO,  X31CWebConst.DATABEAN_GET_VALUE);
		
		// サービス契約番号が入力されている場合にチェックを行う
		if (!"".equals(input_svc_kei_no))
		{
			HashMap parentMap = null;
			if(outputMap.containsKey("KKSV041701SC"))
			{
				parentMap = (HashMap)outputMap.get("KKSV041701SC");
			}
			
			if(parentMap.containsKey("EKK0081A010CBSMsg1List"))
			{
				ArrayList childList = (ArrayList)parentMap.get("EKK0081A010CBSMsg1List");
				
				// サービス契約テーブルに存在しない場合
				if(childList.size() == 0)
				{
					// EKB0300-KW：%1%に該当の%2%が存在しません。
					/* ++++++++++ v4.02.00 修正開始 ++++++++++ */
//					JCCWebCommon.setMessageInfo(this, "EKB0300-KW", new String[]{"契約サービス情報", "契約サービス番号"}, "input_svc_kei_no");
					JCCWebCommon.setMessageInfo(this, "EKB0300-KW", new String[]{"サービス契約", "お客さまＩＤ"}, "input_svc_kei_no");
					/* ++++++++++ v4.02.00 修正完了 ++++++++++ */
					return false;
				}
			}
		}
		return true;
	}
	
	/**
	 * サービス契約番号チェックを行う
	 * <br>
	 * ラジオボタンで選択した、引継元のサービス契約番号が、引継先のサービス契約番号と同一の場合、
	 * エラーメッセージを設定し、falseを返却する。
	 * 
	 * @param bean
	 * @return boolean
	 */
	private boolean checkSvcKeiNo(X31SDataBeanAccess bean)
	{
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccessArray hktgiSakiSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess hktgiSakiSvcKeiBean = hktgiSakiSvcKeiList.getDataBean(0);
		
		// 引継元＿サービス契約一覧から選択されたサービス契約のBeanを取得
		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
		String index = bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.getDataBean(Integer.parseInt(index));
		
		String hktgi_moto_svc_kei_no = 
				hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		String hktgi_saki_svc_kei_no = 
				hktgiSakiSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ラジオボタンで選択した、引継元のサービス契約番号が、引継先のサービス契約番号と同一の場合、エラー。
		if(hktgi_moto_svc_kei_no.equals(hktgi_saki_svc_kei_no))
		{
			// EKB0780-KW：%1%が%2%場合は%3%は行えません。
			/* ++++++++++ v4.02.00 修正開始 ++++++++++ */
//			JCCWebCommon.setMessageInfo(this, "EKB0780-KW", new String[]{"引継元契約サービス番号と引継先契約サービス番号", "同一の", "引継"});
			JCCWebCommon.setMessageInfo(this, "EKB0780-KW", new String[]{"引継元お客さまＩＤと引継先お客さまＩＤ", "同一の", "引継"});
			/* ++++++++++ v4.02.00 修正完了 ++++++++++ */
			return false;
		}
		
		return true;
	}
	
	/**
	 * 契約状態チェックを行う
	 * <br>
	 * 選択した引継元のサービス契約ステータスが「"920":キャンセル済」または「"910":解約済」でない場合
	 * または、未来日解約が設定されていない場合
	 * エラーメッセージを設定し、falseを返却する。
	 * 
	 * @param bean
	 * @return boolean
	 */
	private boolean checkSvcKeiStat(X31SDataBeanAccess bean)
	{
		
		// 引継元＿サービス契約一覧から選択されたサービス契約のBeanを取得
		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
		String index = bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.getDataBean(Integer.parseInt(index));
		
		String hktgi_moto_svc_kei_stat = 
				hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_STAT_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 処理結果判定( true:引継可、false:引継不可 )
		boolean checkResult = false;
		
		
		// 選択した引継元のサービス契約ステータスが「"920":キャンセル済」または「"910":解約済」でない場合
		if(JKKCommonConst.SVC_KEI_STAT_920.equals(hktgi_moto_svc_kei_stat) ||
				JKKCommonConst.SVC_KEI_STAT_910.equals(hktgi_moto_svc_kei_stat))
		{
			checkResult = true;
		}
		else
		{
			// 異動予約一覧照会リストを取得
			X31SDataBeanAccessArray ekk1681b001cbsmsg1list = bean.getDataBeanArray(KKW03901SFConst.EKK1681B001CBSMSG1LIST);
			
			// 件数を取得し件数分ループ処理を行う
			int count = 0;
			count = ekk1681b001cbsmsg1list.getCount();
			
			if(count == 0)
			{
				// 対象レコードなし
				checkResult = false;
			}
			else
			{
				// オンラインの運用日付をセットする
				String opeymd = JCCWebCommon.getOpeDate(this, null);
				
				// 件数分ループ
				for(int i=0; i < count; i++ )
				{
					// 一覧から１件分取得
					X31SDataBeanAccess subbean = ekk1681b001cbsmsg1list.getDataBean(i);
					
					// 予約適用年月日を取得する
					String rcv_aply_ymd = subbean.sendMessageString(KKW03901SFConst.RSV_APLY_YMD_06, X31CWebConst.DATABEAN_GET_VALUE);
					
					// 予約適用年月日が未設定なら未来日解約と判断できないため無視
					if("".equals(rcv_aply_ymd) && rcv_aply_ymd == null)
					{
						continue;
					}
					else
					{
						// 予約適用日＞＝運用日付（未来日）チェック
						if( Integer.parseInt(rcv_aply_ymd) <= Integer.parseInt(opeymd))
						{
							// 異動予約詳細コードが "007":サービス解約、または "022":サービス撤去解約 の場合
							String ido_rsv_dtl_cd = subbean.sendMessageString(KKW03901SFConst.IDO_RSV_DTL_CD_06, X31CWebConst.DATABEAN_GET_VALUE);
							
							if ("007".equals(ido_rsv_dtl_cd) || ("022").equals(ido_rsv_dtl_cd))
							{
								checkResult = true;
								break;
							}
						}
						else
						{
							continue;
						}
					}
				}
			}
		}
		
		// 処理結果判定
		if(!checkResult)
		{
			// EKB0930-NW：%1%為%2%は行えません。
			JCCWebCommon.setMessageInfo(this, "EKB0930-NW", new String[]{"選択した契約が解約状態では無い", "引継"});
			return false;
		}
		
		return true;
	}
	
	/**
	 * 引継可能機器チェック(接続機器チェック)を行う
	 * <br>
	 * 引継元の接続機器一覧に、引継ぎ可能な接続機器（EKK0341B012:機器提供サービス契約一覧照会(接続機器情報)明細のリスト）が存在しない場合、
	 * または、引継不可の機器であるため、引継元の接続機器一覧に表示する接続機器が存在しない場合、
	 * エラーメッセージを設定し、falseを返却する。
	 * 
	 * @param bean
	 * @return boolean
	 */
	private boolean checkHktgiKiki(X31SDataBeanAccess bean)
	{
		
		// 引継元＿接続機器一覧＿有効データ件数
		int hktgi_moto_kiki_list_data_cnt =
				Integer.parseInt(bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 引継ぎ可能な接続機器（EKK0341B012:機器提供サービス契約一覧照会(接続機器情報)明細のリスト）が存在しない場合
		// 引継不可の機器であるため、引継元の接続機器一覧に表示する接続機器が存在しない場合
		if(hktgi_moto_kiki_list_data_cnt == 0)
		{
			// EKB0930-NW：%1%為%2%は行えません。
			JCCWebCommon.setMessageInfo(this, "EKB0930-NW", new String[]{"選択した契約に引継可能な機器が存在しない", "引継"});
			return false;
		}
		
		return true;
	}
	
	/**
	 * 督促ステータスチェックを行う
	 * <br>
	 * 引継元の督促ステータスが「"00":督促なし」、「"15":強制解約予告済」以外の場合
	 * エラーメッセージを設定し、falseを返却する。
	 * 
	 * @param bean
	 * @return boolean
	 */
	private boolean checkTokusokuStat(X31SDataBeanAccess bean)
	{
		
		// 引継元＿サービス契約一覧から選択されたサービス契約のBeanを取得
		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
		String index = bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.getDataBean(Integer.parseInt(index));
		
		String hktgi_moto_tokusoku_stat = 
				hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_TOKUSOKU_STAT_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継元の督促ステータスが督促テーブルから取得できなかったときは督促状態ではないためエラーとしない
		if(hktgi_moto_tokusoku_stat == null || "".equals(hktgi_moto_tokusoku_stat))
		{
			return true;
		}
		
		// 引継元の督促ステータスが「"00":督促なし」、「"15":強制解約予告済」以外の場合
		// 巻取対応:督促ステータスが"20"以上の場合はエラーメッセージ表示
//		if(!("00".equals(hktgi_moto_tokusoku_stat) || "15".equals(hktgi_moto_tokusoku_stat)))
		if(20 <= Integer.parseInt(hktgi_moto_tokusoku_stat))
		{
			// EKB0930-NW：%1%為%2%は行えません。
			JCCWebCommon.setMessageInfo(this, "EKB0930-NW", new String[]{"引継元が督促状態の", "引継"});
			return false;
		}
		
		return true;
	}
	
	/**
	 * 関連チェックを行います。
	 * <br>
	 * 関連チェックエラーの場合、
	 * エラーメッセージを設定し、falseを返却する。
	 * 
	 * @param bean
	 * @return 処理の成否
	 */
	private boolean checkKanrenErr(X31SDataBeanAccess bean)
	{
		boolean kanrenCheckFlg = true;
		
		// 引継元＿接続機器一覧
		X31SDataBeanAccessArray hktgiMotoKikiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST);
		
		// 引継元＿接続機器一覧＿有効データ件数
		int hktgi_moto_kiki_list_data_cnt =
				Integer.parseInt(bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		
		for(int i = 0; i < hktgi_moto_kiki_list_data_cnt; i++)
		{
			X31SDataBeanAccess hktgiMotoKikiBean = hktgiMotoKikiList.getDataBean(i);
			
			boolean hktgi_moto_kiki_choice = 
					hktgiMotoKikiBean.sendMessageBoolean(KKW03901SFConst.HKTGI_MOTO_KIKI_CHOICE_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 引継元機器の選択チェックボックスが選択されている場合
			if(hktgi_moto_kiki_choice)
			{
				// @親契約チェック
				// 引継元の親契約識別コード
				String hktgi_moto_oya_kei_skbt_cd = 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_OYA_KEI_SKBT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
				
				// 引継元の親契約識別コードが、"01":サービス契約、または、"02":サービス契約回線内訳 以外の場合
				if(!("01".equals(hktgi_moto_oya_kei_skbt_cd) || "02".equals(hktgi_moto_oya_kei_skbt_cd)))
				{
					kanrenCheckFlg = false;
					
					// EKB0930-NW：%1%為%2%は行えません。
					JCCWebCommon.setMessageInfo(this, "EKB0930-NW", new String[]{"引継対象外機器である", "引継"}, "hktgi_moto_kiki_choice" + i);
				}
			}
		}
		
		return kanrenCheckFlg;
	}
	
	/**
	 * 業務エラーのチェックを行います。
	 * <br>
	 * 業務エラーチェックでエラーが存在する場合、エラーメッセージを設定し、falseを返却する。
	 * 
	 * @param bean
	 * @param outputMap
	 * @return 処理の成否
	 */
	private boolean checkBusinessErr(X31SDataBeanAccess bean, HashMap<String, HashMap<String, Object>> outputMap)
	{
		boolean checkFlg = true;
		
		boolean onu_flg = false;
		boolean vonu_flg = false;
		
		// 引継元＿接続機器一覧
		X31SDataBeanAccessArray hktgiMotoKikiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST);
		
		// 引継元＿接続機器一覧＿有効データ件数
		int hktgi_moto_kiki_list_data_cnt =
				Integer.parseInt(bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		
		for(int i = 0; i < hktgi_moto_kiki_list_data_cnt; i++)
		{
			X31SDataBeanAccess hktgiMotoKikiBean = hktgiMotoKikiList.getDataBean(i);
			
			boolean hktgi_moto_kiki_choice = 
					hktgiMotoKikiBean.sendMessageBoolean(KKW03901SFConst.HKTGI_MOTO_KIKI_CHOICE_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 引継元機器の選択チェックボックスが選択されている場合
			if(hktgi_moto_kiki_choice)
			{
				String hktgi_moto_kktk_svc_cd = 
					hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KKTK_SVC_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
				
				if("C012".equals(hktgi_moto_kktk_svc_cd))
				{
					onu_flg = true;
				}
				else if("C013".equals(hktgi_moto_kktk_svc_cd))
				{
					vonu_flg = true;
				}
			}
		}
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccessArray hktgiSakiSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess hktgiSakiSvcKeiBean = hktgiSakiSvcKeiList.getDataBean(0);
		
		// ■ 接続機器情報チェック（ＯＮＵ機器）
		// 引継元選択チェックボックスで選択された接続機器に１つでも、ＯＮＵ機器（引継元の機器提供サービスコードが"C012"）が存在する場合、
		// 引継先の設備区分と、引継元のＰＯＮ識別のチェックを行う。
		if(onu_flg)
		{
			// 引継元＿サービス契約一覧から選択されたサービス契約のBeanを取得
			X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
			String index = bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
			X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.getDataBean(Integer.parseInt(index));
			
			// 料金コースPON条件コード
			String hktgi_saki_pcrs_pon_joken_cd = 
					hktgiSakiSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_PCRS_PON_JOKEN_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			
			// PON種別コード
			String pon_sbt_cd = 
					hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_PON_SBT_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 料金コースPON条件コードが、"3":E-PONのみ の場合
			/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
//			if ("1".equals(hktgi_saki_pcrs_pon_joken_cd) || "3".equals(hktgi_saki_pcrs_pon_joken_cd))
			if ("3".equals(hktgi_saki_pcrs_pon_joken_cd))
			/* ++++++++++ v4.01.00 修正完了 ++++++++++ */
			{
				// PON種別コードが、"2":GE-PON または "3":10GE-PON の場合
// ANK-2612-00-00 MOD START
//				if ("2".equals(pon_sbt_cd))
				if (JKKStrConst.CD00211_GE_PON.equals(pon_sbt_cd) || JKKStrConst.CD00211_10GE_PON.equals(pon_sbt_cd))
// ANK-2612-00-00 MOD END
				{
					checkFlg = false;
					
					// EKB0290-JW：%1%が%2%の場合は%3%できません。
					JCCWebCommon.setMessageInfo(this, "EKB0290-JW", new String[]{"引継対象機器", "ＯＮＵ機器", "引継"});
				}
			}
			// 料金コースPON条件コードが、"2":GE-PON/10GE-PON併用 の場合
			else if ("2".equals(hktgi_saki_pcrs_pon_joken_cd))
			{
				// PON種別コードが、"1":E-PON の場合
				if ("1".equals(pon_sbt_cd))
				{
					checkFlg = false;
					
					// EKB0290-JW：%1%が%2%の場合は%3%できません。
					JCCWebCommon.setMessageInfo(this, "EKB0290-JW", new String[]{"引継対象機器", "ＯＮＵ機器", "引継"});
				}
			}
// ANK-2612-00-00 ADD START
			// 料金コースPON条件コードが、"4":10GE-PONのみ の場合
			else if (JKKStrConst.CD00820_10GE_PON_ONLY.equals(hktgi_saki_pcrs_pon_joken_cd))
			{
				// PON種別コードが、"1":E-PON または "2":GE-PON の場合
				if (JKKStrConst.CD00211_E_PON.equals(pon_sbt_cd) || JKKStrConst.CD00211_GE_PON.equals(pon_sbt_cd))
				{
					checkFlg = false;
					
					// EKB0290-JW：%1%が%2%の場合は%3%できません。
					JCCWebCommon.setMessageInfo(this, "EKB0290-JW", new String[]{"引継対象機器", "ＯＮＵ機器", "引継"});
				}
			}
// ANK-2612-00-00 ADD END
		}
		
		// ■ 接続機器情報チェック（Ｖ−ＯＮＵ機器）
		// 引継元選択チェックボックスで選択された接続機器に１つでも、Ｖ−ＯＮＵ機器（引継元の機器提供サービスコードが"C013"）が存在する場合は、
		// 引継先のＴＶコースグループと、引継元機器のＢＳＰＴ有無のチェックを行う。
		if(vonu_flg)
		{
			// TVコースグループコード
			String hktgi_saki_tv_course_grp_cd = 
					hktgiSakiSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_TV_COURSE_GRP_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			
			// TVコースグループコードが、"0":SD の場合
			if ("0".equals(hktgi_saki_tv_course_grp_cd))
			{
				// 2012.04.23 追加実装
				// 引継元機器のＢＳＰＴ有無(ＶＯＮＵＢＳパススルー可否)が""ＢＳＰＴ有の場合の
				// 機器が一件でもある場合、エラーとする。
				for(int i = 0; i < hktgi_moto_kiki_list_data_cnt; i++)
				{
					// １件取得
					X31SDataBeanAccess hktgiMotoKikiBean = hktgiMotoKikiList.getDataBean(i);
					// ＶＯＮＵＢＳパススルー可否取得
					String hktgi_vonu_bspt_kh = hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_VONU_BSPT_KH_02, X31CWebConst.DATABEAN_GET_VALUE);
					// 画面チェックの取得
					boolean hktgi_moto_kiki_choice = 
						hktgiMotoKikiBean.sendMessageBoolean(KKW03901SFConst.HKTGI_MOTO_KIKI_CHOICE_02, X31CWebConst.DATABEAN_GET_VALUE);
					
					// ＢＳＰＴ有の場合、処理終了する
					if("1".equals(hktgi_vonu_bspt_kh) && hktgi_moto_kiki_choice)
					{
						checkFlg = false;
						
						// EKB0930-NW：%1%為%2%は行えません。
						JCCWebCommon.setMessageInfo(this, "EKB0930-NW", new String[]{"ＢＳＰＴ有のＶ−ＯＮＵ機器の", "引継先のTVコースには引継"});
						// for ループを抜ける
						break;
					}
				}
				// 2012.04.23 追加実装
			}
		}
		
		// ■ 契約状態チェック
		String hktgi_moto_svc_kei_stat = "";
		HashMap<String, Object> parentMap = (HashMap<String, Object>)outputMap.get("KKSV041908SC");
		if(parentMap.containsKey("EKK0081B006CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("EKK0081B006CBSMsg1List");
			if(0 < childList.size())
			{
				HashMap childMap = (HashMap)childList.get(0);
				hktgi_moto_svc_kei_stat = (String)childMap.get("svc_kei_stat");
			}
		}
		
		for(int i = 0; i < hktgi_moto_kiki_list_data_cnt; i++)
		{
			X31SDataBeanAccess hktgiMotoKikiBean = hktgiMotoKikiList.getDataBean(i);
			
			boolean hktgi_moto_kiki_choice = 
					hktgiMotoKikiBean.sendMessageBoolean(KKW03901SFConst.HKTGI_MOTO_KIKI_CHOICE_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 引継元機器の選択チェックボックスが選択されている場合
			if(hktgi_moto_kiki_choice)
			{
				// 引継元の機器提供種別コード
				String hktgi_moto_kiki_kei_div = 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_DIV_02, X31CWebConst.DATABEAN_GET_VALUE);
				
				// 機器契約区分が”買取”（引継元の機器提供種別コードが"01":買取）で
				// 契約状態が”キャンセル済”（引継元のサービス契約ステータスが"920":キャンセル済）の場合
				if("01".equals(hktgi_moto_kiki_kei_div) && JKKCommonConst.SVC_KEI_STAT_920.equals(hktgi_moto_svc_kei_stat))
				{
					checkFlg = false;
					
					// EKB0290-JW：%1%が%2%の場合は%3%できません。
					JCCWebCommon.setMessageInfo(this, "EKB0290-JW", 
							new String[]{"対象の機器契約区分が”買取”で、契約状態", "”キャンセル済”", "引継登録"}, "hktgi_moto_kiki_choice" + i);
				}
			}
		}
		
		return checkFlg;
	}
	
	/**
	 * 引継元＿サービス契約一覧、引継元＿接続機器一覧、引継先＿接続機器一覧の有効データ件数の設定を行う。
	 * <br>
	 * 
	 * @param bean
	 */
	private void setDataCnt(X31SDataBeanAccess bean)
	{
		
		// 引継元＿サービス契約一覧
		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
		// 引継元＿接続機器一覧
		X31SDataBeanAccessArray hktgiMotoKikiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST);
		// 引継先＿接続機器一覧
		X31SDataBeanAccessArray hktgiSakiKikiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_KIKI_LIST);
		
		// 有効データ件数の設定
		bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST_DATA_CNT, 
				X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(hktgiMotoSvcKeiList.getCount()));
		
		bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST_DATA_CNT, 
				X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(hktgiMotoKikiList.getCount()));
		
		bean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_LIST_DATA_CNT, 
				X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(hktgiSakiKikiList.getCount()));
		
		// 引継元＿サービス契約一覧のデータ件数が３件となるまで、空のDataBeanを追加
		for(int i = hktgiMotoSvcKeiList.getCount(); i < HKTGI_MOTO_SVC_KEI_LIST_MIN_LENGTH; i++)
		{
			X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.addDataBean();
			
			// 引継元＿契約＿スタイル
			if(i % 2 == 0)
			{
				hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_STYLE_01, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}
			else
			{
				hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_STYLE_01, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
		}
		
		// 引継元＿接続機器一覧のデータ件数が３件となるまで、空のDataBeanを追加
		for(int i = hktgiMotoKikiList.getCount(); i < HKTGI_MOTO_KIKI_LIST_MIN_LENGTH; i++)
		{
			X31SDataBeanAccess hktgiMotoKikiBean = hktgiMotoKikiList.addDataBean();
			
//			// 引継元＿機器＿スタイル
//			if(i % 2 == 0)
//			{
//				hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "odd");
//			}
//			else
//			{
//				hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "even");
//			}
		}
		
		// 【巻取案件対応】
		// 空のDatabeanを追加した引継元＿接続機器一覧に背景色を設定する。
		int hktgi_moto_kiki_list_length = hktgiMotoKikiList.getCount();
		
		for(int i = 0; i < hktgi_moto_kiki_list_length; i++)
		{
			X31SDataBeanAccess hktgiMotoKikiBean = hktgiMotoKikiList.getDataBean(i);
			
			// 引継元＿機器＿スタイル
			if(i % 2 == 0)
			{
				hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}
			else
			{
				hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
		}
		// 【巻取案件対応】
		
		// 引継先＿接続機器一覧のデータ件数が６件となるまで、空のDataBeanを追加
		for(int i = hktgiSakiKikiList.getCount(); i < HKTGI_SAKI_KIKI_LIST_MIN_LENGTH; i++)
		{
			X31SDataBeanAccess hktgiSakiKikiBean = hktgiSakiKikiList.addDataBean();
			// 引継先＿機器＿スタイル
			if(i % 2 == 0)
			{
				hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_STYLE_04, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}
			else
			{
				hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_STYLE_04, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
		}
		
	}
	
	/**
	 * 引継対象機器の表示設定(機器引継確認画面表示用)を行う。
	 * <br>
	 * 引継対象機器を引継先の接続機器一覧に表示します。
	 * 
	 * @param bean
	 */
	private void setHktgiKiki(X31SDataBeanAccess bean)
	{
		
		// 引継元＿接続機器一覧
		X31SDataBeanAccessArray hktgiMotoKikiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST);
		// 引継先＿接続機器一覧
		X31SDataBeanAccessArray hktgiSakiKikiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_KIKI_LIST);
		// 引継先＿接続機器一覧（機器引継確認）
		X31SDataBeanAccessArray hktgiSakiKikiCfmList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_KIKI_CFM_LIST);
		
		// 引継先＿接続機器一覧（機器引継確認）のクリア
		hktgiSakiKikiCfmList.clearArray();
		
		// 引継元＿接続機器一覧＿有効データ件数
		int hktgi_moto_kiki_list_data_cnt =
				Integer.parseInt(bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		
		for(int i = 0; i < hktgi_moto_kiki_list_data_cnt; i++)
		{
			X31SDataBeanAccess hktgiMotoKikiBean = hktgiMotoKikiList.getDataBean(i);
			
			boolean hktgi_moto_kiki_choice = 
					hktgiMotoKikiBean.sendMessageBoolean(KKW03901SFConst.HKTGI_MOTO_KIKI_CHOICE_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 引継元機器の選択チェックボックスが選択されている場合
			if(hktgi_moto_kiki_choice)
			{
				X31SDataBeanAccess hktgiSakiKikiCfmBean = hktgiSakiKikiCfmList.addDataBean();
				
				// 引継先＿接続機器一覧（機器引継確認）に引継元対象機器Beanの情報を転記
				
				// 引継先＿引継対象
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_TAISHO_04, X31CWebConst.DATABEAN_SET_VALUE, "○");
				
				// 引継先＿機器契約区分名 ← 引継元＿機器契約区分名
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_KEI_DIV_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_DIV_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先＿商品名 ← 引継元＿商品名
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_GDS_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_GDS_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先＿型式 ← 引継元＿型式
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_MDL_04, X31CWebConst.DATABEAN_SET_VALUE, 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_MDL_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先＿製造番号 ← 引継元＿製造番号
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SEIZO_NO_04, X31CWebConst.DATABEAN_SET_VALUE, 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SEIZO_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先＿販売種別名 ← 引継元＿販売種別名
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_HAMBAI_SBT_CD_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_HAMBAI_SBT_CD_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先＿契約日 ← 引継元＿契約日
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KEI_YMD_04, X31CWebConst.DATABEAN_SET_VALUE, 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KEI_YMD_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先＿解約日 ← 引継元＿解約日
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_DSL_YMD_04, X31CWebConst.DATABEAN_SET_VALUE, 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_DSL_YMD_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先＿返却日 ← 引継元＿返却日
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_RTN_YMD_04, X31CWebConst.DATABEAN_SET_VALUE, 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_RTN_YMD_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先＿状態名 ← 引継元＿状態名
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_KEI_STAT_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_STAT_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先＿機器出荷判定区分名 ← 引継元＿機器出荷判定区分名
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_SYUKKA_DIV_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
						hktgiMotoKikiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_SYUKKA_DIV_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
				
			}
		}
		
		// 引継先＿接続機器一覧＿有効データ件数
		int hktgi_saki_kiki_list_data_cnt =
				Integer.parseInt(bean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		
		for(int i = 0; i < hktgi_saki_kiki_list_data_cnt; i++)
		{
			X31SDataBeanAccess hktgiSakiKikiBean = hktgiSakiKikiList.getDataBean(i);
			X31SDataBeanAccess hktgiSakiKikiCfmBean = hktgiSakiKikiCfmList.addDataBean();
			
			// 引継先＿接続機器一覧（機器引継確認）に引継先機器Beanの情報を転記
			
			// 引継先＿引継対象
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_TAISHO_04, X31CWebConst.DATABEAN_SET_VALUE, "");
			
			// 引継先＿機器契約区分名 ← 引継先＿機器契約区分名
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_KEI_DIV_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
					hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_KEI_DIV_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 引継先＿商品名 ← 引継先＿商品名
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_GDS_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
					hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_GDS_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 引継先＿型式 ← 引継先＿型式
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_MDL_04, X31CWebConst.DATABEAN_SET_VALUE, 
					hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_MDL_04, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 引継先＿製造番号 ← 引継先＿製造番号
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SEIZO_NO_04, X31CWebConst.DATABEAN_SET_VALUE, 
					hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 引継先＿販売種別名 ← 引継先＿販売種別名
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_HAMBAI_SBT_CD_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
					hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_HAMBAI_SBT_CD_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 引継先＿契約日 ← 引継先＿契約日
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KEI_YMD_04, X31CWebConst.DATABEAN_SET_VALUE, 
					hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KEI_YMD_04, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 引継先＿解約日 ← 引継先＿解約日
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_DSL_YMD_04, X31CWebConst.DATABEAN_SET_VALUE, 
					hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_DSL_YMD_04, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 引継先＿返却日 ← 引継先＿返却日
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_RTN_YMD_04, X31CWebConst.DATABEAN_SET_VALUE, 
					hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_RTN_YMD_04, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 引継先＿状態名 ← 引継先＿状態名
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_KEI_STAT_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
					hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_KEI_STAT_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 引継先＿機器出荷判定区分名 ← 引継先＿機器出荷判定区分名
			hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_SYUKKA_DIV_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
					hktgiSakiKikiBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_SYUKKA_DIV_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
			
		}
		
		// 引継先＿接続機器一覧（機器引継確認）のデータ件数が６件となるまで、空のDataBeanを追加
		for(int i = hktgiSakiKikiCfmList.getCount(); i < HKTGI_SAKI_KIKI_CFM_LIST_MIN_LENGTH; i++)
		{
			hktgiSakiKikiCfmList.addDataBean();
		}
		
		for(int i = 0; i < hktgiSakiKikiCfmList.getCount(); i++)
		{
			X31SDataBeanAccess hktgiSakiKikiCfmBean = hktgiSakiKikiCfmList.getDataBean(i);
			// 引継先＿機器＿スタイル
			if(i % 2 == 0)
			{
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_STYLE_04, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}
			else
			{
				hktgiSakiKikiCfmBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_STYLE_04, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
		}
		
	}
	
	
	/**
	 * 引継対象機器の選択チェックボックスの表示設定(確認画面・更新画面の表示用)を行う。
	 * <br>
	 * 
	 * @param bean
	 */
	private void setHktgiKikiChoiceDsp(X31SDataBeanAccess bean)
	{
		// 引継元＿接続機器一覧
		X31SDataBeanAccessArray hktgiMotoKikiList = bean.getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST);
		// 引継元＿接続機器一覧＿有効データ件数
		int hktgi_moto_kiki_list_data_cnt =
				Integer.parseInt(bean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		
		for(int i = 0; i < hktgi_moto_kiki_list_data_cnt; i++)
		{
			X31SDataBeanAccess hktgiMotoKikiBean = hktgiMotoKikiList.getDataBean(i);
			
			boolean hktgi_moto_kiki_choice = 
					hktgiMotoKikiBean.sendMessageBoolean(KKW03901SFConst.HKTGI_MOTO_KIKI_CHOICE_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 非活性の場合情報が取得できないため、引継元＿機器＿選択＿表示用 に転記
			hktgiMotoKikiBean.sendMessageBoolean(KKW03901SFConst.HKTGI_MOTO_KIKI_CHOICE_DSP_02,
					X31CWebConst.DATABEAN_SET_VALUE, hktgi_moto_kiki_choice);
		}
	}
}
