/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKW16502SFLogic
*	ソースファイル名：KKW16502SFLogic.java
*	作成者			：FJ
*	日付			：2012年10月19日
*＜機能概要＞
*	VIEWロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/10/19	FJ)楠神		新規作成
*
**********************************************************************/

package eo.web.webview.KKW16502SF;

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.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW16501SF.KKW16501SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.mapping.KKSV0717_KKSV0717OPDBMapper;
import eo.web.webview.mapping.KKSV0718_KKSV0718OPDBMapper;
import eo.web.webview.mapping.KKSV0719_KKSV0719OPDBMapper;

/**
 * KKW16502のビューロジック
 * @author FJ
 *
 */
@SuppressWarnings("serial")
public class KKW16502SFLogic extends JCCWebBusinessLogic
{
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_init() throws Exception
	{
		return kkw16502_init();
	}
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private boolean kkw16502_init() throws Exception
	{
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * DataBean設定処理
		 */
		// セッション情報取得
		HashMap<String, Object> searchInfo = JCCWebCommon.getScreenInfo(this);
		
		bean.sendMessageString(KKW16502SFConst.KDDI_TJGWR_KJKS_NO, X31CWebConst.DATABEAN_SET_VALUE
				, searchInfo.get(KKW16502SFConst.KDDI_TJGWR_KJKS_NO).toString());
		
		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0718");
		
		// マッピングクラスのインスタンスを生成
		KKSV0718_KKSV0718OPDBMapper mapper = new KKSV0718_KKSV0718OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/*
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setKKSV071801SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV071802SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV071803SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV071804SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV071805SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV071806SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV071807SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV071808SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV071809SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// オペレーション日付取得
		String opeDate = JCCWebCommon.getOpeDate(this, null); 
		
		if (inputMap.containsKey("KKSV071801SC"))
		{
			((HashMap<String, Object>)inputMap.get("KKSV071801SC")).put("key_stdardymd", opeDate);
		}
		
		if (inputMap.containsKey("KKSV071802SC"))
		{
			((HashMap<String, Object>)inputMap.get("KKSV071802SC")).put("key_stdardymd", opeDate);
		}
		
		if (inputMap.containsKey("KKSV071803SC"))
		{
			((HashMap<String, Object>)inputMap.get("KKSV071803SC")).put("key_stdardymd", opeDate);
		}
		
		if (inputMap.containsKey("KKSV071804SC"))
		{
			((HashMap<String, Object>)inputMap.get("KKSV071804SC")).put("key_stdardymd", opeDate);
		}
		
		if (inputMap.containsKey("KKSV071805SC"))
		{
			((HashMap<String, Object>)inputMap.get("KKSV071805SC")).put("key_stdardymd", opeDate);
		}
		
		if (inputMap.containsKey("KKSV071806SC"))
		{
			((HashMap<String, Object>)inputMap.get("KKSV071806SC")).put("key_stdardymd", opeDate);
		}
		
		if (inputMap.containsKey("KKSV071807SC"))
		{
			((HashMap<String, Object>)inputMap.get("KKSV071807SC")).put("key_stdardymd", opeDate);
		}
		
		if (inputMap.containsKey("KKSV071808SC"))
		{
			((HashMap<String, Object>)inputMap.get("KKSV071808SC")).put("key_stdardymd", opeDate);
		}
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		/**
		 * サービス処理結果の取得
		 */
		
		/*
		 * 下りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.getKKSV071801SC(paramBean, outputMap);
		mapper.getKKSV071802SC(paramBean, outputMap);
		mapper.getKKSV071803SC(paramBean, outputMap);
		mapper.getKKSV071804SC(paramBean, outputMap);
		mapper.getKKSV071805SC(paramBean, outputMap);
		mapper.getKKSV071806SC(paramBean, outputMap);
		mapper.getKKSV071807SC(paramBean, outputMap);
		mapper.getKKSV071808SC(paramBean, outputMap);
		mapper.getKKSV071809SC(paramBean, outputMap);
		
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV071809SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV071809SC");
		}
		
		/**
		 * 取得データ件数チェック
		 */
		// 検索エラー取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("KKSV071809SC", outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			//0件の場合
			String[] msgRpl = new String[]{"KDDI取次案件情報"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBC540_KW, msgRpl);
			
			setTransferPageId(JKKWebCommon.getScreenId(this) + "0PJP");
			return true;
		}
		else
		{
			//成否結果リストの設定値変更
			setRsltInfo(paramBean);
			
			//表示項目の設定
			setDispInfo(paramBean);
			
			//コードの値をHiddenに保持
			setCdCodeList(bean, KKW16502SFConst.KDDI_UK_SBT_CD_LIST, KKW16502SFConst.CD_01, KKW16502SFConst.KDDI_UK_SBT_CD_ALLLIST);
			setCdCodeList(bean, KKW16502SFConst.KDDI_TJGWR_KJKS_STAT_CD_LIST, KKW16502SFConst.CD_01, KKW16502SFConst.KDDI_TJGWR_KJKS_STAT_CD_ALLLIST);
			setCdCodeList(bean, KKW16502SFConst.KOPT_KEI_JCHUKDO_RSLT_CD_LIST, KKW16502SFConst.CD_01, KKW16502SFConst.KOPT_KEI_JCHUKDO_RSLT_CD_ALLLIST);
			setCdCodeList(bean, KKW16502SFConst.EOHNT_KEI_JOKYO_CD_LIST, KKW16502SFConst.CD_01, KKW16502SFConst.EOHNT_KEI_JOKYO_CD_ALLLIST);
			setCdCodeList(bean, KKW16502SFConst.EOHTL_KEI_JOKYO_CD_LIST, KKW16502SFConst.CD_01, KKW16502SFConst.EOHTL_KEI_JOKYO_CD_ALLLIST);
			setCdCodeList(bean, KKW16502SFConst.EOHTV_KEI_JOKYO_CD_LIST, KKW16502SFConst.CD_01, KKW16502SFConst.EOHTV_KEI_JOKYO_CD_ALLLIST);
			setCdCodeList(bean, KKW16502SFConst.KDDI_TJGWR_NG_RSN_CD_LIST, KKW16502SFConst.CD_01, KKW16502SFConst.KDDI_TJGWR_NG_RSN_CD_ALLLIST);
			setCdCodeList(bean, KKW16502SFConst.INFO_RENKEI_BUSHO_CD_LIST, KKW16502SFConst.CD_01, KKW16502SFConst.INFO_RENKEI_BUSHO_CD_ALLLIST);
		}
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
								, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW16502);
		
		return true;
	}
	
	/**
	 * 更新確認遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_updatecfm() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		setBeanUpdateInfo(bean);
		
		boolean result = false;
		//更新
		result = update(JPCModelConstant.FUNC_CD_2);
		
		//更新結果によって、画面の遷移可否を判断する
		if(result)
		{
			
			//確認メッセージ設定
			String[] msgRpl = new String[]{"更新"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, msgRpl);
			/**
			 * DataBean設定処理
			 */
			// 遷移先の情報を共有フォームBeanの項目に設定する。
			setNextScreenInfo(commoninfoBean, JKKScreenConst.SCREEN_ID_KKW16503, JKKScreenConst.SCREEN_NAME_KKW16503);
			JCCWebCommon.setMessageAreaBackColor(this, "1");
		}
		
		return true;
	}
	
	/**
	 * 照会ボタン押下処理
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean action_searchagntcd() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		
		/**
		 * サービス呼出処理
		 */
		//  ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0717");

		// マッピングクラスのインスタンスを生成
		KKSV0717_KKSV0717OPDBMapper mapper = new KKSV0717_KKSV0717OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/*
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setKKSV071701SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		
		// オペレーション日付取得
		String opeDate = JCCWebCommon.getOpeDate(this, null); 
		
		if (inputMap.containsKey("KKSV071701SC"))
		{
			((HashMap<String, Object>)inputMap.get("KKSV071701SC")).put("key_rsv_aply_ymd", opeDate);
		}
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		
		/**
		 * サービス処理結果の取得
		 */
		/*
		 * 下りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.getKKSV071701SC(paramBean, outputMap);
		
		/**
		 * 取得データ件数チェック
		 */
		// 検索エラー取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("KKSV071701SC", outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			//0件の場合
			String[] msgRpl = new String[]{"受付店コード"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBC540_KW, msgRpl);
			return true;
		}
		else
		{
			HashMap templateMap = (HashMap)outputMap.get("KKSV071701SC");
			ArrayList childList = (ArrayList)templateMap.get("EKK0061A010CBSMsg1List");
			String agntTstaymd = null;
			String agntTendymd = null;

			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				
				agntTstaymd = (String)childMap.get("agnt_tstaymd");
				agntTendymd = (String)childMap.get("agnt_tendymd");
			}

			String opedate = JKKWebCommon.getOpeDate(this, null);
			boolean bool = true;
			if(JKKCommonUtil.isNull(agntTstaymd) || JKKCommonUtil.isNull(agntTendymd) || JKKCommonUtil.isNull(opedate))
			{
				bool = false;
			}
			if(bool && (opedate.compareTo(agntTstaymd) < 0 || opedate.compareTo(agntTendymd) > 0 ))
			{
				bean.sendMessageString(KKW16502SFConst.UK_TEN_NM, X31CWebConst.DATABEAN_SET_VALUE, 
						bean.sendMessageString(KKW16502SFConst.AGNT_NM, X31CWebConst.DATABEAN_GET_VALUE));
				//0件の場合
				String[] msgRpl = new String[]{"受付店コード"};
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBC540_KW, msgRpl);
				return true;
			}
		}
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		setNextScreenInfo(commoninfoBean, JKKScreenConst.SCREEN_ID_KKW16502, JKKScreenConst.SCREEN_NAME_KKW16502);
		
		return true;
	}
	
	/**
	 * 戻る遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_back() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		setNextScreenInfo(commoninfoBean, JKKWebCommon.getScreenId(this), "");
		
		return true;
	}
	
	/**
	 * 確定遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_fix() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		boolean result = false;
		//更新
		result = update(JPCModelConstant.FUNC_CD_1);
		
		//更新結果によって、画面を遷移可否を判断する
		if(result)
		{
			
			//完了メッセージ設定
			String[] msgRpl = new String[]{"KDDI取次案件情報", "更新"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2960__I, msgRpl);
			
			/**
			 * DataBean設定処理
			 */
			// 遷移先の情報を共有フォームBeanの項目に設定する。
			setNextScreenInfo(commoninfoBean, JKKWebCommon.getScreenId(this), "");
		}
		
		return true;
	}

	/**
	 * 修正遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_cansel() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		setNextScreenInfo(commoninfoBean, JKKScreenConst.SCREEN_ID_KKW16502, JKKScreenConst.SCREEN_NAME_KKW16502);
		
		return true;
	}
	
	/**
	 * 更新処理
	 * @param func_code
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private boolean update(String func_code) throws Exception
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0719");
		
		// マッピングクラスのインスタンスを生成
		KKSV0719_KKSV0719OPDBMapper mapper = new KKSV0719_KKSV0719OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/*
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setKKSV071901CC(paramBean, inputMap, func_code);
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}
		
		HashMap<String, Object> outputMapCC = (HashMap)outputMap.get("KKSV071901CC");
		
		if(!JKKCommonUtil.isNull(outputMapCC.get("agnt_nm")))
		{
			bean.sendMessageObject(KKW16502SFConst.UK_TEN_NM, X31CWebConst.DATABEAN_SET_VALUE, outputMapCC.get("agnt_nm"));
		}
		
		return true;
	}
	
	/**
	 * 表示情報を各項目に保持
	 * @param bean
	 */
	private void setDispInfo(X31SDataBeanAccess[] bean)
	{
		String tmp = null;
		String agnt_cd = null;
		X31SDataBeanAccess listDataBean = null;
		
		/**
		 * セッション設定処理
		 */
		
		//コールバック日
		tmp = bean[0].sendMessageString(KKW16502SFConst.CALLBK_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		if(tmp != null && tmp.length() == 8)
		{
			bean[0].sendMessageObject(KKW16502SFConst.CALLBK_YMD_1, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(0, 4));
			bean[0].sendMessageObject(KKW16502SFConst.CALLBK_YMD_2, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(4, 6));
			bean[0].sendMessageObject(KKW16502SFConst.CALLBK_YMD_3, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(6, 8));
		}
		
		//ＫＤＤＩ受付種別コード
		tmp = bean[0].sendMessageString(KKW16502SFConst.KDDI_UK_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(KKW16502SFConst.KDDI_UK_SBT_CD_LIST).getDataBean(0);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < (Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
			{
				if(tmp.equals(listDataBean.sendMessageString(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					listDataBean.sendMessageString(KKW16502SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
		
		//対応完了日
		tmp = bean[0].sendMessageString(KKW16502SFConst.TAIO_FIN_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		if(tmp != null && tmp.length() == 8)
		{
			bean[0].sendMessageObject(KKW16502SFConst.TAIO_FIN_YMD_1, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(0, 4));
			bean[0].sendMessageObject(KKW16502SFConst.TAIO_FIN_YMD_2, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(4, 6));
			bean[0].sendMessageObject(KKW16502SFConst.TAIO_FIN_YMD_3, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(6, 8));
		}
		
		//ＫＤＤＩ他事業者割引契約状況照会状態コード
		tmp = bean[0].sendMessageString(KKW16502SFConst.KDDI_TJGWR_KJKS_STAT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(KKW16502SFConst.KDDI_TJGWR_KJKS_STAT_CD_LIST).getDataBean(0);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < (Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
			{
				if(tmp.equals(listDataBean.sendMessageString(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					listDataBean.sendMessageString(KKW16502SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
		
		//ＫＯＰＴ契約受注活動結果コード
		tmp = bean[0].sendMessageString(KKW16502SFConst.KOPT_KEI_JCHUKDO_RSLT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(KKW16502SFConst.KOPT_KEI_JCHUKDO_RSLT_CD_LIST).getDataBean(0);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < (Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
			{
				if(tmp.equals(listDataBean.sendMessageString(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					listDataBean.sendMessageString(KKW16502SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
		
		//ｅｏ光ネット契約状況コード
		tmp = bean[0].sendMessageString(KKW16502SFConst.EOHNT_KEI_JOKYO_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(KKW16502SFConst.EOHNT_KEI_JOKYO_CD_LIST).getDataBean(0);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < (Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
			{
				if(tmp.equals(listDataBean.sendMessageString(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					listDataBean.sendMessageString(KKW16502SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
		
		//ｅｏ光電話契約状況コード
		tmp = bean[0].sendMessageString(KKW16502SFConst.EOHTL_KEI_JOKYO_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(KKW16502SFConst.EOHTL_KEI_JOKYO_CD_LIST).getDataBean(0);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < (Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
			{
				if(tmp.equals(listDataBean.sendMessageString(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					listDataBean.sendMessageString(KKW16502SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
		
		//ｅｏ光テレビ契約状況コード
		tmp = bean[0].sendMessageString(KKW16502SFConst.EOHTV_KEI_JOKYO_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(KKW16502SFConst.EOHTV_KEI_JOKYO_CD_LIST).getDataBean(0);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < (Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
			{
				if(tmp.equals(listDataBean.sendMessageString(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					listDataBean.sendMessageString(KKW16502SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
		
		//ＫＤＤＩ他事業者割引ＮＧ理由コード
		tmp = bean[0].sendMessageString(KKW16502SFConst.KDDI_TJGWR_NG_RSN_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(KKW16502SFConst.KDDI_TJGWR_NG_RSN_CD_LIST).getDataBean(0);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < (Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
			{
				if(tmp.equals(listDataBean.sendMessageString(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					listDataBean.sendMessageString(KKW16502SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
		
		//情報連携部署コード
		tmp = bean[0].sendMessageString(KKW16502SFConst.INFO_RENKEI_BUSHO_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(KKW16502SFConst.INFO_RENKEI_BUSHO_CD_LIST).getDataBean(0);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < (Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
			{
				if(tmp.equals(listDataBean.sendMessageString(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					listDataBean.sendMessageString(KKW16502SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
		//情報連携部署コード
		agnt_cd = bean[0].sendMessageString(KKW16502SFConst.AGNT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if(JKKCommonUtil.isNull(agnt_cd))
		{
			//受付店コード
			bean[0].sendMessageObject(KKW16502SFConst.UK_TEN_CD, X31CWebConst.DATABEAN_SET_VALUE, 
					bean[0].sendMessageObject(KKW16502SFConst.KDDI_UK_TEN_CD, X31CWebConst.DATABEAN_GET_VALUE));
			//受付店名
			bean[0].sendMessageObject(KKW16502SFConst.UK_TEN_NM, X31CWebConst.DATABEAN_SET_VALUE, 
					bean[0].sendMessageObject(KKW16502SFConst.KDDI_UK_TEN_NM, X31CWebConst.DATABEAN_GET_VALUE));
			//受付店コード＿初期表示
			bean[0].sendMessageObject(KKW16502SFConst.UK_TEN_CD_BF, X31CWebConst.DATABEAN_SET_VALUE, 
					bean[0].sendMessageObject(KKW16502SFConst.KDDI_UK_TEN_CD, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			//受付店コード
			bean[0].sendMessageObject(KKW16502SFConst.UK_TEN_CD, X31CWebConst.DATABEAN_SET_VALUE, 
					bean[0].sendMessageObject(KKW16502SFConst.AGNT_CD, X31CWebConst.DATABEAN_GET_VALUE));
			//受付店名
			bean[0].sendMessageObject(KKW16502SFConst.UK_TEN_NM, X31CWebConst.DATABEAN_SET_VALUE, 
					bean[0].sendMessageObject(KKW16502SFConst.AGNT_NM, X31CWebConst.DATABEAN_GET_VALUE));
			//受付店コード＿初期表示
			bean[0].sendMessageObject(KKW16502SFConst.UK_TEN_CD_BF, X31CWebConst.DATABEAN_SET_VALUE, 
					bean[0].sendMessageObject(KKW16502SFConst.AGNT_CD, X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		//住所
		tmp = bean[0].sendMessageString(KKW16502SFConst.TJGWR_MKMS_STATE_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW16502SFConst.TJGWR_MKMS_OAZTSU_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW16502SFConst.TJGWR_MKMS_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW16502SFConst.TJGWR_MKMS_TTM_NM_RM_NO, X31CWebConst.DATABEAN_GET_VALUE);
		
		bean[0].sendMessageObject(KKW16502SFConst.TJGWR_MKMS_AD, X31CWebConst.DATABEAN_SET_VALUE, 
				tmp);
		
	}
	
	/**
	 * 成否結果を再設定
	 * @param bean
	 */
	private void setRsltInfo(X31SDataBeanAccess[] bean)
	{
		String tmp = null;
		X31SDataBeanAccess listDataBean = null;
		boolean bool = true;
		
		/**
		 * セッション設定処理
		 */
		//ＫＯＰＴ契約受注活動結果コード
		tmp = bean[0].sendMessageString(KKW16502SFConst.KOPT_KEI_JCHUKDO_RSLT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(KKW16502SFConst.KOPT_KEI_JCHUKDO_RSLT_CD_LIST).getDataBean(0);
		
		if(tmp == null)
		{
			tmp = "";
		}
		
		String[] cd_list = new String[(Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT)];
		String[] nm_list = new String[(Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT)];

		for(int i = 0; i < (Integer)listDataBean.sendMessage(KKW16502SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
		{
			cd_list[i] = listDataBean.sendMessageString(KKW16501SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			nm_list[i] = listDataBean.sendMessageString(KKW16501SFConst.CD_NM_01, X31CWebConst.DATABEAN_GET_VALUE, i);
		}
		
		listDataBean.sendMessage(KKW16501SFConst.CD_01, X31CWebConst.DATABEAN_CLEAR);
		listDataBean.sendMessage(KKW16501SFConst.CD_NM_01, X31CWebConst.DATABEAN_CLEAR);
		
		for(int i = 0; i < cd_list.length; i++)
		{
			bool = true;
			if(!JKKCommonUtil.isNull(cd_list[i]))
			{
				if("0".equals(cd_list[i].substring(0, 1)))
				{
					if(!tmp.equals(cd_list[i]))
					{
						bool = false;
					}
				}
			}
			
			if(bool)
			{
				listDataBean.sendMessageString(KKW16501SFConst.CD_01, X31CWebConst.DATABEAN_ADD_VALUE, cd_list[i]);
				listDataBean.sendMessageString(KKW16501SFConst.CD_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, nm_list[i]);
			}
		}
	}
	
	

	/**
	 * 入力内容を設定
	 * @param bean
	 */
	private void setBeanUpdateInfo(X31SDataBeanAccess bean)
	{

		/**
		 * DataBean設定処理
		 */
		
		//コールバック日
		setYMD(bean, KKW16502SFConst.CALLBK_YMD
				, KKW16502SFConst.CALLBK_YMD_1, KKW16502SFConst.CALLBK_YMD_2, KKW16502SFConst.CALLBK_YMD_3);
		
		//対応完了日
		setYMD(bean, KKW16502SFConst.TAIO_FIN_YMD
				, KKW16502SFConst.TAIO_FIN_YMD_1, KKW16502SFConst.TAIO_FIN_YMD_2, KKW16502SFConst.TAIO_FIN_YMD_3);
		
		// ＫＤＤＩ受付種別コード
		setListSelectedValue(bean, KKW16502SFConst.KDDI_UK_SBT_CD
				, KKW16502SFConst.KDDI_UK_SBT_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_01);
		
		// ＫＤＤＩ受付種別コード名称
		setListSelectedValue(bean, KKW16502SFConst.KDDI_UK_SBT_CD_NM
				, KKW16502SFConst.KDDI_UK_SBT_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_NM_01);
		
		// ＫＤＤＩ他事業者割引契約状況照会状態コード
		setListSelectedValue(bean, KKW16502SFConst.KDDI_TJGWR_KJKS_STAT_CD
				, KKW16502SFConst.KDDI_TJGWR_KJKS_STAT_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_01);
		
		// ＫＤＤＩ他事業者割引契約状況照会状態コード名称
		setListSelectedValue(bean, KKW16502SFConst.KDDI_TJGWR_KJKS_STAT_CD_NM
				, KKW16502SFConst.KDDI_TJGWR_KJKS_STAT_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_NM_01);
		
		// ＫＯＰＴ契約受注活動結果コード
		setListSelectedValue(bean, KKW16502SFConst.KOPT_KEI_JCHUKDO_RSLT_CD
				, KKW16502SFConst.KOPT_KEI_JCHUKDO_RSLT_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_01);
		
		// ＫＯＰＴ契約受注活動結果コード名称
		setListSelectedValue(bean, KKW16502SFConst.KOPT_KEI_JCHUKDO_RSLT_CD_NM
				, KKW16502SFConst.KOPT_KEI_JCHUKDO_RSLT_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_NM_01);
		
		// ｅｏ光ネット契約状況コード
		setListSelectedValue(bean, KKW16502SFConst.EOHNT_KEI_JOKYO_CD
				, KKW16502SFConst.EOHNT_KEI_JOKYO_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_01);
		
		// ｅｏ光ネット契約状況コード名称
		setListSelectedValue(bean, KKW16502SFConst.EOHNT_KEI_JOKYO_CD_NM
				, KKW16502SFConst.EOHNT_KEI_JOKYO_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_NM_01);
		
		// ｅｏ光電話契約状況コード
		setListSelectedValue(bean, KKW16502SFConst.EOHTL_KEI_JOKYO_CD
				, KKW16502SFConst.EOHTL_KEI_JOKYO_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_01);
		
		// ｅｏ光電話契約状況コード名称
		setListSelectedValue(bean, KKW16502SFConst.EOHTL_KEI_JOKYO_CD_NM
				, KKW16502SFConst.EOHTL_KEI_JOKYO_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_NM_01);
		
		// ｅｏ光テレビ契約状況コード
		setListSelectedValue(bean, KKW16502SFConst.EOHTV_KEI_JOKYO_CD
				, KKW16502SFConst.EOHTV_KEI_JOKYO_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_01);
		
		// ｅｏ光テレビ契約状況コード名称
		setListSelectedValue(bean, KKW16502SFConst.EOHTV_KEI_JOKYO_CD_NM
				, KKW16502SFConst.EOHTV_KEI_JOKYO_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_NM_01);
		
		// ＫＤＤＩ他事業者割引ＮＧ理由コード
		setListSelectedValue(bean, KKW16502SFConst.KDDI_TJGWR_NG_RSN_CD
				, KKW16502SFConst.KDDI_TJGWR_NG_RSN_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_01);
		
		// ＫＤＤＩ他事業者割引ＮＧ理由コード名称
		setListSelectedValue(bean, KKW16502SFConst.KDDI_TJGWR_NG_RSN_CD_NM
				, KKW16502SFConst.KDDI_TJGWR_NG_RSN_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_NM_01);
		
		// 情報連携部署コード
		setListSelectedValue(bean, KKW16502SFConst.INFO_RENKEI_BUSHO_CD
				, KKW16502SFConst.INFO_RENKEI_BUSHO_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_01);
		
		// 情報連携部署コード名称
		setListSelectedValue(bean, KKW16502SFConst.INFO_RENKEI_BUSHO_CD_NM
				, KKW16502SFConst.INFO_RENKEI_BUSHO_CD_LIST, KKW16502SFConst.INDEX_01, KKW16502SFConst.CD_NM_01);

		
		String agnt_cd_bf = bean.sendMessageString(KKW16502SFConst.UK_TEN_CD_BF, X31CWebConst.DATABEAN_GET_VALUE);
		String agnt_cd_af = bean.sendMessageString(KKW16502SFConst.UK_TEN_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(!JKKCommonUtil.isNull(agnt_cd_af))
		{
			if(!agnt_cd_af.equals(agnt_cd_bf))
			{
				bean.sendMessageString(KKW16502SFConst.AGNT_CD, X31CWebConst.DATABEAN_SET_VALUE, agnt_cd_af);
			}
		}
	}
	
	/**
	 * プルダウンのコードを「,」区切りでセットする
	 * @param bean
	 * @param listName
	 * @param codeName
	 * @param setName
	 */
	private void setCdCodeList(X31SDataBeanAccess bean, String listName, String codeName, String setName)
	{
		X31SDataBeanAccess listDataBean = bean.getDataBeanArray(listName).getDataBean(0);
		String val = "";
		int len = (Integer)listDataBean.sendMessage(codeName, X31CWebConst.DATABEAN_GET_COUNT);
		if(len == 0)
		{
			return;
		}
		
		for(int i = 0; i < len; i++)
		{
			if(i != 0)
			{
				val = val + ",";
			}
			
			val = val + listDataBean.sendMessageString(codeName, X31CWebConst.DATABEAN_GET_VALUE, i);
			
		}
		
		bean.sendMessageString(setName, X31CWebConst.DATABEAN_SET_VALUE, val);
	}

	/**
	 * 遷移先の画面情報を設定
	 * @param commoninfoBean
	 * @param nextScreenId
	 * @param nextScreenName
	 */
	private void setNextScreenInfo(X31SDataBeanAccess commoninfoBean, String nextScreenId, String nextScreenName)
	{
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
								, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
								, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);
	}
	
	/**
	 * 選択されているプルダウンに紐づくコードを取得
	 * @param bean
	 * @param listName
	 * @param idxName
	 * @param codeName
	 * @return String
	 */
	private String getListSelectedValue(X31SDataBeanAccess bean, String listName, String idxName, String codeName)
	{
		X31SDataBeanAccess listDataBean = bean.getDataBeanArray(listName).getDataBean(0);
		String idx = listDataBean.sendMessageString(idxName, X31CWebConst.DATABEAN_GET_VALUE);
		if (JKKCommonUtil.isNull(idx))
		{
			return "";
		}
		
		int len = (Integer)listDataBean.sendMessage(codeName, X31CWebConst.DATABEAN_GET_COUNT);
		if(len == 0 || len <= Integer.parseInt(idx))
		{
			return "";
		}
		
		return listDataBean.sendMessageString(codeName, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));
	}
	
	/**
	 * 選択されているプルダウンに紐づくコードを設定
	 * @param bean
	 * @param setKomoku
	 * @param listName
	 * @param idxName
	 * @param codeName
	 */
	private void setListSelectedValue(X31SDataBeanAccess bean, String setKomoku, String listName, String idxName, String codeName)
	{
		bean.sendMessageString(setKomoku, X31CWebConst.DATABEAN_SET_VALUE, getListSelectedValue(bean, listName, idxName, codeName));
	}
	
	/**
	 * 年、月、日に分かれた年月日を設定
	 * @param bean
	 * @param setKomoku
	 * @param yyyyName
	 * @param mmName
	 * @param ddName
	 */
	private void setYMD(X31SDataBeanAccess bean, String setKomoku, String yyyyName, String mmName, String ddName)
	{
		bean.sendMessageString(setKomoku, X31CWebConst.DATABEAN_SET_VALUE, getYMD(bean, yyyyName, mmName, ddName));
	}
	
	/**
	 * 年、月、日に分かれた年月日を取得
	 * @param bean
	 * @param yyyyName
	 * @param mmName
	 * @param ddName
	 * @return String
	 */
	private String getYMD(X31SDataBeanAccess bean, String yyyyName, String mmName, String ddName)
	{
		String yyyymmdd = "";
		yyyymmdd = bean.sendMessageString(yyyyName, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean.sendMessageString(mmName, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean.sendMessageString(ddName, X31CWebConst.DATABEAN_GET_VALUE);
		return yyyymmdd;
	}

}