/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CHW01001SFLogic
 *	ソースファイル名：CHW01001SFLogic.java
 *	作成者			：富士通
 *	日付			：2011年12月18日
 *＜機能概要＞
 *	随時入金登録のビューロジック部品です。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/12/18	富士通		新規作成
 *	v1.01.00	2013/05/08	FJ)大塚     メッセージ領域の背景色の設定対応
 *	v5.00.00	2013/07/08  FJ)林		【LT-2013-0000253】サービス契約番号未選択時、キャンペーンを取得しないよう修正
 *	v5.00.01	2013/07/31	FJ)伊藤		【IT1-2013-0001521】名称戻し対応
 *	v5.00.02	2013/08/03  FJ)吉田		【IT1-2013-0001510】入金系画面強化対応
 *	v5.00.03	2013/08/03  FJ)米谷		【製造状況管理台帳 No.496】記事、対応履歴チェックボックスを常に活性に修正
 *	v6.00.00	2013/10/23	FJ)鈴木		【OM-2013-0002865】入金経路が総合口座の場合、引落金融機関、支店を選択可能とする
 *	v8.00.00	2013/12/25  FJ)小野     【ANK-1584-00-00】MVNO（本体）対応
 *	v8.00.01	2014/02/05  FJ)小野     【IT1-2014-0000055】内訳パターン、料金項目追加時のエラーハンドリング修正。
 *	v8.00.02	2014/02/28  FJ)小野     【IT1-2014-0000054】利用開始、終了日の日付表示制御を修正。
 *	v8.00.03	2014/03/06  FJ)小野     【IT2-2014-0000149】料金内訳チェック制御を修正。
 *	v9.00.00	2014/04/16	FJ)小野     【ANK-2054-00-00】eoスマートリンク改修(端末補償)。
 *	v9.00.01	2014/05/16	FJ)林       【IT1-2014-0000151】登録確認画面、再計算後のNo欄の表示制御を修正。
 *	v9.00.02	2014/05/21	FJ)林       【IT1-2014-0000164】識別番号テキストに関するエラーではメッセージの背景色を白にするよう修正。
 *	v9.00.03	2014/05/29	FJ)江森     【IT1-2014-0000164】製造番号を取得する基準日を修正。
 *	v9.00.04	2014/08/15  FJ)桑島     【OM-2014-0002355】ID番号コンボのソート順を修正。登録データの料金グループコードの修正。
 *	v16.00.00	2015/06/17	FJ)西面		【ANK-2480-00-00】新電力対応
 *  v16.00.00	2015/07/09	FJ)吉村	    【ANK-2480-00-00】新電力対応
 *	v32.00.00	2017/04/20	FJ) 清原	【ANK-2996-00-00】ＳＭＳを利用した即時決済サービスの導入
 *	v36.00.00	2017/12/25	FJ）清原    【ANK-3296-00-00】標準工事費分割請求
 *	v36.00.01	2018/02/13	FJ）清原    【ANK-3296-00-00】標準工事費分割請求 リセット時の初期化不備
 *	v37.00.00	2018/04/26	FJ)麻生		【ANK-3366-00-00】eo光設備卸対応
 *  v41.00.00	2019/03/19  FJ) 大崎    【IT1-2019-0000043】卸２社目の考慮漏れ対応
 *	v52.00.00	2020/12/07	FJ) 寺園    【ANK-3838-00-00】窓口払い手数料の顧客負担方式導入
 *	v52.00.01	2020/12/17	FJ) 寺園    【IT1-2020-0000085】入金経路変換不備
 *	v67.00.00	2023/06/02	GDC)ml.alcantara    【ANK-4415-00-00】口振請求及びWeb申込システム移行 STEP1
 *  v71.00.00   2024/04/18  FJ)張       【ANK-4543-00-00】【eo定期】NTT卸対応：Step0
 *	v71.00.01   2024/04/19  FJ）久山    【ANK-4468-00-00】eo光ネット「シンプルプラン」追加対応
**********************************************************************/
package eo.web.webview.CHW01001SF;

import java.util.ArrayList;
import java.util.HashMap;

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.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CHW00201SF.CHW00201SFConst;
import eo.web.webview.CHW00901SF.CHW00901SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JACScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCHCommonConst;
import eo.web.webview.common.JCHCommonServiceUtil;
import eo.web.webview.common.JCHDspEditUtil;
import eo.web.webview.common.JCHPageTransferUtil;
import eo.web.webview.common.JCHPulldownUtil;
import eo.web.webview.common.JCHSeikyUwEditUtil;
import eo.web.webview.common.JCHWebCommon;
import eo.web.webview.mapping.CHSV0027_CHSV0027OPDBMapper;
import eo.web.webview.mapping.CHSV0051_CHSV0051OPDBMapper;
import eo.web.webview.mapping.CHSV0053_CHSV0053OPDBMapper;
import eo.web.webview.mapping.CHSV0054_CHSV0054OPDBMapper;

/**
 * 随時入金登録のビューロジックを提供します。
 * <p>
 * <BR>
 * 
 * @author 富士通
 */
public class CHW01001SFLogic extends JCCWebBusinessLogic
{

	/** ユースケースID(随時入金登録画面情報取得) */
	private static final String USECASE_ID_CHSV0051 = "CHSV0051";
	/** ユースケースID(金融機関一覧情報取得) */
	private static final String USECASE_ID_CHSV0052 = "CHSV0052";
	/** ユースケースID(随時入金登録) */
	private static final String USECASE_ID_CHSV0053 = "CHSV0053";
	/** ユースケースID(請求内訳追加情報取得) */
	private static final String USECASE_ID_CHSV0027 = "CHSV0027";
	/** ユースケースID(内訳パターン情報取得) */
	private static final String USECASE_ID_CHSV0054 = "CHSV0054";
	/** ユースケースID(機器提供サービス契約一覧照会（基準日指定）) */
	private static final String USECASE_ID_CHSV0079 = "CHSV0079";
	//v36.00.00 ANK-3296-00-00 Add Start
	/** ユースケースID(料金項目出力名称一意照会) */
	private static final String USECASE_ID_CHSV0083 = "CHSV0083";
	//v36.00.00 ANK-3296-00-00 Add End

	/** メッセージＩＤ(サービス契約番号なし) */
	private static final String MESSAGE_ID_SVC_KEI_NO_NONE = "EKB0740-KW";
	/** メッセージＩＤ(料金内訳の重複) */
	private static final String MESSAGE_ID_PRC_UCWK_EXIST = "EKB2230-KW";
	/** メッセージＩＤ(内訳パターン不正) */
	private static final String MESSAGE_ID_INVALID_UW_PTN = "EKB5590-KW";
	/** メッセージＩＤ(内訳パターンなし) */
	private static final String MESSAGE_ID_NOT_EXIST_UW_PTN = "EKB9040-KW";
	/** メッセージＩＤ(ＮＧワード) */
	private static final String MESSAGE_ID_NG_WORD = "EKB8580-KW";

	/** お客さまID入力 */
	private static final String SVC_KEI_NO_INPUT = "お客さまID入力";

	/**
	 * 随時入金登録の初期表示処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean init() throws Exception
	{

		// 共有フォームBeanのアクセサを取得する
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// オンライン運用日
		X31SDataBeanAccess bean = super.getServiceFormBean();
		bean.sendMessageString(CHW01001SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, JACStrConst.SYS_CD_CH));

		// 遷移先画面IDを判定して画面IDに対応する初期表示処理を呼び出す
		String screenId = commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
		if (screenId.equals(JACScreenConst.SCREEN_ID_CHW01001))
		{
			initAddScreen();
		}

		return true;
	}

	/**
	 * 入金経路選択時の表示処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean nyukinRouteChoice() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 選択位置のコード値を設定
		// 入金経路コード
		String nkinRouteCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.NYUKIN_ROUTE_INFO, CHW01001SFConst.NYUKIN_ROUTE_CD_LIST_01,
				CHW01001SFConst.NYUKIN_ROUTE_CD_SEL_01);

		paramBeans[0].sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_CD, X31CWebConst.DATABEAN_SET_VALUE, nkinRouteCd);

		//ANK-4415-00-00 MOD START
		// ◇入金経路が金融機関を表示するコード(口座振替（ＣＰ）、口座振替、窓口入金)である場合、金融機関一覧情報取得サービスを実行する
//		if (JACStrConst.NYKNKEIRCD_KOZA.equals(nkinRouteCd) || JACStrConst.NYKNKEIRCD_MDGC.equals(nkinRouteCd))
		if (JACStrConst.NYKNKEIRCD_KOZA_CP.equals(nkinRouteCd) || JACStrConst.NYKNKEIRCD_KOZA_SMBCFS.equals(nkinRouteCd) || JACStrConst.NYKNKEIRCD_MDGC.equals(nkinRouteCd))
		//ANK-4415-00-00 MOD END
		{
			// 金融機関コード選択を初期化
			X31SDataBeanAccess bankInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.BANK_INFO).getDataBean(0);
			bankInfo.sendMessageString(CHW01001SFConst.BANK_CD_SEL_06, X31CWebConst.DATABEAN_SET_VALUE, "0");

			// 金融機関一覧情報取得サービス実行
			this.execCHSV0052(paramBeans, false);
		}

		// ◇入金経路が金融機関を表示するコード(現金、総合口座)である場合、金融機関一覧情報取得サービスを実行する
		if (JACStrConst.NYKNKEIRCD_GENKIN.equals(nkinRouteCd) || JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nkinRouteCd))
		{
			// 随時入金登録画面情報取得サービス実行
			this.execCHSV0051(paramBeans);
			
			// 総合口座の場合のみ金融機関一覧情報を取得する
			if (JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nkinRouteCd))
			{
				// 金融機関コード選択を初期化
				X31SDataBeanAccess bankInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.BANK_INFO).getDataBean(0);
				bankInfo.sendMessageString(CHW01001SFConst.BANK_CD_SEL_06, X31CWebConst.DATABEAN_SET_VALUE, "0");

				// 指定口座コード
				String shiteiKozaCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SHITEIKOZA_INFO, CHW01001SFConst.SHITEIKOZA_CD_LIST_03, CHW01001SFConst.SHITEIKOZA_CD_SEL_03);
				if (JACStrConst.PAYWAY_KOUZA_PFCT.equals(shiteiKozaCd)) // 指定口座がパーフェクト口座の場合
				{
					// 金融機関一覧情報取得サービス実行
					this.execCHSV0052(paramBeans, true);
				}
				else // 上記以外の場合
				{
					// 金融機関一覧情報取得サービス実行
					this.execCHSV0052(paramBeans, false);
				}
			}
		}

		// プルダウンリスト選択位置リセット
		this.resetPullDownSelIndex(paramBeans);
		// 制御値(入金情報表示)
		this.setDspCntrlValue(paramBeans);
		
		// 表示制御フラグ変更前を保持
		boolean date_dsp_cntrl_flg_init = paramBeans[0].sendMessageBoolean(CHW01001SFConst.DATE_DSP_CNTRL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ANK-3366-00-00 MOD START
//		// 入金経路コードが"金庫充当"または"クレジット"の場合、表示制御フラグにFalse（非表示）を設定する
//		if(nkinRouteCd.equals(JACStrConst.NYKNKEIRCD_JUTO) || nkinRouteCd.equals(JACStrConst.NYKNKEIRCD_CREDIT))
		// 入金経路コードが"金庫充当"または"クレジット"または"卸先事業者"の場合、表示制御フラグにFalse（非表示）を設定する
		if (nkinRouteCd.equals(JACStrConst.NYKNKEIRCD_JUTO) || nkinRouteCd.equals(JACStrConst.NYKNKEIRCD_CREDIT)
				|| nkinRouteCd.equals(JACStrConst.NYKNKEIRCD_KESSAI_ORSJGS))
		// ANK-3366-00-00 MOD END
		{
			paramBeans[0].sendMessageBoolean(CHW01001SFConst.DATE_DSP_CNTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			
			// 日付項目に運用日をセットする。
			String opedate = JCCWebCommon.getOpeDate(this, null);
			
			String year = opedate.substring(0, 4);
			String mon = opedate.substring(4, 6);
			String day = opedate.substring(6, 8);
			
			// 領収日
			paramBeans[0].sendMessageString(CHW01001SFConst.RECEIPT_DAY_YEAR, X31CWebConst.DATABEAN_SET_VALUE, year);
			paramBeans[0].sendMessageString(CHW01001SFConst.RECEIPT_DAY_MON, X31CWebConst.DATABEAN_SET_VALUE, mon);
			paramBeans[0].sendMessageString(CHW01001SFConst.RECEIPT_DAY_DAY, X31CWebConst.DATABEAN_SET_VALUE, day);
			
			// 収納日
			paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_DAY_YEAR, X31CWebConst.DATABEAN_SET_VALUE, year);
			paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_DAY_MON, X31CWebConst.DATABEAN_SET_VALUE, mon);
			paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_DAY_DAY, X31CWebConst.DATABEAN_SET_VALUE, day);
		}
		else
		{
			// 入金経路コードが"金庫充当"または"クレジット"または"卸先事業者"以外の場合、表示制御フラグにTrue（表示）を設定する
			paramBeans[0].sendMessageBoolean(CHW01001SFConst.DATE_DSP_CNTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
			
			// 変更前に日付項目を表示していた場合はクリアしない
			if(!date_dsp_cntrl_flg_init)
			{
				// 領収日
				paramBeans[0].sendMessage(CHW01001SFConst.RECEIPT_DAY_YEAR, X31CWebConst.DATABEAN_CLEAR);
				paramBeans[0].sendMessage(CHW01001SFConst.RECEIPT_DAY_MON, X31CWebConst.DATABEAN_CLEAR);
				paramBeans[0].sendMessage(CHW01001SFConst.RECEIPT_DAY_DAY, X31CWebConst.DATABEAN_CLEAR);
				
				// 収納日
				paramBeans[0].sendMessage(CHW01001SFConst.SHUNO_DAY_YEAR, X31CWebConst.DATABEAN_CLEAR);
				paramBeans[0].sendMessage(CHW01001SFConst.SHUNO_DAY_MON, X31CWebConst.DATABEAN_CLEAR);
				paramBeans[0].sendMessage(CHW01001SFConst.SHUNO_DAY_DAY, X31CWebConst.DATABEAN_CLEAR);
			}
		}

		return true;
	}

	/**
	 * 金融機関選択時の表示処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean bankChoice() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 選択位置のコード値を設定
		// 金融機関コード
		String bankCd = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.BANK_INFO, CHW01001SFConst.BANK_CD_LIST_06, CHW01001SFConst.BANK_CD_SEL_06);
		paramBeans[0].sendMessageString(CHW01001SFConst.BANK_CD, X31CWebConst.DATABEAN_SET_VALUE, bankCd);

		// 金融機関一覧情報取得サービス実行
		this.execCHSV0052(paramBeans, false);

		// 金融機関支店選択(リセット)
		X31SDataBeanAccess bankShitenInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.BANK_SHITEN_INFO).getDataBean(0);
		bankShitenInfo.sendMessageString(CHW01001SFConst.BANK_SHITEN_CD_SEL_07, X31CWebConst.DATABEAN_SET_VALUE, "0");

		return true;
	}

	/**
	 * サービス契約番号入力（内訳パターン入力用）変更の処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean svcKeiNoInputUcwkPtnChange() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービス契約情報存在チェック
		String svcKeiNoInput = bean.sendMessageString(CHW01001SFConst.SVC_KEI_NO_INPUT_UW_PTN, X31CWebConst.DATABEAN_GET_VALUE);
		if (JCHCommonServiceUtil.isExistSvcKeiInfo(this, svcKeiNoInput) == false)
		{
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SVC_KEI_NO_NONE, new String[] { SVC_KEI_NO_INPUT });

			return false;
		}

		return true;
	}

	/**
	 * ID番号（入力種別：料金項目）選択の処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean svcKeiNoChoice() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 料金コース情報をクリア
		X31SDataBeanAccessArray prcCourceInfo = bean.getDataBeanArray(CHW01001SFConst.PRC_COURSE_INFO);
		prcCourceInfo.clearArray();
		prcCourceInfo.addDataBean();

		// キャンペーン情報をクリア
		X31SDataBeanAccessArray campaignInfo = bean.getDataBeanArray(CHW01001SFConst.PRC_SVC_INFO);
		campaignInfo.clearArray();
		campaignInfo.addDataBean();

		// 料金内訳情報をクリア
		X31SDataBeanAccessArray prcUwInfo = bean.getDataBeanArray(CHW01001SFConst.PRC_KMK_INFO);
		prcUwInfo.clearArray();
		prcUwInfo.addDataBean();

		// 金額をクリア
		bean.sendMessageString(CHW01001SFConst.TEGAK_PRC, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 選択されているサービス契約番号を取得
		String svcKeiNo = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.SVC_KEI_NO_LIST_10,
				CHW01001SFConst.SVC_KEI_NO_SEL_10);
		// サービス契約番号をセット
		paramBeans[0].sendMessageString(CHW01001SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);

		// サービスコードをクリア
		paramBeans[0].sendMessageString(CHW01001SFConst.SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		
		// 料金グループコードをクリア
		paramBeans[0].sendMessageString(CHW01001SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 料金サービスコードをクリア
		paramBeans[0].sendMessageString(CHW01001SFConst.PRC_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 料金コースコードをクリア
		paramBeans[0].sendMessageString(CHW01001SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 料金コースコード（複数）をクリア
		paramBeans[0].sendMessageString(CHW01001SFConst.PCRS_CD_PLU, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 料金プランコード（複数）をクリア
		paramBeans[0].sendMessageString(CHW01001SFConst.PPLAN_CD_PLU, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 料金項目コードをクリア
		paramBeans[0].sendMessageString(CHW01001SFConst.PRC_KMK_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 請求内訳変更内容の初期表示処理
		this.initChangeNaiyoScreen();

		return true;
	}

	/**
	 * ID番号（入力用）変更の処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean svcKeiNoInputChange() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービス契約情報存在チェック
		String svcKeiNoInput = bean.sendMessageString(CHW01001SFConst.SVC_KEI_NO_INPUT, X31CWebConst.DATABEAN_GET_VALUE);
		if (JCHCommonServiceUtil.isExistSvcKeiInfo(this, svcKeiNoInput) == false)
		{
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SVC_KEI_NO_NONE, new String[] { SVC_KEI_NO_INPUT });

			return false;
		}
		bean.sendMessageString(CHW01001SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNoInput);
		
		// 料金コース情報をクリア
		X31SDataBeanAccessArray prcCourceInfo = bean.getDataBeanArray(CHW01001SFConst.PRC_COURSE_INFO);
		prcCourceInfo.clearArray();
		prcCourceInfo.addDataBean();

		// キャンペーン情報をクリア
		X31SDataBeanAccessArray campaignInfo = bean.getDataBeanArray(CHW01001SFConst.PRC_SVC_INFO);
		campaignInfo.clearArray();
		campaignInfo.addDataBean();

		// 料金項目情報をクリア
		X31SDataBeanAccessArray prcUwInfo = bean.getDataBeanArray(CHW01001SFConst.PRC_KMK_INFO);
		prcUwInfo.clearArray();
		X31SDataBeanAccess prcUwBean = prcUwInfo.addDataBean();
		prcUwBean.sendMessageString(CHW01001SFConst.PRC_KMK_CD_SEL_16, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 金額をクリア
		bean.sendMessageString(CHW01001SFConst.TEGAK_PRC, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// サービスコードをクリア
		bean.sendMessageString(CHW01001SFConst.SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		
		// 料金グループコードをクリア
		bean.sendMessageString(CHW01001SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 料金サービスコードをクリア
		bean.sendMessageString(CHW01001SFConst.PRC_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 料金コースコードをクリア
		bean.sendMessageString(CHW01001SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 料金コースコード（複数）をクリア
		bean.sendMessageString(CHW01001SFConst.PCRS_CD_PLU, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 料金プランコード（複数）をクリア
		bean.sendMessageString(CHW01001SFConst.PPLAN_CD_PLU, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 料金項目コードをクリア
		bean.sendMessageString(CHW01001SFConst.PRC_KMK_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		
		// 請求内訳変更内容の初期表示処理
		this.initChangeNaiyoScreen();

		return true;
	}

	/**
	 * 料金コース選択の処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean pcrsChoice() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// キャンペーン情報をクリア
		X31SDataBeanAccessArray campaignInfo = bean.getDataBeanArray(CHW01001SFConst.PRC_SVC_INFO);
		campaignInfo.clearArray();
		campaignInfo.addDataBean();

		// 料金内訳情報をクリア
		X31SDataBeanAccessArray prcUwInfo = bean.getDataBeanArray(CHW01001SFConst.PRC_KMK_INFO);
		prcUwInfo.clearArray();
		prcUwInfo.addDataBean();

		// 金額をクリア
		bean.sendMessageString(CHW01001SFConst.TEGAK_PRC, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 選択されている料金コースに紐づくサービスコードを設定
		String svcCd = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.SVC_CD_LIST_14, CHW01001SFConst.PCRS_CD_SEL_14);
		paramBeans[0].sendMessageString(CHW01001SFConst.SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, svcCd);
		// 選択されている料金コースに紐づく料金グループを設定
		String prcGrpCd = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.PRC_GRP_CD_LIST_14, CHW01001SFConst.PCRS_CD_SEL_14);
		paramBeans[0].sendMessageString(CHW01001SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, prcGrpCd);
		// 選択されている料金コースに紐づく料金コースを設定
		String pcrsCd = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.PCRS_CD_LIST_14, CHW01001SFConst.PCRS_CD_SEL_14);
		paramBeans[0].sendMessageString(CHW01001SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, pcrsCd);
		// 選択されている料金コースに紐づく料金コース（複数）を設定
		String pcrsCdPlu = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.PCRS_CD_PLU_LIST_14, CHW01001SFConst.PCRS_CD_SEL_14);
		paramBeans[0].sendMessageString(CHW01001SFConst.PCRS_CD_PLU, X31CWebConst.DATABEAN_SET_VALUE, pcrsCdPlu);
		// 選択されている料金コースに紐づく料金プラン（複数）を設定
		String pplanCdPlu = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.PPLAN_CD_PLU_LIST_14, CHW01001SFConst.PCRS_CD_SEL_14);
		paramBeans[0].sendMessageString(CHW01001SFConst.PPLAN_CD_PLU, X31CWebConst.DATABEAN_SET_VALUE, pplanCdPlu);

		// 請求内訳変更内容の初期表示処理
		this.initChangeNaiyoScreen();

		return true;
	}

	/**
	 * キャンペーン選択の処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean prcSvcChoice() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 料金内訳情報をクリア
		X31SDataBeanAccessArray prcUwInfo = bean.getDataBeanArray(CHW01001SFConst.PRC_KMK_INFO);
		prcUwInfo.clearArray();
		prcUwInfo.addDataBean();

		// 金額をクリア
		bean.sendMessageString(CHW01001SFConst.TEGAK_PRC, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		// 選択されている料金コースに紐づくサービスコードを設定
		String svcCd = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.SVC_CD_LIST_14, CHW01001SFConst.PCRS_CD_SEL_14);
		paramBeans[0].sendMessageString(CHW01001SFConst.SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, svcCd);
		// 選択されている料金コースに紐づく料金グループを設定
		String prcGrpCd = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.PRC_GRP_CD_LIST_14, CHW01001SFConst.PCRS_CD_SEL_14);
		paramBeans[0].sendMessageString(CHW01001SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, prcGrpCd);
		// 選択されている料金コースに紐づく料金コースを設定
		String pcrsCd = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.PCRS_CD_LIST_14, CHW01001SFConst.PCRS_CD_SEL_14);
		paramBeans[0].sendMessageString(CHW01001SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, pcrsCd);
		// 選択されている料金コースに紐づく料金コース（複数）を設定
		String pcrsCdPlu = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.PCRS_CD_PLU_LIST_14, CHW01001SFConst.PCRS_CD_SEL_14);
		paramBeans[0].sendMessageString(CHW01001SFConst.PCRS_CD_PLU, X31CWebConst.DATABEAN_SET_VALUE, pcrsCdPlu);
		// 選択されている料金コースに紐づく料金プラン（複数）を設定
		String pplanCdPlu = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.PPLAN_CD_PLU_LIST_14, CHW01001SFConst.PCRS_CD_SEL_14);
		paramBeans[0].sendMessageString(CHW01001SFConst.PPLAN_CD_PLU, X31CWebConst.DATABEAN_SET_VALUE, pplanCdPlu);

		// 選択されている料金サービスを取得
		String prcSvcCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.PRC_SVC_INFO, CHW01001SFConst.PRC_SVC_CD_LIST_15,
				CHW01001SFConst.PRC_SVC_CD_SEL_15);
		// 料金サービスコードをセット
		paramBeans[0].sendMessageString(CHW01001SFConst.PRC_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, prcSvcCd);

		// 請求内訳変更内容の初期表示処理
		this.initChangeNaiyoScreen();

		return true;
	}

	/**
	 * 料金内訳選択の処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean prcKmkChoice() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 金額
		String amnt = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.TEGAK_PRC_LIST_16, CHW01001SFConst.PRC_KMK_CD_SEL_16);

		if (amnt == null)
		{
			amnt = JACStrConst.KARA_MOJI;
		}
		bean.sendMessageString(CHW01001SFConst.TEGAK_PRC, X31CWebConst.DATABEAN_SET_VALUE, amnt);

		// 料金内訳プルダウンで選択中の料金項目コード
		String prcKmkCd = JCHPulldownUtil.getSelectedValue(paramBeans,
				CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.PRC_KMK_CD_LIST_16, CHW01001SFConst.PRC_KMK_CD_SEL_16);

		// 料金項目コードを設定
		bean.sendMessageString(CHW01001SFConst.PRC_KMK_CD, X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd);

		// 料金項目情報から詳細必須料金項目フラグを取得
		String dtlReqFlg = JCHPulldownUtil.getSelectedValue(paramBeans, 
				CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.DTL_REQUIRE_FLG_LIST_16, CHW01001SFConst.PRC_KMK_CD_SEL_16);

		// 詳細必須料金項目区分を設定
		bean.sendMessageString(CHW01001SFConst.DTL_REQ_KBN, X31CWebConst.DATABEAN_SET_VALUE, dtlReqFlg);

		// 料金項目情報から詳細必須料金項目フラグ（タブレット）を取得
		String tabDtlReqFlg = JCHPulldownUtil.getSelectedValue(paramBeans, 
				CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.TAB_DTL_REQUIRE_FLG_LIST_16, CHW01001SFConst.PRC_KMK_CD_SEL_16);

		// 詳細必須料金項目フラグ（タブレット）を設定
		bean.sendMessageString(CHW01001SFConst.TAB_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, tabDtlReqFlg);
//v16.00.00 2015/07/09 Add Start
		// 料金項目コードから詳細必須料金項目フラグ（eo電気）を取得
		String electDtlRequireFlg = JCHPulldownUtil.getSelectedValue(paramBeans, 
				CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.ELECT_DTL_REQUIRE_FLG_LIST_16, CHW01001SFConst.PRC_KMK_CD_SEL_16);

		// 詳細必須料金項目フラグ（eo電気）を設定
		bean.sendMessageString(CHW01001SFConst.ELECT_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, electDtlRequireFlg);
//v16.00.00 2015/07/09 Add End
//v36.00.00 ANK-3296-00-00 Add Start
		// 料金項目コードから詳細必須料金項目フラグ（工事費割賦）を取得
		String kojikapDtlRequireFlg = JCHPulldownUtil.getSelectedValue(paramBeans, 
				CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.KOJIKAP_DTL_REQUIRE_FLG_LIST_16, CHW01001SFConst.PRC_KMK_CD_SEL_16);

		// 詳細必須料金項目フラグ（工事費割賦）を設定
		bean.sendMessageString(CHW00901SFConst.KOJIKAP_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, kojikapDtlRequireFlg);
//v36.00.00 ANK-3296-00-00 Add End
		return true;
	}

	/**
	 * 請求内訳変更内容の初期表示処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	private boolean initChangeNaiyoScreen() throws Exception
	{

		// サービスフォーム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_CHSV0027);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		CHSV0027_CHSV0027OPDBMapper mapper = new CHSV0027_CHSV0027OPDBMapper();
		mapper.setCHSV002701SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1);
		
		String svcKeiNo = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.SVC_KEI_NO_LIST_10, CHW01001SFConst.SVC_KEI_NO_SEL_10);
		if(!JCHWebCommon.isNullOrEmpty(svcKeiNo))
		{
			mapper.setCHSV002702SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1);
		}

		String prcSvcCd = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_SVC_INFO, CHW01001SFConst.PRC_SVC_CD_LIST_15, CHW01001SFConst.PRC_SVC_CD_SEL_15);
		if (JCHWebCommon.isNullOrEmpty(prcSvcCd))
		{
			// キャンペーン未選択
			mapper.setCHSV002703SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); // ECH0401B040 : 料金項目抽出変換一覧照会(料金項目出力名称)
// IT1-2019-0000043 ADD START
			// 卸先事業者コードを取得するためのテコ入れ
			HashMap<String, Object> parentMap = new HashMap<String, Object>();

			// 退避された請求契約番号を取得
			String fixSeikyKeiNo = paramBeans[0].sendMessageString(CHW01001SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			if (fixSeikyKeiNo != null && !JACStrConst.KARA_MOJI.equals(fixSeikyKeiNo))
			{
				// 共通情報のマッピング
				parentMap.put("func_code", "1");
				// 請求契約番号 → 請求先情報取得マップ.ＫＥＹ＿請求契約番号
				parentMap.put("key_seiky_kei_no", fixSeikyKeiNo);
				parentMap.put(JACStrConst.TAB_DSP_MAIN, "1");
				inDataMap.put("SEIKYSAKIINFOSTKUCC", parentMap);
			}
//IT1-2019-0000043 ADD END
		}
		else
		{
			// キャンペーン選択
			mapper.setGETPRCUCWKINFOCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1);  // GETPRCUCWKINFOCC : 料金内訳情報取得CC
		}

		// 機器提供サービス契約一覧照会（基準日指定）
		mapper.setGETKIKITKSVCKEILISTCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1, null);
		
//v16.00.00 2015/06/17 Add Start
		mapper.setCHSV002705SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2);
//v16.00.00 2015/06/17 Add  End

		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// 下りマッピング
		mapper.getCHSV002701SC(paramBeans, outputMap);
		mapper.getCHSV002702SC(paramBeans, outputMap);

		if(JCHWebCommon.isNullOrEmpty(prcSvcCd))
		{
			// キャンペーン未選択
			mapper.getCHSV002703SC(paramBeans, outputMap);
		}
		else
		{
			// キャンペーン選択
			mapper.getGETPRCUCWKINFOCC(paramBeans, outputMap);
		}

		mapper.getGETKIKITKSVCKEILISTCC(paramBeans, outputMap);

		// サービス詳細識別番号情報（プルダウン）の内容をサービス詳細識別番号情報（内訳パターン用）に写す。
		JCHWebCommon.copySvcDtlSkbtNoBean(bean);

		// 金額
		this.setAmntUwAdd(paramBeans);

		return true;
	}

	/**
	 * 金額(内訳追加用)設定処理.<br>
	 * 現在選択されている料金項目の定額料金を設定します。
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 */
	private void setAmntUwAdd(X31SDataBeanAccess[] paramBeans)
	{
		String amnt = JCHPulldownUtil.getSelectedValue(
				paramBeans, CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.TEGAK_PRC_LIST_16, CHW01001SFConst.PRC_KMK_CD_SEL_16);

		if (amnt == null)
		{
			amnt = JACStrConst.KARA_MOJI;
		}
		// 金額を設定
		paramBeans[0].sendMessageString(CHW01001SFConst.TEGAK_PRC, X31CWebConst.DATABEAN_SET_VALUE, amnt);
	}

	/**
	 * 【再計算ボタン押下時の処理】 入力内容を再計算し、画面に表示します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean reCalc() throws Exception
	{

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean, commoninfoBean };

		// ◇選択されているリスト位置のコード、名称を設定する
		// 入金経路コード、入金経路名称
		String nyukinRouteCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.NYUKIN_ROUTE_INFO, CHW01001SFConst.NYUKIN_ROUTE_CD_LIST_01,
				CHW01001SFConst.NYUKIN_ROUTE_CD_SEL_01);

		String nyukinRouteNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.NYUKIN_ROUTE_INFO, CHW01001SFConst.NYUKIN_ROUTE_NM_LIST_01,
				CHW01001SFConst.NYUKIN_ROUTE_CD_SEL_01);

		String shiteiKozaCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SHITEIKOZA_INFO, CHW01001SFConst.SHITEIKOZA_CD_LIST_03,
				CHW01001SFConst.SHITEIKOZA_CD_SEL_03);
		
//v32.00.00 Add Start
		String shunoKknCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SHUNO_KKN_INFO, CHW01001SFConst.SHUNO_KKN_CD_LIST_24,
				CHW01001SFConst.SHUNO_KKN_CD_SEL_24);
//v32.00.00 Add End

		// ANK-3366-00-00 ADD START
		String orsjgsCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.ORSJGS_INFO, CHW01001SFConst.ORSJGS_CD_LIST_27,
				CHW01001SFConst.ORSJGS_CD_SEL_27);
		// ANK-3366-00-00 ADD END

		bean.sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_CD, X31CWebConst.DATABEAN_SET_VALUE, nyukinRouteCd);
		bean.sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_NM, X31CWebConst.DATABEAN_SET_VALUE, nyukinRouteNm);

		// 受取り部門コード、受取り部門名称
		setUketoriBumon(paramBeans, nyukinRouteCd);
		// 指定口座コード、指定口座名称
		setShiteiKoza(paramBeans, nyukinRouteCd);
		// コンビニエンスストアコード、コンビニエンスストア会社名称
		setCvstore(paramBeans, nyukinRouteCd);
		// 債権回収委託会社コード、債権回収委託会社名称
		setSknksitkcm(paramBeans, nyukinRouteCd);
		// 金融機関コード、金融機関名称、金融機関支店コード、金融機関支店名称
		setBank(paramBeans, nyukinRouteCd);
		// クレジットカード会社コード、クレジット会社名称
		setCreditComp(paramBeans, nyukinRouteCd);
//v32.00.00 Add Start
		// 収納機関コード、収納機関名称
		setShunoKkn(paramBeans, nyukinRouteCd);
//v32.00.00 Add End
		// ANK-3366-00-00 ADD START
		// 卸先事業者コード、卸先事業者名称
		setOrsjgs(paramBeans, nyukinRouteCd);
		// ANK-3366-00-00 ADD END
		// 収納機関コード
//v32.00.00 Mod Start
//		bean.sendMessageString(CHW01001SFConst.SHUNOKIKAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JCHDspEditUtil.getShunoKikanCd(nyukinRouteCd, shiteiKozaCd));
		// ANK-3366-00-00 MOD START
//		bean.sendMessageString(CHW01001SFConst.SHUNOKIKAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JCHDspEditUtil.getShunoKikanCd(nyukinRouteCd, shiteiKozaCd, shunoKknCd));
		bean.sendMessageString(CHW01001SFConst.SHUNOKIKAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JCHDspEditUtil.getShunoKikanCd(nyukinRouteCd,
				shiteiKozaCd, shunoKknCd, orsjgsCd));
		// ANK-3366-00-00 MOD END
//v32.00.00 Mod End

		// 領収日
		bean.sendMessageString(CHW01001SFConst.RECEIPT_DAY, X31CWebConst.DATABEAN_SET_VALUE, this.concatYmd(bean, CHW01001SFConst.RECEIPT_DAY_YEAR,
				CHW01001SFConst.RECEIPT_DAY_MON, CHW01001SFConst.RECEIPT_DAY_DAY));
		// 収納日
		bean.sendMessageString(CHW01001SFConst.SHUNO_DAY, X31CWebConst.DATABEAN_SET_VALUE, this.concatYmd(bean, CHW01001SFConst.SHUNO_DAY_YEAR,
				CHW01001SFConst.SHUNO_DAY_MON, CHW01001SFConst.SHUNO_DAY_DAY));

		// 随時入金登録サービス実行
		if (!this.execCHSV0053(paramBeans, JPCModelConstant.FUNC_CD_2))
		{
			return true;
		}

		// 請求内訳の表示件数をセット
		X31SDataBeanAccessArray seikyUwInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO);
		paramBeans[0].sendMessageString(CHW01001SFConst.UW_DSP_CNT, X31CWebConst.DATABEAN_SET_VALUE, seikyUwInfo.getCount().toString());

//		// ＮＧワードチェック
//		ArrayList<String> ngWordList = JCHCommonServiceUtil.getNgWordList(outputMap);
//
//		// NGワードが存在する場合、警告メッセージ表示
//		if (!ngWordList.isEmpty())
//		{
//			for (int i = 0; i < ngWordList.size(); i++)
//			{
//				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_NG_WORD, new String[] { CHW01001SFConst.KIJI, ngWordList.get(i) });
//			}
//			return true;
//		}

		return true;
	}

	/**
	 * 【追加ボタン(内訳パターン)押下時の処理】 指定された内容を内訳に追加します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean ucwkPtnAdd() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 内訳パターン
		boolean ret = uwPtnAdd(paramBeans);

		// 正常に追加できた場合
		if (ret)
		{
			// サービス詳細識別番号プルダウンへ要素を追加
			JCHWebCommon.addSvcDtlSkbtNoList(bean, JCHCommonConst.UCWK_ADD_KBN_UCWK_PTN);
		}

		// 制御値(請求内訳情報による画面制御)
		this.setDisabledCntrlValue(paramBeans);

		// 請求内訳の表示件数をセット
		X31SDataBeanAccessArray uwInfo = bean.getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO);
		bean.sendMessageString(CHW01001SFConst.UW_DSP_CNT, X31CWebConst.DATABEAN_SET_VALUE, uwInfo.getCount().toString());

		return true;
	}

	/**
	 * 【追加ボタン(料金項目)押下時の処理】 指定された内容を内訳に追加します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean ucwkAdd() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 詳細必須料金項目フラグ（タブレット）
		String tabReqFlg = bean.sendMessageString(JCHCommonConst.TAB_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択中の料金項目コードが詳細必須料金項目（タブレット）である場合、製造番号の関連チェックを実行
		if ("1".equals(tabReqFlg))
		{
			// ユースケースID格納用マップを生成。
			HashMap<String, Object> paramMap = new HashMap<String, Object>();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0079);

			// サービスに渡すMapを生成する
			HashMap<String, Object> inDataMap = new HashMap<String, Object>();

			// 上りマッピング
			String seizoNo = bean.sendMessageString(JCHCommonConst.SVC_DTL_SKBT_NO_INPUT, X31CWebConst.DATABEAN_GET_VALUE);
			JCHCommonServiceUtil.setGETKIKITKSVCKEILISTCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1, seizoNo, null);

			// 検索結果格納用マップを生成。
			HashMap<String, Object> outputMap = new HashMap<String, Object>();

			// サービスの呼び出し
			invokeService(paramMap, inDataMap, outputMap);

			// 検索エラーフラグの取得
			String searchErrFlg = JCCWebCommon.getSearchErrFlg(JACStrConst.KIKI_TK_SVC_KEI_CC, outputMap); 

			// データが取得できない場合エラーとする。
			if ("1".equals(searchErrFlg))
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBE124_KW, "svc_dtl_skbt_no_input");
				return false;
			}

			// 下りマッピング
			// 機器提供サービス契約番号（ワーク）をセット。
			JCHCommonServiceUtil.getGETKIKITKSVCKEILISTCC(paramBeans, outputMap);
		}

		// 料金項目
		boolean ret = prcItemAdd(paramBeans);

		// 正常に追加できた場合
		if (ret)
		{
			int addCnt = Integer.parseInt(bean.sendMessageString(JCHCommonConst.UW_ADD_CNT, X31CWebConst.DATABEAN_GET_VALUE));
			addCnt = addCnt + 1;
			bean.sendMessageString(JCHCommonConst.UW_ADD_CNT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(addCnt));

			// サービス詳細識別番号プルダウンへ要素を追加
			JCHWebCommon.addSvcDtlSkbtNoList(bean, JCHCommonConst.UCWK_ADD_KBN_PRC_UCWK);
		}

		// 制御値(請求内訳情報による画面制御)
		this.setDisabledCntrlValue(paramBeans);

		// 請求内訳の表示件数をセット
		X31SDataBeanAccessArray uwInfo = bean.getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO);
		bean.sendMessageString(CHW01001SFConst.UW_DSP_CNT, X31CWebConst.DATABEAN_SET_VALUE, uwInfo.getCount().toString());

		return true;
	}

	/**
	 * 請求内訳の削除処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean ucwkDel() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };
		
		//v36.00.00 ANK-3296-00-00 Add Start
		HashMap<String,String> delKmkMap = new HashMap<String,String>();
		//v36.00.00 ANK-3296-00-00 Add End

		// 追加上限数
		int addCnt = Integer.parseInt(bean.sendMessageString(JCHCommonConst.UW_ADD_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		addCnt--;
		bean.sendMessageString(JCHCommonConst.UW_ADD_CNT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(addCnt));

		// ◇削除処理の呼び出し
		JCHSeikyUwEditUtil util = JCHSeikyUwEditUtil.createInstance(
				JACScreenConst.SCREEN_ID_CHW01001, bean.getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO));

		int delIndex = Integer.parseInt(bean.sendMessageString(CHW01001SFConst.DEL_ROW_NO, X31CWebConst.DATABEAN_GET_VALUE));
		//v36.00.00 ANK-3296-00-00 Mod Start
		//util.delUwItem(delIndex);
		util.delUwItem(delIndex, delKmkMap);
		//v36.00.00 ANK-3296-00-00 Mod End
		
		//v36.00.00 ANK-3296-00-00 Add Start
		// ◇非表示項目の削除処理の呼び出し
		JCHSeikyUwEditUtil util2 = JCHSeikyUwEditUtil.createInstance(JACScreenConst.SCREEN_ID_CHW00901, bean.getDataBeanArray(CHW00901SFConst.SEIKY_UW_DB_CTL));
		util2.delUwItem2(bean, delKmkMap);
		//v36.00.00 ANK-3296-00-00 Add End

		// 請求内訳の表示件数をセット
		X31SDataBeanAccessArray uwInfo = bean.getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO);
		bean.sendMessageString(CHW01001SFConst.UW_DSP_CNT, X31CWebConst.DATABEAN_SET_VALUE, uwInfo.getCount().toString());

		// 制御値(請求内訳情報による画面制御)
		this.setDisabledCntrlValue(paramBeans);

		return true;
	}

	/**
	 * 随時入金登録確認画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean addCfm() throws Exception
	{
		// 共有フォームBeanのアクセサを取得する
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean, commoninfoBean };

		// ◇選択されているリスト位置のコード、名称を設定する
		// 入金経路コード、入金経路名称、収納機関コード
		String nyukinRouteCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.NYUKIN_ROUTE_INFO, CHW01001SFConst.NYUKIN_ROUTE_CD_LIST_01,
				CHW01001SFConst.NYUKIN_ROUTE_CD_SEL_01);

		String nyukinRouteNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.NYUKIN_ROUTE_INFO, CHW01001SFConst.NYUKIN_ROUTE_NM_LIST_01,
				CHW01001SFConst.NYUKIN_ROUTE_CD_SEL_01);

		String shiteiKozaCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SHITEIKOZA_INFO, CHW01001SFConst.SHITEIKOZA_CD_LIST_03,
				CHW01001SFConst.SHITEIKOZA_CD_SEL_03);

//v32.00.00 Add Start
		String shunoKknCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SHUNO_KKN_INFO, CHW01001SFConst.SHUNO_KKN_CD_LIST_24,
				CHW01001SFConst.SHUNO_KKN_CD_SEL_24);
//v32.00.00 Add End
		
		// ANK-3366-00-00 ADD START
		String orsjgsCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.ORSJGS_INFO, CHW01001SFConst.ORSJGS_CD_LIST_27,
				CHW01001SFConst.ORSJGS_CD_SEL_27);
		// ANK-3366-00-00 ADD END
		
		//v52.00.01 Del Start
//		bean.sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_CD, X31CWebConst.DATABEAN_SET_VALUE, nyukinRouteCd);
//		bean.sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_NM, X31CWebConst.DATABEAN_SET_VALUE, nyukinRouteNm);
		//v52.00.01 Del End

		// 受取り部門コード、受取り部門名称
		setUketoriBumon(paramBeans, nyukinRouteCd);
		// 指定口座コード、指定口座名称
		setShiteiKoza(paramBeans, nyukinRouteCd);
		// コンビニエンスストアコード、コンビニエンスストア会社名称
		setCvstore(paramBeans, nyukinRouteCd);
		// 債権回収委託会社コード、債権回収委託会社名称
		setSknksitkcm(paramBeans, nyukinRouteCd);
		// 金融機関コード、金融機関名称、金融機関支店コード、金融機関支店名称
		setBank(paramBeans, nyukinRouteCd);
		// クレジットカード会社コード、クレジット会社名称
		setCreditComp(paramBeans, nyukinRouteCd);
//v32.00.00 Add Start
		// 収納機関コード、収納機関名称
		setShunoKkn(paramBeans, nyukinRouteCd);
//v32.00.00 Add End
		// ANK-3366-00-00 ADD START
		// 卸先事業者コード、卸先事業者名称
		setOrsjgs(paramBeans, nyukinRouteCd);
		// ANK-3366-00-00 ADD END
		// 収納機関コード
//v32.00.00 Mod Start
//		bean.sendMessageString(CHW01001SFConst.SHUNOKIKAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JCHDspEditUtil.getShunoKikanCd(nyukinRouteCd, shiteiKozaCd));
		// ANK-3366-00-00 MOD START
//		bean.sendMessageString(CHW01001SFConst.SHUNOKIKAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JCHDspEditUtil.getShunoKikanCd(nyukinRouteCd, shiteiKozaCd, shunoKknCd));
		bean.sendMessageString(CHW01001SFConst.SHUNOKIKAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JCHDspEditUtil.getShunoKikanCd(nyukinRouteCd,
				shiteiKozaCd, shunoKknCd, orsjgsCd));
		// ANK-3366-00-00 MOD END
//v32.00.00 Mod End

		// 領収日
		bean.sendMessageString(CHW01001SFConst.RECEIPT_DAY, X31CWebConst.DATABEAN_SET_VALUE, this.concatYmd(bean, CHW01001SFConst.RECEIPT_DAY_YEAR,
				CHW01001SFConst.RECEIPT_DAY_MON, CHW01001SFConst.RECEIPT_DAY_DAY));
		// 収納日
		bean.sendMessageString(CHW01001SFConst.SHUNO_DAY, X31CWebConst.DATABEAN_SET_VALUE, this.concatYmd(bean, CHW01001SFConst.SHUNO_DAY_YEAR,
				CHW01001SFConst.SHUNO_DAY_MON, CHW01001SFConst.SHUNO_DAY_DAY));

		// 随時入金登録サービス実行
		if (!this.execCHSV0053(paramBeans, JPCModelConstant.FUNC_CD_2))
		{
			return true;
		}

		//v52.00.01 Add Start
		if (JACStrConst.SHNKKNCD_CVSTORE_ETC_NORMAL_CUST.equals(nyukinRouteCd) || JACStrConst.SHNKKNCD_CVSTORE_ETC_NORMAL_COMP.equals(nyukinRouteCd))
		{
			nyukinRouteCd = JACStrConst.NYKNKEIRCD_CVSTORE_ETC;
		}

		bean.sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_CD, X31CWebConst.DATABEAN_SET_VALUE, nyukinRouteCd);
		bean.sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_NM, X31CWebConst.DATABEAN_SET_VALUE, nyukinRouteNm);
		//v52.00.01 Add End

		// 請求内訳の表示件数をセット
		X31SDataBeanAccessArray seikyUwInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO);
		paramBeans[0].sendMessageString(CHW01001SFConst.UW_DSP_CNT, X31CWebConst.DATABEAN_SET_VALUE, seikyUwInfo.getCount().toString());

/*		// ＮＧワードチェック
		ArrayList<String> ngWordList = JCHCommonServiceUtil.getNgWordList(outputMap);

		// NGワードが存在する場合、警告メッセージ表示
		if (!ngWordList.isEmpty())
		{
			for (int i = 0; i < ngWordList.size(); i++)
			{
				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_NG_WORD, new String[] { CHW01001SFConst.KIJI, ngWordList.get(i) });
			}
			return true;
		}
*/

		// メッセージ領域の背景色の設定
		JCCWebCommon.setMessageAreaBackColor(this, "1");

		// メッセージの設定
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, new String[] {"登録"});

		// 遷移先画面を設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_ID_CHW01002);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_NAME_CHW01002);

		return true;
	}

	/**
	 * 確定完了を処理します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean fixFin() throws Exception
	{
		// 共有フォームBeanのアクセサを取得する
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean, commoninfoBean };

		// 随時入金登録サービスを実行
		this.execCHSV0053(paramBeans, JPCModelConstant.FUNC_CD_1);

		// 処理完了のため呼出し元画面へ戻る
		this.returnPrev();

		return true;
	}

	/**
	 * 修正を処理します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean shusei() throws Exception
	{
		// 共有フォームBeanのアクセサを取得する
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		// 遷移先画面を設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_ID_CHW01001);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_NAME_CHW01001);

		return true;
	}

	/**
	 * リセット処理.<br>
	 * 初期表示処理を実施します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean reset() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// サービスフォームBeanのリセット
		resetServiceFormBeanItems(paramBeans);

		// 随時入金登録画面情報取得サービス実行
		this.execCHSV0051(paramBeans);

		return true;
	}

	/**
	 * 前画面に戻ります。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean returnPrev() throws Exception
	{
		// 遷移先画面IDを取得し、戻り遷移共通処理を呼出す
		return JCHPageTransferUtil.backTransfer(this, JCCWebCommon.getScreenId(this));
	}

	/**
	 * 入力種別選択.<br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean inputSbtChoice() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 入力種別選択コード
		paramBeans[0].sendMessageString(CHW01001SFConst.INPUT_SBT_SELECT_CD, X31CWebConst.DATABEAN_SET_VALUE, this.getInputSbtSelCd(paramBeans));

		return false;
	}

	/**
	 * 随時入金登録画面の初期表示処理を行います。 <br>
	 * 
	 * @throws Exception 例外が発生した場合
	 */
	private void initAddScreen() throws Exception
	{
		// 画面間引継情報を設定する
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// サービスフォームBeanのリセット
		resetServiceFormBeanItems(paramBeans);

		// 随時入金登録画面情報取得サービス実行
		this.execCHSV0051(paramBeans);

		return;
	}

	/**
	 * 内訳パターン追加処理.<br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @return boolean[正常:true、異常:false]
	 * @throws Exception 
	 */
	private boolean uwPtnAdd(X31SDataBeanAccess[] paramBeans) throws Exception
	{
		// 内訳パターン情報取得サービス実行
		this.execCHSV0054(paramBeans);

		// 詳細必須料金項目区分（内訳パターン用）をセット
		setDtlReqKbnUwPtn();

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 詳細必須料金項目区分（内訳パターン用）
		String dtlReqKbnUwPtn = bean.sendMessageString(CHW01001SFConst.DTL_REQ_KBN_UW_PTN, X31CWebConst.DATABEAN_GET_VALUE);

		// 詳細必須料金項目フラグ（タブレット）（内訳パターン用）
		String tabDtlReqKbnUwPtn = bean.sendMessageString(CHW01001SFConst.TAB_DTL_REQUIRE_FLG_UW_PTN, X31CWebConst.DATABEAN_GET_VALUE);

		// サービス詳細識別番号入力（内訳パターン用）
		String svcDtlSkbtNoInputUwPtn = bean.sendMessageString(CHW01001SFConst.SVC_DTL_SKBT_NO_INPUT_UW_PTN, X31CWebConst.DATABEAN_GET_VALUE);

		// ◇追加する明細情報マップのリストを生成
		ArrayList<HashMap<String, Object>> uwList = new ArrayList<HashMap<String, Object>>();
		X31SDataBeanAccessArray addPrcKmkInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.ADD_PRC_KMK_INFO);

		int addListCount = addPrcKmkInfo.getCount();

		// 追加対象がある場合、内訳の追加上限チェック、サービス詳細識別番号の入力チェック
		if (addListCount > 0)
		{
			// 内訳の追加上限チェック
			if (!JCHWebCommon.chkUcwkAddCnt(this, bean, addListCount))
			{
				return false;
			}

			// サービス詳細識別番号のチェック
			if (!JCHWebCommon.chkSvcDtlSkbtNo(this, paramBeans, dtlReqKbnUwPtn, tabDtlReqKbnUwPtn, svcDtlSkbtNoInputUwPtn, "svc_dtl_skbt_no_input_uw_ptn", null))
			{
				return false;
			}
		}

		for (int idx = 0; idx < addListCount; idx++)
		{
			X31SDataBeanAccess subbean = addPrcKmkInfo.getDataBean(idx);

			HashMap<String, Object> uwMap = new HashMap<String, Object>();
			// Ｎｏ
			uwMap.put(CHW01001SFConst.NO_17, JACStrConst.KARA_MOJI);
			// ＩＤ番号
			uwMap.put(CHW01001SFConst.ID_NO_17, this.getIdNoInput(paramBeans));
			// 利用開始日
			uwMap.put(CHW01001SFConst.USE_STAYMD_17, JACStrConst.KARA_MOJI);
			// 利用終了日
			uwMap.put(CHW01001SFConst.USE_ENDYMD_17, JACStrConst.KARA_MOJI);
			// 追加料金項目情報.追加料金項目名称　⇒　料金内訳
			uwMap.put(CHW01001SFConst.PRC_UW_17, subbean.sendMessageString(CHW01001SFConst.ADD_PRC_KMK_CD_NM_13, X31CWebConst.DATABEAN_GET_VALUE));
			// 内訳額
			uwMap.put(CHW01001SFConst.AJST_AF_AMNT_17, JACStrConst.KARA_MOJI);
			// 追加料金項目情報.追加料金グループコード　⇒　料金グループコード
			uwMap.put(CHW01001SFConst.KEY_PRC_GRP_CD_17, subbean.sendMessageString(CHW01001SFConst.ADD_PRC_GRP_CD_13, X31CWebConst.DATABEAN_GET_VALUE));
			// 追加料金項目情報.追加料金コースコード　⇒　料金コースコード
			uwMap.put(CHW01001SFConst.KEY_PCRS_CD_17, subbean.sendMessageString(CHW01001SFConst.ADD_PCRS_CD_13, X31CWebConst.DATABEAN_GET_VALUE));
			// 追加料金項目情報.追加料金サービスコード　⇒　料金サービスコード
			uwMap.put(CHW01001SFConst.KEY_PRC_SVC_CD_17, subbean.sendMessageString(CHW01001SFConst.ADD_PRC_SVC_CD_13, X31CWebConst.DATABEAN_GET_VALUE));
			// 追加料金項目情報.追加料金項目コード　⇒　料金項目コード
			uwMap.put(CHW01001SFConst.KEY_PRC_KMK_CD_17, subbean.sendMessageString(CHW01001SFConst.ADD_PRC_KMK_CD_13, X31CWebConst.DATABEAN_GET_VALUE));
			// 利用期間表示制御フラグ
			uwMap.put(CHW01001SFConst.USE_PRD_DSP_CTRL_FLG_17, 
					subbean.sendMessageString(CHW01001SFConst.USE_PRD_DSP_CTRL_FLG_13, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金訂正可否(訂正可能)
			uwMap.put(CHW01001SFConst.PRC_TEISEI_KH_17, JACStrConst.PRC_TEISEI_KH_PSB);
			// 請求契約番号
			uwMap.put(CHW01001SFConst.SEIKY_KEI_NO, paramBeans[0].sendMessageString(CHW01001SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			
			//OM-2014-0002355 MOD START
			// 料金グループコード
			String prcGrpCd =
				subbean.sendMessageString(CHW01001SFConst.ADD_PRC_GRP_CD_13, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 整理番号
//			uwMap.put(CHW01001SFConst.SEIRI_NO_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO_UW_PTN,
//					CHW01001SFConst.SEIRI_NO_LIST_UW_PTN_11, CHW01001SFConst.SVC_KEI_NO_SEL_UW_PTN_11));
			
			//料金グループコードが｢99｣　マンション情報の場合
			if("99".equals(prcGrpCd))
			{
				//マンションIDを設定
				// 整理番号
				// マンションＩＤ
				uwMap.put(CHW01001SFConst.SEIRI_NO_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO_UW_PTN,
						CHW01001SFConst.MANSION_ID_LIST_UW_PTN_11, CHW01001SFConst.SVC_KEI_NO_SEL_UW_PTN_11));
			}
			else
			{
				//マンション情報以外の場合は整理番号を設定
				uwMap.put(CHW01001SFConst.SEIRI_NO_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO_UW_PTN,
						CHW01001SFConst.SEIRI_NO_LIST_UW_PTN_11, CHW01001SFConst.SVC_KEI_NO_SEL_UW_PTN_11));

			}
			//OM-2014-0002355 MOD END
			
			
			// サービス契約番号
			uwMap.put(CHW01001SFConst.SVC_KEI_NO_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO_UW_PTN,
					CHW01001SFConst.SVC_KEI_NO_LIST_UW_PTN_11, CHW01001SFConst.SVC_KEI_NO_SEL_UW_PTN_11));
			// マンションＩＤ
			uwMap.put(CHW01001SFConst.MANSION_ID_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO_UW_PTN,
					CHW01001SFConst.MANSION_ID_LIST_UW_PTN_11, CHW01001SFConst.SVC_KEI_NO_SEL_UW_PTN_11));
			// 回線場所住所補記＿部屋番号
			uwMap.put(CHW01001SFConst.KAISEN_PLACE_ADRRM_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO_UW_PTN,
					CHW01001SFConst.KAISEN_PLACE_ADRRM_LIST_UW_PTN_11, CHW01001SFConst.SVC_KEI_NO_SEL_UW_PTN_11));
			// 合計行判定区分
			uwMap.put(CHW01001SFConst.SUM_LINE_JUDGE_DIV_17, JACStrConst.SUM_LINE_JUDGE_DIV_DTL);

			// サービス詳細識別番号
			String svcDtlSkbtNo = "";

			// 追加対象が詳細必須料金項目（タブレット）である場合、サービス詳細識別番号に機器提供サービス契約番号を設定
			if ("1".equals(tabDtlReqKbnUwPtn))
			{
				svcDtlSkbtNo = paramBeans[0].sendMessageString(JCHCommonConst.KK_TK_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			}
			else
			{
				svcDtlSkbtNo = paramBeans[0].sendMessageString(JCHCommonConst.SVC_DTL_SKBT_NO_INPUT_UW_PTN, X31CWebConst.DATABEAN_GET_VALUE);
			}

			uwMap.put(CHW01001SFConst.SVC_DTL_SKBT_NO_17, svcDtlSkbtNo);

			// 請求内訳番号(default値設定)
			uwMap.put(CHW01001SFConst.SEIKY_UCWK_NO_17, "1");

			uwList.add(uwMap);
		}

		// 内訳パターンが取得できた場合
		if (addPrcKmkInfo != null && addPrcKmkInfo.getCount() > 0)
		{
			// ◇追加処理の呼び出し
			JCHSeikyUwEditUtil util = JCHSeikyUwEditUtil.createInstance(
					JACScreenConst.SCREEN_ID_CHW01001, paramBeans[0].getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO));
			int ret = util.addUwPtn(bean, uwList);
			if (ret == -1)
			{
				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_PRC_UCWK_EXIST, new String[] { CHW01001SFConst.PRC_UW_17 });
				return false;
			}
			else if (ret == -2)
			{
				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_INVALID_UW_PTN, new String[] { "選択した内訳パターン" });
				return false;
			}

			// 内訳追加件数（現時点で追加されている件数）を更新
			int addCnt = Integer.parseInt(bean.sendMessageString(JCHCommonConst.UW_ADD_CNT, X31CWebConst.DATABEAN_GET_VALUE));
			addCnt = addCnt + addListCount;
			bean.sendMessageString(JCHCommonConst.UW_ADD_CNT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(addCnt));
		}
		// 内訳パターンが取得できなかった場合
		else
		{
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_NOT_EXIST_UW_PTN, 
					new String[] { "選択中のＩＤ番号に追加できる料金内訳が内訳パターンに存在しない", "内訳パターン追加" }, "svc_kei_no_input_ucwk_ptn");
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_NOT_EXIST_UW_PTN, 
					new String[] { "選択中のＩＤ番号に追加できる料金内訳が内訳パターンに存在しない", "内訳パターン追加" }, "svc_kei_no_ucwk_ptn_ddl");
			return false;
		}

		return true;
	}

	/**
	 * 料金項目追加処理.<br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @return boolean[正常:true、異常:false]
	 */
	private boolean prcItemAdd(X31SDataBeanAccess[] paramBeans)
	{
		// ◇追加する明細情報のマップを生成
		HashMap<String, Object> uwMap = new HashMap<String, Object>();
		// Ｎｏ
		uwMap.put(CHW01001SFConst.NO_17, JACStrConst.KARA_MOJI);
		// ＩＤ番号
		uwMap.put(CHW01001SFConst.ID_NO_17, this.getIdNoInput(paramBeans));
		// 利用開始日
		uwMap.put(CHW01001SFConst.USE_STAYMD_17, JACStrConst.KARA_MOJI);
		// 利用終了日
		uwMap.put(CHW01001SFConst.USE_ENDYMD_17, JACStrConst.KARA_MOJI);
		// 料金内訳
		uwMap.put(CHW01001SFConst.PRC_UW_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.SEIKY_UW_NM_LIST_16,
				CHW01001SFConst.PRC_KMK_CD_SEL_16));
		// 内訳額
		uwMap.put(CHW01001SFConst.AJST_AF_AMNT_17, paramBeans[0].sendMessageString(CHW01001SFConst.TEGAK_PRC, X31CWebConst.DATABEAN_GET_VALUE));
		

		//OM-2014-0002355 MOD START
		// 料金グループコード
		String prcGrpCd =
			JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.PRC_GRP_CD_LIST_16, CHW01001SFConst.PRC_KMK_CD_SEL_16);
		
//		// 整理番号
//		uwMap.put(CHW01001SFConst.SEIRI_NO_17, 
//				JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.SEIRI_NO_LIST_10,
//				CHW01001SFConst.SVC_KEI_NO_SEL_10));
		

		
		//料金グループコードが｢99｣　マンション情報の場合
		if("99".equals(prcGrpCd))
		{
			//マンションIDを設定
			// 整理番号
			uwMap.put(CHW01001SFConst.SEIRI_NO_17, 
					JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.MANSION_ID_LIST_10,
							CHW01001SFConst.SVC_KEI_NO_SEL_10));
		}
		else
		{
			//マンション情報以外の場合は整理番号を設定
			// 整理番号
			uwMap.put(CHW01001SFConst.SEIRI_NO_17, 
					JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.SEIRI_NO_LIST_10,
					CHW01001SFConst.SVC_KEI_NO_SEL_10));

		}
		//OM-2014-0002355 MOD END
		
		// サービス契約番号
		uwMap.put(CHW01001SFConst.SVC_KEI_NO_17, 
				JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.SVC_KEI_NO_LIST_10,
				CHW01001SFConst.SVC_KEI_NO_SEL_10));
		// 料金グループコード
		uwMap.put(CHW01001SFConst.KEY_PRC_GRP_CD_17, 
				JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.PRC_GRP_CD_LIST_16,
				CHW01001SFConst.PRC_KMK_CD_SEL_16));
		// 料金コースコード
		uwMap.put(CHW01001SFConst.KEY_PCRS_CD_17, 
				JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.PRC_COURSE_INFO, CHW01001SFConst.PCRS_CD_LIST_14,
				CHW01001SFConst.PCRS_CD_SEL_14));
		// 料金サービスコード
		uwMap.put(CHW01001SFConst.KEY_PRC_SVC_CD_17, 
				JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.PRC_SVC_CD_LIST_16,
				CHW01001SFConst.PRC_KMK_CD_SEL_16));
		// 料金項目コード
		uwMap.put(CHW01001SFConst.KEY_PRC_KMK_CD_17, 
				JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.PRC_KMK_CD_LIST_16,
				CHW01001SFConst.PRC_KMK_CD_SEL_16));
		// マンションＩＤ
		uwMap.put(CHW01001SFConst.MANSION_ID_17, 
				JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.MANSION_ID_LIST_10,
				CHW01001SFConst.SVC_KEI_NO_SEL_10));
		// 回線場所住所補記＿部屋番号
		uwMap.put(CHW01001SFConst.KAISEN_PLACE_ADRRM_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO,
				CHW01001SFConst.KAISEN_PLACE_ADRRM_LIST_10, CHW01001SFConst.SVC_KEI_NO_SEL_10));
		// 利用期間表示制御フラグ
		uwMap.put(CHW01001SFConst.USE_PRD_DSP_CTRL_FLG_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.PRC_KMK_INFO,
				CHW01001SFConst.USE_PRD_DSP_CTRL_FLG_LIST_16, CHW01001SFConst.PRC_KMK_CD_SEL_16));
		// 料金訂正可否(訂正可能)
		uwMap.put(CHW01001SFConst.PRC_TEISEI_KH_17, JACStrConst.PRC_TEISEI_KH_PSB);
		// 請求契約番号
		uwMap.put(CHW01001SFConst.SEIKY_KEI_NO, paramBeans[0].sendMessageString(CHW01001SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 合計行判定区分
		uwMap.put(CHW01001SFConst.SUM_LINE_JUDGE_DIV_17, JACStrConst.SUM_LINE_JUDGE_DIV_DTL);

		// サービス詳細識別番号
		String svcDtlSkbtNo = "";

		// 詳細必須料金項目フラグ（タブレット）
		String tabDtlReqFlg = paramBeans[0].sendMessageString(JCHCommonConst.TAB_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		//v36.00.00 ANK-3296-00-00 Add Start
		// 詳細必須料金項目フラグ（工事費割賦）
		String kojikapReqFlg = paramBeans[0].sendMessageString(JCHCommonConst.KOJIKAP_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		//v36.00.00 ANK-3296-00-00 Add End
		

		// 選択中の料金項目コードが詳細必須料金項目（タブレット）である場合、サービス詳細識別番号に機器提供サービス契約番号を設定
		if ("1".equals(tabDtlReqFlg))
		{
			svcDtlSkbtNo = paramBeans[0].sendMessageString(JCHCommonConst.KK_TK_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else
		{
			svcDtlSkbtNo = paramBeans[0].sendMessageString(JCHCommonConst.SVC_DTL_SKBT_NO_INPUT, X31CWebConst.DATABEAN_GET_VALUE);
		}

		uwMap.put(CHW01001SFConst.SVC_DTL_SKBT_NO_17, svcDtlSkbtNo);

		// 請求内訳番号(default値設定)
		uwMap.put(CHW01001SFConst.SEIKY_UCWK_NO_17, "1");

		// ◇追加処理の呼び出し
		JCHSeikyUwEditUtil util = JCHSeikyUwEditUtil.createInstance(
				JACScreenConst.SCREEN_ID_CHW01001, paramBeans[0].getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO));
		if (util.addUwItem(paramBeans[0], uwMap) == false)
		{
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_PRC_UCWK_EXIST, new String[] { CHW01001SFConst.PRC_UW_17 });
			return false;
		}
		
		//v36.00.00 ANK-3296-00-00 Add Start
		// 選択中の料金項目コードが詳細必須料金項目（工事費割賦）である場合、制御用項目の取得を実行
		if ("1".equals(kojikapReqFlg))
		{
			// ユースケースID格納用マップを生成。
			HashMap<String, Object> paramMap = new HashMap<String, Object>();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0083);

			// サービスに渡すMapを生成する
			HashMap<String, Object> inDataMap = new HashMap<String, Object>();

			// 上りマッピング
			JCHCommonServiceUtil.setCHSV008301CC(paramBeans, inDataMap);

			// 検索結果格納用マップを生成。
			HashMap<String, Object> outputMap = new HashMap<String, Object>();

			// サービスの呼び出し
			invokeService(paramMap, inDataMap, outputMap);

			// 検索エラーフラグの取得
			String searchErrFlg = JCCWebCommon.getSearchErrFlg(JACStrConst.GETPRCKMKOPUTNMCC_MAP_ID, outputMap); 

			// データが取得できない場合エラーとする。
			if ("1".equals(searchErrFlg))
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0740_KW, "埋込み料金情報");
				return false;
			}

			// 下りマッピング
			// 埋込み料金項目情報（ワーク）をセット。
			JCHCommonServiceUtil.getCHSV008301CC(paramBeans, outputMap);

			// ◇追加する明細情報のマップを生成
			HashMap<String, Object> uwMap2 = new HashMap<String, Object>();
			// Ｎｏ
			uwMap2.put(CHW01001SFConst.NO_17, JACStrConst.KARA_MOJI);
			// ＩＤ番号
			uwMap2.put(CHW01001SFConst.ID_NO_17, this.getIdNoInput(paramBeans));
			// 利用開始日
			uwMap2.put(CHW01001SFConst.USE_STAYMD_17, JACStrConst.KARA_MOJI);
			// 利用終了日
			uwMap2.put(CHW01001SFConst.USE_ENDYMD_17, JACStrConst.KARA_MOJI);
			// 料金内訳
			uwMap2.put(CHW01001SFConst.PRC_UW_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.PRC_KMK_INFO, CHW01001SFConst.SEIKY_UW_NM_LIST_16,
					CHW01001SFConst.PRC_KMK_CD_SEL_16));
			// 内訳額
			String amntAdjAfPrc = new Integer(svcDtlSkbtNo).toString();// 数値型に変換して文字型に再変換（例：01⇒1） 
			uwMap2.put(CHW01001SFConst.AJST_AF_AMNT_17, amntAdjAfPrc);
			
			//料金グループコードが｢99｣　マンション情報の場合
			if("99".equals(prcGrpCd))
			{
				//マンションIDを設定
				// 整理番号
				uwMap2.put(CHW01001SFConst.SEIRI_NO_17, 
						JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.MANSION_ID_LIST_10,
								CHW01001SFConst.SVC_KEI_NO_SEL_10));
			}
			else
			{
				//マンション情報以外の場合は整理番号を設定
				// 整理番号
				uwMap2.put(CHW01001SFConst.SEIRI_NO_17, 
						JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.SEIRI_NO_LIST_10,
						CHW01001SFConst.SVC_KEI_NO_SEL_10));
	
			}
			
			// サービス契約番号
			uwMap2.put(CHW01001SFConst.SVC_KEI_NO_17, 
					JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.SVC_KEI_NO_LIST_10,
					CHW01001SFConst.SVC_KEI_NO_SEL_10));
			// 料金グループコード
			uwMap2.put(CHW01001SFConst.KEY_PRC_GRP_CD_17, 
					 paramBeans[0].sendMessageString(JCHCommonConst.UMKM_PRC_GRP_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金コースコード
			uwMap2.put(CHW01001SFConst.KEY_PCRS_CD_17, 
					paramBeans[0].sendMessageString(JCHCommonConst.UMKM_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金サービスコード
			uwMap2.put(CHW01001SFConst.KEY_PRC_SVC_CD_17, 
					paramBeans[0].sendMessageString(JCHCommonConst.UMKM_PRC_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金項目コード
			uwMap2.put(CHW01001SFConst.KEY_PRC_KMK_CD_17, 
					paramBeans[0].sendMessageString(JCHCommonConst.UMKM_PRC_KMK_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// マンションＩＤ
			uwMap2.put(CHW01001SFConst.MANSION_ID_17, 
					JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.MANSION_ID_LIST_10,
					CHW01001SFConst.SVC_KEI_NO_SEL_10));
			// 回線場所住所補記＿部屋番号
			uwMap2.put(CHW01001SFConst.KAISEN_PLACE_ADRRM_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO,
					CHW01001SFConst.KAISEN_PLACE_ADRRM_LIST_10, CHW01001SFConst.SVC_KEI_NO_SEL_10));
			// 利用期間表示制御フラグ
			uwMap2.put(CHW01001SFConst.USE_PRD_DSP_CTRL_FLG_17, JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.PRC_KMK_INFO,
					CHW01001SFConst.USE_PRD_DSP_CTRL_FLG_LIST_16, CHW01001SFConst.PRC_KMK_CD_SEL_16));
			// 料金訂正可否(訂正可能)
			uwMap2.put(CHW01001SFConst.PRC_TEISEI_KH_17, JACStrConst.PRC_TEISEI_KH_PSB);
			// 請求契約番号
			uwMap2.put(CHW01001SFConst.SEIKY_KEI_NO, paramBeans[0].sendMessageString(CHW01001SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 合計行判定区分
			uwMap2.put(CHW01001SFConst.SUM_LINE_JUDGE_DIV_17, JACStrConst.SUM_LINE_JUDGE_DIV_DTL);
	
			// サービス詳細識別番号
			uwMap2.put(CHW01001SFConst.SVC_DTL_SKBT_NO_17, JACStrConst.KARA_MOJI);
	
			// 請求内訳番号(default値設定)
			uwMap2.put(CHW01001SFConst.SEIKY_UCWK_NO_17, "1");
	
			// ◇追加処理の呼び出し
			JCHSeikyUwEditUtil util2 = JCHSeikyUwEditUtil.createInstance(
					JACScreenConst.SCREEN_ID_CHW01001, paramBeans[0].getDataBeanArray(CHW01001SFConst.SEIKY_UW_DB_CTL));
			if (util2.addUwItem(paramBeans[0], uwMap2) == false)
			{
				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_PRC_UCWK_EXIST, new String[] { CHW01001SFConst.PRC_UW_17 });
				return false;
			}
		}
		//v36.00.00 ANK-3296-00-00 Add End

		return true;
	}

	/**
	 * 入力サービス契約番号取得処理.<br>
	 * 「サービス契約番号入力」または「サービス契約番号入力（内訳パターン入力用）」 からユーザが入力したサービス契約番号を取得する。
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @return 入力サービス契約番号
	 */
	private String getIdNoInput(X31SDataBeanAccess[] paramBeans)
	{
		String idNo = null;
		// 入力種別の取得
		String inputSbtCd = this.getInputSbtSelCd(paramBeans);

		if (JACStrConst.UW_INPUT_SBT_CD_UW_PTN.equals(inputSbtCd))
		{
			// 入力種別：内訳パターンの場合
			// サービス契約番号入力（内訳パターン入力用）を取得し、未入力であればサービス契約番号情報（内訳パターン入力用）から取得
			idNo = paramBeans[0].sendMessageString(CHW01001SFConst.SVC_KEI_NO_INPUT_UW_PTN, X31CWebConst.DATABEAN_GET_VALUE);
			if (JACStrConst.KARA_MOJI.equals(idNo))
			{
				idNo = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO_UW_PTN, CHW01001SFConst.SVC_KEI_NO_LIST_UW_PTN_11,
						CHW01001SFConst.SVC_KEI_NO_SEL_UW_PTN_11);
			}
		}
		else
		{
			// 入力種別：料金項目の場合（判定としては内訳パターン以外。）
			// サービス契約番号入力を取得し、未入力であればサービス契約番号情報から取得
			idNo = paramBeans[0].sendMessageString(CHW01001SFConst.SVC_KEI_NO_INPUT, X31CWebConst.DATABEAN_GET_VALUE);
			if (JACStrConst.KARA_MOJI.equals(idNo))
			{
				idNo = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SVC_KEI_NO_INFO, CHW01001SFConst.SVC_KEI_NO_LIST_10,
						CHW01001SFConst.SVC_KEI_NO_SEL_10);
			}
		}

		return idNo;
	}

	/**
	 * 随時入金登録画面情報取得サービスを実行します。 <br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 */
	private void execCHSV0051(X31SDataBeanAccess[] paramBeans)
	{
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0051);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		CHSV0051_CHSV0051OPDBMapper mapper = new CHSV0051_CHSV0051OPDBMapper();
		mapper.setCHSV005101SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); // [EKK0491A010]請求契約一意照会
		mapper.setCHSV005102SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [ECH0191B020]金庫ステータス毎合計一覧照会
		mapper.setCHSV005103SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [ECH0191B010]預り金一覧照会
		mapper.setCHSV005104SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [EZM0171B012]入金経路一覧照会
		mapper.setCHSV005105SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [EZM0171B012]内訳入力種別一覧照会
		mapper.setCHSV005106SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [EZM0171B012]追加料金項目パターン一覧照会
		mapper.setCHSV005107SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [EZM0171B012]指定口座一覧照会
		mapper.setCHSV005108SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [ECH0181B010]コンビニエンスストア一覧照会
		mapper.setCHSV005109SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [ECH0601B010]債権回収委託会社一覧照会
		mapper.setCHSV005110SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [EKK0531B002]クレジットカード会社一覧照会
		mapper.setCHSV005111SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [EZM0171B012]受取り部門一覧照会

		mapper.setCHSV005112SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [EKK0321B505]課金先一覧照会（マンション情報）
		mapper.setCHSV005113SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); // [ECH0401B040]料金項目出力名称一覧照会
		mapper.setGETWORKPARAMLISTCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1);
		JCHCommonServiceUtil.setBankIcrnInfoStkuCC(paramBeans, inDataMap, false); // 金融機関一覧情報取得
		mapper.setGETPRCKMKCSCHGELISTCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2);
		mapper.setZUIJINKINADDCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2);
//v32.00.00 Add Start
		mapper.setSHUNOKKNINFOSTKUCC(paramBeans, inDataMap);
//v32.00.00 Add End
		// ANK-3366-00-00 ADD START
		mapper.setORSJGSNMINFOSTKUCC(paramBeans, inDataMap);
		// ANK-3366-00-00 ADD END
		//v52.00.00 Add Start
		mapper.setCHSV005114SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // [EZM0171B012]収納機関一覧照会
		//v52.00.00 Add End

		// 各inputリスト編集
		setPrcKmkCsChgList(inDataMap);

		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// 下りマッピング
		mapper.getGETPRCKMKCSCHGELISTCC(paramBeans, outputMap);
		mapper.getCHSV005101SC(paramBeans, outputMap);
		mapper.getCHSV005102SC(paramBeans, outputMap);
		mapper.getCHSV005103SC(paramBeans, outputMap);
		mapper.getCHSV005104SC(paramBeans, outputMap);
		mapper.getCHSV005105SC(paramBeans, outputMap);
		mapper.getCHSV005106SC(paramBeans, outputMap);
		mapper.getCHSV005107SC(paramBeans, outputMap);
		mapper.getCHSV005108SC(paramBeans, outputMap);
		//v52.00.00 Add Start
		mapper.getCHSV005108SC2(paramBeans, outputMap);
		//v52.00.00 Add End
		mapper.getCHSV005109SC(paramBeans, outputMap);
		mapper.getCHSV005110SC(paramBeans, outputMap);
		mapper.getCHSV005111SC(paramBeans, outputMap);
		mapper.getCHSV005112SC(paramBeans, outputMap);
		mapper.getCHSV005113SC(paramBeans, outputMap);
		mapper.getGETWORKPARAMLISTCC(paramBeans, outputMap);
		JCHCommonServiceUtil.getBankIcrnInfoStkuCC(paramBeans, outputMap);
		mapper.getZUIJINKINADDCC(paramBeans, outputMap);
//v32.00.00 Add Start
		mapper.getSHUNOKKNINFOSTKUCC(paramBeans, outputMap);
//v32.00.00 Add End
		// ANK-3366-00-00 ADD START
		mapper.getORSJGSNMINFOSTKUCC(paramBeans, outputMap);
		// ANK-3366-00-00 ADD END

		// 表示内容編集
		String selIndex = null;
		// 入金経路コード選択
		X31SDataBeanAccess nkinRouteInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.NYUKIN_ROUTE_INFO).getDataBean(0);
		selIndex = JCHPulldownUtil.countSelIndexWithShkDspCd(
				nkinRouteInfo, CHW01001SFConst.NYUKIN_ROUTE_CD_SEL_01, CHW01001SFConst.NYUKIN_ROUTE_SHK_DSP_CD_LIST_01);

		nkinRouteInfo.sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_CD_SEL_01, X31CWebConst.DATABEAN_SET_VALUE, selIndex);

		// 受取り部門コード選択
		X31SDataBeanAccess uketoriBumonInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.UKETORI_BUMON_INFO).getDataBean(0);
		selIndex = uketoriBumonInfo.sendMessageString(CHW01001SFConst.UKETORI_BUMON_CD_SEL_02, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			uketoriBumonInfo.sendMessageString(CHW01001SFConst.UKETORI_BUMON_CD_SEL_02, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}

		// 指定口座コード選択
		X31SDataBeanAccess shiteikozaInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.SHITEIKOZA_INFO).getDataBean(0);
		selIndex = JCHPulldownUtil.countSelIndexWithShkDspCd(
				shiteikozaInfo, CHW01001SFConst.SHITEIKOZA_CD_SEL_03, CHW01001SFConst.SHITEIKOZA_SHK_DSP_CD_LIST_03);

		shiteikozaInfo.sendMessageString(CHW01001SFConst.SHITEIKOZA_CD_SEL_03, X31CWebConst.DATABEAN_SET_VALUE, selIndex);

		// コンビニエンスストアコード選択
		X31SDataBeanAccess cvstoreInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.CVSTORE_INFO).getDataBean(0);
		selIndex = cvstoreInfo.sendMessageString(CHW01001SFConst.CVSTORE_CD_SEL_04, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			cvstoreInfo.sendMessageString(CHW01001SFConst.CVSTORE_CD_SEL_04, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
		// v52.00.00 ADD START
		// コンビニエンスストアコード選択
		X31SDataBeanAccess cvstoreInfo2 = paramBeans[0].getDataBeanArray(CHW01001SFConst.CVSTORE_INFO2).getDataBean(0);
		selIndex = cvstoreInfo2.sendMessageString(CHW01001SFConst.CVSTORE_CD_SEL2_28, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			cvstoreInfo2.sendMessageString(CHW01001SFConst.CVSTORE_CD_SEL2_28, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
		// v52.00.00 ADD END

		// 債権回収委託会社コード選択
		X31SDataBeanAccess sknksitkcmInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.SKNKSITKCM_INFO).getDataBean(0);
		selIndex = sknksitkcmInfo.sendMessageString(CHW01001SFConst.SKNKSITKCM_CD_SEL_05, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			sknksitkcmInfo.sendMessageString(CHW01001SFConst.SKNKSITKCM_CD_SEL_05, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}

		// 金融機関コード選択
		X31SDataBeanAccess bankInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.BANK_INFO).getDataBean(0);
		selIndex = bankInfo.sendMessageString(CHW01001SFConst.BANK_CD_SEL_06, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			bankInfo.sendMessageString(CHW01001SFConst.BANK_CD_SEL_06, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}

		// 金融機関支店コード選択
		X31SDataBeanAccess bankShitenInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.BANK_SHITEN_INFO).getDataBean(0);
		selIndex = bankShitenInfo.sendMessageString(CHW01001SFConst.BANK_SHITEN_CD_SEL_07, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			bankShitenInfo.sendMessageString(CHW01001SFConst.BANK_SHITEN_CD_SEL_07, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}

		// クレジットカード会社コード選択
		X31SDataBeanAccess crecardCompInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.CRECARD_COMP_INFO).getDataBean(0);
		selIndex = crecardCompInfo.sendMessageString(CHW01001SFConst.CRECARD_COMP_CD_SEL_08, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			crecardCompInfo.sendMessageString(CHW01001SFConst.CRECARD_COMP_CD_SEL_08, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
		
//v32.00.00 Add Start
		// 収納機関コード選択
		X31SDataBeanAccess shunoKknInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.SHUNO_KKN_INFO).getDataBean(0);
		selIndex = shunoKknInfo.sendMessageString(CHW01001SFConst.SHUNO_KKN_CD_SEL_24, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			shunoKknInfo.sendMessageString(CHW01001SFConst.SHUNO_KKN_CD_SEL_24, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
//v32.00.00 Add End
		// ANK-3366-00-00 ADD START
		// 卸先事業者コード選択
		X31SDataBeanAccess orsjgsInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.ORSJGS_INFO).getDataBean(0);
		selIndex = orsjgsInfo.sendMessageString(CHW01001SFConst.ORSJGS_CD_SEL_27, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			shunoKknInfo.sendMessageString(CHW01001SFConst.ORSJGS_CD_SEL_27, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
		// ANK-3366-00-00 ADD END

		// 入力種別選択インデックス
		paramBeans[0].sendMessageString(CHW01001SFConst.INPUT_SBT_SELECT_INDEX, X31CWebConst.DATABEAN_SET_VALUE, this.getInputSbtSelIndex(paramBeans));
		// 入力種別選択コード
		paramBeans[0].sendMessageString(CHW01001SFConst.INPUT_SBT_SELECT_CD, X31CWebConst.DATABEAN_SET_VALUE, this.getInputSbtSelCd(paramBeans));

		// サービス契約番号情報
		X31SDataBeanAccess idNoInfoUwAdd = paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_KEI_NO_INFO).getDataBean(0);
		selIndex = idNoInfoUwAdd.sendMessageString(CHW01001SFConst.SVC_KEI_NO_SEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			idNoInfoUwAdd.sendMessageString(CHW01001SFConst.SVC_KEI_NO_SEL_10, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}

		// 料金項目情報
		X31SDataBeanAccess prcKmkInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.PRC_KMK_INFO).getDataBean(0);
		selIndex = prcKmkInfo.sendMessageString(CHW01001SFConst.PRC_KMK_CD_SEL_16, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			prcKmkInfo.sendMessageString(CHW01001SFConst.PRC_KMK_CD_SEL_16, X31CWebConst.DATABEAN_SET_VALUE, "0");
			this.setAmntUwAdd(paramBeans);
		}

		// 内訳パターン名称情報
		X31SDataBeanAccess uwPtnInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.UW_PTN_INFO).getDataBean(0);
		selIndex = JCHPulldownUtil.countSelIndexWithShkDspCd(uwPtnInfo, CHW01001SFConst.UW_PTN_CD_SEL_12, CHW01001SFConst.UW_PTN_SHK_DSP_CD_LIST_12);

		uwPtnInfo.sendMessageString(CHW01001SFConst.UW_PTN_CD_SEL_12, X31CWebConst.DATABEAN_SET_VALUE, selIndex);

		// 請求内訳の表示件数をセット
		X31SDataBeanAccessArray seikyUwInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO);
		paramBeans[0].sendMessageString(CHW01001SFConst.UW_DSP_CNT, X31CWebConst.DATABEAN_SET_VALUE, seikyUwInfo.getCount().toString());

		// 制御値編集
		// 制御値(活性非活性)
		this.setDisabledCntrlValue(paramBeans);

		// 制御値(入金情報表示)
		this.setDspCntrlValue(paramBeans);
	}

	/**
	 * 金融機関一覧情報取得サービスを実行します。 <br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @param isTtlKozaPfct 総合口座（パーフェクト口座）かどうかを表すフラグ（true:対象）
	 */
	private void execCHSV0052(X31SDataBeanAccess[] paramBeans, boolean isTtlKozaPfct)
	{
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0052);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		JCHCommonServiceUtil.setBankIcrnInfoStkuCC(paramBeans, inDataMap, isTtlKozaPfct);

		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// 下りマッピング
		JCHCommonServiceUtil.getBankIcrnInfoStkuCC(paramBeans, outputMap);
	}

	/**
	 * 随時入金登録サービスを実行します。 <br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @param funcCode 機能コード
	 * @return 処理結果
	 */
	@SuppressWarnings("unchecked")
	private boolean execCHSV0053(X31SDataBeanAccess[] paramBeans, String funcCode)
	{
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0053);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		CHSV0053_CHSV0053OPDBMapper mapper = new CHSV0053_CHSV0053OPDBMapper();

		mapper.setZUIJINKINADDCC(paramBeans, inDataMap, funcCode); // 随時入金登録CC
		mapper.setTAIOKIROKADDCC(paramBeans, inDataMap, funcCode, this); // 顧客対応記録登録CC
		mapper.setADDHOTVOICCC(paramBeans, inDataMap, funcCode, this); // ホットボイスCC
		mapper.setPRCTAIOKIROKADDCC(paramBeans, inDataMap, funcCode, this); // 料金対応記録登録CC
		//ANK-4468-00-00 ADD START
		mapper.setGETCHANGEGROUPKEIINFCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // GETCHANGEGROUPKEIINFCC : グループ計変更情報取得情報取得
		//ANK-4468-00-00 ADD END

		// NGワードチェックフラグを設定
		((HashMap)inDataMap.get(JACStrConst.PRCTAIOKIROKADDCC_MAP_ID)).put(JACStrConst.KEY_NGWORD_CHECK_FLG, "1");

		// 結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// ＮＧワードチェック
		ArrayList<String> ngWordList = JCHCommonServiceUtil.getNgWordList(outputMap);

		// NGワードが存在する場合、警告メッセージ表示
		if (!ngWordList.isEmpty())
		{
			for (int i = 0; i < ngWordList.size(); i++)
			{
				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_NG_WORD, new String[] { CHW01001SFConst.KIJI, ngWordList.get(i) });
			}
			return false;
		}

		// 下りマッピング
		mapper.getZUIJINKINADDCC(paramBeans, outputMap);
		
//ANK-4543-00-00 ADD START	
		//NTT卸契約エラー判定
		String NTT_ERR = "";
		HashMap scMap01 = (HashMap) outputMap.get("ZUIJINKINADDCC");
		ArrayList resultList01 = (ArrayList) scMap01.get("ECH0051D011CBSMsg2List");
		if(resultList01 != null )
		{
			for(int i = 0; i < resultList01.size(); i++ ){
				HashMap resultList01Map = (HashMap)resultList01.get(i);
				NTT_ERR = (String)resultList01Map.get("ntt_err_flg");
				if (NTT_ERR.equals("1")){
					JCCWebCommon.setMessageInfo(this, "NTT卸契約が複数件存在します");
				}
			}
		}
//ANK-4543-00-00 ADD END
		
		return true;
	}

	/**
	 * 内訳パターン情報取得サービスを実行します。 <br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 */
	private void execCHSV0054(X31SDataBeanAccess[] paramBeans)
	{
		// 追加料金項目情報をクリア
		paramBeans[0].getDataBeanArray(CHW01001SFConst.ADD_PRC_KMK_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.ADD_PRC_KMK_INFO).addDataBean();

		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0054);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		CHSV0054_CHSV0054OPDBMapper mapper = new CHSV0054_CHSV0054OPDBMapper();
		mapper.setCHSV005401SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2, this);
		mapper.setCHSV005402SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1, this);
		mapper.setGETADDPRCKMKPTNCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1);

		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// 下りマッピング
		mapper.getGETADDPRCKMKPTNCC(paramBeans, outputMap);
	}

	/**
	 * 入力種別選択位置取得<br>
	 * 値が設定されていない場合、初期表示コードに従って選択位置を決定します。<br>
	 * 初期表示コードが指定されていない場合は、先頭行を選択するため"0"を返却します。<br>
	 * 
	 * @param bean 随時入金登録サービスフォームBean
	 * @return 選択位置
	 */
	private String getInputSbtSelIndex(X31SDataBeanAccess[] bean)
	{
		String selIndex = bean[0].sendMessageString(CHW01001SFConst.INPUT_SBT_SELECT_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		if (selIndex == null || JACStrConst.KARA_MOJI.equals(selIndex))
		{
			selIndex = "0";
			X31SDataBeanAccessArray infoBean = bean[0].getDataBeanArray(CHW01001SFConst.INPUT_SBT_INFO);
			for (int idx = 0; idx < infoBean.getCount(); idx++)
			{
				String shkDspCd = infoBean.getDataBean(idx).sendMessageString(CHW01001SFConst.INPUT_SBT_SHK_DSP_CD_09, X31CWebConst.DATABEAN_GET_VALUE);
				if (JACStrConst.SHK_DSP_CD_ON.equals(shkDspCd))
				{
					selIndex = String.valueOf(idx);
					break;
				}
			}
		}

		return selIndex;
	}

	/**
	 * 入力種別選択コード取得<br>
	 * 
	 * @param bean 随時入金登録サービスフォームBean
	 * @return 入力種別選択コード
	 */
	private String getInputSbtSelCd(X31SDataBeanAccess[] bean)
	{
		String selCd = JACStrConst.UW_INPUT_SBT_CD_UW_PTN;

		String selIndex = bean[0].sendMessageString(CHW01001SFConst.INPUT_SBT_SELECT_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccessArray info = bean[0].getDataBeanArray(CHW01001SFConst.INPUT_SBT_INFO);
		if (selIndex != null && JACStrConst.KARA_MOJI.equals(selIndex) == false)
		{
			selCd = info.getDataBean(Integer.parseInt(selIndex)).sendMessageString(CHW01001SFConst.INPUT_SBT_CD_09, X31CWebConst.DATABEAN_GET_VALUE);
		}

		return selCd;
	}

	/**
	 * 活性非活性の制御値を設定します。 <br>
	 * 
	 * @param bean 随時入金登録サービスフォームBean
	 */
	private void setDisabledCntrlValue(X31SDataBeanAccess[] bean)
	{
		// 請求内訳情報の件数で制御
		String jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_TRUE;
		X31SDataBeanAccessArray seikyUwInfo = bean[0].getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO);
		if (seikyUwInfo.getCount().intValue() > 0)
		{
			jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_FALSE;
		}

		/* ◇JSF */
		// 記事読取専用制御値
		bean[0].sendMessageString(CHW01001SFConst.DSBL_CTL_JSF_KIJI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_FALSE);
		// 対応履歴表示非活性制御値
		bean[0].sendMessageString(CHW01001SFConst.DSBL_CTL_JSF_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_FALSE);
		// 再計算ボタン非活性制御値
		bean[0].sendMessageString(CHW01001SFConst.DSBL_CTL_JSF_BTN_RECALC, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
		// 登録確認ボタン非活性制御値
		bean[0].sendMessageString(CHW01001SFConst.DSBL_CTL_JSF_BTN_REGISTCFM, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
	}

	/**
	 * 入金情報の表示制御値を設定します。 <br>
	 * 
	 * @param bean 随時入金登録サービスフォームBean
	 */
	private void setDspCntrlValue(X31SDataBeanAccess[] bean)
	{
		// 入金経路
		String nkinRouteCd = JCHPulldownUtil.getSelectedValue(bean, CHW01001SFConst.NYUKIN_ROUTE_INFO, CHW01001SFConst.NYUKIN_ROUTE_CD_LIST_01,
				CHW01001SFConst.NYUKIN_ROUTE_CD_SEL_01);

		bean[0].sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_CD, X31CWebConst.DATABEAN_SET_VALUE, nkinRouteCd);

		// 入金情報表示制御値
		String dspCtrlVal = null;
		if (JACStrConst.NYKNKEIRCD_YUKEN.equals(nkinRouteCd) || JACStrConst.NYKNKEIRCD_SHANAI_USE.equals(nkinRouteCd)
				|| JACStrConst.NYKNKEIRCD_YUBIN_FURIKM.equals(nkinRouteCd))
		{
			dspCtrlVal = "1";
		}
		else if (JACStrConst.NYKNKEIRCD_GENKIN.equals(nkinRouteCd))
		{
			dspCtrlVal = "2";
		}
		else if (JACStrConst.NYKNKEIRCD_SAIKEN_KAISHU.equals(nkinRouteCd))
		{
			dspCtrlVal = "3";
		}
		//ANK-4415-00-00 MOD START
//		else if (JACStrConst.NYKNKEIRCD_KOZA.equals(nkinRouteCd))
		else if (JACStrConst.NYKNKEIRCD_KOZA_CP.equals(nkinRouteCd) || JACStrConst.NYKNKEIRCD_KOZA_SMBCFS.equals(nkinRouteCd))
		//ANK-4415-00-00 MOD END
		{
			dspCtrlVal = "4";
		}
		else if (JACStrConst.NYKNKEIRCD_MDGC.equals(nkinRouteCd))
		{
			dspCtrlVal = "5";
		}
		else if (JACStrConst.NYKNKEIRCD_CREDIT.equals(nkinRouteCd))
		{
			dspCtrlVal = "6";
		}
		else if (JACStrConst.NYKNKEIRCD_CVSTORE.equals(nkinRouteCd))
		{
			dspCtrlVal = "7";
		}
		else if (JACStrConst.NYKNKEIRCD_JUTO.equals(nkinRouteCd))
		{
			dspCtrlVal = "8";
		}
		else if (JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nkinRouteCd))
		{
			dspCtrlVal = "9";
		}
//v32.00.00 Add Start
		else if (JACStrConst.NYKNKEIRCD_KESSAI_SMBC.equals(nkinRouteCd))
		{
			dspCtrlVal = "10";
		}
//v32.00.00 Add End
		// ANK-3366-00-00 ADD START
		else if (JACStrConst.NYKNKEIRCD_KESSAI_ORSJGS.equals(nkinRouteCd))
		{
			dspCtrlVal = "11";
		}
		// ANK-3366-00-00 ADD END
		// v52.00.00 ADD Start
		else if (JACStrConst.SHNKKNCD_CVSTORE_ETC_NORMAL_CUST.equals(nkinRouteCd) || JACStrConst.SHNKKNCD_CVSTORE_ETC_NORMAL_COMP.equals(nkinRouteCd))
		{
			dspCtrlVal = "12";
		}
		// v52.00.00 ADD End
		else
		{
			dspCtrlVal = "0";
		}

		bean[0].sendMessageString(CHW01001SFConst.DSP_CNTRL_VALUE_NKIN_INFO, X31CWebConst.DATABEAN_SET_VALUE, dspCtrlVal);
	}

	/**
	 * プルダウンリスト選択インデックス初期化.<br>
	 * 
	 * @param bean 随時入金登録サービスフォームBean
	 */
	private void resetPullDownSelIndex(X31SDataBeanAccess[] bean)
	{
		// ◇プルダウンリストの初期表示位置(リセット)
		// 受取り部門コード選択
		X31SDataBeanAccess uketoriBumonInfo = bean[0].getDataBeanArray(CHW01001SFConst.UKETORI_BUMON_INFO).getDataBean(0);
		uketoriBumonInfo.sendMessageString(CHW01001SFConst.UKETORI_BUMON_CD_SEL_02, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 指定口座コード選択
		X31SDataBeanAccess shiteikozaInfo = bean[0].getDataBeanArray(CHW01001SFConst.SHITEIKOZA_INFO).getDataBean(0);
		shiteikozaInfo.sendMessageString(CHW01001SFConst.SHITEIKOZA_CD_SEL_03, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		String selIndex = JCHPulldownUtil.countSelIndexWithShkDspCd(
				shiteikozaInfo, CHW01001SFConst.SHITEIKOZA_CD_SEL_03, CHW01001SFConst.SHITEIKOZA_SHK_DSP_CD_LIST_03);

		shiteikozaInfo.sendMessageString(CHW01001SFConst.SHITEIKOZA_CD_SEL_03, X31CWebConst.DATABEAN_SET_VALUE, selIndex);

		// コンビニエンスストアコード選択
		X31SDataBeanAccess cvstoreInfo = bean[0].getDataBeanArray(CHW01001SFConst.CVSTORE_INFO).getDataBean(0);
		cvstoreInfo.sendMessageString(CHW01001SFConst.CVSTORE_CD_SEL_04, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 債権回収委託会社コード選択
		X31SDataBeanAccess sknksitkcmInfo = bean[0].getDataBeanArray(CHW01001SFConst.SKNKSITKCM_INFO).getDataBean(0);
		sknksitkcmInfo.sendMessageString(CHW01001SFConst.SKNKSITKCM_CD_SEL_05, X31CWebConst.DATABEAN_SET_VALUE, "0");

		String nkinRouteCd = JCHPulldownUtil.getSelectedValue(bean, CHW01001SFConst.NYUKIN_ROUTE_INFO, CHW01001SFConst.NYUKIN_ROUTE_CD_LIST_01, CHW01001SFConst.NYUKIN_ROUTE_CD_SEL_01); // 入金経路コード
		String shiteiKozaCd = JCHPulldownUtil.getSelectedValue(bean, CHW01001SFConst.SHITEIKOZA_INFO, CHW01001SFConst.SHITEIKOZA_CD_LIST_03, CHW01001SFConst.SHITEIKOZA_CD_SEL_03); // 指定口座コード
		// 入金経路コードが総合口座かつ指定口座がパーフェクト口座ではない場合
		if (!(JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nkinRouteCd) && JACStrConst.PAYWAY_KOUZA_PFCT.equals(shiteiKozaCd))) {
			// 金融機関コード選択
			X31SDataBeanAccess bankInfo = bean[0].getDataBeanArray(CHW01001SFConst.BANK_INFO).getDataBean(0);
			bankInfo.sendMessageString(CHW01001SFConst.BANK_CD_SEL_06, X31CWebConst.DATABEAN_SET_VALUE, "0");
	
			// 金融機関支店コード選択
			X31SDataBeanAccess bankShitenInfo = bean[0].getDataBeanArray(CHW01001SFConst.BANK_SHITEN_INFO).getDataBean(0);
			bankShitenInfo.sendMessageString(CHW01001SFConst.BANK_SHITEN_CD_SEL_07, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}

		// クレジットカード会社コード選択
		X31SDataBeanAccess crecardCompInfo = bean[0].getDataBeanArray(CHW01001SFConst.CRECARD_COMP_INFO).getDataBean(0);
		crecardCompInfo.sendMessageString(CHW01001SFConst.CRECARD_COMP_CD_SEL_08, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
//v32.00.00 Add Start
		// 収納機関コード選択
		X31SDataBeanAccess shunoKknInfo = bean[0].getDataBeanArray(CHW01001SFConst.SHUNO_KKN_INFO).getDataBean(0);
		shunoKknInfo.sendMessageString(CHW01001SFConst.SHUNO_KKN_CD_SEL_24, X31CWebConst.DATABEAN_SET_VALUE, "0");
//v32.00.00 Add End
		
		// ANK-3366-00-00 ADD START
		// 卸先事業者コード選択
		X31SDataBeanAccess orsjgsInfo = bean[0].getDataBeanArray(CHW01001SFConst.ORSJGS_INFO).getDataBean(0);
		orsjgsInfo.sendMessageString(CHW01001SFConst.ORSJGS_CD_SEL_27, X31CWebConst.DATABEAN_SET_VALUE, "0");
		// ANK-3366-00-00 ADD END
	}

	/**
	 * 受取り部門設定処理.<br>
	 * <br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @param nyukinRouteCd 入金経路コード
	 */
	private void setUketoriBumon(X31SDataBeanAccess[] paramBeans, String nyukinRouteCd)
	{
		// (入金経路が現金、総合口座、郵券、社用の場合)
		String uketoriBumonCd = JACStrConst.KARA_MOJI;
		String uketoriBumonNm = JACStrConst.KARA_MOJI;
		if (JACStrConst.NYKNKEIRCD_GENKIN.equals(nyukinRouteCd) 
			|| JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nyukinRouteCd)
			|| JACStrConst.NYKNKEIRCD_YUBIN_FURIKM.equals(nyukinRouteCd) 
			|| JACStrConst.NYKNKEIRCD_YUKEN.equals(nyukinRouteCd) 
			|| JACStrConst.NYKNKEIRCD_SHANAI_USE.equals(nyukinRouteCd))
		{
			uketoriBumonCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.UKETORI_BUMON_INFO, CHW01001SFConst.UKETORI_BUMON_CD_LIST_02,
					CHW01001SFConst.UKETORI_BUMON_CD_SEL_02);

			uketoriBumonNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.UKETORI_BUMON_INFO, CHW01001SFConst.UKETORI_BUMON_NM_LIST_02,
					CHW01001SFConst.UKETORI_BUMON_CD_SEL_02);
		}
		paramBeans[0].sendMessageString(CHW01001SFConst.UKETORI_BUMON_CD, X31CWebConst.DATABEAN_SET_VALUE, uketoriBumonCd);
		paramBeans[0].sendMessageString(CHW01001SFConst.UKETORI_BUMON_NM, X31CWebConst.DATABEAN_SET_VALUE, uketoriBumonNm);
	}

	/**
	 * 指定口座設定処理.<br>
	 * <br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @param nyukinRouteCd 入金経路コード
	 */
	private void setShiteiKoza(X31SDataBeanAccess[] paramBeans, String nyukinRouteCd)
	{
		String shiteiKozaCd = JACStrConst.KARA_MOJI;
		String shiteiKozaNm = JACStrConst.KARA_MOJI;
		if (JACStrConst.NYKNKEIRCD_GENKIN.equals(nyukinRouteCd) || JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nyukinRouteCd))
		{
			shiteiKozaCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SHITEIKOZA_INFO, CHW01001SFConst.SHITEIKOZA_CD_LIST_03,
					CHW01001SFConst.SHITEIKOZA_CD_SEL_03);

			shiteiKozaNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SHITEIKOZA_INFO, CHW01001SFConst.SHITEIKOZA_NM_LIST_03,
					CHW01001SFConst.SHITEIKOZA_CD_SEL_03);
		}
		paramBeans[0].sendMessageString(CHW01001SFConst.SHITEIKOZA_CD, X31CWebConst.DATABEAN_SET_VALUE, shiteiKozaCd);
		paramBeans[0].sendMessageString(CHW01001SFConst.SHITEIKOZA_NM, X31CWebConst.DATABEAN_SET_VALUE, shiteiKozaNm);
	}

	/**
	 * コンビニエンスストア設定処理.<br>
	 * <br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @param nyukinRouteCd 入金経路コード
	 */
	private void setCvstore(X31SDataBeanAccess[] paramBeans, String nyukinRouteCd)
	{
		String cvstoreCd = JACStrConst.KARA_MOJI;
		String cvstoreCompNm = JACStrConst.KARA_MOJI;
		if (JACStrConst.NYKNKEIRCD_CVSTORE.equals(nyukinRouteCd))
		{
			cvstoreCd = JCHPulldownUtil.getSelectedValue(
					paramBeans, CHW01001SFConst.CVSTORE_INFO, CHW01001SFConst.CVSTORE_CD_LIST_04, CHW01001SFConst.CVSTORE_CD_SEL_04);

			cvstoreCompNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.CVSTORE_INFO, CHW01001SFConst.CVSTORE_COMP_NM_LIST_04,
					CHW01001SFConst.CVSTORE_CD_SEL_04);
		}
		//v52.00.00 Add Start
		else if (JACStrConst.SHNKKNCD_CVSTORE_ETC_NORMAL_CUST.equals(nyukinRouteCd) || JACStrConst.SHNKKNCD_CVSTORE_ETC_NORMAL_COMP.equals(nyukinRouteCd))
		{
			cvstoreCd = JCHPulldownUtil.getSelectedValue(
					paramBeans, CHW01001SFConst.CVSTORE_INFO2, CHW01001SFConst.CVSTORE_CD_LIST2_28, CHW01001SFConst.CVSTORE_CD_SEL2_28);

			cvstoreCompNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.CVSTORE_INFO2, CHW01001SFConst.CVSTORE_COMP_NM_LIST2_28,
					CHW01001SFConst.CVSTORE_CD_SEL2_28);
		}
		//v52.00.00 Add End
		paramBeans[0].sendMessageString(CHW01001SFConst.CVSTORE_CD, X31CWebConst.DATABEAN_SET_VALUE, cvstoreCd);
		paramBeans[0].sendMessageString(CHW01001SFConst.CVSTORE_NM, X31CWebConst.DATABEAN_SET_VALUE, cvstoreCompNm);
	}

	/**
	 * 債権回収委託会社設定処理.<br>
	 * <br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @param nyukinRouteCd 入金経路コード
	 */
	private void setSknksitkcm(X31SDataBeanAccess[] paramBeans, String nyukinRouteCd)
	{
		String sknksitkcmCd = JACStrConst.KARA_MOJI;
		String sknksitkcmNm = JACStrConst.KARA_MOJI;
		if (JACStrConst.NYKNKEIRCD_SAIKEN_KAISHU.equals(nyukinRouteCd))
		{
			sknksitkcmCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SKNKSITKCM_INFO, CHW01001SFConst.SKNKSITKCM_CD_LIST_05,
					CHW01001SFConst.SKNKSITKCM_CD_SEL_05);

			sknksitkcmNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SKNKSITKCM_INFO, CHW01001SFConst.SKNKSITKCM_NM_LIST_05,
					CHW01001SFConst.SKNKSITKCM_CD_SEL_05);
		}
		paramBeans[0].sendMessageString(CHW01001SFConst.SKNKSITKCM_CD, X31CWebConst.DATABEAN_SET_VALUE, sknksitkcmCd);
		paramBeans[0].sendMessageString(CHW01001SFConst.SKNKSITKCM_NM, X31CWebConst.DATABEAN_SET_VALUE, sknksitkcmNm);
	}

	/**
	 * 金融機関設定処理.<br>
	 * <br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @param nyukinRouteCd 入金経路コード
	 */
	private void setBank(X31SDataBeanAccess[] paramBeans, String nyukinRouteCd)
	{
		// (入金経路が口座振替（ＣＰ）、口座振替、窓口入金、総合口座の場合)
		String bankCd = JACStrConst.KARA_MOJI;
		String bankNm = JACStrConst.KARA_MOJI;
		String bankShitenCd = JACStrConst.KARA_MOJI;
		String bankShitenNm = JACStrConst.KARA_MOJI;
		//ANK-4415-00-00 MOD START
//		if (JACStrConst.NYKNKEIRCD_KOZA.equals(nyukinRouteCd) || JACStrConst.NYKNKEIRCD_MDGC.equals(nyukinRouteCd) || JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nyukinRouteCd))
		if (JACStrConst.NYKNKEIRCD_KOZA_CP.equals(nyukinRouteCd) || JACStrConst.NYKNKEIRCD_KOZA_SMBCFS.equals(nyukinRouteCd) || JACStrConst.NYKNKEIRCD_MDGC.equals(nyukinRouteCd)
				|| JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nyukinRouteCd))
		//ANK-4415-00-00 MOD END
		{
			bankCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.BANK_INFO, CHW01001SFConst.BANK_CD_LIST_06, CHW01001SFConst.BANK_CD_SEL_06);

			bankNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.BANK_INFO, CHW01001SFConst.BANK_NM_LIST_06, CHW01001SFConst.BANK_CD_SEL_06);

			bankShitenCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.BANK_SHITEN_INFO, CHW01001SFConst.BANK_SHITEN_CD_LIST_07,
					CHW01001SFConst.BANK_SHITEN_CD_SEL_07);

			bankShitenNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.BANK_SHITEN_INFO, CHW01001SFConst.BANK_SHITEN_NM_LIST_07,
					CHW01001SFConst.BANK_SHITEN_CD_SEL_07);
		}
		paramBeans[0].sendMessageString(CHW01001SFConst.BANK_CD, X31CWebConst.DATABEAN_SET_VALUE, bankCd);
		paramBeans[0].sendMessageString(CHW01001SFConst.BANK_NM, X31CWebConst.DATABEAN_SET_VALUE, bankNm);
		paramBeans[0].sendMessageString(CHW01001SFConst.BANK_SHITEN_CD, X31CWebConst.DATABEAN_SET_VALUE, bankShitenCd);
		paramBeans[0].sendMessageString(CHW01001SFConst.BANK_SHITEN_NM, X31CWebConst.DATABEAN_SET_VALUE, bankShitenNm);
	}

	/**
	 * クレジットカード会社設定処理.<br>
	 * <br>
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 * @param nyukinRouteCd 入金経路コード
	 */
	private void setCreditComp(X31SDataBeanAccess[] paramBeans, String nyukinRouteCd)
	{
		String crecardCompCd = JACStrConst.KARA_MOJI;
		String crecardCompNm = JACStrConst.KARA_MOJI;
		if (JACStrConst.NYKNKEIRCD_CREDIT.equals(nyukinRouteCd))
		{
			crecardCompCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.CRECARD_COMP_INFO, CHW01001SFConst.CRECARD_COMP_CD_LIST_08,
					CHW01001SFConst.CRECARD_COMP_CD_SEL_08);

			crecardCompNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.CRECARD_COMP_INFO, CHW01001SFConst.CRECARD_COMP_NM_LIST_08,
					CHW01001SFConst.CRECARD_COMP_CD_SEL_08);
		}
		paramBeans[0].sendMessageString(CHW01001SFConst.CRECARD_COMP_CD, X31CWebConst.DATABEAN_SET_VALUE, crecardCompCd);
		paramBeans[0].sendMessageString(CHW01001SFConst.CRECARD_COMP_NM, X31CWebConst.DATABEAN_SET_VALUE, crecardCompNm);
	}

	//v32.00.00 Add Start
	/**
	 * 収納機関設定処理.<br>
	 * <br>
	 * 
	 * @param paramBeans 入金登録サービスフォームBean
	 * @param nyukinRouteCd 入金経路コード
	 */
	private void setShunoKkn(X31SDataBeanAccess[] paramBeans, String nyukinRouteCd)
	{
		String shunoKknCd = JACStrConst.KARA_MOJI;
		String shunoKknNm = JACStrConst.KARA_MOJI;
		if (JACStrConst.NYKNKEIRCD_KESSAI_SMBC.equals(nyukinRouteCd))
		{
			shunoKknCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SHUNO_KKN_INFO, CHW01001SFConst.SHUNO_KKN_CD_LIST_24,
					CHW01001SFConst.SHUNO_KKN_CD_SEL_24);

			shunoKknNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.SHUNO_KKN_INFO, CHW01001SFConst.SHUNO_KKN_NM_LIST_24,
					CHW01001SFConst.SHUNO_KKN_CD_SEL_24);
		}
		paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_KKN_CD, X31CWebConst.DATABEAN_SET_VALUE, shunoKknCd);
		paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_KKN_NM, X31CWebConst.DATABEAN_SET_VALUE, shunoKknNm);
	}
//v32.00.00 Add End
	
	// ANK-3366-00-00 ADD START
	/**
	 * 卸先事業者設定処理.<br>
	 * <br>
	 * 
	 * @param paramBeans 入金登録サービスフォームBean
	 * @param nyukinRouteCd 入金経路コード
	 */
	private void setOrsjgs(X31SDataBeanAccess[] paramBeans, String nyukinRouteCd)
	{
		String orsjgsCd = JACStrConst.KARA_MOJI;
		String orsjgsNm = JACStrConst.KARA_MOJI;
		if (JACStrConst.NYKNKEIRCD_KESSAI_ORSJGS.equals(nyukinRouteCd))
		{
			orsjgsCd = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.ORSJGS_INFO, CHW01001SFConst.ORSJGS_CD_LIST_27,
					CHW01001SFConst.ORSJGS_CD_SEL_27);

			orsjgsNm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW01001SFConst.ORSJGS_INFO, CHW01001SFConst.ORSJGS_NM_LIST_27,
					CHW01001SFConst.ORSJGS_CD_SEL_27);
		}
		paramBeans[0].sendMessageString(CHW01001SFConst.ORSJGS_CD, X31CWebConst.DATABEAN_SET_VALUE, orsjgsCd);
		paramBeans[0].sendMessageString(CHW01001SFConst.ORSJGS_NM, X31CWebConst.DATABEAN_SET_VALUE, orsjgsNm);
	}
	// ANK-3366-00-00 ADD END
	
	/**
	 * サービスフォームBean項目リセット処理.<br>
	 * 前画面からの引き継ぎ項目以外のサービスフォームBean項目をリセットします。
	 * 
	 * @param paramBeans 随時入金登録サービスフォームBean
	 */
	private void resetServiceFormBeanItems(X31SDataBeanAccess[] paramBeans)
	{
		// 値のクリア(初期値設定)
		paramBeans[0].sendMessageString(CHW01001SFConst.SOHUS_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.NYUKIN_AMNT, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.RECEIPT_DAY_YEAR, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.RECEIPT_DAY_MON, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.RECEIPT_DAY_DAY, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.RECEIPT_DAY, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_DAY_YEAR, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_DAY_MON, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_DAY_DAY, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_DAY, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.AZUKIN, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SEIKY_AMNT, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.STAX, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.KIJI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageBoolean(CHW01001SFConst.TAIO_RIREKI_DSP, X31CWebConst.DATABEAN_SET_VALUE, false);
		paramBeans[0].sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.NYUKIN_ROUTE_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SHUNOKIKAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.UKETORI_BUMON_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.UKETORI_BUMON_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SHITEIKOZA_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SHITEIKOZA_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.CVSTORE_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.CVSTORE_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SKNKSITKCM_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SKNKSITKCM_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.BANK_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.BANK_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.BANK_SHITEN_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.BANK_SHITEN_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.CRECARD_COMP_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.CRECARD_COMP_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SVC_KEI_NO_INPUT, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SVC_KEI_NO_INPUT_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.TEGAK_PRC, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.DEL_ROW_NO, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.UW_ADD_CNT, X31CWebConst.DATABEAN_SET_VALUE, "0");
		paramBeans[0].sendMessageString(CHW01001SFConst.INPUT_SBT_SELECT_INDEX, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageBoolean(CHW01001SFConst.DSBL_CTL_JSF_KIJI, X31CWebConst.DATABEAN_SET_VALUE, true);
		paramBeans[0].sendMessageBoolean(CHW01001SFConst.DSBL_CTL_JSF_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, true);
		paramBeans[0].sendMessageBoolean(CHW01001SFConst.DSBL_CTL_JSF_BTN_RECALC, X31CWebConst.DATABEAN_SET_VALUE, true);
		paramBeans[0].sendMessageBoolean(CHW01001SFConst.DSBL_CTL_JSF_BTN_REGISTCFM, X31CWebConst.DATABEAN_SET_VALUE, true);
		paramBeans[0].sendMessageString(CHW01001SFConst.DSP_CNTRL_VALUE_NKIN_INFO, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.INPUT_SBT_SELECT_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SVC_DTL_SKBT_NO_INPUT, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SVC_DTL_SKBT_NO_INPUT_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		paramBeans[0].sendMessageString(CHW01001SFConst.SVC_DTL_SKBT_NO, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.DTL_REQ_KBN, X31CWebConst.DATABEAN_SET_VALUE, "0");
		paramBeans[0].sendMessageString(CHW01001SFConst.DTL_REQ_KBN_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, "0");
		paramBeans[0].sendMessageString(CHW01001SFConst.TAB_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		paramBeans[0].sendMessageString(CHW01001SFConst.TAB_DTL_REQUIRE_FLG_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, "0");
		//v16.00.00 2015/07/09 Add Start
		paramBeans[0].sendMessageString(CHW01001SFConst.ELECT_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		//v16.00.00 2015/07/09 Add End
		//v36.00.00 ANK-3296-00-00 Add Start
		paramBeans[0].sendMessageString(CHW01001SFConst.KOJIKAP_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		//v36.00.00 ANK-3296-00-00 Add End
		paramBeans[0].sendMessageString(CHW01001SFConst.KK_TK_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

		//v32.00.00 Add Start
		paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_KKN_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.SHUNO_KKN_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		//v32.00.00 Add End
		
		// ANK-3366-00-00 ADD START
		paramBeans[0].sendMessageString(CHW01001SFConst.ORSJGS_CD, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		paramBeans[0].sendMessageString(CHW01001SFConst.ORSJGS_NM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		// ANK-3366-00-00 ADD END
		
		// 要素数１の配列クリア
		paramBeans[0].getDataBeanArray(CHW01001SFConst.NYUKIN_ROUTE_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.NYUKIN_ROUTE_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.UKETORI_BUMON_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.UKETORI_BUMON_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SHITEIKOZA_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SHITEIKOZA_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.CVSTORE_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.CVSTORE_INFO).addDataBean();
		// v52.00.00 ADD Start
		paramBeans[0].getDataBeanArray(CHW01001SFConst.CVSTORE_INFO2).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.CVSTORE_INFO2).addDataBean();
		// v52.00.00 ADD End
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SKNKSITKCM_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SKNKSITKCM_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.BANK_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.BANK_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.BANK_SHITEN_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.BANK_SHITEN_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.CRECARD_COMP_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.CRECARD_COMP_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_KEI_NO_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_KEI_NO_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_KEI_NO_INFO_UW_PTN).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_KEI_NO_INFO_UW_PTN).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.UW_PTN_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.UW_PTN_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.PRC_COURSE_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.PRC_COURSE_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.PRC_SVC_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.PRC_SVC_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.PRC_KMK_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.PRC_KMK_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_DTL_SKBT_NO_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_DTL_SKBT_NO_INFO).addDataBean();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_DTL_SKBT_NO_INFO_UW_PTN).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_DTL_SKBT_NO_INFO_UW_PTN).addDataBean();
		
		//v32.00.00 Add Start
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SHUNO_KKN_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SHUNO_KKN_INFO).addDataBean();
		//v32.00.00 Add End

		// ANK-3366-00-00 ADD START
		paramBeans[0].getDataBeanArray(CHW01001SFConst.ORSJGS_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.ORSJGS_INFO).addDataBean();
		// ANK-3366-00-00 ADD END

		// サービス詳細識別番号情報に初期値をセット
		X31SDataBeanAccessArray svcDtlSkbtNoInfo = paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_DTL_SKBT_NO_INFO);
		X31SDataBeanAccess svcDtlSkbtNoSubbean = svcDtlSkbtNoInfo.getDataBean(0);
		svcDtlSkbtNoSubbean.sendMessageString(CHW01001SFConst.SVC_DTL_SKBT_NO_LIST_19, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		svcDtlSkbtNoSubbean.sendMessageString(CHW01001SFConst.SVC_DTL_SKBT_NO_KBN_LIST_19, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);

		// サービス詳細識別番号情報（内訳パターン用）に初期値をセット
		X31SDataBeanAccessArray svcDtlSkbtNoInfo2 = paramBeans[0].getDataBeanArray(CHW01001SFConst.SVC_DTL_SKBT_NO_INFO_UW_PTN);
		X31SDataBeanAccess svcDtlSkbtNoSubbean2 = svcDtlSkbtNoInfo2.getDataBean(0);
		svcDtlSkbtNoSubbean2.sendMessageString(CHW01001SFConst.SVC_DTL_SKBT_NO_LIST_UW_PTN_20, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		svcDtlSkbtNoSubbean2.sendMessageString(CHW01001SFConst.SVC_DTL_SKBT_NO_KBN_LIST_UW_PTN_20, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);

		// 要素数Ｎの配列クリア
		paramBeans[0].getDataBeanArray(CHW01001SFConst.INPUT_SBT_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.ADD_PRC_KMK_INFO).clearArray();
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SEIKY_UW_INFO).clearArray();
		//v36.00.01 ANK-3296-00-00 Add Start
		paramBeans[0].getDataBeanArray(CHW01001SFConst.SEIKY_UW_DB_CTL).clearArray();
		//v36.00.01 ANK-3296-00-00 Add End
		paramBeans[0].getDataBeanArray(CHW01001SFConst.AZUKIN_LIST_INFO).clearArray();
	}

	/**
	 * 指定された年、月、日のキー名称を基に連結した年月日を返却します。 <br>
	 * 
	 * @param bean 随時入金登録サービスフォームBean
	 * @param keyYear 年項目のキー
	 * @param keyMonth 月項目のキー
	 * @param keyDay 日項目のキー
	 * @return 年月日
	 */
	private String concatYmd(X31SDataBeanAccess bean, String keyYear, String keyMonth, String keyDay)
	{
		String year = bean.sendMessageString(keyYear, X31CWebConst.DATABEAN_GET_VALUE);
		String mon = bean.sendMessageString(keyMonth, X31CWebConst.DATABEAN_GET_VALUE);
		String day = bean.sendMessageString(keyDay, X31CWebConst.DATABEAN_GET_VALUE);
		StringBuffer ymdEditor = new StringBuffer();
		ymdEditor.append(year).append(mon).append(day);

		return ymdEditor.toString();
	}

	/**
	 * 詳細必須料金項目区分（内訳パターン用）を設定します。
	 * 追加料金項目情報の料金項目コードを全件チェックし、詳細必須料金項目区分（内訳パターン用）の値を設定する。
	 * <br>
	 * @throws Exception 例外が発生した場合
	 */
	private void setDtlReqKbnUwPtn() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 追加料金項目情報
		X31SDataBeanAccessArray addPrcKmkList = bean.getDataBeanArray(CHW01001SFConst.ADD_PRC_KMK_INFO);
		int addListCount = addPrcKmkList.getCount();

		// 追加対象がない場合、チェックなしでリターン
		if (addListCount == 0)
		{
			return;
		}

		// チェック用変数[true:正常、false:NG]
		boolean prcKmkMatch = true;

		// ---------------------------------------- //
		// 詳細必須料金項目（重複可）チェック
		// ---------------------------------------- //
		// 詳細必須料金項目情報（重複可）の料金項目コード群を取得
		HashMap<String, String> dtlReqDplMap =
			JCHWebCommon.getPrcKmkCdMap(bean, CHW01001SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_INFO, CHW01001SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_22);

		// 追加料金項目情報を全件チェックし、追加料金項目情報の料金項目コードがすべて詳細必須料金項目コード（重複可）である場合、trueとする。
		for (int i = 0; i < addListCount; i++)
		{
			X31SDataBeanAccess keyBean = addPrcKmkList.getDataBean(i);
			String keyPrcKmkCd = keyBean.sendMessageString(CHW01001SFConst.ADD_PRC_KMK_CD_13, X31CWebConst.DATABEAN_GET_VALUE);

			// 1件でもマッチしないものがいたらチェックNG
			if (!dtlReqDplMap.containsKey(keyPrcKmkCd))
			{
				prcKmkMatch = false;
				break;
			}
		}

		if (prcKmkMatch)
		{
			// 追加料金項目情報の料金項目コードがすべて詳細必須料金項目コード（重複可）である場合、詳細必須料金項目区分（内訳パターン用）に"2"をセット
			bean.sendMessageString(CHW01001SFConst.DTL_REQ_KBN_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, "2");

			bean.sendMessageString(CHW01001SFConst.TAB_DTL_REQUIRE_FLG_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, "0");
			return;
		}

		// ---------------------------------------- //
		// 詳細必須料金項目チェック
		// ---------------------------------------- //
		prcKmkMatch = true;

		// 詳細必須料金項目情報の料金項目コード群を取得
		HashMap<String, String> dtlReqMap =
			JCHWebCommon.getPrcKmkCdMap(bean, CHW01001SFConst.DTL_REQ_PRC_KMK_CD_INFO, CHW01001SFConst.DTL_REQ_PRC_KMK_CD_21);

		// 追加料金項目情報を全件チェックし、追加料金項目情報の料金項目コードがすべて詳細必須料金項目コードである場合、trueとする。
		for (int i = 0; i < addListCount; i++)
		{
			X31SDataBeanAccess keyBean = addPrcKmkList.getDataBean(i);
			String keyPrcKmkCd = keyBean.sendMessageString(CHW01001SFConst.ADD_PRC_KMK_CD_13, X31CWebConst.DATABEAN_GET_VALUE);

			// 1件でもマッチしないものがいたらチェックNG
			if (!dtlReqMap.containsKey(keyPrcKmkCd))
			{
				prcKmkMatch = false;
				break;
			}
		}

		if (prcKmkMatch)
		{
			// 追加料金項目情報の料金項目コードがすべて詳細必須料金項目コードである場合、詳細必須料金項目区分（内訳パターン用）に"1"をセット
			bean.sendMessageString(CHW01001SFConst.DTL_REQ_KBN_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, "1");

			bean.sendMessageString(CHW01001SFConst.TAB_DTL_REQUIRE_FLG_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, "0");
			return;
		}

		// ---------------------------------------- //
		// 詳細必須料金項目（タブレット）チェック
		// ---------------------------------------- //
		prcKmkMatch = true;

		// 詳細必須料金項目情報（タブレット）の料金項目コード群を取得
		HashMap<String, String> tabDtlReqMap =
			JCHWebCommon.getPrcKmkCdMap(bean, CHW01001SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW01001SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_23);

		// 追加料金項目情報を全件チェックし、追加料金項目情報の料金項目コードがすべて詳細必須料金項目コード（タブレット）である場合、trueとする。
		for (int i = 0; i < addListCount; i++)
		{
			X31SDataBeanAccess keyBean = addPrcKmkList.getDataBean(i);
			String keyPrcKmkCd = keyBean.sendMessageString(CHW01001SFConst.ADD_PRC_KMK_CD_13, X31CWebConst.DATABEAN_GET_VALUE);

			// 1件でもマッチしないものがいたらチェックNG
			if (!tabDtlReqMap.containsKey(keyPrcKmkCd))
			{
				prcKmkMatch = false;
				break;
			}
		}

		if (prcKmkMatch)
		{
			// 追加料金項目情報の料金項目コードがすべて詳細必須料金項目コード（タブレット）である場合、詳細必須料金項目フラグ（タブレット）（内訳パターン用）に"1"をセット
			bean.sendMessageString(CHW01001SFConst.TAB_DTL_REQUIRE_FLG_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, "1");
			bean.sendMessageString(CHW01001SFConst.DTL_REQ_KBN_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, "0");
			return;
		}

		// いずれでもない場合、詳細必須料金項目区分（内訳パターン用）、詳細必須料金項目フラグ（タブレット）（内訳パターン用）を"0"で初期化
		bean.sendMessageString(CHW01001SFConst.DTL_REQ_KBN_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, "0");
		bean.sendMessageString(CHW01001SFConst.TAB_DTL_REQUIRE_FLG_UW_PTN, X31CWebConst.DATABEAN_SET_VALUE, "0");
	}

	/**
	 * in料金項目抽出変換一覧照会明細リスト編集処理<br>
	 * <br>
	 * 料金項目抽出変換情報取得CCのin料金項目抽出変換一覧照会明細リスト編集を行う。
	 * 
	 * @param dataMap
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	private void setPrcKmkCsChgList(HashMap<String, Object> dataMap)
	{
		// in料金項目抽出変換一覧照会明細リスト
		ArrayList<HashMap<String, Object>> prcKmkCsChgList = new  ArrayList<HashMap<String, Object>>(); 

		// 必須詳細料金項目
		HashMap<String, Object> prcKmkCsChgMap1 = new HashMap<String, Object>();
		prcKmkCsChgMap1.put("key_work_param_id", JACStrConst.WKPARA_AC_RE_DT_PRC);
		prcKmkCsChgMap1.put("key_sys_cd", JACStrConst.SYS_CD_AC);
		prcKmkCsChgMap1.put("key_work_kino_skbt_cd", "");
		prcKmkCsChgMap1.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkCsChgList.add(prcKmkCsChgMap1);

		// 必須詳細料金項目（重複可））
		HashMap<String, Object> prcKmkCsChgMap2 = new HashMap<String, Object>();
		prcKmkCsChgMap2.put("key_work_param_id", JACStrConst.WKPARA_AC_RE_DT_DPL);
		prcKmkCsChgMap2.put("key_sys_cd", JACStrConst.SYS_CD_AC);
		prcKmkCsChgMap2.put("key_work_kino_skbt_cd", "");
		prcKmkCsChgMap2.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkCsChgList.add(prcKmkCsChgMap2);

		// 必須詳細料金項目（タブレット）
		HashMap<String, Object> prcKmkCsChgMap3 = new HashMap<String, Object>();
		prcKmkCsChgMap3.put("key_work_param_id", JACStrConst.WKPARA_AC_RE_DT_TAB_PRC);
		prcKmkCsChgMap3.put("key_sys_cd", JACStrConst.SYS_CD_AC);
		prcKmkCsChgMap3.put("key_work_kino_skbt_cd", "");
		prcKmkCsChgMap3.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkCsChgList.add(prcKmkCsChgMap3);

//v16.00.00 2015/07/09 Add Start
		// 必須詳細料金項目（eo電気）
		HashMap<String, Object> prcKmkCsChgMap4 = new HashMap<String, Object>();
		prcKmkCsChgMap4.put("key_work_param_id", JACStrConst.WKPARA_AC_RE_DT_ELEC_PRC);
		prcKmkCsChgMap4.put("key_sys_cd", JACStrConst.SYS_CD_AC);
		prcKmkCsChgMap4.put("key_work_kino_skbt_cd", "");
		prcKmkCsChgMap4.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkCsChgList.add(prcKmkCsChgMap4);
//v16.00.00 2015/07/09 Add End	
		//v36.00.00 ANK-3296-00-00 Add Start
		// 必須詳細料金項目（工事費割賦）
		HashMap<String, Object> prcKmkCsChgMap5 = new HashMap<String, Object>();
		prcKmkCsChgMap5.put("key_work_param_id", JACStrConst.WKPARA_AC_DT_KJ_HI_KAP_PRC);
		prcKmkCsChgMap5.put("key_sys_cd", JACStrConst.SYS_CD_CH);
		prcKmkCsChgMap5.put("key_work_kino_skbt_cd", "");
		prcKmkCsChgMap5.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkCsChgList.add(prcKmkCsChgMap5);
		// 料金項目コード（料金項目コード＿工事費分割代金＿金額＿ネット）
		HashMap<String, Object> prcKmkCsChgMap6 = new HashMap<String, Object>();
		prcKmkCsChgMap6.put("key_work_param_id", JACStrConst.WKPRA_CH_WKS_KJ_HI_NET);
		prcKmkCsChgMap6.put("key_sys_cd", JACStrConst.SYS_CD_CH);
		prcKmkCsChgMap6.put("key_work_kino_skbt_cd", "");
		prcKmkCsChgMap6.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkCsChgList.add(prcKmkCsChgMap6);
		// 料金項目コード（料金項目コード＿工事費分割代金＿金額＿電話）
		HashMap<String, Object> prcKmkCsChgMap7 = new HashMap<String, Object>();
		prcKmkCsChgMap7.put("key_work_param_id", JACStrConst.WKPRA_CH_WKS_KJ_HI_TEL);
		prcKmkCsChgMap7.put("key_sys_cd", JACStrConst.SYS_CD_CH);
		prcKmkCsChgMap7.put("key_work_kino_skbt_cd", "");
		prcKmkCsChgMap7.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkCsChgList.add(prcKmkCsChgMap7);
		// 料金項目コード（料金項目コード＿工事費分割代金＿回数）
		HashMap<String, Object> prcKmkCsChgMap8 = new HashMap<String, Object>();
		prcKmkCsChgMap8.put("key_work_param_id", JACStrConst.WKPRA_CH_WKS_KJ_HI_KAI);
		prcKmkCsChgMap8.put("key_sys_cd", JACStrConst.SYS_CD_CH);
		prcKmkCsChgMap8.put("key_work_kino_skbt_cd", "");
		prcKmkCsChgMap8.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkCsChgList.add(prcKmkCsChgMap8);
//v36.00.00 ANK-3296-00-00 Add End
		((HashMap)dataMap.get(JACStrConst.PRC_KMK_CS_CHGE_LIST_CC)).put(JACStrConst.PRC_KMK_CS_CHGE_LIST, prcKmkCsChgList);
	}
}
