/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：CHW01109SFLogic
 *   ソースファイル名：CHW01109SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2011年10月18日
 *＜機能概要＞
 *   金庫一覧のビューロジック部品です。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v1.00.00    2011/10/18               新規作成
 *
 **********************************************************************/
package eo.web.webview.CHW01109SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

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.JACStrConst;
import eo.common.constant.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JACScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCHPageTransferUtil;
import eo.web.webview.common.JCHWebCommon;
import eo.web.webview.mapping.CHSV0033_CHSV0033OPDBMapper;

/**
 * 金庫一覧のビューロジックを提供します。
 * <p>
 * <BR>
 * 
 * @author 富士通
 */
public class CHW01109SFLogic extends JCCWebBusinessLogic
{

	/** ユースケースID(金庫一覧画面情報取得) */
	private static final String USECASE_ID_CHSV0033 = "CHSV0033";

	/** ページリンクID(金庫一覧照会SC) */
	private static final String PAGE_LNK_SC_ID = "CHSV003304SC";

	/** メッセージID(検索結果:指定されたデータが存在しません。) */
	private static final String MESSAGE_ID_SEARCH_ERR_NONE = "EKB0330--I";

	/** メッセージID(検索結果:最大検索件数%1%件を超えました。条件を変更して再度検索してください。) */
	private static final String MESSAGE_ID_SEARCH_ERR_OVER = "EKB0340--I";

	/** メッセージID(検索結果:対象ページに表示明細がありません。) */
	private static final String MESSAGE_ID_SEARCH_ERR_NO_PAGE = "EKB0350--I";

	/**
	 * 金庫一覧画面の初期表示処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean init() throws Exception
	{

		// 共有フォームBeanのアクセサを取得する
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 遷移先画面IDを判定して画面IDに対応する初期表示処理を呼び出す
		String screenId = commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
		if (screenId.equals(JACScreenConst.SCREEN_ID_CHW01109))
		{
			// メニューからの遷移時は画面定数クラスの値を指定する
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_ID_CHW01109);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_NAME_CHW01109);

			initIcrnScreen();
		}

		return true;
	}

	/**
	 * 金庫一覧画面の検索処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean search() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// ページング情報の削除
		JCCWebCommon.clearPageLinkInfo(this, JACScreenConst.SCREEN_ID_CHW01109);

		// 金庫一覧選択位置情報の初期化
		paramBeans[0].sendMessageString(CHW01109SFConst.KNK_ICRN_SEL, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 金庫照会サービス実行
		this.execCHSV0033(paramBeans, JPCModelConstant.FUNC_CD_6);

		return true;
	}

	/**
	 * 金庫一覧画面のページング処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean paging() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 金庫照会サービス実行
		this.execCHSV0033(paramBeans, JPCModelConstant.FUNC_CD_6);

		return true;
	}

	/**
	 * 金庫料金項目コードソート（昇順）を実行します。 <br>
	 * 
	 * @throws Exception 例外が発生した場合
	 */
	public boolean kinkoSortAsc() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// サービス実行
		this.execCHSV0033(paramBeans, JPCModelConstant.FUNC_CD_2);

		return true;
	}

	/**
	 * 金庫料金項目コードソート（降順）を実行します。 <br>
	 * 
	 * @throws Exception 例外が発生した場合
	 */
	public boolean kinkoSortDesc() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// サービス実行
		this.execCHSV0033(paramBeans, JPCModelConstant.FUNC_CD_3);

		return true;
	}

	/**
	 * 金庫移動年月日ソート（昇順）を実行します。 <br>
	 * 
	 * @throws Exception 例外が発生した場合
	 */
	public boolean knkIdoYmdSortAsc() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// サービス実行
		this.execCHSV0033(paramBeans, JPCModelConstant.FUNC_CD_4);

		return true;
	}

	/**
	 * 金庫移動年月日ソート（降順）を実行します。 <br>
	 * 
	 * @throws Exception 例外が発生した場合
	 */
	public boolean knkIdoYmdSortDesc() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// サービス実行
		this.execCHSV0033(paramBeans, JPCModelConstant.FUNC_CD_5);

		return true;
	}

	/**
	 * 金庫詳細画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean knkDetail() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 選択値の取得
		int idxSelValue = Integer.parseInt(bean.sendMessageString(CHW01109SFConst.KNK_ICRN_SEL, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccess kinkoIcrnInfo = bean.getDataBeanArray(CHW01109SFConst.KNK_ICRN_INFO).getDataBean(idxSelValue);
		String knkNo = kinkoIcrnInfo.sendMessageString(CHW01109SFConst.KNK_NO_04, X31CWebConst.DATABEAN_GET_VALUE);

		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();

		// 画面遷移後に使用する引継情報(選択値)を作成
		HashMap<String, Object> dataHikitugiMap = new HashMap<String, Object>();
		dataHikitugiMap.put(CHW01109SFConst.KNK_NO_04, knkNo);

		// 自画面に戻ってくる場合に必要な検索条件(入力値)を作成
		List<String> searchConditionList = new ArrayList<String>();

		// 自画面に戻ってくる場合に必要な検索条件(選択値)を作成
		HashMap<String, Object> searchConditionMap = new HashMap<String, Object>();

		// 画面遷移情報の設定
		HashMap<String, Object> screenTransferMap = JCHPageTransferUtil.createScreenTransferMap(dataHikitugiList, searchConditionList,
				JACScreenConst.SCREEN_ID_CHW01109, JACScreenConst.SCREEN_ID_CHW01108, null);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 金庫登録画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean knkRegist() throws Exception
	{
		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();

		// 画面遷移後に使用する引継情報(選択値)を作成
		HashMap<String, Object> dataHikitugiMap = new HashMap<String, Object>();

		// 自画面に戻ってくる場合に必要な検索条件(入力値)を作成
		List<String> searchConditionList = new ArrayList<String>();

		// 自画面に戻ってくる場合に必要な検索条件(選択値)を作成
		HashMap<String, Object> searchConditionMap = new HashMap<String, Object>();

		// 画面遷移情報の設定
		HashMap<String, Object> screenTransferMap = JCHPageTransferUtil.createScreenTransferMap(dataHikitugiList, searchConditionList,
				JACScreenConst.SCREEN_ID_CHW01109, JACScreenConst.SCREEN_ID_CHW01102, JACScreenConst.SCREEN_ID_CHW01103);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 金庫移動登録画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean knkMv() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 選択値の取得
		int idxSelValue = Integer.parseInt(bean.sendMessageString(CHW01109SFConst.KNK_ICRN_SEL, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccess kinkoIcrnInfo = bean.getDataBeanArray(CHW01109SFConst.KNK_ICRN_INFO).getDataBean(idxSelValue);
		String seikyKeiNo = kinkoIcrnInfo.sendMessageString(CHW01109SFConst.SEIKY_KEI_NO_04, X31CWebConst.DATABEAN_GET_VALUE);
		String knkNo = kinkoIcrnInfo.sendMessageString(CHW01109SFConst.KNK_NO_04, X31CWebConst.DATABEAN_GET_VALUE);

		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();

		// 画面遷移後に使用する引継情報(選択値)を作成
		HashMap<String, Object> dataHikitugiMap = new HashMap<String, Object>();
		dataHikitugiMap.put(CHW01109SFConst.SEIKY_KEI_NO_04, seikyKeiNo);
		dataHikitugiMap.put(CHW01109SFConst.KNK_NO_04, knkNo);

		// 自画面に戻ってくる場合に必要な検索条件(入力値)を作成
		List<String> searchConditionList = new ArrayList<String>();

		// 自画面に戻ってくる場合に必要な検索条件(選択値)を作成
		HashMap<String, Object> searchConditionMap = new HashMap<String, Object>();

		// 画面遷移情報の設定
		HashMap<String, Object> screenTransferMap = JCHPageTransferUtil.createScreenTransferMap(dataHikitugiList, searchConditionList,
				JACScreenConst.SCREEN_ID_CHW01109, JACScreenConst.SCREEN_ID_CHW01104, JACScreenConst.SCREEN_ID_CHW01105);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 金庫取消画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean knkCl() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 選択値の取得
		int idxSelValue = Integer.parseInt(bean.sendMessageString(CHW01109SFConst.KNK_ICRN_SEL, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccess kinkoIcrnInfo = bean.getDataBeanArray(CHW01109SFConst.KNK_ICRN_INFO).getDataBean(idxSelValue);
		String seikyKeiNo = kinkoIcrnInfo.sendMessageString(CHW01109SFConst.SEIKY_KEI_NO_04, X31CWebConst.DATABEAN_GET_VALUE);
		String knkNo = kinkoIcrnInfo.sendMessageString(CHW01109SFConst.KNK_NO_04, X31CWebConst.DATABEAN_GET_VALUE);
		String knkPrcKmkCd = kinkoIcrnInfo.sendMessageString(CHW01109SFConst.KNK_PRC_KMK_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
		String knkAmnt = kinkoIcrnInfo.sendMessageString(CHW01109SFConst.KNK_AMNT_04, X31CWebConst.DATABEAN_GET_VALUE);
		String knkMoveCd = kinkoIcrnInfo.sendMessageString(CHW01109SFConst.KNK_MOVE_CD_04, X31CWebConst.DATABEAN_GET_VALUE);

		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();

		// 画面遷移後に使用する引継情報(選択値)を作成
		HashMap<String, Object> dataHikitugiMap = new HashMap<String, Object>();
		dataHikitugiMap.put(CHW01109SFConst.SEIKY_KEI_NO_04, seikyKeiNo);
		dataHikitugiMap.put(CHW01109SFConst.KNK_NO_04, knkNo);
		dataHikitugiMap.put(CHW01109SFConst.KNK_PRC_KMK_CD_04, knkPrcKmkCd);
		dataHikitugiMap.put(CHW01109SFConst.KNK_AMNT_04, knkAmnt);
		dataHikitugiMap.put(CHW01109SFConst.KNK_MOVE_CD_04, knkMoveCd);

		// 自画面に戻ってくる場合に必要な検索条件(入力値)を作成
		List<String> searchConditionList = new ArrayList<String>();

		// 自画面に戻ってくる場合に必要な検索条件(選択値)を作成
		HashMap<String, Object> searchConditionMap = new HashMap<String, Object>();

		// 画面遷移情報の設定
		HashMap<String, Object> screenTransferMap = JCHPageTransferUtil.createScreenTransferMap(dataHikitugiList, searchConditionList,
				JACScreenConst.SCREEN_ID_CHW01109, JACScreenConst.SCREEN_ID_CHW01106, JACScreenConst.SCREEN_ID_CHW01107);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 金庫一覧画面の初期表示処理を行います。 <br>
	 * 
	 * @throws Exception 例外が発生した場合
	 */
	private void initIcrnScreen() throws Exception
	{

		// 画面間引継情報を設定する
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0033);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		CHSV0033_CHSV0033OPDBMapper mapper = new CHSV0033_CHSV0033OPDBMapper();
		mapper.setCHSV003301SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // EZM0171B030 : 金庫ステータスコード名称一覧照会
		mapper.setCHSV003302SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // EZM0171B012 : コード名称管理＿対象日付一覧照会
		mapper.setCHSV003303SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // EZM0171B012 : コード名称管理＿金庫履歴表示区分照会

		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// 下りマッピング
		mapper.getCHSV003301SC(paramBeans, outputMap);
		mapper.getCHSV003302SC(paramBeans, outputMap);
		mapper.getCHSV003303SC(paramBeans, outputMap);

		// TODO:表示用制御値
		paramBeans[0].sendMessageString(CHW01109SFConst.KNK_PRC_DSP_SELECT_INDEX, X31CWebConst.DATABEAN_SET_VALUE, "0");
		paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_JSF_BTN_SORT, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
		paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_DETAIL, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
		paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_REGIST, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_MV, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
		paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_CL, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);

		return;
	}

	/**
	 * 金庫照会サービスを実行します。 <br>
	 * 
	 * @param paramBeans 金庫一覧サービスフォームBean
	 * @param knoCd 機能コード
	 */
	private void execCHSV0033(X31SDataBeanAccess[] paramBeans, String knoCd)
	{

		// サービス実行前に検索結果項目をクリアする 
		paramBeans[0].getDataBeanArray(CHW01109SFConst.KNK_ICRN_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01109SFConst.SEIKY_KEI_INFO).clearArray();
		paramBeans[0].sendMessageString(CHW01109SFConst.SEIKY_KEI_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
		paramBeans[0].sendMessageString(CHW01109SFConst.ADD_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());

		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0033);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		CHSV0033_CHSV0033OPDBMapper mapper = new CHSV0033_CHSV0033OPDBMapper();

		mapper.setCHSV003301SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // EZM0171B030 : 金庫ステータスコード名称一覧照会
		mapper.setCHSV003302SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // EZM0171B012 : コード名称管理＿対象日付一覧照会
		mapper.setCHSV003303SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // EZM0171B012 : コード名称管理＿金庫履歴表示区分照会
		mapper.setCHSV003304SC(paramBeans, inDataMap, knoCd); // ECH0191B010 : 金庫一覧照会
		mapper.setCHSV003305SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); // EKK0491A010 : 請求契約一意照会

		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "0", PAGE_LNK_SC_ID, inDataMap);

		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// 下りマッピング
		mapper.getCHSV003304SC(paramBeans, outputMap);
		// 請求契約番号が入力されたの場合
		if (JCHWebCommon.isNotNullOrEmpty(paramBeans[0].sendMessageString(CHW01109SFConst.SEARCH_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			mapper.getCHSV003305SC(paramBeans, outputMap);
		}

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(PAGE_LNK_SC_ID, outputMap);
		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SEARCH_ERR_NONE);
		}
		else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SEARCH_ERR_OVER, new String[] {JCCWebCommon.getSearchConst(JACStrConst.PAGING_MAX_SHOW_CNT_CHW01109)});
		}
		else if (JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg))
		{
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SEARCH_ERR_NO_PAGE);
		}

		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, "0", PAGE_LNK_SC_ID, outputMap);

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "paging");

		// 金庫一覧画面の項目を編集する
		this.screenIcrnHenshu(paramBeans);
	}

	/**
	 * 金庫一覧画面の項目を編集する。 <br>
	 * 
	 * @param paramBeans 金庫一覧サービスフォームBean
	 */
	private void screenIcrnHenshu(X31SDataBeanAccess[] paramBeans)
	{

		// 初期表示位置
		// 金庫一覧選択
		int listCnt = paramBeans[0].getDataBeanArray(CHW01109SFConst.KNK_ICRN_INFO).getCount();
		String knkIcrnSel = paramBeans[0].sendMessageString(CHW01109SFConst.KNK_ICRN_SEL, X31CWebConst.DATABEAN_GET_VALUE);
		if (JCHWebCommon.isNullOrEmpty(knkIcrnSel))
		{
			paramBeans[0].sendMessageString(CHW01109SFConst.KNK_ICRN_SEL, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
		else
		{
			if (Integer.parseInt(knkIcrnSel) > listCnt -1) 
			{
				paramBeans[0].sendMessageString(CHW01109SFConst.KNK_ICRN_SEL, X31CWebConst.DATABEAN_SET_VALUE, "0");
			}
		}

		// 履歴表示ラベル
		String rirekiDataFlg = paramBeans[0].sendMessageString(CHW01109SFConst.KNK_PRC_DSP_SELECT_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		if (rirekiDataFlg.equals(JACStrConst.RIREKI_DATA_FLG_ON))
		{
			// 表示用制御値
			this.setCtrlValueInknkIcrnOn(paramBeans);
		}
		else
		{
			// 表示用制御値
			this.setCtrlValueInknkIcrnOff(paramBeans);
		}

		// 請求契約番号が入力の場合
		if (JCHWebCommon.isNotNullOrEmpty(paramBeans[0].sendMessageString(CHW01109SFConst.SEARCH_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 請求契約者名を設定する
			X31SDataBeanAccessArray seikyKeiInfoArray = paramBeans[0].getDataBeanArray(CHW01109SFConst.SEIKY_KEI_INFO);

			if (seikyKeiInfoArray != null && seikyKeiInfoArray.getCount() > 0)
			{
				X31SDataBeanAccess seikyKeiInfo = seikyKeiInfoArray.getDataBean(0);
				String seikyKeiNm = seikyKeiInfo.sendMessageString(CHW01109SFConst.SHS_KANA_05, X31CWebConst.DATABEAN_GET_VALUE);
				paramBeans[0].sendMessageString(CHW01109SFConst.SEIKY_KEI_NM, X31CWebConst.DATABEAN_SET_VALUE, seikyKeiNm);
			}
		}

		// 登録者が入力の場合
		if (JCHWebCommon.isNotNullOrEmpty(paramBeans[0].sendMessageString(CHW01109SFConst.SEARCH_ID_ADD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			if (paramBeans[0].getDataBeanArray(CHW01109SFConst.KNK_ICRN_INFO).getCount() > 0)
			{
				// 登録者名を設定する
				X31SDataBeanAccess seikyKeiInfo = paramBeans[0].getDataBeanArray(CHW01109SFConst.KNK_ICRN_INFO).getDataBean(0);
				String addNm = seikyKeiInfo.sendMessageString(CHW01109SFConst.ADD_OPEACNT_NM_04, X31CWebConst.DATABEAN_GET_VALUE);
				paramBeans[0].sendMessageString(CHW01109SFConst.ADD_NM, X31CWebConst.DATABEAN_SET_VALUE, addNm);
			}
		}

		if (paramBeans[0].getDataBeanArray(CHW01109SFConst.KNK_ICRN_INFO).getCount() > 0)
		{
			// 表示用制御値
			paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_JSF_BTN_SORT, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_FALSE);
			paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_DETAIL, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
			paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_REGIST, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
			paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_MV, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
			paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_CL, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		}
		else
		{
			paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_JSF_BTN_SORT, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
			paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_DETAIL, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
			paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_REGIST, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
			paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_MV, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
			paramBeans[0].sendMessageString(CHW01109SFConst.DSBL_CTL_HTML_BTN_KNK_CL, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
		}

	}

	/**
	 * 金庫一覧情報（金庫履歴非表示時）の制御値を設定します。 <br>
	 * 
	 * @param bean 金庫一覧サービスフォームBean
	 */
	private void setCtrlValueInknkIcrnOff(X31SDataBeanAccess[] bean)
	{
		X31SDataBeanAccessArray knkIcrnInfo = bean[0].getDataBeanArray(CHW01109SFConst.KNK_ICRN_INFO);
		for (int idx = 0; idx < knkIcrnInfo.getCount().intValue(); idx++)
		{
			// 表示制御値
			String dspCntrlValue = JACStrConst.DSP_BG_COLOR_EVEN;
			if (idx % 2 == 0)
			{
				dspCntrlValue = JACStrConst.DSP_BG_COLOR_ODD;
			}
			knkIcrnInfo.getDataBean(idx).sendMessageString(CHW01109SFConst.DSP_CNTRL_VALUE_04, X31CWebConst.DATABEAN_SET_VALUE, dspCntrlValue);
		}
	}

	/**
	 * 金庫一覧情報（金庫履歴表示時）の制御値を設定します。 <br>
	 * 
	 * @param bean 金庫一覧サービスフォームBean
	 */
	private void setCtrlValueInknkIcrnOn(X31SDataBeanAccess[] bean)
	{
		X31SDataBeanAccessArray knkIcrnInfo = bean[0].getDataBeanArray(CHW01109SFConst.KNK_ICRN_INFO);
		for (int idx = 0; idx < knkIcrnInfo.getCount().intValue(); idx++)
		{
			// 表示制御値
			String dspCntrlValue = JACStrConst.DSP_BG_COLOR_ODD;

			// 履歴表示フラグ設定
			String rirekiDataFlg = knkIcrnInfo.getDataBean(idx).sendMessageString(CHW01109SFConst.RIREKI_DATA_FLG_04, X31CWebConst.DATABEAN_GET_VALUE);
			if (rirekiDataFlg.equals(JACStrConst.KNK_RIREKI_DATA_FLG_RIREKI))
			{
				dspCntrlValue = JACStrConst.DSP_BG_COLOR_RIREKI;
			}
			knkIcrnInfo.getDataBean(idx).sendMessageString(CHW01109SFConst.DSP_CNTRL_VALUE_04, X31CWebConst.DATABEAN_SET_VALUE, dspCntrlValue);
		}
	}
}
