/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CHW00105SFLogic
 *	ソースファイル名：CHW00105SFLogic.java
 *	作成者			：富士通
 *	日付			：2011年08月05日
 *＜機能概要＞
 *	請求内訳照会のビューロジック部品です。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/08/05	富士通		新規作成
 *	v3.00.00	2012/05/17	落合		案件対応
 *	v4.00.00	2012/02/05	FJ)垣内		【IT2-2013-0000103】対応
 *	v5.00.00	2013/07/11	FJ) 垣内	【LT-2013-0000274】請求内訳情報が存在しない場合はメッセージを出力しないよう修正
 *	v5.00.01	2013/07/13	FJ) 田原	【LT-2013-0000466】内訳発行から戻ってきたときにリロードすると請求年月が初期化しないように修正
 *	v5.00.02	2013/07/14	FJ) 垣内	【LT-2013-0000466】自画面に戻ってくる場合の必要条件に、請求年月を追加
 *	v5.00.03	2013/07/27	FJ) 小野	【LT-2013-0000615】当月以外ご請求金額（鑑）を金額、金額内訳両方に出力させる
 *	v5.00.04	2013/07/31	FJ) 米谷	【LT-2013-0000616】請求額0円、前受金充当、合算請求、一部収納はうち消費税をマスクする。
 *	v5.00.05	2013/07/31	FJ) 伊藤	【IT1-2013-0001521】名称戻し対応
 *	v5.00.06	2013/09/03	FJ) 垣内	【随時-2013-000XXX2】債権一覧照会機能コード修正 + 未請求状態の場合にメッセージを表示する対応
 *	v5.00.07	2013/09/10	FJ) 小野	【OM-2013-0001907】対応履歴画面を開いた後、請求契約番号が正しく検索できない事象に対応。
 *	v5.00.08	2013/09/12	FJ) 伊藤	【随時-2013-5005】未請求メッセージをJavaScriptで処理するよう対応。
 *	v5.00.09	2013/09/13	FJ) 林		【OM-2013-0002005】請求内訳情報が存在しない場合も引抜き登録/引抜き解除/抑止登録ボタンを活性化する
 *	v5.00.10	2013/09/22	FJ) 垣内	【OM-2013-0002460】請求年月プルダウンが請求一覧の並び順と異なる
 *	v5.00.11	2013/10/11	FJ) 垣内	【OM-2013-0003185】請求処理日追加
 *	v5.00.12	2013/10/23	FJ) 伊藤	【OM-2013-0003283】請求番号に紐付く請求書引抜の存在チェック用に機能コードを追加
 *														   また、請求書引抜が有効かつ送信コードが0以外のときに、登録ボタンを非活性にするように修正
 *	v5.00.13	2013/11/01	FJ) 江森	【OM-2013-0003893】請求抑止登録ボタンの活性・非活性は請求先情報の有無で決めるよう修正
 *	v9.00.00	2014/04/29  FJ) 小野    【随時-14-5998】eo基幹切替時の請求除外対応で出力したメッセージは不要となったため、出力しないように変更。
 *                                                      v5.00.06、v5.00.08の対応を削除。
 *	v19.00.00	2015/09/11	FJ）宇野	【ANK-2587-00-00】「KS-SOL発行日」「請求書最新発行日」不審に対する対応
 *  v23.00.00   2015/11/09  FJ）寺園    ANK-2693-00-00 オーダリング案件（ＳＴＥＰ２）
 *  v23.00.01   2016/03/14  FJ）山口    【ANK-2715-00-00】料金系画面の改善
 *  v23.00.02	2016/04/07	FJ）田口	【ANK-2715-00-00】料金系画面の改善
 *  v23.00.03	2016/04/13	FJ）岡田	【OM-2016-0000999】料金系画面の不備
 *  v25.00.00   2016/04/15  FJ）寺園    【ANK-2769-00-00】タブレット修理交換の機種制限解除対応
 *  v67.00.00   2023/06/14  FJ) 藤本涼  【ANK-4401-00-00】インボイス対応
 *  v67.00.01   2023/06/28  FJ）北村    【ANK-4401-00-00】インボイス対応
 *  v68.00.00   2023/10/16  FJ）寺田    【ANK-4475-00-00】インボイス対応 STEP2
 *  v71.00.00   2024/03/28  FJ)張       【ANK-4543-00-00】【eo定期】NTT卸対応：Step0
 *  v71.00.01   2024/04/04  FJ）久山    【ANK-4468-00-00】eo光ネット「シンプルプラン」追加対応
 **********************************************************************/
package eo.web.webview.CHW00105SF;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JACStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CHW00109SF.CHW00109SFConst;
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.JCHPageTransferUtil;
import eo.web.webview.common.JCHPulldownUtil;
import eo.web.webview.common.JCHWebCommon;
import eo.web.webview.mapping.CHSV0007_CHSV0007OPDBMapper;
import eo.web.webview.mapping.CHSV0048_CHSV0048OPDBMapper;
import eo.web.webview.mapping.CHSV0094_CHSV0094OPDBMapper;

/**
 * 請求内訳照会のビューロジックを提供します。
 * <p>
 * <BR>
 * 
 * @author 富士通
 */
public class CHW00105SFLogic extends JCCWebBusinessLogic
{

	/** ユースケースID(請求内訳照会) */
	private static final String USECASE_ID = "CHSV0007";

	/** ユースケースID(ページリンクサービスID) */
	private static final String PAGE_LNK_SC_ID_PRC = JACStrConst.PRCTAIOKIROKICRNSTKUCC_MAP_ID;
	// ANK-4401-00-00 ADD START
	/** ユースケースID(請求書（宛名）発行) */
	private static final String USECASE_ID_CHSV0094 = "CHSV0094";
	// ANK-4401-00-00 ADD END

	/** メッセージＩＤ(請求契約番号なし) */
	private static final String MESSAGE_ID_SEIKY_KEI_NO_NONE = "EKB0740-KW";

	/** 次月ボタン */
	private static final String NEXT_BTN = "nextBtn";

	/** 前月ボタン */
	private static final String PREV_BTN = "prevBtn";

	/** ページング区分 */
	private static final String PAGING_KBN_ALL = "0";

	/** ページング区分 履歴なし */
	private static final String PAGING_KBN_MAIN = "1";

	/** ページング区分 履歴のみ */
	private static final String PAGING_KBN_PRC = "2";
	
	/** ページングテーブルインデックス */
	private static final String PAGING_TABLE_INDEX_PRC = "0";

	/** 料金対応記録ページング_最大検索件数取得キー */
	private static final String KEY_PAGING_MAX_SHOW_CNT = "CHW00105_TAIORRKI_MAX_SHOW_CNT";

	/** 料金対応記録ページング_表示件数取得キー */
	private static final String KEY_PAGING_ROW_PER_PAGE = "CHW00105_TAIORRKI_ROW_PER_PAGE";

	/** 請求先番号 */
	private static final String SEIKY_KEI_NO = "請求先番号";

	/** マップID(請求先情報取得マップ) */
	private static final String MAP_SEIKY_SAKI_INFO_STKU_CC_ID = "SEIKYSAKIINFOSTKUCC";
	// ANK-4401-00-00 ADD START
	/** マップID(請求書（宛名）情報取得マップ) */
	private static final String MAP_SKS_ATENA_CHOHYO_CC_ID = "SKSATENACHOHYOCC";
	// ANK-4401-00-00 ADD END
	
	/**
	 * 請求内訳照会の初期表示処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean init() throws Exception
	{

		// 共有フォームBeanのアクセサを取得する
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 遷移元の画面IDを取得
		String beforeScreenId = JCCWebCommon.getScreenId(this);

		// 遷移先画面IDを判定して画面IDに対応する初期表示処理を呼び出す
		String screenId = commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
		if (JACScreenConst.SCREEN_ID_CHW00105.equals(screenId))
		{
			// メニューからの遷移時は画面定数クラスの値を指定する
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_ID_CHW00105);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_NAME_CHW00105);

			initShokaiScreen(beforeScreenId);
		}

		return true;
	}

	/**
	 * 請求内訳照会の検索処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean search() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// Bean初期化
		this.allClearBeanResultItems(paramBeans);

		// 遷移元の画面IDを自画面に戻す
		JCCWebCommon.setScreenId(this, JACScreenConst.SCREEN_ID_CHW00105, JACScreenConst.SCREEN_ID_CHW00105);

		// 入力が正常の場合、請求契約番号を退避
		String fixSeikyKeiNo = bean.sendMessageString(CHW00105SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JACStrConst.KARA_MOJI.equals(fixSeikyKeiNo) && fixSeikyKeiNo.length() == 10)
		{
			bean.sendMessageString(CHW00105SFConst.FIX_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, fixSeikyKeiNo);
		}

		// ページング情報の削除
		JCCWebCommon.clearPageLinkInfo(this, JACScreenConst.SCREEN_ID_CHW00105);

		// 料金履歴テーブル表示制御値の初期化
		paramBeans[0].sendMessageString(CHW00105SFConst.STYLE_DISPLAY_PRC_RIREKI_TABLE, X31CWebConst.DATABEAN_SET_VALUE, "none");

// ANK-2715-00-00 ADD START
		// 戻るボタンを非表示にするため、料金タブ遷移元画面IDを初期化する。
		bean.sendMessageString(JCHCommonConst.PRC_TAB_SENI_MOTO_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_BACK, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_FALSE);
// ANK-2715-00-00 ADD END
		
		// サービス実行
		this.execCHSV0007(paramBeans, null, PAGING_KBN_ALL);

		return true;
	}

	/**
	 * 【請求年月選択時の処理】 請求内訳画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean seikyYmChoice() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// 選択位置のコード値を設定
		// 請求年月
		String seikyYm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW00105SFConst.SEIKY_YM_INFO, 
									CHW00105SFConst.SEIKY_YM_LIST_04, CHW00105SFConst.SEIKY_YM_SEL_04);

		// 請求番号
		String seikyNo = JCHPulldownUtil.getSelectedValue(paramBeans, CHW00105SFConst.SEIKY_YM_INFO, 
									CHW00105SFConst.SEIKY_NO_LIST_04, CHW00105SFConst.SEIKY_YM_SEL_04);

		paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_SET_VALUE, seikyYm.replace(JACStrConst.SLASH, 
									JACStrConst.KARA_MOJI).substring(0, 6));
		paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyNo);

		// サービス実行
		this.execCHSV0007(paramBeans, null, PAGING_KBN_MAIN);

		return true;
	}

	/**
	 * 【前月ボタン押下時の処理】 請求内訳画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean prevMonth() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// 請求年月選択値（インデックス）取得
		X31SDataBeanAccess infoBean = paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).getDataBean(0);
		int seikyYmSel04 = Integer.parseInt(infoBean.sendMessageString(CHW00105SFConst.SEIKY_YM_SEL_04, X31CWebConst.DATABEAN_GET_VALUE));

		// 前月指定の為、インクリメント
		seikyYmSel04++;
		infoBean.sendMessageString(CHW00105SFConst.SEIKY_YM_SEL_04, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(seikyYmSel04));

		// 選択されている請求年月を取得する
		String seikyYm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW00105SFConst.SEIKY_YM_INFO, 
									CHW00105SFConst.SEIKY_YM_LIST_04, CHW00105SFConst.SEIKY_YM_SEL_04);
		String seikyNo = JCHPulldownUtil.getSelectedValue(paramBeans, CHW00105SFConst.SEIKY_YM_INFO, 
									CHW00105SFConst.SEIKY_NO_LIST_04, CHW00105SFConst.SEIKY_YM_SEL_04);

		// 請求年月リストの"/"を外す
		int year = Integer.valueOf(seikyYm.replace(JACStrConst.SLASH, JACStrConst.KARA_MOJI).substring(0, 4));
		int month = Integer.valueOf(seikyYm.replace(JACStrConst.SLASH, JACStrConst.KARA_MOJI).substring(4, 6));

		Calendar calnderCntrl = Calendar.getInstance();
		calnderCntrl.set(year, month - 1, 1);
		String strCalYear = String.valueOf(calnderCntrl.get(Calendar.YEAR));
		String strCalMonth = String.valueOf(calnderCntrl.get(Calendar.MONTH) + 1);

		// 加減を行った月の0埋めをし、年 + 月にする。
		String strCalYearMonth = strCalYear + JPCUtilCommon.fillZero(strCalMonth, 2, false);

		paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_SET_VALUE, strCalYearMonth);
		paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyNo);

		// サービス実行
		this.execCHSV0007(paramBeans, PREV_BTN, PAGING_KBN_MAIN);

		return true;
	}

	/**
	 * 【次月ボタン押下時の処理】 請求内訳画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean nextMonth() throws Exception
	{

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		//請求年月選択値（インデックス）取得
		X31SDataBeanAccess infoBean = paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).getDataBean(0);
		int seikyYmSel04 = Integer.parseInt(infoBean.sendMessageString(CHW00105SFConst.SEIKY_YM_SEL_04, X31CWebConst.DATABEAN_GET_VALUE));

		// 次月指定の為、デクリメント
		seikyYmSel04--;
		infoBean.sendMessageString(CHW00105SFConst.SEIKY_YM_SEL_04, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(seikyYmSel04));

		// 選択されている請求年月を取得する
		String seikyYm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW00105SFConst.SEIKY_YM_INFO, 
									CHW00105SFConst.SEIKY_YM_LIST_04, CHW00105SFConst.SEIKY_YM_SEL_04);
		String seikyNo = JCHPulldownUtil.getSelectedValue(paramBeans, CHW00105SFConst.SEIKY_YM_INFO, 
									CHW00105SFConst.SEIKY_NO_LIST_04, CHW00105SFConst.SEIKY_YM_SEL_04);

		// 請求年月リストの"/"を外す
		int year = Integer.valueOf(seikyYm.replace(JACStrConst.SLASH, JACStrConst.KARA_MOJI).substring(0, 4));
		int month = Integer.valueOf(seikyYm.replace(JACStrConst.SLASH, JACStrConst.KARA_MOJI).substring(4, 6));
		Calendar calnderCntrl = Calendar.getInstance();
		calnderCntrl.set(year, month - 1, 1);
		String strCalYear = String.valueOf(calnderCntrl.get(Calendar.YEAR));
		String strCalMonth = String.valueOf(calnderCntrl.get(Calendar.MONTH) + 1);

		// 加減を行った月の0埋めをし、年 + 月にする。
		String strCalYearMonth = strCalYear + JPCUtilCommon.fillZero(strCalMonth, 2, false);

		paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_SET_VALUE, strCalYearMonth);
		paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyNo);

		// サービス実行
		this.execCHSV0007(paramBeans, NEXT_BTN, PAGING_KBN_MAIN);

		return true;
	}

	/**
	 * 【引抜き登録ボタン押下時の処理】 請求書引抜き登録画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean hiknkAdd() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();
		dataHikitugiList.add(CHW00105SFConst.SEIKY_KEI_NO);
		dataHikitugiList.add(CHW00105SFConst.SEIKY_YM);

		// 画面遷移後に使用する引継情報(選択値)を作成
		HashMap<String, Object> dataHikitugiMap = new HashMap<String, Object>();

		// 自画面に戻ってくる場合に必要な検索条件(入力値)を作成
		List<String> searchConditionList = new ArrayList<String>();

		// 自画面に戻ってくる場合に必要な検索条件(選択値)を作成
		HashMap<String, Object> searchConditionMap = new HashMap<String, Object>();
		searchConditionList.add(CHW00105SFConst.SEIKY_NO);
		searchConditionList.add(CHW00105SFConst.SEIKY_YM);
		
		// 画面遷移情報の設定
		HashMap<String, Object> screenTransferMap = JCHPageTransferUtil.createScreenTransferMap(dataHikitugiList, 
									searchConditionList, JACScreenConst.SCREEN_ID_CHW00105,
				JACScreenConst.SCREEN_ID_CHW00501, JACScreenConst.SCREEN_ID_CHW00502);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 【引抜き解除ボタン押下時の処理】 請求書引抜き解除画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean hiknkRls() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();
		dataHikitugiList.add(CHW00105SFConst.SEIKY_KEI_NO);
		dataHikitugiList.add(CHW00105SFConst.SEIKY_YM);

		// 画面遷移後に使用する引継情報(選択値)を作成
		HashMap<String, Object> dataHikitugiMap = new HashMap<String, Object>();

		// 自画面に戻ってくる場合に必要な検索条件(入力値)を作成
		List<String> searchConditionList = new ArrayList<String>();

		// 自画面に戻ってくる場合に必要な検索条件(選択値)を作成
		HashMap<String, Object> searchConditionMap = new HashMap<String, Object>();
		searchConditionList.add(CHW00105SFConst.SEIKY_NO);
		searchConditionList.add(CHW00105SFConst.SEIKY_YM);
		
		// 画面遷移情報の設定
		HashMap<String, Object> screenTransferMap = JCHPageTransferUtil.createScreenTransferMap(dataHikitugiList,  searchConditionList, 
							JACScreenConst.SCREEN_ID_CHW00105, JACScreenConst.SCREEN_ID_CHW00503, JACScreenConst.SCREEN_ID_CHW00504);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 【抑止登録ボタン押下時の処理】 督促状況更新画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tokusokuStatUpd() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();
		dataHikitugiList.add(CHW00105SFConst.SEIKY_KEI_NO);
// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） ADD START ▼▼
		dataHikitugiList.add(JCHCommonConst.SYSCD);
// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） ADD  END ▲▲
// ANK-2715-00-00 ADD START
		dataHikitugiList.add(JCHCommonConst.PRC_TAB_SENI_MOTO_SCREEN_ID);
// ANK-2715-00-00 ADD END

		// 画面遷移後に使用する引継情報(選択値)を作成
		HashMap<String, Object> dataHikitugiMap = new HashMap<String, Object>();

		// 自画面に戻ってくる場合に必要な検索条件(入力値)を作成
		List<String> searchConditionList = new ArrayList<String>();

		// 自画面に戻ってくる場合に必要な検索条件(選択値)を作成
		HashMap<String, Object> searchConditionMap = new HashMap<String, Object>();
		searchConditionList.add(CHW00105SFConst.SEIKY_NO);
		searchConditionList.add(CHW00105SFConst.SEIKY_YM);
// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） ADD START ▼▼
		searchConditionList.add(JCHCommonConst.SYSCD);
// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） ADD  END ▲▲
// ANK-2715-00-00 ADD START
		searchConditionList.add(JCHCommonConst.PRC_TAB_SENI_MOTO_SCREEN_ID);
// ANK-2715-00-00 ADD END

		// 画面遷移情報の設定
		HashMap<String, Object> screenTransferMap = JCHPageTransferUtil.createScreenTransferMap(dataHikitugiList,  searchConditionList, 
							JACScreenConst.SCREEN_ID_CHW00105, JACScreenConst.SCREEN_ID_CHW01302, JACScreenConst.SCREEN_ID_CHW01303);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 【内訳発行ボタン押下時の処理】 請求内訳再発行画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean seikyUwHakko() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// 画面遷移後に使用する引継情報(入力値)を作成
		List<String> dataHikitugiList = new ArrayList<String>();
		dataHikitugiList.add(CHW00105SFConst.SEIKY_KEI_NO);
		dataHikitugiList.add(CHW00105SFConst.SEIKY_YM);
		dataHikitugiList.add(CHW00105SFConst.SEIKY_NO);

		// 画面遷移後に使用する引継情報(選択値)を作成
		HashMap<String, Object> dataHikitugiMap = new HashMap<String, Object>();

		// 自画面に戻ってくる場合に必要な検索条件(入力値)を作成
		List<String> searchConditionList = new ArrayList<String>();

		// 自画面に戻ってくる場合に必要な検索条件(選択値)を作成
		HashMap<String, Object> searchConditionMap = new HashMap<String, Object>();
		searchConditionList.add(CHW00105SFConst.SEIKY_NO);
		searchConditionList.add(CHW00105SFConst.SEIKY_YM);
		
		// 画面遷移情報の設定
		HashMap<String, Object> screenTransferMap = JCHPageTransferUtil.createScreenTransferMap(dataHikitugiList, searchConditionList, 
							JACScreenConst.SCREEN_ID_CHW00105, JACScreenConst.SCREEN_ID_CHW00109, JACScreenConst.SCREEN_ID_CHW00110);

		// 指定した情報を基に画面遷移を行う
		return JCHPageTransferUtil.screenTransfer(this, screenTransferMap, dataHikitugiMap, searchConditionMap);
	}

	/**
	 * 【債権管理タブ押下時の処理】 債権管理画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabSaikenKanri() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00101, JACScreenConst.SCREEN_NAME_CHW00101, 
							JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【請求一覧タブ押下時の処理】 請求一覧画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabSeikyIcrn() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00104, JACScreenConst.SCREEN_NAME_CHW00104, 
							JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【入金一覧タブ押下時の処理】 入金一覧画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabNyukinIcrn() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00601, JACScreenConst.SCREEN_NAME_CHW00601, 
							JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【督促管理タブ押下時の処理】 督促管理画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabTokusokuKanri() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW01301, JACScreenConst.SCREEN_NAME_CHW01301, 
							JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【一時金一覧タブ押下時の処理】 一時金一覧画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabIcjknIcrn() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_ACW00101, JACScreenConst.SCREEN_NAME_ACW00101, 
							JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【料金調整タブ押下時の処理】 料金調整画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabPrcAdj() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00201, JACScreenConst.SCREEN_NAME_CHW00201, 
							JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【料金変更タブ押下時の処理】 料金変更画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabPrcChg() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW00301, JACScreenConst.SCREEN_NAME_CHW00301, 
							JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【金庫管理タブ押下時の処理】 金庫管理画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean tabKnkKanri() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.tabTransfer(this, JACScreenConst.SCREEN_ID_CHW01101, JACScreenConst.SCREEN_NAME_CHW01101, 
							JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 割賦契約情報更新画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean keiKap() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.keiKapTransfer(this, JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【請求契約ボタン押下時の処理】 請求契約更新画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean seikyKeiUpd() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.seikyKeiTransfer(this, JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【契約へボタン押下時の処理】 契約S画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean kei() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.keiTransfer(this, JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【対応履歴へボタン押下時の処理】 対応履歴画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean taioRireki() throws Exception
	{
		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		return JCHPageTransferUtil.taioRirekiTransfer(this, JACScreenConst.SCREEN_ID_CHW00105);
	}

	/**
	 * 【戻るボタン押下時の処理】 遷移元画面への戻り遷移を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean back() throws Exception
	{
// ANK-2715-00-00 ADD START
		// 遷移元画面が「料金訂正一覧」の場合
		if (JACScreenConst.SCREEN_ID_CHW01801.equals(JCCWebCommon.getScreenId(this)))
		{
// ANK-2715-00-00 ADD END
			// 遷移先画面IDを取得し、戻り遷移共通処理を呼出す
			return JCHPageTransferUtil.backTransfer(this, JCCWebCommon.getScreenId(this));
// ANK-2715-00-00 ADD START
		}
		else
		{
			// サービスフォームBeanのアクセサを取得する
			X31SDataBeanAccess bean = super.getServiceFormBean();
			// 料金タブ遷移元画面IDを取得する
			String prcTabSeniMotoScreenId = bean.sendMessageString(JCHCommonConst.PRC_TAB_SENI_MOTO_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);

			// 遷移先画面の設定
			X31SDataBeanAccess commoninfoBean = this.getCommonInfoBean();
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, prcTabSeniMotoScreenId);

			return true;
		}
// ANK-2715-00-00 ADD END

	}

	/**
	 * 請求内訳照会の検索処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean refreshWithParam() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// Bean初期化
		this.allClearBeanResultItems(paramBeans);

		// ページング情報の削除
		JCCWebCommon.clearPageLinkInfo(this, JACScreenConst.SCREEN_ID_CHW00105);

		// 料金履歴テーブル表示制御値の初期化
		paramBeans[0].sendMessageString(CHW00105SFConst.STYLE_DISPLAY_PRC_RIREKI_TABLE, X31CWebConst.DATABEAN_SET_VALUE, "none");

		// 画面間引継情報を設定する
		JCCWebCommon.getScreenInfo(this);

		// サービス実行
		this.execCHSV0007(paramBeans, null, PAGING_KBN_ALL);

		// 遷移元の画面IDを取得
		String beforeScreenId = JCCWebCommon.getScreenId(this);

		// 制御値(遷移元画面IDによる画面制御)
		this.setCntrlValueOfBeforeScreenId(paramBeans, beforeScreenId);

		return true;
	}

	/**
	 * 料金履歴のページング処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean paging() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 退避請求契約番号の戻し設定処理
		this.setFixSeikyKeiNo();

		// Bean初期化
		this.clearBeanResultItems(paramBeans, PAGING_KBN_PRC);

		// 入力が正常の場合、請求契約番号を退避
		String fixSeikyKeiNo = bean.sendMessageString(CHW00105SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JACStrConst.KARA_MOJI.equals(fixSeikyKeiNo) && fixSeikyKeiNo.length() == 10)
		{
			bean.sendMessageString(CHW00105SFConst.FIX_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, fixSeikyKeiNo);
		}

		// サービス実行
		this.execCHSV0007(paramBeans, null, PAGING_KBN_PRC);

		// 遷移元の画面IDを取得
		String beforeScreenId = JCCWebCommon.getScreenId(this);

		// 制御値(遷移元画面IDによる画面制御)
		this.setCntrlValueOfBeforeScreenId(paramBeans, beforeScreenId);
		
		return true;
	}

	/**
	 * 請求内訳照会画面の初期表示処理を行います。 <br>
	 * 
	 * @param beforeScreenId 遷移元画面ID
	 * @throws Exception 例外が発生した場合
	 */
	private void initShokaiScreen(String beforeScreenId) throws Exception
	{

		// 画面間引継情報を設定する
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 請求内訳照会サービス実行
		// 請求契約番号が設定されている時のみ実行する。
		String seikyKeiNo = paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if (JCHWebCommon.isNotNullOrEmpty(seikyKeiNo))
		{
			// 入力が正常の場合、請求契約番号を退避
			String fixSeikyKeiNo = bean.sendMessageString(CHW00105SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JACStrConst.KARA_MOJI.equals(fixSeikyKeiNo) && fixSeikyKeiNo.length() == 10)
			{
				bean.sendMessageString(CHW00105SFConst.FIX_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, fixSeikyKeiNo);
			}

			// ページング情報の削除
			JCCWebCommon.clearPageLinkInfo(this, JACScreenConst.SCREEN_ID_CHW00105);

			// 料金履歴テーブル表示制御値の初期化
			paramBeans[0].sendMessageString(CHW00105SFConst.STYLE_DISPLAY_PRC_RIREKI_TABLE, X31CWebConst.DATABEAN_SET_VALUE, "none");

			// 請求一覧からの遷移時
			if (JACScreenConst.SCREEN_ID_CHW00104.equals(beforeScreenId))
			{
				// 請求一覧タブから遷移であれば遷移元の画面IDを自画面に戻す
				 if (JCHWebCommon.isNullOrEmpty(paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_GET_VALUE)))
				 {
					JCCWebCommon.setScreenId(this, JACScreenConst.SCREEN_ID_CHW00105, JACScreenConst.SCREEN_ID_CHW00105);
					beforeScreenId = JACScreenConst.SCREEN_ID_CHW00105;
				 }
			}
			
			this.execCHSV0007(paramBeans, null, PAGING_KBN_ALL);
		}

		// 制御値(遷移元画面IDによる画面制御)
		this.setCntrlValueOfBeforeScreenId(paramBeans, beforeScreenId);
	}

	/**
	 * 請求内訳照会サービスを実行します。 <br>
	 * 
	 * @param paramBeans 請求内訳照会サービスフォームBean
	 * @param strBtn ボタン
	 * @param pagingKbn ページング区分
	 * @throws Exception 
	 */
	private void execCHSV0007(X31SDataBeanAccess[] paramBeans, String strBtn, String pagingKbn) throws Exception
	{
		// 遷移元の画面IDを取得
		String beforeScreenId = JCCWebCommon.getScreenId(this);

		// サービス実行前に検索結果項目をクリアする 
		clearBeanResultItems(paramBeans, pagingKbn);

		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		CHSV0007_CHSV0007OPDBMapper mapper = new CHSV0007_CHSV0007OPDBMapper();
		JCHCommonServiceUtil.setSeikySakiInfoStkuCC(paramBeans, inDataMap); // SEIKYSAKIINFOSTKUCC : 請求先情報取得CC
		mapper.setGETPRCKMKCSCHGELISTCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV000701SC(paramBeans, inDataMap, beforeScreenId, JPCModelConstant.FUNC_CD_5); // ECH0051B010 : 請求一覧照会SC
		mapper.setCHSV000702SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // ECH0051A010 : 請求一意照会SC
		mapper.setCHSV000703SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); // ECH0011B010 : 債権一覧照会SC
// 20160415 ANK-2769-00-00 Mod Start
//		mapper.setCHSV000704SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); // ECH0101B010 : 請求内訳一覧照会SC
		mapper.setCHSV000704SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_6); // ECH0101B010 : 請求内訳一覧照会SC
// 20160415 ANK-2769-00-00 Mod End
		JCHCommonServiceUtil.setPrcTaioKirokIcrnStkuCC(paramBeans, inDataMap,
				pagingKbn, KEY_PAGING_MAX_SHOW_CNT, KEY_PAGING_ROW_PER_PAGE);	// JCHPrcTaioKirokIcrnStkuCC : 料金対応記録一覧取得CC
		JCHCommonServiceUtil.setGetWorkParamListForKeiKapSizeCC(paramBeans, inDataMap);		// GETWORKPARAMLISTCC：業務パラメータ管理情報取得CC
		mapper.setCHSV000707SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_4); // ECH0331B010 : 請求書引抜一覧照会
		
// 20150911 ANK-2587-00-00 Add Start
		mapper.setCHSV000709SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // ECH0041B010 : 請求債権関連一覧照会SC
// 20150911 ANK-2587-00-00 Add End
		
		//ANK-4468-00-00 ADD START
		mapper.setGETCHANGEGROUPKEIINFCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // GETCHANGEGROUPKEIINFCC : グループ計変更情報取得情報取得
		//ANK-4468-00-00 ADD END

		// 各inputリスト編集
		setPrcKmkCsChgList(inDataMap);

		// ページング情報の設定
		if (!PAGING_KBN_MAIN.equals(pagingKbn))
		{
			// ページング情報の設定
			JCCWebCommon.upmapperPageLinkInfo(this, PAGING_TABLE_INDEX_PRC, PAGE_LNK_SC_ID_PRC, inDataMap);
		}

		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// 下りマッピング
		if (PAGING_KBN_MAIN.equals(pagingKbn))
		{
			mapper.getGETPRCKMKCSCHGELISTCC(paramBeans, outputMap);
			mapper.getCHSV000701SC(paramBeans, outputMap);
			mapper.getCHSV000702SC(paramBeans, outputMap);
			mapper.getCHSV000703SC(paramBeans, outputMap);
			mapper.getCHSV000704SC(paramBeans, outputMap);
			JCHCommonServiceUtil.getSeikySakiInfoStkuCC(paramBeans, outputMap);
			JCHCommonServiceUtil.getGetWorkParamListForKeiKapSizeCC(paramBeans, outputMap);
			mapper.getCHSV000707SC(paramBeans, outputMap);
// 20150911 ANK-2587-00-00 Add Start
			mapper.getCHSV000709SC(paramBeans, outputMap);
// 20150911 ANK-2587-00-00 Add End
		}
		else if (PAGING_KBN_PRC.equals(pagingKbn))
		{
			JCHCommonServiceUtil.getPrcTaioKirokIcrnStkuCC(paramBeans, outputMap);

			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this, PAGING_TABLE_INDEX_PRC, PAGE_LNK_SC_ID_PRC, outputMap);
			
		}
		else
		{
			mapper.getGETPRCKMKCSCHGELISTCC(paramBeans, outputMap);
			mapper.getCHSV000701SC(paramBeans, outputMap);
			mapper.getCHSV000702SC(paramBeans, outputMap);
			mapper.getCHSV000703SC(paramBeans, outputMap);
			mapper.getCHSV000704SC(paramBeans, outputMap);
			JCHCommonServiceUtil.getSeikySakiInfoStkuCC(paramBeans, outputMap);
			JCHCommonServiceUtil.getPrcTaioKirokIcrnStkuCC(paramBeans, outputMap);
			JCHCommonServiceUtil.getGetWorkParamListForKeiKapSizeCC(paramBeans, outputMap);
			mapper.getCHSV000707SC(paramBeans, outputMap);
// 20150911 ANK-2587-00-00 Add Start
			mapper.getCHSV000709SC(paramBeans, outputMap);
// 20150911 ANK-2587-00-00 Add End

			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this, PAGING_TABLE_INDEX_PRC, PAGE_LNK_SC_ID_PRC, outputMap);
			
		}
		
//ANK-4543-00-00 ADD START
		//NTT卸契約エラー判定
		HashMap scMap01 = (HashMap) outputMap.get("CHSV000704SC");
		ArrayList resultList01 = (ArrayList) scMap01.get("ECH0101B010CBSMsg1List");
		if(resultList01 != null )
		{
			for(int i = 0; i < resultList01.size(); i++ ){
				HashMap resultList01Map = (HashMap)resultList01.get(i);
				String NTT_ERR = (String)resultList01Map.get("ntt_err_flg");
				if (NTT_ERR.equals("1")){
					JCCWebCommon.setMessageInfo(this, "NTT卸契約が複数件存在します");
				}
			}
		}
//ANK-4543-00-00 ADD END	
		
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, PAGING_TABLE_INDEX_PRC, "paging", JACScreenConst.SCREEN_ID_CHW00105);

		// 制御値
		this.setCtrlValueInSeikyUchwk(paramBeans);
		this.setCtrlValueInPrcRirekiIcrn(paramBeans);

		// 制御値(請求先情報による画面制御)
		this.setCntrlValueOfBtnSeikyKeiyk(paramBeans);

		// 制御値(請求年月による画面制御)
		this.setCntrlValueOfBtnSeikyYm(paramBeans, strBtn);

		// 制御値(請求内訳情報による画面制御)
		this.setCntrlValueOfBtnSeikyUchwk(paramBeans);

		// 制御値(請求書引抜情報による画面制御)
		this.setCntrlValueOfSeikyHikinuki(paramBeans);

		// 初期表示位置の設定
		X31SDataBeanAccess seikyYmInfo = paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).getDataBean(0);

		int listInfoCnt = ((Integer)seikyYmInfo.sendMessage(CHW00105SFConst.SEIKY_YM_LIST_04, X31CWebConst.DATABEAN_GET_COUNT)).intValue();
		if (listInfoCnt == 0)
		{
			/* ◇請求情報 */
			paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_AMNT_INFO).clearArray();
			paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_AMNT_INFO).addDataBean();
			/* ◇請求年月情報 */
			paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).clearArray();
			paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).addDataBean();
			/* ◇請求内訳情報 */
			paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_UW_INFO).clearArray();

			// 選択値のクリア
			paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
			paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
			paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_YM_SEL_04, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		}
		else
		{
			// 請求年月の選択されたインデックスを取得
			String seikyYmSelIndex = JCHPulldownUtil.getSelectedIndex(paramBeans, CHW00105SFConst.SEIKY_YM, CHW00105SFConst.SEIKY_YM_INFO,
					CHW00105SFConst.SEIKY_YM_LIST_04, JACStrConst.SLASH, 0, 7);

			//インデックスが-1の場合は、値をクリア
			if (Integer.parseInt(seikyYmSelIndex) < 0)
			{

				/* ◇請求情報 */
				paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_AMNT_INFO).clearArray();
				paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_AMNT_INFO).addDataBean();
				/* ◇請求年月情報 */
				paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).clearArray();
				paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).addDataBean();
				/* ◇請求内訳情報 */
				paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_UW_INFO).clearArray();

				// 選択値のクリア
				paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
				paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
				paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_YM_SEL_04, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);

			}
			else
			{
				// 請求番号の選択されたインデックスを取得
				String seikyNoSelIndex = JCHPulldownUtil.getSelectedIndex(paramBeans, CHW00105SFConst.SEIKY_NO, CHW00105SFConst.SEIKY_YM_INFO,
						CHW00105SFConst.SEIKY_NO_LIST_04, "");

				// 請求年月選択
				seikyYmInfo.sendMessageString(CHW00105SFConst.SEIKY_YM_SEL_04, X31CWebConst.DATABEAN_SET_VALUE, seikyNoSelIndex);

				// 請求番号
				String seikyNo = JCHPulldownUtil.getSelectedValue(paramBeans, CHW00105SFConst.SEIKY_YM_INFO, CHW00105SFConst.SEIKY_NO_LIST_04,
						CHW00105SFConst.SEIKY_YM_SEL_04);
				seikyYmInfo.sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyNo);

				// 請求年月
				String seikyYm = JCHPulldownUtil.getSelectedValue(paramBeans, CHW00105SFConst.SEIKY_YM_INFO, CHW00105SFConst.SEIKY_YM_LIST_04,
						CHW00105SFConst.SEIKY_YM_SEL_04);
				seikyYmInfo.sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_SET_VALUE, seikyYm);

				paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_SET_VALUE, 
									seikyYm.replace(JACStrConst.SLASH, JACStrConst.KARA_MOJI).substring(0, 6));
				paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyNo);
			}
		}
		
		// うち消費税マスクチェック
		if(checkStaxAmnt(paramBeans))
		{
			paramBeans[0].getDataBeanArray("請求金額情報").getDataBean(0).sendMessageString(
					CHW00105SFConst.STAX_AMNT_02, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.SKK_FULL_ASTERISK);
		}

		// メッセージ設定
		this.setErrorMessage(paramBeans);
	}

	/**
	 * エラーメッセージ設定処理。 <br>
	 * 
	 * @param bean 請求内訳照会サービスフォームBean
	 */
	private void setErrorMessage(X31SDataBeanAccess[] bean)
	{
		if (isExistSeikyInfo(bean) == false)
		{
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_SEIKY_KEI_NO_NONE, new String[] { SEIKY_KEI_NO });
		}
	}

	/**
	 * 請求契約情報の存在を判定します。 <br>
	 * 
	 * @param bean 請求内訳照会サービスフォームBean
	 * @return isExist
	 */
	private boolean isExistSeikyInfo(X31SDataBeanAccess[] bean)
	{
		boolean isExist = false;
		// 請求契約の存在有無を請求契約ステータス(NotNull項目)で判定
		X31SDataBeanAccess seikyInfo = bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_INFO).getDataBean(0);
		String keiStat = seikyInfo.sendMessageString(CHW00105SFConst.SEIKY_KEI_STAT_01, X31CWebConst.DATABEAN_GET_VALUE);

		if (JCHWebCommon.isNotNullOrEmpty(keiStat))
		{
			isExist = true;
		}

		return isExist;
	}

	/**
	 * 請求内訳一覧の背景色を設定します。 <br>
	 * 
	 * @param bean 請求内訳照会サービスフォームBean
	 */
	private void setCtrlValueInSeikyUchwk(X31SDataBeanAccess[] bean)
	{

		X31SDataBeanAccessArray saikenIcrnInfo = bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_UW_INFO);

		for (int idx = 0; idx < saikenIcrnInfo.getCount().intValue(); idx++)
		{
			// 表示制御値
			String dspCntrlValue = JACStrConst.DSP_BG_COLOR_EVEN;
			if (idx % 2 == 0)
			{
				dspCntrlValue = JACStrConst.DSP_BG_COLOR_ODD;
			}
			saikenIcrnInfo.getDataBean(idx).sendMessageString(CHW00105SFConst.DSP_CNTRL_VALUE_03, X31CWebConst.DATABEAN_SET_VALUE, dspCntrlValue);
		}
	}

	/**
	 * 請求先情報の有無により他シス遷移ボタンの制御値を設定します。 <br>
	 * 
	 * @param bean 請求内訳照会Bean
	 */
	private void setCntrlValueOfBtnSeikyKeiyk(X31SDataBeanAccess[] bean)
	{
		String htmlDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
		String jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_TRUE;

		// 請求契約の存在有無を請求契約ステータス(NotNull項目)で判定して制御
		X31SDataBeanAccess seikyInfo = bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_INFO).getDataBean(0);
		// v23.00.03 MOD START
		// String keiStat = seikyInfo.sendMessageString(CHW00105SFConst.KEI_STAT_01, X31CWebConst.DATABEAN_GET_VALUE);
		String keiStat = seikyInfo.sendMessageString(CHW00105SFConst.SEIKY_KEI_STAT_01, X31CWebConst.DATABEAN_GET_VALUE);
		// v23.00.03 MOD END

		if (JCHWebCommon.isNotNullOrEmpty(keiStat))
		{
			htmlDisabledCntrlValue = JACStrConst.KARA_MOJI;
			jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_FALSE;
		}

		// 請求契約ボタン
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_SEIKY_KEIUPD, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
		// 割賦契約ボタン
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_KEI_KAP, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） MOD START ▼▼
//		// 契約へボタン
//		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
//		// 対応履歴ボタン
//		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
		if (bean[0].sendMessageString(JCHCommonConst.SYSCD, X31CWebConst.DATABEAN_GET_VALUE).startsWith(JACStrConst.SYSCD_ODR))
		{
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
		}
		else
		{
			// 契約へボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 対応履歴ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
		}
// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） MOD  END ▲▲
		// 抑止登録ボタン
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TOKUSOKU_STATUPD, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
		// ANK-4401-00-00 ADD START
		// 宛名発行ボタン
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_ATENA_HAKKO, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
		// ANK-4401-00-00 ADD END

	}

	/**
	 * 請求年月の有無により各ボタンの制御値を設定します。 <br>
	 * 
	 * @param bean 請求内訳照会Bean
	 * @param strbtn ボタン
	 */
	private void setCntrlValueOfBtnSeikyYm(X31SDataBeanAccess[] bean, String strbtn)
	{
		String jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_TRUE;
		String htmlDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
		String nextjsfDisabledCntrlValue = JACStrConst.CTL_VALUE_TRUE;
		String prevjsfDisabledCntrlValue = JACStrConst.CTL_VALUE_TRUE;

		X31SDataBeanAccess seikyYmInfo = bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).getDataBean(0);
		int seikyYmInfoCnt = ((Integer)seikyYmInfo.sendMessage(CHW00105SFConst.SEIKY_YM_LIST_04, X31CWebConst.DATABEAN_GET_COUNT)).intValue();

		if (seikyYmInfoCnt > 1)
		{
			jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_FALSE;
			htmlDisabledCntrlValue = JACStrConst.KARA_MOJI;
			
			nextjsfDisabledCntrlValue = setBtnPrevNextMonth(NEXT_BTN, strbtn);
			prevjsfDisabledCntrlValue = setBtnPrevNextMonth(PREV_BTN, strbtn);
		}
		else if (seikyYmInfoCnt == 1)
		{
			htmlDisabledCntrlValue = JACStrConst.KARA_MOJI;
		}

		// 請求年月プルダウン
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_LISTSEIKYYM, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);

		// 前月ボタン
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_PREV_MONTH, X31CWebConst.DATABEAN_SET_VALUE, prevjsfDisabledCntrlValue);
		// 次月ボタン
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_NEXT_MONTH, X31CWebConst.DATABEAN_SET_VALUE, nextjsfDisabledCntrlValue);
		// 引抜き登録ボタン
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_HIKNK_ADD, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
		// 引抜き解除ボタン
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_HIKNK_RLS, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);

	}
	
	/**
	 * 請求内訳情報の有無により各ボタンの制御値を設定します。 <br>
	 * 
	 * @param bean 請求内訳照会Bean
	 * @param strbtn ボタン
	 */
	private void setCntrlValueOfBtnSeikyUchwk(X31SDataBeanAccess[] bean)
	{
		String htmlDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;

		X31SDataBeanAccessArray seikyUchwkInfo = bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_UW_INFO);
		if (seikyUchwkInfo.getCount().intValue() > 0)
		{
			htmlDisabledCntrlValue = JACStrConst.KARA_MOJI;
		}

		// 内訳発行ボタン
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_SEIKY_UWHAKKO, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);

		
// ANK-4475-00-00 MOD START
//		// 請求状態が「仮計算中」の場合、非活性制御を行う
//		X31SDataBeanAccess seikyAmntInfo = bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_AMNT_INFO).getDataBean(0);
//		if (seikyAmntInfo != null)
//		{
//			String seikyStat = seikyAmntInfo.sendMessageString(CHW00105SFConst.SEIKY_STAT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);//
//
//			if (JACStrConst.SEIKY_STAT_KR_CALC.equals(seikyStat))
//			{
//				// 内訳発行ボタン
//				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_SEIKY_UWHAKKO, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
//			}
//		}

		// 請求状態が「仮計算中」または、請求種別コードが「定例請求・随時請求」以外の場合、非活性制御を行う
		X31SDataBeanAccess seikyAmntInfo = bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_AMNT_INFO).getDataBean(0);
		if (seikyAmntInfo != null)
		{
			String seikyStat = seikyAmntInfo.sendMessageString(CHW00105SFConst.SEIKY_STAT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
			String seikySbtCd = seikyAmntInfo.sendMessageString(CHW00105SFConst.SEIKY_SBT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			if (JACStrConst.SEIKY_STAT_KR_CALC.equals(seikyStat))
			{
				// 内訳発行ボタン
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_SEIKY_UWHAKKO, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
			}
			else if (!(JACStrConst.SIKYSHBTS_TEIGK_SEIKY.equals(seikySbtCd) || JACStrConst.SIKYSHBTS_JUIJ_SEIKY.equals(seikySbtCd))) 
			{
				// 内訳発行ボタン
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_SEIKY_UWHAKKO, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
			}
		}

// ANK-4475-00-00 MOD END
		// 料金履歴ボタンは料金履歴情報の存在有無で制御
		htmlDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
		if (JCHWebCommon.isExistPrcRirekiInfo(bean))
		{
			htmlDisabledCntrlValue = JACStrConst.KARA_MOJI;
		}
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_PRC_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
	}

	/**
	 * 請求書引抜により制御値を設定します。 <br>
	 * 
	 * @param bean 請求内訳照会Bean
	 * @param String 遷移元画面ID
	 */
	private void setCntrlValueOfSeikyHikinuki(X31SDataBeanAccess[] bean)
	{
		String jsfDisabledCntrlValue = bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_HIKNK_RLS, X31CWebConst.DATABEAN_GET_VALUE);
		String jsfDisabledCntrlValue2 = bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_HIKNK_ADD, X31CWebConst.DATABEAN_GET_VALUE);

		X31SDataBeanAccessArray hikinukiInfo = bean[0].getDataBeanArray(CHW00105SFConst.HIKINUKI_INFO);
		if (hikinukiInfo.getCount() > 0)
		{
			X31SDataBeanAccess hikinukiInfoBean = hikinukiInfo.getDataBean(0);
			
			// 引抜解除チェック２
			String hikinukiSendCd = hikinukiInfoBean.sendMessageString(CHW00105SFConst.HIKINUKI_SEND_CD_06, X31CWebConst.DATABEAN_GET_VALUE);
			if (!"0".equals(hikinukiSendCd))
			{
				jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
				jsfDisabledCntrlValue2 = JACStrConst.CTL_VALUE_DISABLED;
			}
			
		}
		else
		{
			jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
		}

		// 請求書引抜解除
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_HIKNK_RLS, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
		bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_HIKNK_ADD, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue2);
	}

	/**
	 * 遷移元画面IDの判定により各ボタンの制御値を設定します。 <br>
	 * 
	 * @param bean 請求内訳照会Bean
	 * @param beforeScreenId 遷移元画面ID
	 */
	private void setCntrlValueOfBeforeScreenId(X31SDataBeanAccess[] bean, String beforeScreenId)
	{
		boolean isBeforeOtherSys = false;
		if (JCHWebCommon.isNotNullOrEmpty(beforeScreenId))
		{
			String sysId = beforeScreenId.substring(0, 2);
			if (!JACStrConst.SYS_CD_AC.equals(sysId) && !JACStrConst.SYS_CD_CH.equals(sysId))
			{
				isBeforeOtherSys = true;
			}
		}

		// 遷移元画面が「料金訂正一覧」の場合
		if (JACScreenConst.SCREEN_ID_CHW01801.equals(beforeScreenId))
		{
			String htmlDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
			String jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_TRUE;
			String classDisabledCntrlValue = JACStrConst.CTL_VALUE_READONLY;

			// 請求契約番号クラス制御値
			bean[0].sendMessageString(CHW00105SFConst.CLASS_CNTRL_VALUE_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, classDisabledCntrlValue);
			// 請求契約番号
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 検索ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_SEARCH, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 請求年月プルダウン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_LISTSEIKYYM, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 前月ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_PREV_MONTH, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 次月ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_NEXT_MONTH, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 引抜き登録ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_HIKNK_ADD, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			// 引抜き解除ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_HIKNK_RLS, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			// 抑止登録ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TOKUSOKU_STATUPD, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			// 内訳発行ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_SEIKY_UWHAKKO, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			// 請求契約ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_SEIKY_KEIUPD, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			// 割賦契約ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_KEI_KAP, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） MOD START ▼▼
//			// 契約へボタン
//			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
//			// 対応履歴ボタン
//			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			if (bean[0].sendMessageString(JCHCommonConst.SYSCD, X31CWebConst.DATABEAN_GET_VALUE).startsWith(JACStrConst.SYSCD_ODR))
			{
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
			}
			else
			{
				// 契約へボタン
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
				// 対応履歴ボタン
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			}
// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） MOD  END ▲▲
			// 戻るボタン表示制御値
			bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_BACK, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 閉じるボタン表示制御値
			bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_CLOSE, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_FALSE);
			// タブ表示制御値
			bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_TAB, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
		}
		// 遷移元画面が他システムの場合
		else if (isBeforeOtherSys)
		{
			String htmlDisabledCntrlValue = JACStrConst.CTL_VALUE_DISABLED;
			String jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_TRUE;
			String classDisabledCntrlValue = JACStrConst.CTL_VALUE_READONLY;

			// 請求契約番号クラス制御値
			bean[0].sendMessageString(CHW00105SFConst.CLASS_CNTRL_VALUE_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, classDisabledCntrlValue);
			// 請求契約番号
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 検索ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_SEARCH, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 請求年月プルダウン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_LISTSEIKYYM, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 前月ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_PREV_MONTH, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 次月ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_NEXT_MONTH, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 引抜き登録ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_HIKNK_ADD, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			// 引抜き解除ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_HIKNK_RLS, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			// 抑止登録ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TOKUSOKU_STATUPD, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			// 内訳発行ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_SEIKY_UWHAKKO, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			// 請求契約ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_SEIKY_KEIUPD, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			// 割賦契約ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_KEI_KAP, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
// ▼▼ ANK-2693-00-00 オーダリング案件（STEP2） MOD START ▼▼
//			// 契約へボタン
//			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
//			// 対応履歴ボタン
//			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			if (bean[0].sendMessageString(JCHCommonConst.SYSCD, X31CWebConst.DATABEAN_GET_VALUE).startsWith(JACStrConst.SYSCD_ODR))
			{
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_DISABLED);
			}
			else
			{
			// 契約へボタン
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_KEI, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
				// 対応履歴ボタン
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_HTML_BTN_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, htmlDisabledCntrlValue);
			}
// ▲▲ ANK-2693-00-00 オーダリング案件（STEP2） MOD  END ▲▲
			// 戻るボタン表示制御値
// ANK-2715-00-00 MOD START
			//bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_BACK, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_FALSE);
			// 料金タブ遷移元画面ＩＤが設定されている場合
			if (JCHWebCommon.isNotNullOrEmpty(bean[0].sendMessageString(JCHCommonConst.PRC_TAB_SENI_MOTO_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 戻るボタンを表示
				bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_BACK, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
			}
			else
			{
				// 戻るボタンを非表示
				bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_BACK, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_FALSE);
			}
// ANK-2715-00-00 MOD END
			// 閉じるボタン表示制御値
			bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_CLOSE, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
			// タブ表示制御値
			bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_TAB, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
		}
		else
		{
			// 遷移元画面が料金訂正一覧・他システム以外の場合
			String jsfDisabledCntrlValue = JACStrConst.CTL_VALUE_FALSE;
			String classDisabledCntrlValue = JACStrConst.CTL_VALUE_INPUT;

			// 請求契約番号クラス制御値
			bean[0].sendMessageString(CHW00105SFConst.CLASS_CNTRL_VALUE_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, classDisabledCntrlValue);
			// 請求契約番号
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// タブ表示制御値
			bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_TAB, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 検索ボタン
			bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_SEARCH, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 戻るボタン表示制御値
// ANK-2715-00-00 MOD START
			//bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_BACK, X31CWebConst.DATABEAN_SET_VALUE, jsfDisabledCntrlValue);
			// 料金タブ遷移元画面ＩＤが設定されている場合
			if (JCHWebCommon.isNotNullOrEmpty(bean[0].sendMessageString(JCHCommonConst.PRC_TAB_SENI_MOTO_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 戻るボタンを表示
				bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_BACK, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
			}
			else
			{
				// 戻るボタンを非表示
				bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_BACK, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_FALSE);
			}
// ANK-2715-00-00 MOD END
			// 閉じるボタン表示制御値
			bean[0].sendMessageString(CHW00105SFConst.DSP_CTL_VALUE_BTN_CLOSE, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_FALSE);
			
			// 遷移元が請求一覧（請求内訳ボタン）の場合
			if (JACScreenConst.SCREEN_ID_CHW00104.equals(beforeScreenId))
			{
				// 請求年月プルダウン
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_LISTSEIKYYM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
				// 前月ボタン
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_PREV_MONTH, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
				// 次月ボタン
				bean[0].sendMessageString(CHW00105SFConst.DSBL_CTL_JSF_BTN_NEXT_MONTH, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.CTL_VALUE_TRUE);
			}
		}
	}

	/**
	 * サービスフォームBeanをクリアします。 <br>
	 * 
	 * @param bean 請求内訳照会サービスフォームBean
	 */
	private void allClearBeanResultItems(X31SDataBeanAccess[] bean)
	{
		/* ◇請求先情報 */
		bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_INFO).clearArray();
		bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_INFO).addDataBean();
		/* ◇請求情報 */
		bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_AMNT_INFO).clearArray();
		bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_AMNT_INFO).addDataBean();
		/* ◇請求年月情報 */
		bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).clearArray();
		bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).addDataBean();
		/* ◇請求内訳情報 */
		bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_UW_INFO).clearArray();
		/* ◇対応履歴情報 */
		bean[0].getDataBeanArray(CHW00105SFConst.PRC_RIREKI_INFO).clearArray();

		// 選択値のクリア
		bean[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		bean[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
		bean[0].sendMessageString(CHW00105SFConst.SEIKY_YM_SEL_04, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
	}

	/**
	 * サービスフォームBeanの検索結果項目をクリアします。 <br>
	 * 
	 * @param bean 請求内訳照会サービスフォームBean
	 * @param pagingKbn ページング区分
	 */
	private void clearBeanResultItems(X31SDataBeanAccess[] bean, String pagingKbn)
	{
		if (PAGING_KBN_MAIN.equals(pagingKbn))
		{
			/* ◇請求一覧情報 */
			bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_AMNT_INFO).clearArray();
			/* ◇請求内訳一覧情報 */
			bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_UW_INFO).clearArray();
			
		}
		else if (PAGING_KBN_PRC.equals(pagingKbn))
		{
			/* ◇対応履歴情報 */
			bean[0].getDataBeanArray(CHW00105SFConst.PRC_RIREKI_INFO).clearArray();
			
		}
		else
		{
			/* ◇請求一覧情報 */
			bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_AMNT_INFO).clearArray();
			/* ◇請求内訳一覧情報 */
			bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_UW_INFO).clearArray();
			/* ◇対応履歴情報 */
			bean[0].getDataBeanArray(CHW00105SFConst.PRC_RIREKI_INFO).clearArray();
		}
	}

	/**
	 * 料金履歴一覧情報の制御値を設定します。 <br>
	 * 
	 * @param bean 督促管理サービスフォームBean
	 */
	private void setCtrlValueInPrcRirekiIcrn(X31SDataBeanAccess[] bean)
	{
		X31SDataBeanAccessArray prcRirekiIcrnInfo = bean[0].getDataBeanArray(CHW00105SFConst.PRC_RIREKI_INFO);
		for (int idx = 0; idx < prcRirekiIcrnInfo.getCount().intValue(); idx++)
		{
			// 表示制御値、記事表示制御値
			String dspCntrlValue = JACStrConst.DSP_BG_COLOR_EVEN;
			String kijiDspCntrlValue = JACStrConst.CLASS_TEXT_READONLY_EVEN;
			if (idx % 2 == 0)
			{
				dspCntrlValue = JACStrConst.DSP_BG_COLOR_ODD;
				kijiDspCntrlValue = JACStrConst.CLASS_TEXT_READONLY_ODD;
			}
			prcRirekiIcrnInfo.getDataBean(idx).sendMessageString(CHW00105SFConst.DSP_CNTRL_VALUE_05, X31CWebConst.DATABEAN_SET_VALUE, dspCntrlValue);
			prcRirekiIcrnInfo.getDataBean(idx).sendMessageString(CHW00105SFConst.DSP_CNTRL_VALUE_KIJI_05, X31CWebConst.DATABEAN_SET_VALUE, kijiDspCntrlValue);
		}
	}

	/**
	 * 前月・次月ボタンの表示制御を行います。 <br>
	 * 
	 * @param strMonthBtn 表示制御ボタン情報
	 * @param btn 画面遷移押下ボタン情報
	 * @return 実行結果
	 */
	private String setBtnPrevNextMonth(String strMonthBtn, String btn)
	{
		String strMonth = JACStrConst.CTL_VALUE_FALSE;
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 選択されている請求年月を取得する
		String seikyYm = paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 請求年月リストのデータが２件未満時の処理
		if (JCHPulldownUtil.getListCount(paramBeans, CHW00105SFConst.SEIKY_YM_INFO, CHW00105SFConst.SEIKY_YM_LIST_04) < 2)
		{
			strMonth = JACStrConst.CTL_VALUE_TRUE;
			return strMonth;
		}

		// 請求年月のデータがなかった場合
		if (JCHWebCommon.isNullOrEmpty(seikyYm))
		{
			// 押下したボタンが次月ボタンだった場合
			if (NEXT_BTN.equals(strMonthBtn))
			{
				strMonth = JACStrConst.CTL_VALUE_TRUE;
				return strMonth;
			}

			return strMonth;
		}

		// 請求番号
		String seikyNo = paramBeans[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 請求年月選択値（インデックス）取得
		X31SDataBeanAccess seikyYmInfo = paramBeans[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO).getDataBean(0);
		int idx = Integer.parseInt(JCHPulldownUtil.countSelIndex(seikyYmInfo, CHW00105SFConst.SEIKY_NO_LIST_04, seikyNo));

		if (NEXT_BTN.equals(strMonthBtn))
		{
			// 請求年月リスト先頭データを選択した場合
			if (idx == 0)
			{
				strMonth = JACStrConst.CTL_VALUE_TRUE;
			}
		}
		else
		{
			// 請求年月リスト最後尾のデータを選択した場合
			if (idx == JCHPulldownUtil.getListCount(paramBeans, CHW00105SFConst.SEIKY_YM_INFO, CHW00105SFConst.SEIKY_YM_LIST_04) - 1)
			{
				strMonth = JACStrConst.CTL_VALUE_TRUE;
			}
		}

		return strMonth;
	}

	/**
	 * 退避された請求契約番号を請求契約番号に設定します。 <br>
	 */
	private void setFixSeikyKeiNo()
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		String fixSeikyKeiNo = bean.sendMessageString(CHW00105SFConst.FIX_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if (JCHWebCommon.isNotNullOrEmpty(fixSeikyKeiNo))
		{
			bean.sendMessageString(CHW00105SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, fixSeikyKeiNo);
		}
		else
		{
			bean.sendMessageString(CHW00105SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
	}

	/**
	 * in料金項目抽出変換一覧照会明細リスト編集処理<br>
	 * <br>
	 * 料金項目抽出変換情報取得CCのin料金項目抽出変換一覧照会明細リスト編集を行う。
	 * 
	 * @param dataMap マッピング用Map
	 * @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> prcKmkCsChgMap0 = new HashMap<String, Object>();
		prcKmkCsChgMap0.put("key_work_param_id", JACStrConst.WKPRA_CH_WKS_SK_BOTH_DISP);
		prcKmkCsChgMap0.put("key_sys_cd", JACStrConst.SYS_CD_CH);
		prcKmkCsChgMap0.put("key_work_kino_skbt_cd", "");
		prcKmkCsChgMap0.put("key_chsht_chg_cd", "1");
		prcKmkCsChgList.add(prcKmkCsChgMap0);

		((HashMap)dataMap.get("GETPRCKMKCSCHGELISTCC")).put("PRC_KMK_CS_CHGE_LIST", prcKmkCsChgList);
	}
	
	/**
	 * うち消費税項目をマスクするか判定します。
	 * @param bean
	 * @return ret
	 */
	private boolean checkStaxAmnt(X31SDataBeanAccess[] bean)
	{
		boolean ret = false;
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("請求金額情報").getDataBean(0);
		
		String amnt = subbean.sendMessageString(CHW00105SFConst.SEIKY_AMNT_02, X31CWebConst.DATABEAN_GET_VALUE);					// 請求額
		String maeukeJutoFlg = bean[0].sendMessageString(CHW00105SFConst.MAEUKE_JUTO_FLG, X31CWebConst.DATABEAN_GET_VALUE);			// 前受金充当フラグ
		String gasanFlg = bean[0].sendMessageString(CHW00105SFConst.GSAN_FLG, X31CWebConst.DATABEAN_GET_VALUE);						// 合算フラグ
		String saikenStat = subbean.sendMessageString(CHW00105SFConst.SAIKEN_STAT_02, X31CWebConst.DATABEAN_GET_VALUE);				// 債権ステータス

// ANK-4401-00-00 MOD START
		//if ("0".equals(amnt))
		{
			// 請求額が0円の場合
			//ret = true;
		}
		//else if ("1".equals(maeukeJutoFlg))
		if ("1".equals(maeukeJutoFlg))	
// ANK-4401-00-00 MOD END
		{
			// 前受金充当の場合
			ret = true;
		}
		else if (JACStrConst.GSAN_FLG_ON.equals(gasanFlg))
		{
			// 合算請求の場合
			ret = true;
		}
		else if (JACStrConst.SAIKEN_STAT_ICHIBU_KAKNO.equals(saikenStat))
		{
			// 債権ステータスが「一部収納」の場合
			ret = true;
		}
		
		return ret;
	}
	
	// ANK-4401-00-00 ADD START
	/**
	 * 請求書（宛名）帳票作成を実行します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean fixFin() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean, commoninfoBean };

		// ユーザーIDの取得
		String userId = commoninfoBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 帳票出力フラグの初期化
		paramBeans[0].sendMessageString(CHW00105SFConst.OUTPUT_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");

		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 請求書（宛名）発行サービス実行
		this.execCHSV0094(paramBeans, JPCModelConstant.FUNC_CD_1, userId, outputMap);

		return true;
	}
	
	/**
	 * 請求書（宛名）発行サービスを実行します。 <br>
	 * 
	 * @param paramBeans 請求書（宛名）発行サービスフォームBean
	 * @param outputMap 下り格納マップ
	 */
	@SuppressWarnings("unchecked")
	private void execCHSV0094(X31SDataBeanAccess[] paramBeans, String funcCd, String userId, HashMap<String, Object> outputMap) throws Exception
	{
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0094);
		// 上り格納マップ
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();

		// ファイル格納マップ
		HashMap<String, Object> attachMap = new HashMap<String, Object>();

		CHSV0094_CHSV0094OPDBMapper mapper = new CHSV0094_CHSV0094OPDBMapper();
		mapper.setSKSATENACHOHYOCC(paramBeans, inDataMap, funcCd); // 請求書（宛名）帳票CC

		HashMap<String, Object> ccMap = (HashMap<String, Object>) inDataMap.get(MAP_SKS_ATENA_CHOHYO_CC_ID);

		// ユーザーID
		ccMap.put("user_id", userId);

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap, attachMap);

		// 出力する帳票の情報を取得
		HashMap outFileInfMap = (HashMap)((ArrayList)attachMap.get("TELEGRAM_INFO_ATTACH_FILE_LIST")).get(0);
		// 出力するファイルデータを取得
		byte[] outFileData = (byte[])outFileInfMap.get("TELEGRAM_INFO_ATTACH_FILE");
		// 出力するファイル名を取得
		String outFileName = (String)outFileInfMap.get("TELEGRAM_INFO_ATTACH_ITEM_NAMAE");
		// 出力するファイルをセッションに格納する
		HashMap<String, Object> printInfo = new HashMap<String, Object>();
		printInfo.put("output_chohyo", outFileData);
		printInfo.put("chohyo_name", outFileName + ".pdf");

		JCCWebCommon.setScreenInfo(this, JACScreenConst.SCREEN_ID_ACW00699, printInfo);
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		svcFormBean.sendMessageString(CHW00105SFConst.OUTPUT_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");

	}
	
	/**
	 * 請求書（宛名） 印刷確定処理
	 * 
	 * @return 処理結果
	 * @throws Exception
	 */
	public boolean atenaHakko() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		HashMap<String, Object> printInfo = JCCWebCommon.getScreenInfo(this, JACScreenConst.SCREEN_ID_ACW00699);
		if(printInfo != null && printInfo.containsKey("output_chohyo") && printInfo.containsKey("chohyo_name"))
		{
			JCCWebCommon.setTempDownloadFile(this, (byte[])printInfo.get("output_chohyo")
					, (String)printInfo.get("chohyo_name"));
			
			bean.sendMessageString(CHW00105SFConst.OUTPUT_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
			JCCWebCommon.removeScreenInfo(this, JACScreenConst.SCREEN_ID_CHW00105);
		}
		return true;
	}
	// ANK-4401-00-00 ADD END

}
