/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW00102SFLogic
*   ソースファイル名：KKW00102SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年09月01日
*＜機能概要＞
*   代理店コード検索画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/09/01   FJ）関      新規作成
*   v4.00.00    2012/07/12   FJ）谷口    【ANK-0493-00-00】取扱コード対応
*
**********************************************************************/
package eo.web.webview.KKW00102SF;

import static eo.web.webview.common.JKKKeiNewCmnLogicUtil.*;


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.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.mapping.KKSV0243_KKSV0243OPDBMapper;
import eo.web.webview.mapping.KKSV0591_KKSV0591OPDBMapper;

/**
 * 代理店コード検索を行います。
 * <BR>
 * @author 富士通
 */
public class KKW00102SFLogic extends JCCWebBusinessLogic 
{


	/**
	 * サービスフォームBeanの初期化処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);
		
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// 親画面からの情報を取得
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);

		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 初期化
		// 一覧表示件数
		serviceFormBean.sendMessageString(KKW00102SFConst.DISP_COUNT, X31CWebConst.DATABEAN_SET_VALUE, "0");
		// 代理店コード
		serviceFormBean.sendMessage(KKW00102SFConst.BK_AGNT_CD, X31CWebConst.DATABEAN_CLEAR);
		// 代理店名
		serviceFormBean.sendMessage(KKW00102SFConst.BK_AGNT_NM, X31CWebConst.DATABEAN_CLEAR);
		// 上位取扱コード
		serviceFormBean.sendMessage(KKW00102SFConst.BK_JOI_TRAT_CD, X31CWebConst.DATABEAN_CLEAR);
		// 上位取扱コード名称
		serviceFormBean.sendMessage(KKW00102SFConst.BK_JOI_TRAT_CD_NM, X31CWebConst.DATABEAN_CLEAR);
		// 申込形態コード
		serviceFormBean.sendMessage(KKW00102SFConst.BK_MKM_FORM_CD, X31CWebConst.DATABEAN_CLEAR);
		// 申込形態コード１
		serviceFormBean.sendMessage(KKW00102SFConst.BK_MKM_FORM_CD_1, X31CWebConst.DATABEAN_CLEAR);
		
		// 検索有無フラグ
		serviceFormBean.sendMessageString(KKW00102SFConst.SEARCH_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		// 行番号
		serviceFormBean.sendMessageString(KKW00102SFConst.ROW_NO, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 前画面から引き継いだ代理店コード、代理店名を設定する。
		serviceFormBean.sendMessageString(KKW00102SFConst.AGNT_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(KKW00102SFConst.SESSION_AGNT_CD));
		// 前画面から引き継いだ代理店名を設定する。
		serviceFormBean.sendMessageString(KKW00102SFConst.AGNT_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(KKW00102SFConst.SESSION_AGNT_NM));

		paramMap = new HashMap<String, Object>(); // パラメタ設定用マップ
		inputMap = new HashMap<String, Object>(); // 入力情報格納用マップ
		outputMap = new HashMap<String, Object>(); // 結果格納用マップ
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0591");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0591OP");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0591_KKSV0591OPDBMapper mapper = new KKSV0591_KKSV0591OPDBMapper();
		mapper.setKKSV059101SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		mapper.setKKSV059102SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		
		// 取扱コード検索初期表示サービスを実施
		invokeService(paramMap, inputMap, outputMap);
		
		// 取得情報の下りマッピング
		mapper.getKKSV059101SC(paramBean, outputMap);
		mapper.getKKSV059102SC(paramBean, outputMap);
		
		// 申込形態コード
		setSubBeanString(serviceFormBean, KKW00102SFConst.MKM_FORM_CD, KKW00102SFConst.SELECT_CD_02, KKW00102SFConst.CD_LIST_02, "");
		// 申込形態コード１（プルダウン）の作成
		mkmFormChg();
		
		// 遷移先画面IDの設定
		setNextScreen(JKKScreenConst.SCREEN_ID_KKW00102, JKKScreenConst.SCREEN_NAME_KKW00102);
		
		return true;
	}

	/**
	 * 代理店コード検索画面の検索ボタンを処理します。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean search() throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);
		
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 初期化
		// 一覧表示件数
		serviceFormBean.sendMessageString(KKW00102SFConst.DISP_COUNT, X31CWebConst.DATABEAN_SET_VALUE, "0");
		// 検索有無フラグ
		serviceFormBean.sendMessageString(KKW00102SFConst.SEARCH_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 画面入力値を設定
		// 代理店コード
		serviceFormBean.sendMessageString(KKW00102SFConst.BK_AGNT_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(KKW00102SFConst.AGNT_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 代理店名
		serviceFormBean.sendMessageString(KKW00102SFConst.BK_AGNT_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(KKW00102SFConst.AGNT_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 上位取扱コード
		serviceFormBean.sendMessageString(KKW00102SFConst.BK_JOI_TRAT_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(KKW00102SFConst.JOI_TRAT_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 上位取扱コード名称
		serviceFormBean.sendMessageString(KKW00102SFConst.BK_JOI_TRAT_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(KKW00102SFConst.JOI_TRAT_CD_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込形態コード
		serviceFormBean.sendMessageString(KKW00102SFConst.BK_MKM_FORM_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				eo.web.webview.common.JKKWebCommon.getPullDownCode(serviceFormBean, KKW00102SFConst.MKM_FORM_CD,
						KKW00102SFConst.SELECT_CD_02, KKW00102SFConst.CD_LIST_02));
		// 申込形態コード１
		serviceFormBean.sendMessageString(KKW00102SFConst.BK_MKM_FORM_CD_1, X31CWebConst.DATABEAN_SET_VALUE, 
				eo.web.webview.common.JKKWebCommon.getPullDownCode(serviceFormBean, KKW00102SFConst.MKM_FORM_CD_1,
						KKW00102SFConst.SELECT_CD_02, KKW00102SFConst.CD_LIST_02));

		// 運用日付を基準日に設定
		serviceFormBean.sendMessageString(KKW00102SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));

		// ページング情報の設定
		JCCWebCommon.clearPageLinkInfo(this, JKKScreenConst.SCREEN_ID_KKW00102);
		
		//機能コードの設定
		serviceFormBean.sendMessageString(KKW00102SFConst.BK_FUNC_CODE, X31CWebConst.DATABEAN_SET_VALUE, JPCModelConstant.FUNC_CD_1);
		
		if (!callServiceForSearch(serviceFormBean, JPCModelConstant.FUNC_CD_1))
		{
			return false;
		}

		// 行番号
		serviceFormBean.sendMessageString(KKW00102SFConst.ROW_NO, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 遷移先画面IDの設定
		setNextScreen(JKKScreenConst.SCREEN_ID_KKW00102, JKKScreenConst.SCREEN_NAME_KKW00102);

		return true;
	}

	/**
	 * ページングを処理します。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean paging() throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);
		
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		if (!callServiceForSearch(serviceFormBean, serviceFormBean.sendMessageString(KKW00102SFConst.BK_FUNC_CODE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}

		// 行番号
		serviceFormBean.sendMessageString(KKW00102SFConst.ROW_NO, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 遷移先画面IDの設定
		setNextScreen(JKKScreenConst.SCREEN_ID_KKW00102, JKKScreenConst.SCREEN_NAME_KKW00102);	

		return true;
	}

	/**
	 * 代理店コードでソート(昇順)を処理します。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean ascAgntCd() throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);
		
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		if (!callServiceForSearch(serviceFormBean, JPCModelConstant.FUNC_CD_1))
		{
			return false;
		}

		// 遷移先画面IDの設定
		setNextScreen(JKKScreenConst.SCREEN_ID_KKW00102, JKKScreenConst.SCREEN_NAME_KKW00102);
		
		//機能コードの設定
		serviceFormBean.sendMessageString(KKW00102SFConst.BK_FUNC_CODE, X31CWebConst.DATABEAN_SET_VALUE, JPCModelConstant.FUNC_CD_1);
	

		return true;
	}
	
	/**
	 * 代理店コードでソート(降順)を処理します。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean descAgntCd() throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);
		
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		if (!callServiceForSearch(serviceFormBean, JPCModelConstant.FUNC_CD_2))
		{
			return false;
		}

		// 遷移先画面IDの設定
		setNextScreen(JKKScreenConst.SCREEN_ID_KKW00102, JKKScreenConst.SCREEN_NAME_KKW00102);
		
		//機能コードの設定
		serviceFormBean.sendMessageString(KKW00102SFConst.BK_FUNC_CODE, X31CWebConst.DATABEAN_SET_VALUE, JPCModelConstant.FUNC_CD_2);
	

		return true;
	}
	
	/**
	 * 代理店コード検索画面の選択ボタンを処理します。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean choice() throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);
		
		//サービスフォームBean
		X31SDataBeanAccess bean = super.getServiceFormBean();

		/**
		 * 画面で選択されたラジオボタンのValue
		 */
		String radio_chk = bean.sendMessageString(KKW00102SFConst.ROW_NO, X31CWebConst.DATABEAN_GET_VALUE);
		/**
		 * セッションへ詰め込むHashMap生成
		 */
		HashMap<String, Object> paramMap = setSelectAgntInfo(bean, radio_chk);

		/**
		 * 親画面に渡す情報のセット
		 */
		//親画面IDを取得
		String parentScreenId = JCCWebCommon.getScreenId(this);
		//親画面に渡す情報のセット
		JCCWebCommon.setScreenInfo(this, parentScreenId, paramMap);

		/**
		 * モーダル用反映画面へ画面遷移
		 */
		setNextScreen(JCCScreenConst.SCREEN_ID_CCW00105, JCCScreenConst.SCREEN_NAME_CCW00105);

		return true;
	}

	/**
	 * 代理店コード検索画面のクリアボタンを処理します。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean clear() throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);
		
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 初期化
		// 代理店コード
		serviceFormBean.sendMessage(KKW00102SFConst.AGNT_CD, X31CWebConst.DATABEAN_CLEAR);
		// 代理店名
		serviceFormBean.sendMessage(KKW00102SFConst.AGNT_NM, X31CWebConst.DATABEAN_CLEAR);
		// 上位取扱コード
		serviceFormBean.sendMessage(KKW00102SFConst.JOI_TRAT_CD, X31CWebConst.DATABEAN_CLEAR);
		// 上位取扱コード名称
		serviceFormBean.sendMessage(KKW00102SFConst.JOI_TRAT_CD_NM, X31CWebConst.DATABEAN_CLEAR);
		// 申込形態コード
		setSubBeanString(serviceFormBean, KKW00102SFConst.MKM_FORM_CD, KKW00102SFConst.SELECT_CD_02, KKW00102SFConst.CD_LIST_02, "");
		// 申込形態コード１　（プルダウンの作成）
		mkmFormChg();
		// 遷移先画面IDの設定
		setNextScreen(JKKScreenConst.SCREEN_ID_KKW00102, JKKScreenConst.SCREEN_NAME_KKW00102);

		return true;
	}

	/**
	 * 一覧を検索します。
	 * <br>
	 * @param serviceFormBean
	 * @param funcCode
	 * @return boolean
	 * @throws Exception
	 */
	private boolean callServiceForSearch(X31SDataBeanAccess serviceFormBean, String funcCode) throws Exception
	{
		// 初期化
		serviceFormBean.getDataBeanArray(KKW00102SFConst.AGNT_INF_LIST).clearArray();

		// 退避データを設定
		// 代理店コード
		serviceFormBean.sendMessageString(KKW00102SFConst.AGNT_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(KKW00102SFConst.BK_AGNT_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 代理店名
		serviceFormBean.sendMessageString(KKW00102SFConst.AGNT_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(KKW00102SFConst.BK_AGNT_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 上位取扱コード
		serviceFormBean.sendMessageString(KKW00102SFConst.JOI_TRAT_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(KKW00102SFConst.BK_JOI_TRAT_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 上位取扱コード名称
		serviceFormBean.sendMessageString(KKW00102SFConst.JOI_TRAT_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(KKW00102SFConst.BK_JOI_TRAT_CD_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込形態コード
		setSubBeanString(serviceFormBean, KKW00102SFConst.MKM_FORM_CD, KKW00102SFConst.SELECT_CD_02, 
				KKW00102SFConst.CD_LIST_02, serviceFormBean.sendMessageString(KKW00102SFConst.BK_MKM_FORM_CD, 
						X31CWebConst.DATABEAN_GET_VALUE));
		// 申込形態コード１（プルダウン）の作成
		mkmFormChg();
		// 申込形態コード１
		setSubBeanString(serviceFormBean, KKW00102SFConst.MKM_FORM_CD_1, KKW00102SFConst.SELECT_CD_02, 
				KKW00102SFConst.CD_LIST_02, serviceFormBean.sendMessageString(KKW00102SFConst.BK_MKM_FORM_CD_1, 
						X31CWebConst.DATABEAN_GET_VALUE));
		// 検索有無フラグ
		serviceFormBean.sendMessageString(KKW00102SFConst.SEARCH_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");

		X31SDataBeanAccess[] paramBean = {serviceFormBean};

		// サービスの呼び出しを行う
		if (!putServiceKKSV0243(paramBean, funcCode))
		{
			return false;
		}

		// 検索結果リストを取得
		X31SDataBeanAccessArray agntInfList = paramBean[0].getDataBeanArray(KKW00102SFConst.AGNT_INF_LIST);
		
		for(int i = 0; i < agntInfList.getCount(); i++)
		{
			X31SDataBeanAccess subbean = agntInfList.getDataBean(i);
			
			if(i % 2 == 1)	
			{
				subbean.sendMessageString(KKW00102SFConst.L_COLOR_01, X31CWebConst.DATABEAN_SET_VALUE , "even");
			}
			else
			{
				subbean.sendMessageString(KKW00102SFConst.L_COLOR_01, X31CWebConst.DATABEAN_SET_VALUE , "odd");

			}
		}

		String searchUmFlg = null;

		// 検索有無フラグを設定
		if (0 == agntInfList.getCount().intValue())
		{
			searchUmFlg = "0";
		}
		else
		{
			searchUmFlg = "1";
		}
		serviceFormBean.sendMessageString(KKW00102SFConst.SEARCH_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, searchUmFlg);

		return true;
	}

	/**
	 * 画面遷移先を設定します。
	 * <br>
	 * @param nextScreenId 遷移先画面ID
	 * @param nextScreenName 遷移先画面名
	 */
	private void setNextScreen(String nextScreenId, String nextScreenName)
	{
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);
	}

	/**
	 * サービス（KKSV0243）の呼び出しを行います。
	 * <br>
	 * @param paramBean パラメータとなるBean情報
	 * @param func_code 機能コード
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	private boolean putServiceKKSV0243(X31SDataBeanAccess[] paramBean, String func_code) throws Exception
	{
		String serviceId = "KKSV0243";
		String templateId = "KKSV024301CC";
		
		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, serviceId);

		// マッピングクラスのインスタンスを生成
		KKSV0243_KKSV0243OPDBMapper mapper = new KKSV0243_KKSV0243OPDBMapper();

		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		mapper.setKKSV024301CC(paramBean, dataMap, func_code);

		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "0", templateId, dataMap);

		// 検索結果格納用マップ
		HashMap<String, String> outputMap = new HashMap<String, String>();

		// 検索処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
		if (null != msgResult)
		{
			return false;
		}

		((X31SDataBeanAccessArray)paramBean[0].getDataBeanArray(KKW00102SFConst.AGNT_INF_LIST)).clearArray();

		mapper.getKKSV024301CC(paramBean, outputMap);

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(templateId, outputMap);

		if ("1".equals(searchErrFlg))
		{
			// 検索結果が0件の場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			return true;
		}
		else if ("2".equals(searchErrFlg))
		{
			// 検索結果が最大検索件数超えの場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, 
					new String [] {(String)((HashMap<?, ?>)dataMap.get(templateId)).get("max_search_num")});
			return true;
		}
		else if ("3".equals(searchErrFlg))
		{
			// 表示ページがない場合、1ページ目を表示
			// 行番号を0に設定
			paramBean[0].sendMessageString(KKW00102SFConst.ROW_NO, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}

		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this,  "0", templateId, outputMap);

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "PAGING");

		return true;
	}

	/**
	 * 選択された代理店情報をHashMapに詰め込む
     * <BR>
     * @param bean サービスフォームBean
     * @param strSelect 画面で選択されたラジオボタンのIndex
     * @return HashMap セッションへセットする情報
	 * @throws Exception 
	 */
	private HashMap<String, Object> setSelectAgntInfo(X31SDataBeanAccess bean, String strSelect) throws Exception
	{
		//返却用 HashMap
		HashMap<String, Object> map = new HashMap<String, Object>();
		//代理店一覧取得
		X31SDataBeanAccessArray agntInfList = bean.getDataBeanArray(KKW00102SFConst.AGNT_INF_LIST);
		//親画面へ渡す代理店情報の取得
		X31SDataBeanAccess subBean = agntInfList.getDataBean(Integer.parseInt(strSelect));

		/**
		 * 代理店コード
		 */
		String strValue = subBean.sendMessageString(KKW00102SFConst.AGNT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// 代理店コード
		map.put(KKW00102SFConst.SESSION_RET_AGNT_CD, strValue);

		/**
		 * 代理店名
		 */
		strValue = subBean.sendMessageString(KKW00102SFConst.AGNT_NM, X31CWebConst.DATABEAN_GET_VALUE);
		// 代理店名
		map.put(KKW00102SFConst.SESSION_RET_AGNT_NM, strValue);

		return map;
	}
	
	/**
	 * 閉じる処理
	 * @return true固定
	 * @throws Exception
	 */
	public boolean close() throws Exception
	{
		JKKWebCommon.setSelfScreenID(this);
		
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		String nextScreenId = JCCWebCommon.getScreenId(this);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		return true;
	}

	/**
	 * 申込形態変更処理
	 * 申込形態コード１（プルダウン）の作成を行う。
	 * @return true
	 * @throws Exception
	 */
	public boolean mkmFormChg() throws Exception 
	{
		JKKWebCommon.setSelfScreenID(this);

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanより、処理に必要な情報を取得
		X31SDataBeanAccessArray mkmFormCd1AllList = bean.getDataBeanArray(KKW00102SFConst.MKM_FORM_CD_1_LIST);
		X31SDataBeanAccessArray mkmFormCd1PldList = bean.getDataBeanArray(KKW00102SFConst.MKM_FORM_CD_1);

		// 申込形態コードの選択値取得
		String mkmFormCdSelect = JKKWebCommon.getPullDownCode(bean, KKW00102SFConst.MKM_FORM_CD, 
				KKW00102SFConst.SELECT_CD_02, KKW00102SFConst.CD_LIST_02);

		X31SDataBeanAccess mkmFormCd1PldItem = mkmFormCd1PldList.getDataBean(0);
		mkmFormCd1PldItem.sendMessage(KKW00102SFConst.CD_LIST_02, X31CWebConst.DATABEAN_CLEAR);
		mkmFormCd1PldItem.sendMessage(KKW00102SFConst.NM_LIST_02, X31CWebConst.DATABEAN_CLEAR);

		mkmFormCd1PldItem.sendMessageString(KKW00102SFConst.CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, "");
		mkmFormCd1PldItem.sendMessageString(KKW00102SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, "");
		
		// 申込形態コード１（プルダウン）に反映
		for (int i = 0; i < mkmFormCd1AllList.getCount(); i++)
		{
			X31SDataBeanAccess mkmFormCd1AllItem = mkmFormCd1AllList.getDataBean(i);
			String mkmFormCd1Cd = mkmFormCd1AllItem.sendMessageString(KKW00102SFConst.CD_DIV_03, X31CWebConst.DATABEAN_GET_VALUE);
			String mkmFormCd1Nm = mkmFormCd1AllItem.sendMessageString(KKW00102SFConst.CD_DIV_NM_03, X31CWebConst.DATABEAN_GET_VALUE);
			if (mkmFormCdSelect.equals(mkmFormCd1Cd.substring(0, 4)) || mkmFormCdSelect.length() == 0)
			{
				mkmFormCd1PldItem.sendMessageString(KKW00102SFConst.CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, mkmFormCd1Cd);
				mkmFormCd1PldItem.sendMessageString(KKW00102SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, mkmFormCd1Nm);
			}
		}
		
		// 申込形態コード１を「選択なし」状態に設定
		setSubBeanString(bean, KKW00102SFConst.MKM_FORM_CD_1, KKW00102SFConst.SELECT_CD_02, KKW00102SFConst.CD_LIST_02, "");
		
		return true;
	}
}
