/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：ACW00101SFLogic
 *	ソースファイル名：ACW00101SFLogic.java
 *	作成者			：富士通
 *	日付			：2011年06月06日
 *＜機能概要＞
 *	一時金一覧照会のビューロジック部品です。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/06/06	富士通		新規作成
 *	v5.00.00	2013/07/11	FJ) 垣内	【LT-2013-0000274】一時金情報が存在しない場合はメッセージを出力しないよう修正
 *  v23.00.00   2015/11/09  FJ）寺園    ANK-2693-00-00 オーダリング案件（ＳＴＥＰ２）
 *  v23.00.01   2016/03/14  FJ）山口    【ANK-2715-00-00】料金系画面の改善
 *  v23.00.02	2016/04/07	FJ）田口	【ANK-2715-00-00】料金系画面の改善
 *  v56.00.00	2021/11/29	FJ）藤本涼	【ANK-3998-00-00】一時金一覧画面の絞り込み条件追加
 *  v57.00.00	2022/03/14	FJ）杉本	【OM-2022-0000402】一時金一覧画面表示不正
 **********************************************************************/
package eo.web.webview.ACW00101SF;

import java.text.ParseException;
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.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.ACW00104SF.ACW00104SFConst;
import eo.web.webview.ACW00106SF.ACW00106SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JACCommonConst;
import eo.web.webview.common.JACScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCHCommonServiceUtil;
import eo.web.webview.common.JCHPageTransferUtil;
import eo.web.webview.common.JCHPulldownUtil;
import eo.web.webview.common.JCHWebCommon;
import eo.web.webview.mapping.ACSV0007_ACSV0007OPDBMapper;

/**
 * 一時金一覧照会のビューロジックを提供します。
 * <p>
 * <BR>
 * 
 * @author 富士通
 */
public class ACW00101SFLogic extends JCCWebBusinessLogic
{

	/** ユースケースID(一時金一覧照会) */
	private static final String USECASE_ID = "ACSV0007";

	/** ユースケースID(ページリンクサービスID) */
	private static final String PAGE_LNK_SC_ID = "ACSV000702SC";

	/** ユースケースID(ページリンクサービスID) */
	private static final String PAGE_LNK_SC_ID2 = JACStrConst.PRCTAIOKIROKICRNSTKUCC_MAP_ID;

	/** メッセージ（請求先番号） */
	private static final String MESSAGE_SEIKY_SAKI_NO = "請求先番号";

	/** メッセージＩＤ(%1%が存在しません。) */
	private static final String MESSAGE_ID_SEIKY_KEI_NO_NONE = "EKB0740-KW";

	/** メッセージＩＤ(検索結果:最大検索件数%1%件を超えました。条件を変更して再度検索してください。) */
	private static final String MESSAGE_ID_SEARCH_ERR_OVER = "EKB0340--I";

	/** メッセージＩＤ(検索結果:対象ページに表示明細がありません。) */
	private static final String MESSAGE_ID_SEARCH_ERR_NO_PAGE = "EKB0350--I";

	/** 一時金一覧照会ページング_最大検索件数取得キー */
	private static final String KEY_PAGING_MAX_SHOW_CNT = "ACW00101_MAX_SHOW_CNT";

	/** 料金対応記録ページング_最大検索件数取得キー */
	private static final String PRC_TAIO_KIROK_KEY_PAGING_MAX_SHOW_CNT = "ACW00101_TAIORRKI_MAX_SHOW_CNT";

	/** 料金対応記録ページング_表示件数取得キー */
	private static final String PRC_TAIO_KIROK_KEY_PAGING_ROW_PER_PAGE = "ACW00101_TAIORRKI_ROW_PER_PAGE";

	/**
	 * 一時金一覧照会の初期表示処理を行います。 <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_ACW00101))
		{
			// メニューからの遷移時は画面定数クラスの値を指定する
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_ID_ACW00101);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_NAME_ACW00101);

			initIcrnShokaiScreen();
		}

		return true;
	}

	/**
	 * 一時金一覧照会の検索処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean search() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// サービス契約番号をDataBeanに設定
		String svcKeiNo = JCHPulldownUtil.getSelectedValue(paramBeans, ACW00101SFConst.SVC_KEI_NO_INFO, ACW00101SFConst.SVC_KEI_NO_LIST_03,
				ACW00101SFConst.SVC_KEI_NO_SEL_03);

		bean.sendMessageString(ACW00101SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);

		// 入力が正常の場合、請求契約番号を退避
		String fixSeikyKeiNo = bean.sendMessageString(ACW00101SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JACStrConst.KARA_MOJI.equals(fixSeikyKeiNo) && fixSeikyKeiNo.length() == 10)
		{
			bean.sendMessageString(ACW00101SFConst.FIX_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, fixSeikyKeiNo);
		}

		// ページング情報の削除
		JCCWebCommon.clearPageLinkInfo(this, JACScreenConst.SCREEN_ID_ACW00101);

		// 一時金一覧選択位置の初期化
		paramBeans[0].sendMessageString(ACW00101SFConst.ICJKN_ICRN_SEL, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 料金履歴テーブル表示制御値の初期化
		paramBeans[0].sendMessageString(ACW00101SFConst.STYLE_DISPLAY_PRC_RIREKI_TABLE, X31CWebConst.DATABEAN_SET_VALUE, "none");
		
// ANK-2715-00-00 ADD START
		// 戻るボタンを非表示にするため、料金タブ遷移元画面IDを初期化する。
		bean.sendMessageString(JACCommonConst.PRC_TAB_SENI_MOTO_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, "");
// ANK-2715-00-00 ADD END

		// サービス実行
		this.execACSV0007(paramBeans, "0");

		return true;
	}

	/**
	 * 一時金一覧照会のページング処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean paging() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// サービス契約番号をDataBeanに設定
		String svcKeiNo = JCHPulldownUtil.getSelectedValue(paramBeans, ACW00101SFConst.SVC_KEI_NO_INFO, ACW00101SFConst.SVC_KEI_NO_LIST_03,
				ACW00101SFConst.SVC_KEI_NO_SEL_03);

		bean.sendMessageString(ACW00101SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);

		// 入力が正常の場合、請求契約番号を退避
		String fixSeikyKeiNo = bean.sendMessageString(ACW00101SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JACStrConst.KARA_MOJI.equals(fixSeikyKeiNo) && fixSeikyKeiNo.length() == 10)
		{
			bean.sendMessageString(ACW00101SFConst.FIX_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, fixSeikyKeiNo);
		}

		// サービス実行
		this.execACSV0007(paramBeans, "1");

		return true;
	}

	/**
	 * 一時金一覧照会のページング処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean paging2() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// サービス契約番号をDataBeanに設定
		String svcKeiNo = JCHPulldownUtil.getSelectedValue(paramBeans, ACW00101SFConst.SVC_KEI_NO_INFO, ACW00101SFConst.SVC_KEI_NO_LIST_03,
				ACW00101SFConst.SVC_KEI_NO_SEL_03);

		bean.sendMessageString(ACW00101SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);

		// 入力が正常の場合、請求契約番号を退避
		String fixSeikyKeiNo = bean.sendMessageString(ACW00101SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JACStrConst.KARA_MOJI.equals(fixSeikyKeiNo) && fixSeikyKeiNo.length() == 10)
		{
			bean.sendMessageString(ACW00101SFConst.FIX_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, fixSeikyKeiNo);
		}

		// サービス実行
		this.execACSV0007(paramBeans, "2");

		return true;
	}

	/**
	 * 一時金一覧照会の検索処理（サービス契約番号の絞り込み）を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean svcKeiNoChoice() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// サービス契約番号をDataBeanに設定
		String svcKeiNo = JCHPulldownUtil.getSelectedValue(paramBeans, ACW00101SFConst.SVC_KEI_NO_INFO, ACW00101SFConst.SVC_KEI_NO_LIST_03,
				ACW00101SFConst.SVC_KEI_NO_SEL_03);

		bean.sendMessageString(ACW00101SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);

		// ページング情報の削除
		JCCWebCommon.clearPageLinkInfo(this, JACScreenConst.SCREEN_ID_ACW00101, "0");

		// 一時金一覧選択位置の初期化
		paramBeans[0].sendMessageString(ACW00101SFConst.ICJKN_ICRN_SEL, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// サービス実行
		this.execACSV0007(paramBeans, "1");

		return true;
	}

	/**
	 * 一時金登録画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean add() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();
		dataHikitugiList.add(ACW00101SFConst.SEIKY_KEI_NO);
		dataHikitugiList.add(ACW00101SFConst.SVC_KEI_NO);

		// 画面遷移後に使用する引継情報(選択値)を作成
		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_ACW00101, JACScreenConst.SCREEN_ID_ACW00102, JACScreenConst.SCREEN_ID_ACW00103);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 一時金更新画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean upd() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// 選択値の取得
		int idxSelValue = Integer.parseInt(bean.sendMessageString(ACW00101SFConst.ICJKN_ICRN_SEL, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccess icjknIcrnInfo = bean.getDataBeanArray(ACW00101SFConst.ICJKN_ICRN_INFO).getDataBean(idxSelValue);
		String addSeq = icjknIcrnInfo.sendMessageString(ACW00101SFConst.ICJKN_ADD_SEQ_02, X31CWebConst.DATABEAN_GET_VALUE);
		String updSeq = icjknIcrnInfo.sendMessageString(ACW00101SFConst.ICJKN_UPD_SEQ_02, X31CWebConst.DATABEAN_GET_VALUE);
		String updDtm = icjknIcrnInfo.sendMessageString(ACW00101SFConst.UPD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE);
		String prcSvcCd = icjknIcrnInfo.sendMessageString(ACW00101SFConst.PRC_SVC_CD_02, X31CWebConst.DATABEAN_GET_VALUE);

		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();
		dataHikitugiList.add(ACW00101SFConst.SEIKY_KEI_NO);
		dataHikitugiList.add(ACW00101SFConst.SVC_KEI_NO);

		// 画面遷移後に使用する引継情報(選択値)を作成
		HashMap<String, Object> dataHikitugiMap = new HashMap<String, Object>();
		dataHikitugiMap.put(ACW00104SFConst.ICJKN_ADD_SEQ, addSeq);
		dataHikitugiMap.put(ACW00104SFConst.ICJKN_UPD_SEQ, updSeq);
		dataHikitugiMap.put(ACW00104SFConst.UPD_DTM, updDtm);
		dataHikitugiMap.put(ACW00104SFConst.PRC_SVC_CD, prcSvcCd);

		// 自画面に戻ってくる場合に必要な検索条件(入力値)を作成
		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_ACW00101, JACScreenConst.SCREEN_ID_ACW00104, JACScreenConst.SCREEN_ID_ACW00105);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 一時金削除画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean del() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// 選択値の取得
		int idxSelValue = Integer.parseInt(bean.sendMessageString(ACW00101SFConst.ICJKN_ICRN_SEL, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccess icjknIcrnInfo = bean.getDataBeanArray(ACW00101SFConst.ICJKN_ICRN_INFO).getDataBean(idxSelValue);
		String addSeq = icjknIcrnInfo.sendMessageString(ACW00101SFConst.ICJKN_ADD_SEQ_02, X31CWebConst.DATABEAN_GET_VALUE);
		String updSeq = icjknIcrnInfo.sendMessageString(ACW00101SFConst.ICJKN_UPD_SEQ_02, X31CWebConst.DATABEAN_GET_VALUE);
		String updDtm = icjknIcrnInfo.sendMessageString(ACW00101SFConst.UPD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE);
		String prcSvcCd = icjknIcrnInfo.sendMessageString(ACW00101SFConst.PRC_SVC_CD_02, X31CWebConst.DATABEAN_GET_VALUE);

		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();
		dataHikitugiList.add(ACW00101SFConst.SEIKY_KEI_NO);
		dataHikitugiList.add(ACW00101SFConst.SVC_KEI_NO);

		// 画面遷移後に使用する引継情報(選択値)を作成
		HashMap<String, Object> dataHikitugiMap = new HashMap<String, Object>();
		dataHikitugiMap.put(ACW00106SFConst.ICJKN_ADD_SEQ, addSeq);
		dataHikitugiMap.put(ACW00106SFConst.ICJKN_UPD_SEQ, updSeq);
		dataHikitugiMap.put(ACW00106SFConst.UPD_DTM, updDtm);
		dataHikitugiMap.put(ACW00106SFConst.PRC_SVC_CD, prcSvcCd);

		// 自画面に戻ってくる場合に必要な検索条件(入力値)を作成
		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_ACW00101, JACScreenConst.SCREEN_ID_ACW00106, JACScreenConst.SCREEN_ID_ACW00107);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 割賦契約情報更新画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean keiKap() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.keiKapTransfer(this, JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 請求契約更新画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean seikyKeiUpd() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.seikyKeiTransfer(this, JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 契約S画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean kei() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.keiTransfer(this, JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 対応履歴画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean taioRireki() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.taioRirekiTransfer(this, JACScreenConst.SCREEN_ID_ACW00101);
	}
// ANK-2715-00-00 ADD START

	/**
	 * 【戻るボタン押下時の処理】 料金タブ遷移元画面IDの画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean back() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// 料金タブ遷移元画面IDを取得する
		String beforeScreenId = bean.sendMessageString(JACCommonConst.PRC_TAB_SENI_MOTO_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);

		// 遷移先画面の設定
		X31SDataBeanAccess commoninfoBean = this.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, beforeScreenId);

		return true;
	}
// ANK-2715-00-00 ADD END

	/**
	 * 【債権管理タブ押下時の処理】 債権管理画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabSaikenKanri() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00101, JACScreenConst.SCREEN_NAME_CHW00101, 
							JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 【請求一覧タブ押下時の処理】 請求一覧画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabSeikyIcrn() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00104, JACScreenConst.SCREEN_NAME_CHW00104, 
							JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 【請求内訳タブ押下時の処理】 請求内訳画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabSeikyUw() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00105, JACScreenConst.SCREEN_NAME_CHW00105, 
							JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 【入金一覧タブ押下時の処理】 入金一覧画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabNyukinIcrn() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00601, JACScreenConst.SCREEN_NAME_CHW00601, 
							JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 【督促管理タブ押下時の処理】 督促管理画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabTokusokuKanri() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW01301, JACScreenConst.SCREEN_NAME_CHW01301, 
							JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 【料金調整タブ押下時の処理】 料金調整画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabPrcAdj() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00201, JACScreenConst.SCREEN_NAME_CHW00201, 
							JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 【料金変更タブ押下時の処理】 料金変更画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabPrcChg() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00301, JACScreenConst.SCREEN_NAME_CHW00301, 
							JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 【金庫管理タブ押下時の処理】 金庫管理画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabKnkKanri() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW01101, JACScreenConst.SCREEN_NAME_CHW01101, 
							JACScreenConst.SCREEN_ID_ACW00101);
	}

	/**
	 * 一時金一覧照会画面の初期表示処理を行います。 <br>
	 * 
	 * @throws Exception 例外が発生した場合
	 */
	private void initIcrnShokaiScreen() throws Exception
	{

		// 画面間引継情報を設定する
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 一時金一覧照会サービス実行
		// 請求契約番号が設定されている時のみ実行する。
		String seikyKeiNo = paramBeans[0].sendMessageString(ACW00101SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if (JCHWebCommon.isNotNullOrEmpty(seikyKeiNo))
		{
			String fixSeikyKeiNo = bean.sendMessageString(ACW00101SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JACStrConst.KARA_MOJI.equals(fixSeikyKeiNo) && fixSeikyKeiNo.length() == 10)
			{
				// 入力された請求契約番号を退避
				bean.sendMessageString(ACW00101SFConst.FIX_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, fixSeikyKeiNo);
			}

			// ページング情報の削除
			JCCWebCommon.clearPageLinkInfo(this, JACScreenConst.SCREEN_ID_ACW00101);

			// 料金履歴テーブル表示制御値の初期化
			paramBeans[0].sendMessageString(ACW00101SFConst.STYLE_DISPLAY_PRC_RIREKI_TABLE, X31CWebConst.DATABEAN_SET_VALUE, "none");

			this.execACSV0007(paramBeans, "0");
		}

		return;
	}

	/**
	 * 一時金一覧照会サービスを実行します。 <br>
	 * 
	 * @param paramBeans 一時金一覧サービスフォームBean
	 * @param pagingKbn ページング区分
	 */
	private void execACSV0007(X31SDataBeanAccess[] paramBeans, String pagingKbn)
	{

		// サービス実行前に検索結果項目をクリアする 
		clearBeanResultItems(paramBeans, pagingKbn);

		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		ACSV0007_ACSV0007OPDBMapper mapper = new ACSV0007_ACSV0007OPDBMapper();

		// サービス契約番号の有無により機能コードを振り分ける
		String svKeiNo = paramBeans[0].sendMessageString(ACW00101SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		String funcCd = JPCModelConstant.FUNC_CD_1;
		if (JCHWebCommon.isNotNullOrEmpty(svKeiNo))
		{
			funcCd = JPCModelConstant.FUNC_CD_2;
		}
// ANK-3998-00-00 ADD START
		// 請求年月（自）OR（至）の有無により機能コードを振り分ける
		String seikyYmFrom = paramBeans[0].sendMessageString(ACW00101SFConst.SEIKY_YM_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String seikyYmTo = paramBeans[0].sendMessageString(ACW00101SFConst.SEIKY_YM_TO, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (JCHWebCommon.isNotNullOrEmpty(seikyYmFrom) || JCHWebCommon.isNotNullOrEmpty(seikyYmTo))
		{
			funcCd = JPCModelConstant.FUNC_CD_3;
		}
		
// ANK-3998-00-00 ADD END

		JCHCommonServiceUtil.setSeikySakiInfoStkuCC(paramBeans, inDataMap); // SEIKYSAKIINFOSTKUCC:請求先情報取得CC
		mapper.setACSV000701SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // EKK0321B011:サービス契約番号一覧照会SC
		mapper.setACSV000702SC(paramBeans, inDataMap, funcCd); // EAC0171B010:一時金一覧照会SC
		JCHCommonServiceUtil.setPrcTaioKirokIcrnStkuCC(paramBeans, inDataMap,
				pagingKbn, PRC_TAIO_KIROK_KEY_PAGING_MAX_SHOW_CNT, PRC_TAIO_KIROK_KEY_PAGING_ROW_PER_PAGE); // PRCTAIOKIROKICRNSTKUCC:料金対応記録一覧取得CC
		JCHCommonServiceUtil.setGetWorkParamListForKeiKapSizeCC(paramBeans, inDataMap); // GETWORKPARAMLISTCC：業務パラメータ管理情報取得CC

		// ページング情報の設定
		if ("1".equals(pagingKbn))
		{
			JCCWebCommon.upmapperPageLinkInfo(this, "0", PAGE_LNK_SC_ID, inDataMap);
		}
		else if ("2".equals(pagingKbn))
		{
			JCCWebCommon.upmapperPageLinkInfo(this, "1", PAGE_LNK_SC_ID2, inDataMap);
		}
		else
		{
			JCCWebCommon.upmapperPageLinkInfo(this, "0", PAGE_LNK_SC_ID, inDataMap);
			JCCWebCommon.upmapperPageLinkInfo(this, "1", PAGE_LNK_SC_ID2, inDataMap);
		}

		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// 下りマッピング
		if ("1".equals(pagingKbn))
		{
			JCHCommonServiceUtil.getSeikySakiInfoStkuCC(paramBeans, outputMap);
			mapper.getACSV000701SC(paramBeans, outputMap);
			mapper.getACSV000702SC(paramBeans, outputMap);
			JCHCommonServiceUtil.getGetWorkParamListForKeiKapSizeCC(paramBeans, outputMap); // GETWORKPARAMLISTCC：業務パラメータ管理情報取得CC

			// 検索エラーフラグの取得
			String searchErrFlg = JCCWebCommon.getSearchErrFlg(PAGE_LNK_SC_ID, outputMap);
			if ("2".equals(searchErrFlg))
			{
				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SEARCH_ERR_OVER, new String[] {JCCWebCommon.getSearchConst(KEY_PAGING_MAX_SHOW_CNT)});
			}
			else if ("3".equals(searchErrFlg))
			{
				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SEARCH_ERR_NO_PAGE);
			}

			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this, "0", PAGE_LNK_SC_ID, outputMap);
		}
		else if ("2".equals(pagingKbn))
		{
			JCHCommonServiceUtil.getPrcTaioKirokIcrnStkuCC(paramBeans, outputMap);

			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this, "1", PAGE_LNK_SC_ID2, outputMap);
		}
		else
		{
			JCHCommonServiceUtil.getSeikySakiInfoStkuCC(paramBeans, outputMap);
			mapper.getACSV000701SC(paramBeans, outputMap);
			mapper.getACSV000702SC(paramBeans, outputMap);
			JCHCommonServiceUtil.getPrcTaioKirokIcrnStkuCC(paramBeans, outputMap);
			JCHCommonServiceUtil.getGetWorkParamListForKeiKapSizeCC(paramBeans, outputMap); // GETWORKPARAMLISTCC：業務パラメータ管理情報取得CC

			// 検索エラーフラグの取得
			String searchErrFlg = JCCWebCommon.getSearchErrFlg(PAGE_LNK_SC_ID, outputMap);
			if ("2".equals(searchErrFlg))
			{
				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SEARCH_ERR_OVER, new String[] {JCCWebCommon.getSearchConst(KEY_PAGING_MAX_SHOW_CNT)});
			}
			else if ("3".equals(searchErrFlg))
			{
				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SEARCH_ERR_NO_PAGE);
			}

			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this, "0", PAGE_LNK_SC_ID, outputMap);
			JCCWebCommon.downmapperPageLinkInfo(this, "1", PAGE_LNK_SC_ID2, outputMap);
		}

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "0", "paging", JACScreenConst.SCREEN_ID_ACW00101);
		JCCWebCommon.setSearchCommand(this, "1", "paging2", JACScreenConst.SCREEN_ID_ACW00101);

		// サービス契約番号選択
		X31SDataBeanAccess svcKeiNoInfo = paramBeans[0].getDataBeanArray(ACW00101SFConst.SVC_KEI_NO_INFO).getDataBean(0);
		String svcKeiNoSel = JCHPulldownUtil.getSelectedIndex(paramBeans, ACW00101SFConst.SVC_KEI_NO, ACW00101SFConst.SVC_KEI_NO_INFO,
				ACW00101SFConst.SVC_KEI_NO_LIST_03, JACStrConst.KARA_MOJI);
		svcKeiNoInfo.sendMessageString(ACW00101SFConst.SVC_KEI_NO_SEL_03, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNoSel);
		
		// 表示内容編集
		// 制御値
		this.setCtrlValueInIcjknIcrn(paramBeans);
		this.setCtrlValueInPrcRirekiIcrn(paramBeans);

		// 制御値(ボタン)
		this.setDisabledCntrlValueOfBtn(paramBeans);

		// メッセージ設定
		this.setErrorMessage(paramBeans);
	}

	/**
	 * 一時金一覧情報の制御値を設定します。 同時に一時金一覧選択(インデックス)が設定されていない場合は、 選択可能な先頭行を設定します。 <br>
	 * 
	 * @param bean 一時金一覧照会サービスフォームBean
	 */
	private void setCtrlValueInIcjknIcrn(X31SDataBeanAccess[] bean)
	{
		// 一時金一覧選択
		int icjknIcrnSelValue = -1;

		int idxSelValue = -1 ;

		if (!JCHWebCommon.isNullOrEmpty(bean[0].sendMessageString(ACW00101SFConst.ICJKN_ICRN_SEL, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			idxSelValue = Integer.parseInt(bean[0].sendMessageString(ACW00101SFConst.ICJKN_ICRN_SEL, X31CWebConst.DATABEAN_GET_VALUE));
		}

		boolean idxSelEnabled = false;

		X31SDataBeanAccessArray icjknIcrnInfo = bean[0].getDataBeanArray(ACW00101SFConst.ICJKN_ICRN_INFO);
		for (int idx = 0; idx < icjknIcrnInfo.getCount().intValue(); idx++)
		{
			// 表示制御値
			String dspCntrlValue = JACStrConst.DSP_BG_COLOR_EVEN;
			if (idx % 2 == 0)
			{
				dspCntrlValue = JACStrConst.DSP_BG_COLOR_ODD;
			}
			icjknIcrnInfo.getDataBean(idx).sendMessageString(ACW00101SFConst.DSP_ICRN_CNTRL_VALUE_02, X31CWebConst.DATABEAN_SET_VALUE, dspCntrlValue);

			// 選択可否制御値
			String selectCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
			String trkmStat = icjknIcrnInfo.getDataBean(idx).sendMessageString(ACW00101SFConst.TRKM_STAT_02, X31CWebConst.DATABEAN_GET_VALUE);
			if (JACStrConst.ICJKN_TRKM_STAT_TRKM_MI.equals(trkmStat))
			{
				selectCntrlValue = JACStrConst.KARA_MOJI;
				// 一時金一覧選択が設定されていない場合、選択可能な先頭行としてインデックスを保持する
				if (icjknIcrnSelValue == -1)
				{
					icjknIcrnSelValue = idx;
				}
				if (idxSelValue == idx)
				{
					idxSelEnabled = true;
				}
			}
			icjknIcrnInfo.getDataBean(idx).sendMessageString(ACW00101SFConst.SELECT_CNTRL_VALUE_02, X31CWebConst.DATABEAN_SET_VALUE, selectCntrlValue);
		}

		// 一時金一覧選択を設定する
		if (idxSelEnabled)
		{
			if (idxSelValue > icjknIcrnInfo.getCount() - 1) 
			{
				bean[0].sendMessageString(ACW00101SFConst.ICJKN_ICRN_SEL, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(icjknIcrnSelValue));
			}
			else
			{
				bean[0].sendMessageString(ACW00101SFConst.ICJKN_ICRN_SEL, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(idxSelValue));
			}
		}
		else
		{
			bean[0].sendMessageString(ACW00101SFConst.ICJKN_ICRN_SEL, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(icjknIcrnSelValue));
		}
	}

	/**
	 * ボタンの制御値を設定します。 <br>
	 * 
	 * @param bean 一時金一覧照会サービスフォームBean
	 */
	private void setDisabledCntrlValueOfBtn(X31SDataBeanAccess[] bean)
	{
		setCntrlValueOfBtnThisBiz(bean);
		setCntrlValueOfBtnOtherSys(bean);
	}

	/**
	 * 業務ボタンの制御値を設定します。 <br>
	 * 
	 * @param bean 一時金一覧照会サービスフォームBean
	 */
	private void setCntrlValueOfBtnThisBiz(X31SDataBeanAccess[] bean)
	{
		// 一時金一覧の存在有無及び行選択で制御
		String htmlDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
		String icjknIcrnSel = bean[0].sendMessageString(ACW00101SFConst.ICJKN_ICRN_SEL, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3998-00-00 ADD START
		String seikyYmDisabledCntrlValue = "true";
// ANK-3998-00-00 ADD END

		if (isExistIcjknIcrnInfo(bean) && "".equals(icjknIcrnSel) == false && "-1".equals(icjknIcrnSel) == false)
		{
			htmlDisabledCntrlValue = JACStrConst.KARA_MOJI;
		}

		/* ◇HTMLボタン */
		// 更新ボタン
		bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_HTML_BTN_UPDATE, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
		// 削除ボタン
		bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_HTML_BTN_DELETE, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);

		// 登録ボタンは請求契約情報の存在有無で制御
		htmlDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
		if (isExistSeikyInfo(bean))
		{
			htmlDisabledCntrlValue = JACStrConst.KARA_MOJI;
		}
		bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_HTML_BTN_REGIST, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
		
// ANK-3998-00-00 ADD START
		// 請求年月入力テキストは請求契約情報の存在有無で制御
		seikyYmDisabledCntrlValue = "true";
		if (isExistSeikyInfo(bean))
		{
			seikyYmDisabledCntrlValue = "false";
		}
		else
		{
			//請求契約情報が存在しない場合、テキストボックスをクリア
			bean[0].sendMessage(ACW00101SFConst.SEIKY_YM_FROM, X31CWebConst.DATABEAN_CLEAR);
			bean[0].sendMessage(ACW00101SFConst.SEIKY_YM_TO, X31CWebConst.DATABEAN_CLEAR);
		}
		bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_SEIKY_YM_TEXT, X31CWebConst.DATABEAN_SET_VALUE, seikyYmDisabledCntrlValue);
// ANK-3998-00-00 ADD END
		
		// 料金履歴ボタンは料金履歴情報の存在有無で制御
		htmlDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
		if (JCHWebCommon.isExistPrcRirekiInfo(bean))
		{
			htmlDisabledCntrlValue = JACStrConst.KARA_MOJI;
		}
		bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_HTML_BTN_PRC_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
	}

	/**
	 * 他シス遷移ボタンの制御値を設定します。 <br>
	 * 
	 * @param bean 一時金一覧照会サービスフォームBean
	 */
	private void setCntrlValueOfBtnOtherSys(X31SDataBeanAccess[] bean)
	{
		String htmlDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
		String jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_TRUE;

		if (isExistSeikyInfo(bean))
		{
			htmlDisabledCntrlValue = JACStrConst.KARA_MOJI;
			jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_FALSE;
		}

		/* ◇JSFボタン */
		// 契約ボタン
		bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);

		/* ◇HTMLボタン */
		// 割賦契約ボタン
		bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_HTML_BTN_KEI_KAP, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
		// 請求契約ボタン
		bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_HTML_BTN_SEIKY_KEI_UPD, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
		// 対応履歴ボタン
		bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);

// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） ADD START ▼▼
		if (bean[0].sendMessageString(JACCommonConst.SYSCD, X31CWebConst.DATABEAN_GET_VALUE).startsWith(JACStrConst.SYSCD_ODR))
		{
			bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
			bean[0].sendMessageString(ACW00101SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
		}
// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） ADD  END ▲▲
// ANK-2715-00-00 ADD START
		// 料金タブ遷移元画面ＩＤが設定されている場合
		if (JCHWebCommon.isNotNullOrEmpty(bean[0].sendMessageString(JACCommonConst.PRC_TAB_SENI_MOTO_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 戻るボタンを表示
			bean[0].sendMessageString(ACW00101SFConst.DSP_CTL_JSF_BTN_BACK, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
		}
		else
		{
			// 戻るボタンを非表示
			bean[0].sendMessageString(ACW00101SFConst.DSP_CTL_JSF_BTN_BACK, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_FALSE);
		}
// ANK-2715-00-00 ADD END
	}

	/**
	 * エラーメッセージ設定処理。 <br>
	 * 
	 * @param bean 債権照会サービスフォームBean
	 */
	private void setErrorMessage(X31SDataBeanAccess[] bean)
	{
		if (isExistSeikyInfo(bean) == false)
		{
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SEIKY_KEI_NO_NONE, new String[] { MESSAGE_SEIKY_SAKI_NO });
		}
	}

	/**
	 * 請求契約情報の存在を判定します。 <br>
	 * 
	 * @param bean 一時金一覧照会サービスフォームBean
	 * @return boolean
	 */
	private boolean isExistSeikyInfo(X31SDataBeanAccess[] bean)
	{
		boolean isExist = false;

		// 請求契約の存在有無を請求契約ステータス(NotNull項目)で判定
		X31SDataBeanAccess seikyInfo = bean[0].getDataBeanArray(ACW00101SFConst.SEIKY_INFO).getDataBean(0);
		String seikyKeiStat = seikyInfo.sendMessageString(ACW00101SFConst.SEIKY_KEI_STAT_01, X31CWebConst.DATABEAN_GET_VALUE);

		if (JCHWebCommon.isNotNullOrEmpty(seikyKeiStat))
		{
			isExist = true;
		}

		return isExist;
	}

	/**
	 * 一時金一覧情報の存在を判定します。 <br>
	 * 
	 * @param bean 一時金一覧照会サービスフォームBean
	 * @return boolean
	 */
	private boolean isExistIcjknIcrnInfo(X31SDataBeanAccess[] bean)
	{
		boolean isExist = false;

		X31SDataBeanAccessArray icjknIcrnInfo = bean[0].getDataBeanArray(ACW00101SFConst.ICJKN_ICRN_INFO);
		if (icjknIcrnInfo.getCount().intValue() > 0)
		{
			isExist = true;
		}

		return isExist;
	}

	/**
	 * サービスフォームBeanの検索結果項目をクリアします。 <br>
	 * 
	 * @param bean 一時金一覧照会サービスフォームBean
	 * @param pagingKbn ページング区分
	 */
	private void clearBeanResultItems(X31SDataBeanAccess[] bean, String pagingKbn)
	{
		if ("1".equals(pagingKbn))
		{
			/* ◇請求先情報 */
			bean[0].getDataBeanArray(ACW00101SFConst.SEIKY_INFO).clearArray();
			bean[0].getDataBeanArray(ACW00101SFConst.SEIKY_INFO).addDataBean();

			/* ◇サービス契約番号情報 */
			bean[0].getDataBeanArray(ACW00101SFConst.SVC_KEI_NO_INFO).clearArray();
			bean[0].getDataBeanArray(ACW00101SFConst.SVC_KEI_NO_INFO).addDataBean();
			// OM-2022-0000402 ADD START
			//変更前＿請求先番号の設定処理を行う
			String seikyKeiNo = bean[0].sendMessageString(ACW00101SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			String bfSeikyKeiNo = bean[0].sendMessageString(ACW00101SFConst.BF_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			if (JCHWebCommon.isNullOrEmpty(bfSeikyKeiNo))
			{
				bean[0].sendMessageString(ACW00101SFConst.BF_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyKeiNo);
			}
			
			//請求先番号が変更されている場合、テキストボックスをクリア
			if (JCHWebCommon.isNotNullOrEmpty(bfSeikyKeiNo) && !seikyKeiNo.equals(bfSeikyKeiNo))
			{
				bean[0].sendMessage(ACW00101SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_CLEAR);
				bean[0].sendMessage(ACW00101SFConst.SEIKY_YM_FROM, X31CWebConst.DATABEAN_CLEAR);
				bean[0].sendMessage(ACW00101SFConst.SEIKY_YM_TO, X31CWebConst.DATABEAN_CLEAR);
				
				bean[0].sendMessageString(ACW00101SFConst.BF_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyKeiNo);
			}
			// OM-2022-0000402 ADD END

			/* ◇一時金一覧情報 */
			bean[0].getDataBeanArray(ACW00101SFConst.ICJKN_ICRN_INFO).clearArray();
		}
		else if ("2".equals(pagingKbn))
		{
			/* ◇対応履歴情報 */
			bean[0].getDataBeanArray(ACW00101SFConst.PRC_RIREKI_INFO).clearArray();
		}
		else
		{
			/* ◇請求先情報 */
			bean[0].getDataBeanArray(ACW00101SFConst.SEIKY_INFO).clearArray();
			bean[0].getDataBeanArray(ACW00101SFConst.SEIKY_INFO).addDataBean();

			/* ◇サービス契約番号情報 */
			bean[0].getDataBeanArray(ACW00101SFConst.SVC_KEI_NO_INFO).clearArray();
			bean[0].getDataBeanArray(ACW00101SFConst.SVC_KEI_NO_INFO).addDataBean();
			// OM-2022-0000402 ADD START
			//変更前＿請求先番号の設定処理を行う
			String seikyKeiNo = bean[0].sendMessageString(ACW00101SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			String bfSeikyKeiNo = bean[0].sendMessageString(ACW00101SFConst.BF_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			if (JCHWebCommon.isNullOrEmpty(bfSeikyKeiNo))
			{
				bean[0].sendMessageString(ACW00101SFConst.BF_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyKeiNo);
			}
			
			//請求先番号が変更されている場合、テキストボックスをクリア
			if (JCHWebCommon.isNotNullOrEmpty(bfSeikyKeiNo) && !seikyKeiNo.equals(bfSeikyKeiNo))
			{
				bean[0].sendMessage(ACW00101SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_CLEAR);
				bean[0].sendMessage(ACW00101SFConst.SEIKY_YM_FROM, X31CWebConst.DATABEAN_CLEAR);
				bean[0].sendMessage(ACW00101SFConst.SEIKY_YM_TO, X31CWebConst.DATABEAN_CLEAR);
				
				bean[0].sendMessageString(ACW00101SFConst.BF_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyKeiNo);
			}
			// OM-2022-0000402 ADD END

			/* ◇一時金一覧情報 */
			bean[0].getDataBeanArray(ACW00101SFConst.ICJKN_ICRN_INFO).clearArray();

			/* ◇対応履歴情報 */
			bean[0].getDataBeanArray(ACW00101SFConst.PRC_RIREKI_INFO).clearArray();
		}
	}

	/**
	 * 料金履歴一覧情報の制御値を設定します。 <br>
	 * 
	 * @param bean 督促管理サービスフォームBean
	 */
	private void setCtrlValueInPrcRirekiIcrn(X31SDataBeanAccess[] bean)
	{
		X31SDataBeanAccessArray prcRirekiIcrnInfo = bean[0].getDataBeanArray(ACW00101SFConst.PRC_RIREKI_INFO);
		for (int idx = 0; idx < prcRirekiIcrnInfo.getCount().intValue(); idx++)
		{
			// 表示制御値、記事表示制御値
			String dspCntrlValue = JACStrConst.DSP_BG_COLOR_EVEN;
			String kijiDspCntrlValue = JACStrConst.CLASS_TEXT_READONLY_EVEN;
			if (idx % 2 == 0)
			{
				dspCntrlValue = JACStrConst.DSP_BG_COLOR_ODD;
				kijiDspCntrlValue = JACStrConst.CLASS_TEXT_READONLY_ODD;
			}

			prcRirekiIcrnInfo.getDataBean(idx).sendMessageString(ACW00101SFConst.DSP_CNTRL_VALUE_04, X31CWebConst.DATABEAN_SET_VALUE, dspCntrlValue);
			prcRirekiIcrnInfo.getDataBean(idx).sendMessageString(ACW00101SFConst.DSP_CNTRL_VALUE_KIJI_04, X31CWebConst.DATABEAN_SET_VALUE, kijiDspCntrlValue);
		}
	}

	/**
	 * 退避された請求契約番号を請求契約番号に設定します。 <br>
	 */
	private void setFixSeikyKeiNo()
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		String fixSeikyKeiNo = bean.sendMessageString(ACW00101SFConst.FIX_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if (JCHWebCommon.isNotNullOrEmpty(fixSeikyKeiNo))
		{
			bean.sendMessageString(ACW00101SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, fixSeikyKeiNo);
		}
		else
		{
			bean.sendMessageString(ACW00101SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, new String());
		}
	}
}
