/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：FUW00115SFLogic
*   ソースファイル名：FUW00115SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年08月04日
*＜機能概要＞
*   お支払方法入力画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者		修正内容
*   v1.00		2011/08/04   FJ）薄出	新規作成
*	v4.00	    2012/06/12   FJ）大塚  【ANK-0404-01-00】 光ハイブリッド3G 42M対応
*	v4.00		2012/09/27	 FJ) 池田  【案件番号：ANK-1218-00-00】【巻き取りA】お客さまID非通知対応に関わる請求先（窓口払い表示対応）
*	v4.01		2012/10/11	 FJ）齋藤   障害対応（IT1-2012-0001050）
*	v4.11		2012/11/03	 FJ) 岩元  【IT1-2012-0001846】モバイル追加の請求引継ぎ障害対応
*	v4.12		2012/11/22	 FJ) 大塚  【IT2-2012-0001790】
*	v4.13		2013/01/13	 FJ) 齋藤  【ST2-2013-0000050】取扱コード領域非表示障害対応
*	v4.14		2013/02/23	 FJ) 玉井  【ANK-1399-00-00】フロントＳ文言確認修正対応
*   v5.00       2013/06/10   FJ）知識  【ANK-1534-00-00】eoモバイル42Mエリア縮小対応
*   V9.00       2014/07/10   FJ) 中谷  【OM-2014-0002525】支払方法変更のエラーメッセージの改修
*   v10.00.00   2014/07/09   FJ) 清水  【ANK-2135-00-00】BSオプションチャンネル「スターチャンネル」とのセット割検討
*   v20.00      2015/11/20   FJ) 岡井  【ANK-2565-00-00】クレカ番号預かりサービス導入(STEP3)
*   v28.00      2016/12/08   FJ) 川島  【ANK-3062-00-00】Amazon経由でのeo光申込(STEP1)
*   v36.00      2017/11/29   FJ) 岡井  【ANK-3313-00-00】クレジットカード非通過対応
*   v36.00      2017/12/18   FJ) 岡井  【ANK-3313-02-00】クレジットカード非通過対応【案件内仕変2:申し込み時の５大カードブランド聞き取り化】
*   v39.00      2018/11/22   FJ)大島    【ANK-3473-00-00】選択性CPシステム改修
*   v57.00      2022/04/04   FJ) 新谷  【ANK-4230-00-00】クレカ不正オーソリ対応
*   v57.00.01   2022/04/15   FJ) 新谷  【IT1-2022-0000023】トークン取得5回NGエラー表示不具合対応
*   v58.00.00   2022/05/09   FJ) 新谷  【ANK-3846-00-00】【クレカ】クリアパス→ペイジェント移行
*   v67.00.00   2023/07/03   FJ) 美濃原【ANK-4415-00-00】口振請求及びWeb申込システム移行 STEP1
*   v73.00      2024/09/24   FJ）福山  【ANK-4570-00-00】コンテンツ新規同時申込み時契約仕様見直し対応
**********************************************************************/
package eo.web.webview.FUW00115SF;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31SRuntimeException;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JFUCommonUtil;
import eo.common.util.JZMFormatForMask;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0078_FUSV0078OPDBMapper;
import eo.web.webview.mapping.FUSV0157_FUSV0157OPDBMapper;
import eo.web.webview.mapping.FUSV0372_FUSV0372OPDBMapper;
import eo.web.webview.mapping.FUSV0375_FUSV0375OPDBMapper;

/**
 *
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00115SFLogic extends JCCWebBusinessLogic
{
	/** クレジットカード名義人同意(未チェック)（共有フォームBean用（サービスフォーム側はBoolean）） */
	private static final String DOI_UNKNOWN = "";

	/** クレジットカード名義人同意（共有フォームBean用（サービスフォーム側はBoolean）） */
	private static final String DOI_OK = "1";

	/** クレジット・名義人種別（同じフラグ）  共有フォームBean用 */
	private static final String SAME_UNKNOWN = ""; // 契約者と同じか不明

	/** クレジット・名義人種別（同じフラグ）  共有フォームBean用 */
	private static final String SAME_YES = "1"; // 契約者と同じ

	/** クレジット・名義人種別（同じフラグ）  共有フォームBean用 */
	private static final String DIFF_UNKNOWN = ""; // 契約者と異なるか不明

	/** クレジット・名義人種別（異なるフラグ）共有フォームBean用 */
	private static final String DIFF_YES = "1"; // 契約者と異なる

	/** クレジット・名義人種別（未選択）      サービスフォームBean用 */
	private static final String MEIGININ_SBT_UNKNOWN = "";

	/** クレジット・名義人種別（同じフラグ）  サービス用 */
	private static final String MEIGININ_SBT_SAME = "0";

	/** クレジット・名義人種別（異なるフラグ）サービス用 */
	private static final String MEIGININ_SBT_DIFF = "1";

	/** ユースケースID（FUSV0078） */
	private static final String USECASE_ID_FUSV0078 = "FUSV0078";

	/** ユースケースID（FUSV0157） */
	private static final String USECASE_ID_FUSV0157 = "FUSV0157";

	/** ユースケースID（FUSV0372） */
	private static final String USECASE_ID_FUSV0372 = "FUSV0372";

	/** ユースケースID（FUSV0375） */
	private static final String USECASE_ID_FUSV0375 = "FUSV0375";

	/** 選択してください */
	private static final String SELECT_INFO = "選択してください";

	/** リスト初期値 */
	private static final String LIST_DEF_VALUE = "0";

	/** エラー表示用文 */
	private static final String CRECARD_NO = "クレジットカード番号";
	/** エラー表示用項目ID */
	private static final String CRECARD_NUM = "creditCardNumber";
	/** エラー表示用項目ID */
	private static final String CRECARD_COM = "creditCampany";
	/** エラー表示用項目ID */
	private static final String CRECARD_EXP_ERR = "expirationDateMonthAndYear";
	/** エラー表示用項目ID */
	private static final String HANDLE_CD = "handleCd";
	/** エラー表示用項目ID */
	private static final String PAYMENT_METHOD = "paymentMethod";
	/** エラー表示用定数 */
	private static final String ERR_CD_EKF0420_TW = "EKF0420-TW";
	/** エラー表示用定数 */
	private static final String ERR_CD_EKF0400_TW = "EKF0400-TW";
	/** エラー表示用定数 */
	private static final String ERR_CD_EKF0660_KW = "EKF0660-KW";
	/** エラーメッセージID(EKF1870-CE) */
	private static final String ERR_MSG_ID_EKF1870_CE = "EKF1870-CE";
	/** エラーメッセージID(EKF1880-TW) */
	private static final String ERR_MSG_ID_EKF1880_TW = "EKF1880-TW";
	/** エラーメッセージID(EKF1890-TW) */
	private static final String ERR_MSG_ID_EKF1890_TW = "EKF1890-TW";
	/** エラー表示用文 */
	private static final String INPUT = "入力";
	/** エラー表示用文 */
	private static final String TRAT_CD = "正しい取扱コード";
	/** エラー表示用文 */
	private static final String CARD_NO = "カード番号";
	/** エラー表示用文 */
	private static final String EXP_DATE = "有効期限";
	/** エラー表示用文 */
	private static final String SECURITY_CD = "セキュリティコード";
	/** エラー表示用項目ID */
	private static final String SECURITY_CD_ERR = "securityCd";
	/** エラー表示用文 */
	private static final String CRECARD_NAME = "カード名義人";
	/** エラー表示用項目ID */
	private static final String CRECARD_NAME_ERR = "cardHolderTotalNameKana";
	/** エラー表示用定数 */
	private static final String ERR_MSG_ID_EKF2280_CE = "EKF2280-CE";

	/** 加盟店ID */
	private static final String APP_FU_CR_CPID = "FTTHCPID";

	/** 加盟店パスワード */
	private static final String APP_FU_CR_PASSWD = "FTTHCPPASS";

	/** 決済金額 */
	private static final String CR_AMOUNT_VAL = "1";

	/** 画面定義ファイル照会値 クレジットカード表示年数  */
	private static final String CRECARD_DISP_YEARS = "crecardDispYears";

	/** 同一請求先の最大件数 */
	private static final String MAX_SAME_SEIKYUSAKI_CNT = "MAX_SAME_SEIKYUSAKI_CNT";

	/** 督促ステータスの閾値 */
	private static final String THRESHOLD_TOKUSOKU_STAT = "THRESHOLD_TOKUSOKU_STAT";

	/** 0 */
	private static final String ZERO = "0";

	/** 1 */
	private static final String ONE = "1";

	/** モバイル単独 新規 */
	private static final String MOBILE_SINGLE_NEW = "MOBILE_SINGLE_NEW";

	/** モバイル単独 追加 引継ぎ*/
	private static final String MOBILE_SINGLE_ADD_HIKITSUGI = "MOBILE_SINGLE_ADD_HIKITSUGI";

	/** モバイル単独 追加 引継がない(クレジット)*/
	private static final String MOBILE_SINGLE_ADD_CREDIT = "MOBILE_SINGLE_ADD_CREDIT";

	/** 通帳記号の先頭文字列 */
	private static final String TUTYO_KIGO_HEAD = "1";
	/** 通帳記号の最終文字列 */
	private static final String TUTYO_KIGO_FOOT = "0";
	/** 通帳番号の最終文字列 */
	private static final String TUTYO_NO_FOOT = "1";

	/** 預金種目名(普通) */
	private static final String YOKIN_SYUMOMKU_NM_FUTU = "普通";
	/** 預金種目名(当座) */
	private static final String YOKIN_SYUMOMKU_NM_TOZA = "当座";

	/** 口座振替支払方法(銀行) */
	private static final String KOZA_PAY_WAY_BANK = "預金口座振替";
	/** 口座振替支払方法(ゆうちょ) */
	private static final String KOZA_PAY_WAY_YUCHO = "ゆうちょ銀行自動払い込み";

	/** 金融機関名(ゆうちょ銀行) */
	private static final String YUCHO_BANK_NM = "ゆうちょ銀行";

	/** 口座振替 支払方法区分 ゆうちょ銀行 */
	private static final String KOUFURI_PAY_WAY_YUCHO_KBN = "2";
	/** 口座振替 支払方法区分 ゆうちょ銀行以外の銀行 */
	private static final String KOUFURI_PAY_WAY_BANK_KBN = "1";
	/** 口座振替 支払方法区分 口座振替なし */
	private static final String KOUFURI_PAY_WAY_NON = "0";

	// 口座振替SMBCFS（旧クリアパス）接続情報
	/** クリアパスステータスエラー値 */
	private static final String CLEARPASS_STATUS_OK = "2";
	/** クリアパスステータスエラー値 */
	private static final String CLEARPASS_STATUS_ERROR = "22";
	/** クリアパス押下可能回数の最大値 */
	private static final String KOUFURI_OUKA_MAX = "3";
	/** クリアパス押下可能回数に達した場合の変更値 */
	private static final String KOUFURI_OUKA_MAX_2 = "4";
	/** 処理結果コード 0:正常 */
	public static final String TRN_RSLT_CD_NORMAL = "0";

	/** クリアパストーク取得結果コードリスト */
	private static final List<String> CLP_TKN_RSLT_CD_LIST = Arrays.asList(JFUStrConst.CLP_RESULT_CD_0, JFUStrConst.CLP_RESULT_CD_8);
	/** クリアパストーク取得エラーコードリスト */
	private static final List<String> CLP_TKN_ERR_CD_LIST = Arrays.asList(JFUStrConst.CLP_ERROR_CD_6, JFUStrConst.CLP_ERROR_CD_7,
			JFUStrConst.CLP_ERROR_CD_9);

	// トークン取得最大値（この値以上がNG）
	private static final String TOKEN_GET_CNT_MAX = "5";

	/**
	 * 初期化処理
	 * @return boolean 処理終了ステータス
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		X31SDataBeanAccess common_info_bean = null; // 共有フォームBean全体へのアクセサ
		X31SDataBeanAccess web_new_bean = null; // 共有フォームBeanのＷＥＢ新規以下へのアクセサ
		X31SDataBeanAccess payway_info_bean = null; // 共有フォームBeanの支払い方法情報以下へのアクセサ
		X31SDataBeanAccess service_form_bean = null; // サービスフォームBeanへのアクセサ
		X31SDataBeanAccessArray bean_array = null; // 一時受け皿
		X31SDataBeanAccess tmp_bean = null; // 一時受け皿

		// ■共有フォームBean
		common_info_bean = getCommonInfoBean();

		// ■サービスフォームBean
		service_form_bean = getServiceFormBean();

		//=====================================================================
		// 運用日付の設定
		//=====================================================================
		String opeDate = setFuOpedate(common_info_bean);

		//=====================================================================
		// (1) 契約状態の判定1
		//=====================================================================
//		checkKeiyakuInfo(); 2013/02/19 Otsuka 支払い引継ぎで確認するためコメントアウト

		// ■サービスを呼び出す前に、プルダウンをクリアしておく
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.HKTGI_PAYWAY);
		bean_array.clearArray();
		tmp_bean = getDataBeanZero(bean_array);

		// 支払方法情報に１行目を設定する
		tmp_bean.sendMessageString(FUW00115SFConst.SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SEIKY_KEI_STAT_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SEIKY_KEI_STAT_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SEIKY_WAY_CD_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SEIKY_WAY_CD_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SEIKY_WAY_NO_KOZA_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SEIKY_WAY_NO_CRECARD_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.BANK_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.BANK_SHITEN_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.KOZA_NO_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.YOKIN_SHUMOKU_CD_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.YOKIN_SHUMOKU_CD_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.CRECARD_NO_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.CRECARD_COMP_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.TSUCHO_SYMBOL_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.TSUCHO_NO_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.HKTGI_PAYWAY_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, SELECT_INFO);
		tmp_bean.sendMessageString(FUW00115SFConst.UPD_DTM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SOHUS_CITY_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SOHUS_OAZTSU_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SOHUS_AZCHO_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SOHUS_ADRTTM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SOHUS_ADRRM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SOHUS_BNCHIGO_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.SOHUS_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);

		// ■サービスを呼び出す前に、プルダウンをクリアしておく
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.CRECARD_COMP_LST);
		bean_array.clearArray();
		tmp_bean = getDataBeanZero(bean_array);

		// クレジットカード情報に１行目を設定する
		tmp_bean.sendMessageString(FUW00115SFConst.CRECARD_COMP_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, LIST_DEF_VALUE);
		tmp_bean.sendMessageString(FUW00115SFConst.CRECARD_COMP_ALI_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, SELECT_INFO);
		tmp_bean.sendMessageString(FUW00115SFConst.MEMBSTR_NO_15_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.MEMBSTR_NO_12_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		tmp_bean.sendMessageString(FUW00115SFConst.CREDIT_KOKAN_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);

		// 口座振替情報 ANK2318-00-00 START
		// ■共有フォームBean.ＷＥＢ新規
		bean_array = common_info_bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		web_new_bean = getDataBeanZero(bean_array);
		// ■共有フォームBean.支払い方法情報
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);

		payway_info_bean = getDataBeanZero(bean_array);
		//=====================================================================
		// FUIFE211_口座振替契約申込結果(取引検索) API
		//=====================================================================
		//【ANK-4415-00-00】口振請求及びWeb申込システム移行 STEP1
		// 登録結果を取得
		getKhriSmbcfsResultApi(service_form_bean, payway_info_bean);
		//=====================================================================
		outputBusLog("----- FUW00115SFLogic_init開始時 銀行コード、支店コード、通帳記号 START -----");
		outputBusLog("bank_cd = " + payway_info_bean.sendMessageString(CommonInfoCFConst.BANK_CD_15, X31CWebConst.DATABEAN_GET_VALUE));
		outputBusLog("branch_cd = " + payway_info_bean.sendMessageString(CommonInfoCFConst.BRANCH_CD_15, X31CWebConst.DATABEAN_GET_VALUE));
		outputBusLog("tsucho_symbol = " + payway_info_bean.sendMessageString(CommonInfoCFConst.TSUCHO_SYMBOL_15, X31CWebConst.DATABEAN_GET_VALUE));
		outputBusLog("----- FUW00115SFLogic_init開始時 銀行コード、支店コード、通帳記号 END -----");
		// 銀行コードを取得
		String bank_cd = payway_info_bean.sendMessageString(CommonInfoCFConst.BANK_CD_15, X31CWebConst.DATABEAN_GET_VALUE);
		// 金融機関コードにより分岐
		if (JFUStrConst.BANK_CD_POSTAL.equals(bank_cd)) {
			// ゆうちょ銀行の場合
			// 通帳記号の値が空のとき
			if(JFUWebCommon.isNull(payway_info_bean.sendMessageString(CommonInfoCFConst.TSUCHO_SYMBOL_15, X31CWebConst.DATABEAN_GET_VALUE))){
				// 金融機関支店コードを通帳記号にコピー
				cpStr(payway_info_bean, CommonInfoCFConst.TSUCHO_SYMBOL_15, payway_info_bean, CommonInfoCFConst.BRANCH_CD_15);
			}
			// 金融機関支店コードを"001"固定で設定
			payway_info_bean.sendMessageString(CommonInfoCFConst.BRANCH_CD_15, X31CWebConst.DATABEAN_SET_VALUE, "001");
		}
		// 口座振替情報 ANK2318-00-00 END

		//=====================================================================
		// サービス呼出処理
		//=====================================================================

		// 呼出時パラメータのセット
		// クレジットカード事業コードとして 固定値 "2":FTTH事業 をセット
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_JIGYO_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00420_2);

		FUSV0078_FUSV0078OPDBMapper mapper = new FUSV0078_FUSV0078OPDBMapper(); // 設定値格納用マッパ
		HashMap<String, String> paramMap = new HashMap<String, String>(); // ユースケースIDマップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>(); // 入力データマップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>(); // 結果データマップ
		X31SDataBeanAccess[] beans_can = { service_form_bean, common_info_bean }; // 豆缶（IMRC定義の順序に合わせる事）

		// ユースケースIDをセット
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0078);

		String funcCd4FUSV007801SC = getFuncCd4FUSV007801SC(common_info_bean);
		if (funcCd4FUSV007801SC != null)
		{
			mapper.setFUSV007801SC(beans_can, inputMap, funcCd4FUSV007801SC);
		}
		// 上りマッパを使って豆の缶詰内の引数をサービスへ渡す手続き
		mapper.setFUSV007802SC(beans_can, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setFUSV007803SC(beans_can, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setFUSV007804SC(beans_can, inputMap, opeDate, JPCModelConstant.FUNC_CD_2);
		mapper.setFUSV007805SC(beans_can, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setFUSV007806SC(beans_can, inputMap, JPCModelConstant.FUNC_CD_1);

		//サービスをキック
		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// 上記以外の場合システムエラーとし、業務共通例外クラス（JCCBusinessException）をスローする。
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		//=====================================================================
		// (3) サービスフォームBeanに共有フォームBeanの値を復元する
		//=====================================================================
		// ■共有フォームBean.ＷＥＢ新規
		bean_array = common_info_bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		web_new_bean = getDataBeanZero(bean_array);

		// ■共有フォームBean.支払い方法情報
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		payway_info_bean = getDataBeanZero(bean_array);

		// eoモバイル
		X31SDataBeanAccess mobileInfoBean = getMobile(web_new_bean);

		// モバイルコース
		String mobCourse = mobileInfoBean.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);

		// IT2-2012-1790 2012/11/22 Otsuka delete

		// 申込区分
		String mskm_kbn = web_new_bean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);

		boolean hbFlg = false;

		// 2013/02/19 Otsuka
		// 選択サービス（ネット）
		String selectNet = getKeiyakusvcinfo(web_new_bean).sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);

		// 追加申込かつ、光ハイブリッドのみ選択の場合
		if (JFUStrConst.MSKM_KBN_ADD.equals(mskm_kbn)
				&& (JFUStrConst.MOBILE_COURSE_3G_21M_HHB.equals(mobCourse) || JFUStrConst.MOBILE_COURSE_3G_HHB.equals(mobCourse)))
		{
			// IT1-2012-0001846 2012/11/02 h.iwamoto 条件変更
			// 選択サービス（ネット）が選択ではない場合
			if (!JFUStrConst.SELECT_SVC_NET_CHOICE.equals(selectNet)) // 2013/02/19 Otsuka
			{
				hbFlg = true;
				// 支払方法引継ぎ選択に「引き継ぐ」設定する。
				payway_info_bean.sendMessageString(CommonInfoCFConst.PAYWAY_CONTINUE_15, X31CWebConst.DATABEAN_SET_VALUE,
						JFUStrConst.PAYWAY_CONTINUE_CONTINUE);
			}
		}

		// 追加ハイブリッド限定フラグを設定
		service_form_bean.sendMessageBoolean(FUW00115SFConst.ADD_HBB_LIMIT_FLG, X31CWebConst.DATABEAN_SET_VALUE, hbFlg);

		// 共有フォームBean.引継支払情報の請求契約番号を取得
		String seiky_kei_no = payway_info_bean.sendMessageString(CommonInfoCFConst.SEIKY_KEI_NO_15, X31CWebConst.DATABEAN_GET_VALUE);

		// 下りマッパを使ってサービスの取得値を豆の缶詰へ取り込む手続き
		mapper.getFUSV007802SC(beans_can, outputMap);
		mapper.getFUSV007803SC(beans_can, outputMap);
		mapper.getFUSV007801SC(beans_can, outputMap, seiky_kei_no, hbFlg);
		mapper.getFUSV007804SC(beans_can, outputMap);
		mapper.getFUSV007806SC(beans_can, outputMap);

		//=====================================================================
		// (4) サービス処理結果の取得
		//=====================================================================

		// 追加申込かつ、ネット未選択かつ、光ハイブリッド選択の場合
		if (JFUStrConst.MSKM_KBN_ADD.equals(mskm_kbn) && !JFUStrConst.SELECT_SVC_NET_CHOICE.equals(selectNet)
				&& (JFUStrConst.MOBILE_COURSE_3G_21M_HHB.equals(mobCourse) || JFUStrConst.MOBILE_COURSE_3G_HHB.equals(mobCourse)))
		{
			// 引継支払方法リストを作成
			setHktgiPayway(service_form_bean, mobCourse);
		}

		// 引継支払方法の選択肢「窓口払い〜」の編集を行います
		editMadc4HktgiPaywayList(service_form_bean);

		// EKK0491B505の取得件数が2件の場合はラベル表示フラグをONにする。

		// IT1-2012-0001846 2012/11/02 h.iwamoto START
		// 支払引継ぎリストの件数取得
		int hktgiPaywayListCnt = countHktgiPaywayList(service_form_bean);
		boolean labelFlg = false;
		if (hktgiPaywayListCnt == 2)
		{
			labelFlg = true;
		}
		service_form_bean.sendMessageBoolean(FUW00115SFConst.PAYWAY_HKTGI_LABEL_FLG, X31CWebConst.DATABEAN_SET_VALUE, labelFlg);

		// 月年リストを作成
		setMonthYearList(service_form_bean, opeDate);

		// ストレートに転記できる項目↓↓↓
		cpStr(service_form_bean, FUW00115SFConst.PAYWAY_CONTINUE, payway_info_bean, CommonInfoCFConst.PAYWAY_CONTINUE_15);
		cpStr(service_form_bean, FUW00115SFConst.SEIKY_KEI_NO, payway_info_bean, CommonInfoCFConst.SEIKY_KEI_NO_15);

		cpStr(service_form_bean, FUW00115SFConst.PAYWAY, payway_info_bean, CommonInfoCFConst.PAYWAY_15);
		cpStr(service_form_bean, FUW00115SFConst.CRECARD_COMP_CD, payway_info_bean, CommonInfoCFConst.CRECARD_COMP_CD_15);

		String payway = service_form_bean.sendMessageString(FUW00115SFConst.PAYWAY, X31CWebConst.DATABEAN_GET_VALUE);
		String tegakSvcMskmUm = web_new_bean.sendMessageString(CommonInfoCFConst.TEGAK_SVC_MSKM_UM_06, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.MSKM_KBN_NEW.equals(mskm_kbn) && JFUStrConst.CD00002_1.equals(tegakSvcMskmUm) && JFUWebCommon.isNull(payway))
		{
			// 定額サービス申込有の場合、クレジットカード払いをデフォルト選択する
			service_form_bean.sendMessageString(FUW00115SFConst.PAYWAY, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.PAYWAY_CREDIT);
		}

//		cpStr(service_form_bean, FUW00115SFConst.CRECARD_NO1, payway_info_bean, CommonInfoCFConst.CRECARD_NO1_15);
//		cpStr(service_form_bean, FUW00115SFConst.CRECARD_NO2, payway_info_bean, CommonInfoCFConst.CRECARD_NO2_15);
//		cpStr(service_form_bean, FUW00115SFConst.CRECARD_NO3, payway_info_bean, CommonInfoCFConst.CRECARD_NO3_15);
//		cpStr(service_form_bean, FUW00115SFConst.CRECARD_NO4, payway_info_bean, CommonInfoCFConst.CRECARD_NO4_15);
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_NO1, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_NO2, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_NO3, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_NO4, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

		cpStr(service_form_bean, FUW00115SFConst.CUST_NM_KANA_SEI, payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_SEI_15);
		cpStr(service_form_bean, FUW00115SFConst.CUST_NM_KANA_NM, payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_NM_15);
		cpStr(service_form_bean, FUW00115SFConst.CUST_NM_KANA, payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_15);
		cpStr(service_form_bean, FUW00115SFConst.CRECARD_YK_KIGEN_MONTH, payway_info_bean, CommonInfoCFConst.CRECARD_YK_KIGEN_MONTH_15);
		cpStr(service_form_bean, FUW00115SFConst.CRECARD_YK_KIGEN_YEAR, payway_info_bean, CommonInfoCFConst.CRECARD_YK_KIGEN_YEAR_15);
		cpStr(service_form_bean, FUW00115SFConst.TRAT_CD, payway_info_bean, CommonInfoCFConst.TRAT_CD_15);
		cpStr(service_form_bean, FUW00115SFConst.UPD_DTM, payway_info_bean, CommonInfoCFConst.HKTGI_UPD_DTM_SEIKY_KEI_15);

		service_form_bean.sendMessageString(FUW00115SFConst.RESULT_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		service_form_bean.sendMessageString(FUW00115SFConst.ERROR_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		service_form_bean.sendMessageString(FUW00115SFConst.TOKEN, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		service_form_bean.sendMessageString(FUW00115SFConst.CARD_NO_UNDER_4, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		service_form_bean.sendMessageString(FUW00115SFConst.MASKED_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

		// 口座振替情報 ANK2318-00-00 START
		// 口座振替リストの取得
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.KFR_LIST);
		X31SDataBeanAccess kfr_list = getDataBeanZero(bean_array);

		// 口座振替フラグ(0:しない、0以外:するまたは、クレカ）
		String koufuri_flg = payway_info_bean.sendMessageString(CommonInfoCFConst.KOUFURI_FLG_15, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.KOUFURI_NON.equals(koufuri_flg))
		{
			// 口座振替フラグしない場合
			// 料金支払申込書選択フラグ
			service_form_bean.sendMessageBoolean(FUW00115SFConst.YUUSOU_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
			// 口座振替了承フラグ
			service_form_bean.sendMessageBoolean(FUW00115SFConst.KFR_DOI_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
		else
		{
			// 口座振替しない以外の場合
			// 料金支払申込書選択フラグ
			service_form_bean.sendMessageBoolean(FUW00115SFConst.YUUSOU_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			// 口座振替了承フラグ
			service_form_bean.sendMessageBoolean(FUW00115SFConst.KFR_DOI_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		}

		// クリアパスステータスの確認
		String cp_status = payway_info_bean.sendMessageString(CommonInfoCFConst.STATUS_15, X31CWebConst.DATABEAN_GET_VALUE);

		// 金融機関名が取得できな場合は、エラーにする。
		if (CLEARPASS_STATUS_OK.equals(cp_status)
				&& JFUWebCommon.isNull(kfr_list.sendMessageString(FUW00115SFConst.KFR_BANK_NM_08, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			payway_info_bean.sendMessageString(CommonInfoCFConst.STATUS_15, X31CWebConst.DATABEAN_SET_VALUE, CLEARPASS_STATUS_ERROR);
		}

		//押下回数が最大に達したとき
		if(payway_info_bean.sendMessageString(CommonInfoCFConst.KFR_OUKA_COUNT_15, X31CWebConst.DATABEAN_GET_VALUE).equals(KOUFURI_OUKA_MAX)){
			//押下回数を最大回数より上に設定
			payway_info_bean.sendMessageString(CommonInfoCFConst.KFR_OUKA_COUNT_15, X31CWebConst.DATABEAN_SET_VALUE, KOUFURI_OUKA_MAX_2);
			// 最大回数押下時に正常終了ではないとき
			if (!CLEARPASS_STATUS_OK.equals(cp_status))
			{
				payway_info_bean.sendMessageString(CommonInfoCFConst.STATUS_15, X31CWebConst.DATABEAN_SET_VALUE, CLEARPASS_STATUS_ERROR);
			}
		}


		// ステータスが正常値("2")の場合のみ処理を行う。
		if (CLEARPASS_STATUS_OK.equals(cp_status))
		{

			// 銀行コードを取得
			bank_cd = payway_info_bean.sendMessageString(CommonInfoCFConst.BANK_CD_15, X31CWebConst.DATABEAN_GET_VALUE);
			// 金融機関コード
			cpStr(kfr_list, FUW00115SFConst.KFR_BANK_CD_08, payway_info_bean, CommonInfoCFConst.BANK_CD_15);
			// 金融機関支店コード
			cpStr(kfr_list, FUW00115SFConst.KFR_BANK_SHITEN_CD_08, payway_info_bean, CommonInfoCFConst.BRANCH_CD_15);
			// 預金種目を取得
			cpStr(kfr_list, FUW00115SFConst.KFR_YOKIN_SHUMOKU_CD_08, payway_info_bean, CommonInfoCFConst.DEPODIT_ITEM_15);
			// 預金種別を設定
			String yokin_syumoku_cd = payway_info_bean.sendMessageString(CommonInfoCFConst.DEPODIT_ITEM_15, X31CWebConst.DATABEAN_GET_VALUE);
			if (JFUStrConst.YOKIN_SYUMOMKU_CD_FUTU.equals(yokin_syumoku_cd))
			{
				// 預金種目コード＝"1"（普通）の場合、"普通"
				kfr_list.sendMessageString(FUW00115SFConst.KFR_YOKIN_SHUMOKU_NM_08, X31CWebConst.DATABEAN_SET_VALUE, YOKIN_SYUMOMKU_NM_FUTU);
			}
			else if (JFUStrConst.YOKIN_SYUMOMKU_CD_TOZA.equals(yokin_syumoku_cd))
			{
				// 預金種目コード＝"1"（普通）の場合、"当座"
				kfr_list.sendMessageString(FUW00115SFConst.KFR_YOKIN_SHUMOKU_NM_08, X31CWebConst.DATABEAN_SET_VALUE, YOKIN_SYUMOMKU_NM_TOZA);
			}
			// 金融機関コードにより分岐
			if (!JFUWebCommon.isNull(bank_cd))
			{
				if (JFUStrConst.BANK_CD_POSTAL.equals(bank_cd))
				{
					// ゆうちょ銀行の場合

					//金融機関名にゆうちょ銀行をセット
					kfr_list.sendMessageString(FUW00115SFConst.KFR_BANK_NM_08, X31CWebConst.DATABEAN_SET_VALUE, YUCHO_BANK_NM);

					// 支払い方法区分
					kfr_list.sendMessageString(FUW00115SFConst.KFR_PAY_WAY_KBN_08, X31CWebConst.DATABEAN_SET_VALUE, KOUFURI_PAY_WAY_YUCHO_KBN);
					// 支払振替支払い方法
					kfr_list.sendMessageString(FUW00115SFConst.KFR_PAY_WAY_08, X31CWebConst.DATABEAN_SET_VALUE, KOZA_PAY_WAY_YUCHO);
					// 通帳記号
					String tutyo_kigo =
							TUTYO_KIGO_HEAD + payway_info_bean.sendMessageString(CommonInfoCFConst.TSUCHO_SYMBOL_15, X31CWebConst.DATABEAN_GET_VALUE)
									+ TUTYO_KIGO_FOOT;
					kfr_list.sendMessageString(FUW00115SFConst.KFR_TSUCHO_SYMBOL_08, X31CWebConst.DATABEAN_SET_VALUE, tutyo_kigo);
					// 通帳番号(マスク処理)
					String tsutyo_no =
							payway_info_bean.sendMessageString(CommonInfoCFConst.ACCOUNT_NUMBER_15, X31CWebConst.DATABEAN_GET_VALUE) + TUTYO_NO_FOOT;
					payway_info_bean.sendMessageString(CommonInfoCFConst.TSUCHO_NO_15, X31CWebConst.DATABEAN_SET_VALUE, tsutyo_no);
					kfr_list.sendMessageString(FUW00115SFConst.KFR_TSUCHO_NO_08, X31CWebConst.DATABEAN_SET_VALUE, JZMFormatForMask
							.maskExcRight4(tsutyo_no));
					// 口座名義人（カナ）
					cpStr(kfr_list, FUW00115SFConst.KFR_KOZA_MEIGIN_KANA_08, payway_info_bean, CommonInfoCFConst.ACCOUNT_HOLDER_15);

				}
				else
				{
					// ゆうちょ銀行以外の場合

					// 支払い方法区分
					kfr_list.sendMessageString(FUW00115SFConst.KFR_PAY_WAY_KBN_08, X31CWebConst.DATABEAN_SET_VALUE, KOUFURI_PAY_WAY_BANK_KBN);
					// 支払振替支払い方法
					kfr_list.sendMessageString(FUW00115SFConst.KFR_PAY_WAY_08, X31CWebConst.DATABEAN_SET_VALUE, KOZA_PAY_WAY_BANK);

					// 口座番号(マスク処理)
					String koza_no = payway_info_bean.sendMessageString(CommonInfoCFConst.ACCOUNT_NUMBER_15, X31CWebConst.DATABEAN_GET_VALUE);
					kfr_list.sendMessageString(FUW00115SFConst.KFR_KOZA_NO_08, X31CWebConst.DATABEAN_SET_VALUE, JZMFormatForMask
							.maskExcRight4(koza_no));
					// 口座名義人（カナ）
					cpStr(kfr_list, FUW00115SFConst.KFR_KOZA_MEIGIN_KANA_08, payway_info_bean, CommonInfoCFConst.ACCOUNT_HOLDER_15);
				}
			}
			else
			{
				// 口座振替なし
				kfr_list.sendMessageString(FUW00115SFConst.KFR_PAY_WAY_KBN_08, X31CWebConst.DATABEAN_SET_VALUE, KOUFURI_PAY_WAY_NON);
			}
		}
		// 口座振替情報 ANK2318-00-00 END

		boolean tvSingleflg = tvSingleCheck(common_info_bean);

// ANK-4570-00-00 MOD START
		boolean campaignFlg = JFUWebCommon.isCamapaignList(web_new_bean, JCCWebCommon.getOpeDate(this, null));
		// FUW00117(登録完了)から遷移してきた場合(テレビ単独(地デジ・BS、WiFi・WiMAX&白ロム) かつ 対象キャンペーンが存在しない場合)
		if (tvSingleflg && !campaignFlg)
// ANK4570-00-00 MOD END
		{
			service_form_bean.sendMessageString(FUW00115SFConst.BACK_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, ZERO);
		}
		else
		// それ以外
		{
			service_form_bean.sendMessageString(FUW00115SFConst.BACK_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, ONE);
		}

// ANK-3062-00-00 DEL START
//		// ●その他情報を取得
//		X31SDataBeanAccess elseInfoBean = getelseInfo(web_new_bean);
//
//		String trat_cd_flg = "";
//
//		// その他情報.取扱店用取扱コードを取得
//		//		String commonTratCd = elseInfoBean.sendMessageString(CommonInfoCFConst.TORITEN_TORIATSUKAI_CD_18, X31CWebConst.DATABEAN_GET_VALUE);
//		// その他情報.取扱店用取扱コード２を取得
//		String commonTratCd2 = elseInfoBean.sendMessageString(CommonInfoCFConst.TORITEN_TORIATSUKAI_CD2_18, X31CWebConst.DATABEAN_GET_VALUE);
//		// 支払い方法情報.取扱コードを取得
//		String trat_cd = payway_info_bean.sendMessageString(CommonInfoCFConst.TRAT_CD_15, X31CWebConst.DATABEAN_GET_VALUE);
//
//		// 支払い方法情報.取扱コードが空の場合
//		if (JFUStrConst.EMPTY.equals(trat_cd) || trat_cd == null)
//		{
//			if (JFUStrConst.EMPTY.equals(commonTratCd2) || commonTratCd2 == null)
//			{
//				// コードなしの通常遷移のため表示
//				trat_cd_flg = ZERO;
//			}
//			else
//			{
//				// コードありの遷移のため非表示
//				trat_cd_flg = ONE;
//			}
//		}
//		/* 2013/01/13 ST2-2013-0000050 Y.Saitou MOD-START */
//		else
//		{
//			// コードなしの通常遷移のため表示
//			trat_cd_flg = ZERO;
//		}
//		/* 2013/01/13 ST2-2013-0000050 Y.Saitou MOD-END */
//
//		service_form_bean.sendMessageString(FUW00115SFConst.TRAT_CD_FLG, X31CWebConst.DATABEAN_SET_VALUE, trat_cd_flg);
// ANK-3062-00-00 DEL END

		// 転記時にワンクッション必要な項目↓↓↓

		// ○カード名義人選択
		String meiginin_select_flag = "";
		Object is_same = payway_info_bean.sendMessageObject(CommonInfoCFConst.CUST_NM_SBT_SAME_15, X31CWebConst.DATABEAN_GET_VALUE);
		Object is_diff = payway_info_bean.sendMessageObject(CommonInfoCFConst.CUST_NM_SBT_DIFF_15, X31CWebConst.DATABEAN_GET_VALUE);

		// 共有フォームBeanのクレジット・名義人種別（契約者と同じ）  が "1" の場合は "0"
		// 共有フォームBeanのクレジット・名義人種別（契約者と異なる）が "1" の場合は "1"
		// 上記以外は ブランク"" として非選択状態とする
		meiginin_select_flag = MEIGININ_SBT_UNKNOWN;
		meiginin_select_flag = ((is_same != null) && (SAME_YES.equals(is_same.toString()))) ? (MEIGININ_SBT_SAME) : (meiginin_select_flag);
		meiginin_select_flag = ((is_diff != null) && (DIFF_YES.equals(is_diff.toString()))) ? (MEIGININ_SBT_DIFF) : (meiginin_select_flag);
		service_form_bean.sendMessageString(FUW00115SFConst.CUST_NM_SLCT, X31CWebConst.DATABEAN_SET_VALUE, meiginin_select_flag);

		// ○クレジットカード名義人同意
		Object meigin_doi_obj = null;
		boolean meigin_doi_flag = false;

		// 共有フォームBeanの名義人同意が String であるため boolean に変更
		meigin_doi_obj = payway_info_bean.sendMessageObject(CommonInfoCFConst.CRECARD_MEIGIN_DOI_15, X31CWebConst.DATABEAN_GET_VALUE);
		meigin_doi_flag = (meigin_doi_obj != null) && (DOI_OK.equals(meigin_doi_obj.toString()));
		service_form_bean.sendMessageBoolean(FUW00115SFConst.CRECARD_MEIGIN_DOI, X31CWebConst.DATABEAN_SET_VALUE, meigin_doi_flag);

		// 窓口払いフラグ
		String mdgcPayFlg = payway_info_bean.sendMessageString(CommonInfoCFConst.MDGC_PAY_FLG_15, X31CWebConst.DATABEAN_GET_VALUE);
		service_form_bean.sendMessageBoolean(FUW00115SFConst.MDGC_DOI_FLG, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MDGC_PAY_FLG_MDGC
				.equals(mdgcPayFlg));

		// 引継支払方法リストの選択インデックスを得ます
		setHktgiPaywayIndex(service_form_bean, payway_info_bean);

		// クレジット会社名リストの選択インデックスを得ます
		setCardCompListIndex(service_form_bean);

		// 月年リストの選択インデックスを得ます
		setMonthYearListIndex(service_form_bean);

		// システム日付を設定
		service_form_bean.sendMessageString(FUW00115SFConst.SYS_DATE, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getSysDate());

		// 初回オーソリ依頼の処理結果コードが"1"の場合
		if (JFUStrConst.CR_RESULTCODE_NG.equals(payway_info_bean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15,
				X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// クレジットカード番号を正しく入力してください。
			JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0400_TW, new String[] { CRECARD_NO }, CRECARD_NUM);

			// 処理結果コードを初期化する。
			payway_info_bean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// 初回オーソリ依頼の処理結果コードが"2"の場合
		if (JFUStrConst.CR_RESULTCODE_NG_2.equals(payway_info_bean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15,
				X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// クレジットカードの有効期限が切れているか、有効期限の入力誤りがあります。正しく入力してください。
			JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1890_TW, CRECARD_EXP_ERR);

			// 処理結果コードを初期化する。
			payway_info_bean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// 初回オーソリ依頼の処理結果コードが"3"の場合
		if (JFUStrConst.CR_RESULTCODE_NG_3.equals(payway_info_bean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15,
				X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 現在、お申し込みを受け付けできません
			//JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1870_CE, CRECARD_COM);
			JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1870_CE, CRECARD_NUM);

			// 処理結果コードを初期化する。
			payway_info_bean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// 初回オーソリ依頼の処理結果コードが"4"の場合
		if (JFUStrConst.CR_RESULTCODE_NG_4.equals(payway_info_bean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15,
				X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// ご利用いただけないクレジットカードです。
			//JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1880_TW, CRECARD_COM);
			JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1880_TW, CRECARD_NUM);

			// 処理結果コードを初期化する。
			payway_info_bean.sendMessageString(CommonInfoCFConst.CR_RESULTCODE_15, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// 申込受付実績登録部品実行
		JFUWebCommon.executeWebMskmUkJskAdd(this);

		outputBusLog("----- FUW00115SFLogic_init終了時 銀行コード、支店コード、通帳記号 START -----");
		outputBusLog("bank_cd = " + payway_info_bean.sendMessageString(CommonInfoCFConst.BANK_CD_15, X31CWebConst.DATABEAN_GET_VALUE));
		outputBusLog("branch_cd = " + payway_info_bean.sendMessageString(CommonInfoCFConst.BRANCH_CD_15, X31CWebConst.DATABEAN_GET_VALUE));
		outputBusLog("tsucho_symbol = " + payway_info_bean.sendMessageString(CommonInfoCFConst.TSUCHO_SYMBOL_15, X31CWebConst.DATABEAN_GET_VALUE));
		outputBusLog("----- FUW00115SFLogic_init終了時 銀行コード、支店コード、通帳記号 END -----");

		return true;
	}

	/**
	 * FUSV007801SCの機能コードを共有ーフォームBeanの状態により決定し返します。
	 *
	 * <br>
	 * @param commonInfo 共有ーフォームBean
	 * @return 決定した機能コード
	 */
	private String getFuncCd4FUSV007801SC(X31SDataBeanAccess commonInfo)
	{
		X31SDataBeanAccess web_new_bean = getWebInfo(commonInfo);
		X31SDataBeanAccess keiyakusha_info = getKeiyakushaInfo(web_new_bean);

		String mskm_kbn = web_new_bean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);
		String kiin_sbt = keiyakusha_info.sendMessageString(CommonInfoCFConst.KIIN_SBT_09, X31CWebConst.DATABEAN_GET_VALUE);

		// 追加申込でない または マスタ会員でない場合は機能コードをnullで返す。
		if (!JFUStrConst.MSKM_KBN_ADD.equals(mskm_kbn) || !JFUStrConst.KIIN_SBT_MASTER.equals(kiin_sbt))
		{
			return null;
		}

		String kaisenSelect = web_new_bean.sendMessageString(CommonInfoCFConst.KAISEN_SELECT_18, X31CWebConst.DATABEAN_GET_VALUE);
		// IT2-2012-1790 2012/11/22 Otsuka start
		String transferPtn = getRedirectInfo(web_new_bean).sendMessageString(CommonInfoCFConst.NAVIGATOR_PTN_17, X31CWebConst.DATABEAN_GET_VALUE);

		// 現在の回線に追加（：NOT（新しい回線に追加）かつNOT（モバイル単独））の場合は機能コード２を返す。
		if (!JFUStrConst.KAISEN_SELECT_ADD_NEW_PLACE.equals(kaisenSelect) && !JFUStrConst.NAVI_PTN_MOBILE_SNGL.equals(transferPtn))
		{
			return JPCModelConstant.FUNC_CD_2;
		}
		// IT2-2012-1790 2012/11/22 Otsuka end
		return JPCModelConstant.FUNC_CD_1;
	}

	/**
	 * 遷移処理（次へ）
	 * @return boolean 遷移可不可了ステータス
	 * @throws Exception
	 */
	public boolean next() throws Exception
	{
		X31SDataBeanAccess common_info_bean = null; // 共有フォームBean全体へのアクセサ
		X31SDataBeanAccess web_new_bean = null; // 共有フォームBeanのＷＥＢ新規以下へのアクセサ
		X31SDataBeanAccess payway_info_bean = null; // 共有フォームBeanの支払い方法情報以下へのアクセサ
		X31SDataBeanAccess service_form_bean = null; // サービスフォームBeanへのアクセサ
		X31SDataBeanAccessArray bean_array = null; // 一時受け皿
		boolean result = true;

		common_info_bean = getCommonInfoBean();
		//=====================================================================
		// 運用日付の設定
		//=====================================================================
		setFuOpedate(common_info_bean);

		// ■共有フォームBean.ＷＥＢ新規
		bean_array = common_info_bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		web_new_bean = getDataBeanZero(bean_array);

		// ■共有フォームBean.支払い方法情報
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		payway_info_bean = getDataBeanZero(bean_array);

		// ■サービスフォームBean
		service_form_bean = getServiceFormBean();

		//=====================================================================
		// (1) サービスインターフェイスパラメータの設定
		// (2) サービ呼出処理
		// (3) サービス処理結果の取得
		// (4) 引継情報の作成
		//=====================================================================

		result = subNextAndBackKakunin(web_new_bean, payway_info_bean, service_form_bean);

		//=====================================================================
		// (5) 遷移先画面の設定
		//=====================================================================

		// エラーがなければお支払い方法確認画面へ遷移します
		if (result)
		{
			// ■共有フォームBean.リダイレクト情報
			bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO);
			X31SDataBeanAccess redirect_info_bean = getDataBeanZero(bean_array);

			// IT2-2012-1790 2012/11/22 Otsuka
			Object seni_pattern_obj = redirect_info_bean.sendMessageObject(CommonInfoCFConst.NAVIGATOR_PTN_17, X31CWebConst.DATABEAN_GET_VALUE);

			String seni_pattern = (seni_pattern_obj != null) ? (seni_pattern_obj.toString()) : (JFUStrConst.EMPTY);

			// 共有フォームBean.ナビゲータパターンが"3"：モバイル単独申込の場合
			if (JFUStrConst.NAVI_PTN_MOBILE_SNGL.equals(seni_pattern)) // IT2-2012-1790 2012/11/22 Otsuka
			{
				// FUW00125 eoモバイル申込内容確認画面に遷移する
				JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00115, JFUScreenConst.SCREEN_ID_FUW00125);
				common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
						JFUScreenConst.SCREEN_ID_FUW00125);
				common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
						JFUScreenConst.SCREEN_NAME_FUW00125);
			}
			else
			{
				// その他の場合
				// FUW00116 お支払い方法確認画面に遷移する
				JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00115, JFUScreenConst.SCREEN_ID_FUW00116);
				common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
						JFUScreenConst.SCREEN_ID_FUW00116);
				common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
						JFUScreenConst.SCREEN_NAME_FUW00116);
			}
		}

		return true;
	}

	/**
	 * 遷移処理（戻る）
	 * @return boolean 遷移可不可了ステータス
	 * @throws Exception
	 */
	public boolean back() throws Exception
	{
		X31SDataBeanAccess common_info_bean = null; // 共有フォームBean全体へのアクセサ
		X31SDataBeanAccess web_new_bean = null; // 共有フォームBeanのＷＥＢ新規以下へのアクセサ
		X31SDataBeanAccess payway_info_bean = null; // 共有フォームBeanの支払い方法情報以下へのアクセサ
		X31SDataBeanAccess redirect_info_bean = null; // 共有フォームBeanのリダイレクト情報以下へのアクセサ
		X31SDataBeanAccess eo_mobile_bean = null; // 共有フォームBeanのeoモバイル以下へのアクセサ
		X31SDataBeanAccess keiyaku_svc_bean = null; // 共有フォームBeanの契約サービス情報以下へのアクセサ
		X31SDataBeanAccess eo_tv_bean = null; // 共有フォームBeanのｅｏ光テレビ以下へのアクセサ
		X31SDataBeanAccessArray bean_array = null; // 一時受け皿
		boolean result = true;

		common_info_bean = getCommonInfoBean();

		// ■共有フォームBean.ＷＥＢ新規
		bean_array = common_info_bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		web_new_bean = getDataBeanZero(bean_array);

		// ■共有フォームBean.支払い方法情報
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		payway_info_bean = getDataBeanZero(bean_array);

		// ■共有フォームBean.リダイレクト情報
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO);
		redirect_info_bean = getDataBeanZero(bean_array);

		// ■共有フォームBean.eoモバイル
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.EOMOBILE);
		eo_mobile_bean = getDataBeanZero(bean_array);

		// ■共有フォームBean.契約サービス情報
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		keiyaku_svc_bean = getDataBeanZero(bean_array);

		// ■共有フォームBean.ｅｏ光テレビ
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.EOTV);
		eo_tv_bean = getDataBeanZero(bean_array);

		//=====================================================================
		// (1) 引継情報の作成
		//=====================================================================

		web_new_bean.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.SCREEN_MODE_DEF); // 通常遷移

		clStr(payway_info_bean, CommonInfoCFConst.PAYWAY_CONTINUE_15);
		clStr(payway_info_bean, CommonInfoCFConst.HKTGI_SVC_KEI_NO_15);
		clStr(payway_info_bean, CommonInfoCFConst.PAYWAY_15);
		clStr(payway_info_bean, CommonInfoCFConst.HKTGI_PAYWAY_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_COMP_CD_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO1_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO2_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO3_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO4_15);
		clStr(payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_SEI_15);
		clStr(payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_NM_15);
		clStr(payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_YK_KIGEN_MONTH_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_YK_KIGEN_YEAR_15);
		clStr(payway_info_bean, CommonInfoCFConst.TRAT_CD_15);
		clStr(payway_info_bean, CommonInfoCFConst.HKTGI_PAYWAY_15);
		clStr(payway_info_bean, CommonInfoCFConst.HKTGI_SEIKY_KEI_NO_15);
		clStr(payway_info_bean, CommonInfoCFConst.HKTGI_UPD_DTM_SEIKY_KEI_15);
		clStr(payway_info_bean, CommonInfoCFConst.MDGC_PAY_FLG_15);
		clStr(payway_info_bean, CommonInfoCFConst.CR_RESULTCODE_15);
		clStr(payway_info_bean, CommonInfoCFConst.TOKEN_15);
		clStr(payway_info_bean, CommonInfoCFConst.CARD_NO_UNDER_4_15);
		clStr(payway_info_bean, CommonInfoCFConst.MASKED_CARD_NO_15);

		clStr(payway_info_bean, CommonInfoCFConst.BANK_CD_15);
		clStr(payway_info_bean, CommonInfoCFConst.BRANCH_CD_15);
		clStr(payway_info_bean, CommonInfoCFConst.DEPODIT_ITEM_15);
		clStr(payway_info_bean, CommonInfoCFConst.ACCOUNT_NUMBER_15);
		clStr(payway_info_bean, CommonInfoCFConst.ACCOUNT_HOLDER_15);
		clStr(payway_info_bean, CommonInfoCFConst.STATUS_15);
		clStr(payway_info_bean, CommonInfoCFConst.ADD_INFO_15);
		clStr(payway_info_bean, CommonInfoCFConst.CK_15);
		clStr(payway_info_bean, CommonInfoCFConst.KOUFURI_FLG_15);
		clStr(payway_info_bean, CommonInfoCFConst.BANK_NM_15);
		clStr(payway_info_bean, CommonInfoCFConst.BANK_KANA_15);
		clStr(payway_info_bean, CommonInfoCFConst.BANK_SHITEN_NM_15);
		clStr(payway_info_bean, CommonInfoCFConst.BANK_SHITEN_KANA_15);
		clStr(payway_info_bean, CommonInfoCFConst.TSUCHO_SYMBOL_15);
		clStr(payway_info_bean, CommonInfoCFConst.TSUCHO_NO_15);
		clStr(payway_info_bean, CommonInfoCFConst.DEPODIT_ITEM_NM_15);
		clStr(payway_info_bean, CommonInfoCFConst.PAYWAY_NM_15);
		clStr(payway_info_bean, CommonInfoCFConst.SMBCFS_BILL_NO_15);

		payway_info_bean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_SAME_15, X31CWebConst.DATABEAN_SET_VALUE, SAME_UNKNOWN);
		payway_info_bean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_DIFF_15, X31CWebConst.DATABEAN_SET_VALUE, DIFF_UNKNOWN);
		payway_info_bean.sendMessageString(CommonInfoCFConst.CRECARD_MEIGIN_DOI_15, X31CWebConst.DATABEAN_SET_VALUE, DOI_UNKNOWN);

		//  トークン取得回数が最大値の場合、-1しておく（次回本画面に遷移した際に、次へボタン押下までは支払方法変更でエラーを表示させないため）
		String tokenGetCnt = payway_info_bean.sendMessageString(CommonInfoCFConst.TOKEN_GET_CNT_15, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JFUWebCommon.isNull(tokenGetCnt) && TOKEN_GET_CNT_MAX.equals(tokenGetCnt))
		{
			int cntNum = Integer.parseInt(TOKEN_GET_CNT_MAX);
			tokenGetCnt = String.valueOf(cntNum - 1);
			payway_info_bean.sendMessageString(CommonInfoCFConst.TOKEN_GET_CNT_15, X31CWebConst.DATABEAN_SET_VALUE, tokenGetCnt);
		}

		//=====================================================================
		// (2) 遷移先画面の設定
		//=====================================================================
		Object seni_pattern_obj = null;
		Object mobile_course_obj = null;
		String seni_pattern = "";
		String mobile_course = "";

		// IT2-2012-1790 2012/11/22 Otsuka
		seni_pattern_obj = redirect_info_bean.sendMessageObject(CommonInfoCFConst.NAVIGATOR_PTN_17, X31CWebConst.DATABEAN_GET_VALUE);
		mobile_course_obj = eo_mobile_bean.sendMessageObject(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);

		seni_pattern = (seni_pattern_obj != null) ? (seni_pattern_obj.toString()) : (JFUStrConst.EMPTY);
		mobile_course = (mobile_course_obj != null) ? (mobile_course_obj.toString()) : (JFUStrConst.EMPTY);

		// 申込区分
		String mskm_kbn = web_new_bean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択サービス(ネット)
		String selSvcNet = keiyaku_svc_bean.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(電話)
		String selSvcTel = keiyaku_svc_bean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択サービス(テレビ)
		String selSvcTv = keiyaku_svc_bean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		// ＷｉＭＡＸＲＯＭ
		String redWimaxrom = redirect_info_bean.sendMessageString(CommonInfoCFConst.RED_WIMAXROM_17, X31CWebConst.DATABEAN_GET_VALUE);
		// テレビコース（ｅｏ光テレビ入力）
		String tvCrs = eo_tv_bean.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE);

		// エラーがなければ条件に合った画面へ遷移します
		if (result)
		{
			boolean mobileFlg = false;

			if (JFUStrConst.NAVI_PTN_MOBILE_SNGL.equals(seni_pattern))
			{
				// モバイル単独申込の場合

				// IT2-2012-1790 2012/11/22 Otsuka
				// eoモバイル機器送付先入力画面に遷移するか判定
				if (JFUStrConst.MOBILE_COURSE_3G_7_2M.equals(mobile_course)
						|| JFUStrConst.MOBILE_COURSE_3G_21M.equals(mobile_course)
						|| (JFUStrConst.MOBILE_COURSE_WIMAX.equals(mobile_course) && JFUStrConst.WIMAXROM_BLACK.equals(redirect_info_bean
								.sendMessageString(CommonInfoCFConst.RED_WIMAXROM_17, X31CWebConst.DATABEAN_GET_VALUE))))
				{
					mobileFlg = true;
				}
				if (JFUStrConst.MOBILE_COURSE_3G_HHB.equals(mobile_course) || JFUStrConst.MOBILE_COURSE_3G_21M_HHB.equals(mobile_course))
				{
					mobileFlg = true;
				}

				if (mobileFlg)
				{
					// (a)共有フォームBean.モバイルコース選択情報が "3" (3G 7.2) or  "4" (3G 21) or "5" (WiMAX) &WiMAXROMが黒ロム
					//    or "6" (3G 7.2M光ハイブリッド)or "7" (3G 21M光ハイブリッド)の場合
					// ⇒ eoモバイル機器送付先入力
					JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00115, JFUScreenConst.SCREEN_ID_FUW00124);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_ID_FUW00124);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_NAME_FUW00124);
				}
				else
				{
					// (b)(a)以外の場合 ⇒ ご利用場所入力画面
					JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00115, JFUScreenConst.SCREEN_ID_FUW00102);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_ID_FUW00102);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_NAME_FUW00102);
				}
			}
			else
			{
				// モバイル単独申込以外の場合

				// eoモバイル機器送付先入力画面に遷移するか判定
				if (JFUStrConst.MOBILE_COURSE_3G_7_2M.equals(mobile_course) || JFUStrConst.MOBILE_COURSE_3G_21M.equals(mobile_course)
						|| (JFUStrConst.MOBILE_COURSE_WIMAX.equals(mobile_course) && JFUStrConst.WIMAXROM_BLACK.equals(redWimaxrom)))
				{
					mobileFlg = true;
				}
				if (JFUStrConst.MOBILE_COURSE_3G_HHB.equals(mobile_course) || JFUStrConst.MOBILE_COURSE_3G_21M_HHB.equals(mobile_course))
				{
					mobileFlg = true;
				}
// ANK-3473-00-00 ADD START
				// 選択可能キャンペーンリスト存在フラグ
// ANK-3642-00-00 MOD START
				Boolean campaignFlg = JFUWebCommon.isCamapaignList(web_new_bean, JCCWebCommon.getOpeDate(this, null));
// ANK-3642-00-00 MOD END
				if (campaignFlg)
				{
					JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00115, JFUScreenConst.SCREEN_ID_FUW00166);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_ID_FUW00166);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_NAME_FUW00166);
				}
				else if (mobileFlg)
//				if(mobileFlg)
// ANK-3473-00-00 ADD END
				{
					// 3G7.2M、3G7.2MH、3G21M、3G42MH、WIMAX(黒ロム)：eoモバイル機器送付先入力画面
					JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00115, JFUScreenConst.SCREEN_ID_FUW00124);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_ID_FUW00124);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_NAME_FUW00124);
				}
				else if(JFUStrConst.SELECT_SVC_CHOICE.equals(selSvcTv) && JFUStrConst.EO_TV_COURSE_BASIC.equals(tvCrs))
				{
					// テレビ選択あり(HDコース)：eo光テレビオプション選択画面
					JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00115, JFUScreenConst.SCREEN_ID_FUW00120);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_ID_FUW00120);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_NAME_FUW00120);
				}
				else if(JFUStrConst.SELECT_SVC_CHOICE.equals(selSvcTel))
				{
					// 電話選択あり：eo光電話オプション選択画面
					JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00115, JFUScreenConst.SCREEN_ID_FUW00119);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_ID_FUW00119);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_NAME_FUW00119);
				}
				else if(JFUStrConst.SELECT_SVC_CHOICE.equals(selSvcNet))
				{
					// ネット選択あり：eo光ネットオプション選択画面
					JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00115, JFUScreenConst.SCREEN_ID_FUW00118);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_ID_FUW00118);
					common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
							JFUScreenConst.SCREEN_NAME_FUW00118);
				}
			}
		}

		return true;
	}

	/**
	 * 遷移処理（確認画面に戻る）
	 * @return boolean 遷移可不可了ステータス
	 * @throws Exception
	 */
	public boolean backKakunin() throws Exception
	{
		X31SDataBeanAccess common_info_bean = null; // 共有フォームBean全体へのアクセサ
		X31SDataBeanAccess web_new_bean = null; // 共有フォームBeanのＷＥＢ新規以下へのアクセサ
		X31SDataBeanAccess payway_info_bean = null; // 共有フォームBeanの支払い方法情報以下へのアクセサ
		X31SDataBeanAccess service_form_bean = null; // サービスフォームBeanへのアクセサ
		X31SDataBeanAccessArray bean_array = null; // 一時受け皿
		boolean result = true;

		common_info_bean = getCommonInfoBean();

		// ■共有フォームBean.ＷＥＢ新規
		bean_array = common_info_bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		web_new_bean = getDataBeanZero(bean_array);

		// ■共有フォームBean.支払い方法情報
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		payway_info_bean = getDataBeanZero(bean_array);

		// ■サービスフォームBean
		service_form_bean = getServiceFormBean();

		//=====================================================================
		// (1) サービスインターフェイスパラメータの設定
		// (2) サービ呼出処理
		// (3) サービス処理結果の取得
		// (4) 引継情報の作成
		//=====================================================================

		result = subNextAndBackKakunin(web_new_bean, payway_info_bean, service_form_bean);

		//=====================================================================
		// (5) 遷移先画面の設定
		//=====================================================================

		// エラーがなければeoモバイル申込内容確認画面へ遷移します
		if (result)
		{
			// FUW00125 eoモバイル申込内容確認画面に遷移する
			JCCWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00115, JFUScreenConst.SCREEN_ID_FUW00125);
			common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00125);
			common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JFUScreenConst.SCREEN_NAME_FUW00125);
		}

		return true;
	}

	/**
	 * 口座振替受付画面へ遷移（リダイレクト）
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean kfrMsk() throws Exception
	{
		X31SDataBeanAccess common_info_bean = null; // 共有フォームBean全体へのアクセサ
		X31SDataBeanAccess web_new_bean = null; // 共有フォームBeanのＷＥＢ新規以下へのアクセサ
		X31SDataBeanAccess payway_info_bean = null; // 共有フォームBeanの支払い方法情報以下へのアクセサ
		X31SDataBeanAccess service_form_bean = null; // サービスフォームBeanへのアクセサ
		X31SDataBeanAccessArray bean_array = null; // 一時受け皿

		// ■共有フォームBean
		common_info_bean = getCommonInfoBean();

		// ■共有フォームBean.ＷＥＢ新規
		bean_array = common_info_bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		web_new_bean = getDataBeanZero(bean_array);

		// ■共有フォームBean.支払い方法情報
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		payway_info_bean = getDataBeanZero(bean_array);

		// ■サービスフォームBean
		service_form_bean = getServiceFormBean();

		// 引継情報の作成（支払い方法引継ぎ）
		cpStr(payway_info_bean, CommonInfoCFConst.PAYWAY_CONTINUE_15, service_form_bean, FUW00115SFConst.PAYWAY_CONTINUE);

		// 引継情報の作成
		cpStr(payway_info_bean, CommonInfoCFConst.PAYWAY_15, service_form_bean, FUW00115SFConst.PAYWAY);

//【ANK-4415-00-00】口振請求及びWeb申込システム移行 STEP1 start ------------------------------------------------------------------------
		//=====================================================================
		// (1) サービスインターフェイスパラメータの設定
		//=====================================================================
		FUSV0372_FUSV0372OPDBMapper mapper = new FUSV0372_FUSV0372OPDBMapper(); // 口座振替ＳＭＢＣＦＳ顧客番号採番
		HashMap<String, String> paramMap = new HashMap<String, String>(); // ユースケースIDマップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>(); // 入力データマップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>(); // 結果データマップ
		X31SDataBeanAccess[] beans_can = { service_form_bean, getCommonInfoBean() };

		// ユースケースIDをセット
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0372);
		// パラメータ設定
		mapper.setFUSV037201SC(beans_can, inputMap, JPCModelConstant.FUNC_CD_1);

		//=====================================================================
		// (2) サービス呼出処理
		//=====================================================================
		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (X31SRuntimeException ex)
		{
			// 採番不可（通常はありえない）
			return false;
		}
		String smbcfs_bill_no = mapper.getFUSV037201SC(beans_can, outputMap);

		// ■ＳＭＢＣＦＳの口振画面遷移前に呼出回数のカウントを行う。（FUW00144から移動）
		String sysid = web_new_bean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE);
		// SYSIDを英数字を大文字に変換
		String sysidUpper = sysid.toUpperCase();
		// 現在の押下回数を取得
		String pushCnt = payway_info_bean.sendMessageString(CommonInfoCFConst.KFR_OUKA_COUNT_15, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUWebCommon.isNull(pushCnt))
		{
			pushCnt = "0";
		}
		// カウントアップ
		pushCnt = String.valueOf(Long.valueOf(pushCnt) + 1);
		// 現在の押下回数を設定
		payway_info_bean.sendMessageString(CommonInfoCFConst.KFR_OUKA_COUNT_15, X31CWebConst.DATABEAN_SET_VALUE, pushCnt);
		// トークン取得回数
		String tokenGetCnt = payway_info_bean.sendMessageString(CommonInfoCFConst.TOKEN_GET_CNT_15, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUWebCommon.isNull(tokenGetCnt))
		{
			tokenGetCnt = "0";
		}
		// 付加情報
		String add_info =
				sysidUpper + JFUStrConst.HALF_SPACE + JFUWebCommon.getApplicationConst(JFUStrConst.FU_KFR_SVKEI_NUMBER) + JFUStrConst.HALF_SPACE
						+ pushCnt + JFUStrConst.HALF_SPACE + this.getSessionId() + JFUStrConst.HALF_SPACE + tokenGetCnt;
		payway_info_bean.sendMessageString(CommonInfoCFConst.ADD_INFO_15, X31CWebConst.DATABEAN_SET_VALUE, add_info);

		payway_info_bean.sendMessageString(CommonInfoCFConst.STATUS_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		
		//顧客番号の採番号
		payway_info_bean.sendMessageString(CommonInfoCFConst.SMBCFS_BILL_NO_15, X31CWebConst.DATABEAN_SET_VALUE, smbcfs_bill_no);

//【ANK-4415-00-00】口振請求及びWeb申込システム移行 STEP1 end ------------------------------------------------------------------------

		// 次画面IDの設定
		// 遷移先画面ＩＤ
		common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00144);
		// 遷移先画面名称
		common_info_bean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00144);

		return true;
	}

	/**
	 * サービス呼び出しの共通処理部位
	 * @param web_new_bean      共有フォームBean.ＷＥＢ新規
	 * @param payway_info_bean  共有フォームBean.支払い方法情報
	 * @param service_form_bean サービスフォームBean
	 * @return boolean 遷移可不可了ステータス
	 * @throws Exception
	 */
	private boolean subNextAndBackKakunin(X31SDataBeanAccess web_new_bean, X31SDataBeanAccess payway_info_bean, X31SDataBeanAccess service_form_bean)
			throws Exception
	{
		boolean result = true;

		// ●その他情報を取得
		X31SDataBeanAccess elseInfoBean = getelseInfo(web_new_bean);

		// 支払方法引継ぎ選択を取得
		String hktgiPayWay = service_form_bean.sendMessageString(FUW00115SFConst.PAYWAY_CONTINUE, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込区分
		String mskm_kbn = web_new_bean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込マンションタイプ
		String mskm_mns_type = web_new_bean.sendMessageString(CommonInfoCFConst.MSKM_MNS_TYPE_06, X31CWebConst.DATABEAN_GET_VALUE);

		String payway_ginchocre = "";

		// 支払方法を引き継がないとき または 新規申込の場合、支払方法選択を取得
		if (JFUStrConst.PAYWAY_CONTINUE_NON.equals(hktgiPayWay) || JFUStrConst.MSKM_KBN_NEW.equals(mskm_kbn))
		{
			// 支払方法選択を取得
			payway_ginchocre = service_form_bean.sendMessageString(FUW00115SFConst.PAYWAY, X31CWebConst.DATABEAN_GET_VALUE);
		}

		// ■共有フォームBean.リダイレクト情報
		X31SDataBeanAccessArray bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO);
		X31SDataBeanAccess redirect_info_bean = getDataBeanZero(bean_array);

		// IT2-2012-1790 2012/11/22 Otsuka
		Object seni_pattern_obj = redirect_info_bean.sendMessageObject(CommonInfoCFConst.NAVIGATOR_PTN_17, X31CWebConst.DATABEAN_GET_VALUE);

		// 遷移パターン
		String seni_pattern = (seni_pattern_obj != null) ? (seni_pattern_obj.toString()) : (JFUStrConst.EMPTY);

		// モバイル単独の制御
		String mobileSingle = "";

		// モバイル単独の場合
		if (JFUStrConst.NAVI_PTN_MOBILE_SNGL.equals(seni_pattern))
		{
			if (JFUStrConst.MSKM_KBN_NEW.equals(mskm_kbn))
			{
				mobileSingle = MOBILE_SINGLE_NEW;
			}
			else if (JFUStrConst.MSKM_KBN_ADD.equals(mskm_kbn))
			{
				// 支払い方法を引き継ぐ場合
				if (hktgiPayWay != null && JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(hktgiPayWay))
				{
					mobileSingle = MOBILE_SINGLE_ADD_HIKITSUGI;
				}
				else if (!(hktgiPayWay != null && JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(hktgiPayWay)))
				{
					mobileSingle = MOBILE_SINGLE_ADD_CREDIT;
				}
			}
		}

		// 遷移パターンがモバイル単独かつ新規申込　または　モバイル単独かつ追加申込かつ支払い方法を引き継がない場合
		if (MOBILE_SINGLE_NEW.equals(mobileSingle) || MOBILE_SINGLE_ADD_CREDIT.equals(mobileSingle))
		{
			// 支払方法選択 = クレジット(2)をセットする
			payway_ginchocre =
					service_form_bean.sendMessageString(FUW00115SFConst.PAYWAY, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.PAYWAY_CREDIT);
		}

		// 支払方法引継ぎ選択が引き継ぐでなく、 支払方法がクレジットまたは、モバイル単独申込の場合
		if ((JFUStrConst.PAYWAY_CREDIT.equals(payway_ginchocre)))
		{
			//  トークン取得回数をカウントアップ
			String tokenGetCnt = payway_info_bean.sendMessageString(CommonInfoCFConst.TOKEN_GET_CNT_15, X31CWebConst.DATABEAN_GET_VALUE);
			if (JFUWebCommon.isNull(tokenGetCnt))
			{
				tokenGetCnt = "1";
			}
			else
			{
				int cntNum = Integer.parseInt(tokenGetCnt);
				tokenGetCnt = String.valueOf(cntNum + 1);
			}
			payway_info_bean.sendMessageString(CommonInfoCFConst.TOKEN_GET_CNT_15, X31CWebConst.DATABEAN_SET_VALUE, tokenGetCnt);

			// トークン取得結果判定
			//if (!chkTokenResult())
			if (!chkTokenResultPaygent())
			{
				outputBusLog("----- FUW00115SFLogic subNextAndBackKakunin トークン取得エラー START -----");

				outputBusLog("sysid     = " + web_new_bean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
				outputBusLog("result_cd = " + service_form_bean.sendMessageString(FUW00115SFConst.RESULT_CD, X31CWebConst.DATABEAN_GET_VALUE));
				//outputBusLog("error_cd  = " + service_form_bean.sendMessageString(FUW00115SFConst.ERROR_CD, X31CWebConst.DATABEAN_GET_VALUE));

				if (JFUWebCommon.isNull(service_form_bean.sendMessageString(FUW00115SFConst.TOKEN, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					outputBusLog("トークンが未設定");
				}
				if (JFUWebCommon.isNull(service_form_bean.sendMessageString(FUW00115SFConst.CARD_NO_UNDER_4, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					outputBusLog("マスクされたカード番号が未設定");
				}

				outputBusLog("----- FUW00115SFLogic subNextAndBackKakunin トークン取得エラー END -----");

				return false;
			}
		}

		// 次画面へ(引継支払方法名称/クレジット会社コード)名称を引き継ぐため項目クリアします。
		clStr(payway_info_bean, CommonInfoCFConst.HKTGI_PAYWAY_15);

		// 新規申込のときは処理を行わない。
		if (!(JFUStrConst.MSKM_KBN_NEW.equals(mskm_kbn)))
		{
			// 選択プルダウンの値を実効値に変換しておく
			getHktgiPaywayListValue(service_form_bean, payway_info_bean); //条件が合えば請求方法コード名称の引き継ぎも行う
		}
		getCardCompListValue(service_form_bean, payway_info_bean, payway_ginchocre); //条件が合えばクレジット会社コード名称の引き継ぎも行う

		String month_idx = service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_MONTH, X31CWebConst.DATABEAN_GET_VALUE);
		String year_idx = service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		getMonthYearListValue(service_form_bean);
		String month_val = service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_MONTH, X31CWebConst.DATABEAN_GET_VALUE);
		String year_val = service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_YEAR, X31CWebConst.DATABEAN_GET_VALUE);

		//=====================================================================
		// (1) サービスインターフェイスパラメータの設定
		//=====================================================================
		FUSV0157_FUSV0157OPDBMapper mapper = new FUSV0157_FUSV0157OPDBMapper(); // 設定値格納用マッパ
		HashMap<String, String> paramMap = new HashMap<String, String>(); // ユースケースIDマップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>(); // 入力データマップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>(); // 結果データマップ
		X31SDataBeanAccess[] beans_can = { service_form_bean, getCommonInfoBean() }; // 豆缶（IMRC定義の順序に合わせる事）

		// ユースケースIDをセット
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0157);

		// サービスインターフェイスパラメータの設定
		setInParamFusv0157(web_new_bean, service_form_bean, mobileSingle);

		// マッパを使って豆の缶詰を個別の部品へ渡す手続き
		mapper.setFUSV015701SC(beans_can, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setFUSV015702SC(beans_can, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setFUSV015703SC(beans_can, inputMap, JPCModelConstant.FUNC_CD_2);
		//		mapper.setFUSV015704SC(beans_can, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setFUSV015701CC(beans_can, inputMap, JPCModelConstant.FUNC_CD_1);

		// サービスを呼び出す前に月年リストの実値を選択インデックスに戻しておく
		//（サービスで項目エラーがあると再表示時にインデックスが必要になるため）
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_MONTH, X31CWebConst.DATABEAN_SET_VALUE, month_idx);
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_YEAR, X31CWebConst.DATABEAN_SET_VALUE, year_idx);

		//=====================================================================
		// (2) サービス呼出処理
		//=====================================================================

		//サービスをキック
		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (X31SRuntimeException ex)
		{
			result = false;
		}

		mapper.getFUSV015701SC(beans_can, outputMap);
		//		mapper.getFUSV015704SC(beans_can, outputMap);
		mapper.getFUSV015701CC(beans_can, outputMap);

		// サービスBeanの取扱コードを取得
		String tradCd = service_form_bean.sendMessageString(FUW00115SFConst.TRAT_CD, X31CWebConst.DATABEAN_GET_VALUE);

		// 取扱コードの入力があった場合、取扱コードの存在チェックを行う。
		if (!"".equals(tradCd))
		{
			// ■代理店情報取得
			X31SDataBeanAccessArray agnt_bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.AGNT_INFO);
			X31SDataBeanAccess agnt_info_bean = getDataBeanZero(agnt_bean_array);

			Object obj = agnt_info_bean.sendMessage(FUW00115SFConst.AGNT_CD_05, X31CWebConst.DATABEAN_GET_COUNT);
			int count = 0;
			if (obj != null)
			{
				count = (Integer)obj;
			}

			if (count == 0)
			{
				// 取扱コードの存在チェックエラー表示
				JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0420_TW, new String[] { TRAT_CD, INPUT }, HANDLE_CD);
				result = false;
			}
		}

		// 支払方法がクレジットの場合
		//		if (JFUStrConst.PAYWAY_CREDIT.equals(payway_ginchocre))
		//		{
		//			String authority_stat = service_form_bean.sendMessageString(FUW00115SFConst.CR_RESULTCODE, X31CWebConst.DATABEAN_GET_VALUE);
		//
		//			// 初回オーソリ依頼の処理結果コードの先頭1桁目が"0"の場合
		//			if (authority_stat == null || authority_stat.length() == 0 || !AUTHORITY_FIRST0.equals(authority_stat.substring(0, 1)))
		//			{
		//				// 認証エラー表示
		//				//JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0400_TW, new String[]{CRECARD_NO}, CRECARD_NUM);
		//				//result = false;
		//			}
		//		}

		// モバイル
		X31SDataBeanAccess bnMob = getMobile(web_new_bean);

		// モバイルコース
		String mobCourse = bnMob.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);

		boolean addMmoileHbFlg = false;

		if ((JFUStrConst.MSKM_KBN_ADD.equals(mskm_kbn) && (JFUStrConst.MOBILE_COURSE_3G_HHB.equals(mobCourse) || JFUStrConst.MOBILE_COURSE_3G_21M_HHB
				.equals(mobCourse))))
		{
			addMmoileHbFlg = true;
		}

		// 引継支払方法に入力がある場合、
		// または 追加申込 かつ モバイルコースが「6:3G 7.2M光ハイブリッド」または「7:3G 21M光ハイブリッド」の場合、督促チェックを行う
		if ((hktgiPayWay != null && JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(hktgiPayWay)) || addMmoileHbFlg)
		{
			// ■督促情報取得
			X31SDataBeanAccessArray gen_tokusoku_stat_list = service_form_bean.getDataBeanArray(FUW00115SFConst.GEN_TOKUSOKU_STAT_LIST);
			X31SDataBeanAccess gen_tokusoku_stat_list_bean = getDataBeanZero(gen_tokusoku_stat_list);

			String tokusoku_stat = gen_tokusoku_stat_list_bean.sendMessageString(FUW00115SFConst.TOKUSOKU_STAT_06, X31CWebConst.DATABEAN_GET_VALUE);

			// 督促ステータスが閾値以上の場合はエラー
			if (!JFUWebCommon.isNull(tokusoku_stat)
					&& Integer.parseInt(tokusoku_stat) >= Integer.parseInt(JFUWebCommon.getApplicationConst(THRESHOLD_TOKUSOKU_STAT)))
			{
				JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0660_KW, PAYMENT_METHOD);

				result = false;
			}
		}

		if (!result)
		{
			return result;
		}

		// サービスが正常終了した場合年リストの選択インデックスを実値に再変換する
		//（引継処理で実値が必要なため）
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_MONTH, X31CWebConst.DATABEAN_SET_VALUE, month_val);
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_YEAR, X31CWebConst.DATABEAN_SET_VALUE, year_val);

		//=====================================================================
		// (4) 引継情報の作成
		//=====================================================================

		// いったん全てクリア
		clStr(payway_info_bean, CommonInfoCFConst.PAYWAY_CONTINUE_15);
		clStr(payway_info_bean, CommonInfoCFConst.HKTGI_SVC_KEI_NO_15);
		clStr(payway_info_bean, CommonInfoCFConst.PAYWAY_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_COMP_CD_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO1_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO2_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO3_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO4_15);
		clStr(payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_SEI_15);
		clStr(payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_NM_15);
		clStr(payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_YK_KIGEN_MONTH_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_YK_KIGEN_YEAR_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO_AZKRI_ID_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_SHIKOSAKI_COMP_CD_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO_MASK_15);
		clStr(payway_info_bean, CommonInfoCFConst.TRAT_CD_15);
		clStr(payway_info_bean, CommonInfoCFConst.HKTGI_SEIKY_KEI_NO_15);
		clStr(payway_info_bean, CommonInfoCFConst.HKTGI_UPD_DTM_SEIKY_KEI_15);
		clStr(payway_info_bean, CommonInfoCFConst.MDGC_PAY_FLG_15);
		clStr(payway_info_bean, CommonInfoCFConst.CRECARD_KEI_NO_15);
		clStr(payway_info_bean, CommonInfoCFConst.CR_RESULTCODE_15);
		clStr(payway_info_bean, CommonInfoCFConst.TOKEN_15);
		clStr(payway_info_bean, CommonInfoCFConst.CARD_NO_UNDER_4_15);
		clStr(payway_info_bean, CommonInfoCFConst.MASKED_CARD_NO_15);

		payway_info_bean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_SAME_15, X31CWebConst.DATABEAN_SET_VALUE, SAME_UNKNOWN);
		payway_info_bean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_DIFF_15, X31CWebConst.DATABEAN_SET_VALUE, DIFF_UNKNOWN);
		payway_info_bean.sendMessageString(CommonInfoCFConst.CRECARD_MEIGIN_DOI_15, X31CWebConst.DATABEAN_SET_VALUE, DOI_UNKNOWN);

		// 画面の展開状態によって引き継ぐ項目を選択する
		// 支払方法引継ぎ選択
		String payway_continue = service_form_bean.sendMessageString(FUW00115SFConst.PAYWAY_CONTINUE, X31CWebConst.DATABEAN_GET_VALUE);
		// カード名義人選択
		String cust_nm_slct = service_form_bean.sendMessageString(FUW00115SFConst.CUST_NM_SLCT, X31CWebConst.DATABEAN_GET_VALUE);

		//契約種別  1:個人  2:法人
		String kiyk_sbt = web_new_bean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 契約種別が法人の場合、カード名義人は必ず異なる。
		if (JFUStrConst.KEI_SBT_HOJINCD.equals(kiyk_sbt))
		{
			cust_nm_slct = MEIGININ_SBT_DIFF;
		}

		// 常に引き継ぐ
		web_new_bean.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.SCREEN_MODE_DEF); // 通常遷移
		cpStr(payway_info_bean, CommonInfoCFConst.PAYWAY_CONTINUE_15, service_form_bean, FUW00115SFConst.PAYWAY_CONTINUE);
		cpStr(payway_info_bean, CommonInfoCFConst.TRAT_CD_15, service_form_bean, FUW00115SFConst.TRAT_CD);
		/**
		 * 窓口支払いフラグ
		 */
		boolean doiFlg = service_form_bean.sendMessageBoolean(FUW00115SFConst.MDGC_DOI_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		payway_info_bean.sendMessageString(CommonInfoCFConst.MDGC_PAY_FLG_15, X31CWebConst.DATABEAN_SET_VALUE, doiFlg ? JFUStrConst.MDGC_PAY_FLG_MDGC
				: "");

		// 取扱コードが存在する場合
		if (!"".equals(tradCd))
		{
			// 取扱店用取扱コード２ ← 取扱店用取扱コード
			cpStr(elseInfoBean, CommonInfoCFConst.TORITEN_TORIATSUKAI_CD2_18, elseInfoBean, CommonInfoCFConst.TORITEN_TORIATSUKAI_CD_18);
			// 取扱店用取扱コード ← サービスフォームBean取扱コード
			cpStr(elseInfoBean, CommonInfoCFConst.TORITEN_TORIATSUKAI_CD_18, service_form_bean, FUW00115SFConst.TRAT_CD);
		}

		// 口座振替了承フラグ（初期化）
		service_form_bean.sendMessageBoolean(FUW00115SFConst.KFR_DOI_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		if (JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(payway_continue))
		{
			// 引き継ぐ選択時は引き継ぐ
			cpStr(payway_info_bean, CommonInfoCFConst.HKTGI_SEIKY_KEI_NO_15, service_form_bean, FUW00115SFConst.SEIKY_KEI_NO);

			//---- ST2-2012-0001437 2012/08/06 h.ikeda start ----//
			cpStr(payway_info_bean, CommonInfoCFConst.HKTGI_UPD_DTM_SEIKY_KEI_15, service_form_bean, FUW00115SFConst.UPD_DTM);
			//---- ST2-2012-0001437 2012/08/06 h.ikeda end ----//
		}
		else
		{
			// 引き継がない選択時 または 支払方法引継ぎ選択項目が未設定（新規時で項目自体が無い時）の場合引き継ぐ

			cpStr(payway_info_bean, CommonInfoCFConst.PAYWAY_15, service_form_bean, FUW00115SFConst.PAYWAY);

			// 支払方法がクレジットの場合
			if (JFUStrConst.PAYWAY_CREDIT.equals(payway_ginchocre))
			{
				// クレジットの場合引き継ぐ
				cpStr(payway_info_bean, CommonInfoCFConst.CRECARD_COMP_CD_15, service_form_bean, FUW00115SFConst.CRECARD_COMP_CD);

				//cpStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO1_15, service_form_bean, FUW00115SFConst.CRECARD_NO1);
				//cpStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO2_15, service_form_bean, FUW00115SFConst.CRECARD_NO2);
				//cpStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO3_15, service_form_bean, FUW00115SFConst.CRECARD_NO3);
				//cpStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO4_15, service_form_bean, FUW00115SFConst.CRECARD_NO4);
				payway_info_bean.sendMessageString(CommonInfoCFConst.CRECARD_NO1_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CREDIT_CARD_NO_0000);
				payway_info_bean.sendMessageString(CommonInfoCFConst.CRECARD_NO2_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CREDIT_CARD_NO_0000);
				payway_info_bean.sendMessageString(CommonInfoCFConst.CRECARD_NO3_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CREDIT_CARD_NO_0000);
				cpStr(payway_info_bean, CommonInfoCFConst.CRECARD_NO4_15, service_form_bean, FUW00115SFConst.CARD_NO_UNDER_4);

				cpStr(payway_info_bean, CommonInfoCFConst.CRECARD_YK_KIGEN_MONTH_15, service_form_bean, FUW00115SFConst.CRECARD_YK_KIGEN_MONTH);
				cpStr(payway_info_bean, CommonInfoCFConst.CRECARD_YK_KIGEN_YEAR_15, service_form_bean, FUW00115SFConst.CRECARD_YK_KIGEN_YEAR);
				cpStr(payway_info_bean, CommonInfoCFConst.CRECARD_KEI_NO_15, service_form_bean, FUW00115SFConst.CR_CCID);
				cpStr(payway_info_bean, CommonInfoCFConst.MEMBSTR_NO_15, service_form_bean, FUW00115SFConst.MEMBSTR_NO);
				cpStr(payway_info_bean, CommonInfoCFConst.CRECARD_SHIKOSAKI_COMP_CD_15, service_form_bean, FUW00115SFConst.CREDIT_KOKAN_CD);

				cpStr(payway_info_bean, CommonInfoCFConst.TOKEN_15, service_form_bean, FUW00115SFConst.TOKEN);
				cpStr(payway_info_bean, CommonInfoCFConst.CARD_NO_UNDER_4_15, service_form_bean, FUW00115SFConst.CARD_NO_UNDER_4);
				cpStr(payway_info_bean, CommonInfoCFConst.MASKED_CARD_NO_15, service_form_bean, FUW00115SFConst.MASKED_CARD_NO);

				// 契約種別が法人の場合、名義人種別は必ず異なる。
				if (JFUStrConst.KEI_SBT_HOJINCD.equals(kiyk_sbt))
				{
					payway_info_bean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_SAME_15, X31CWebConst.DATABEAN_SET_VALUE, SAME_UNKNOWN);
					payway_info_bean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_DIFF_15, X31CWebConst.DATABEAN_SET_VALUE, DIFF_YES);
				}
				else
				{
					// ○カード名義人選択 - 転記時にワンクッション必要な項目↓↓↓
					Object meiginin_select_flag = "";
					String is_same_moji = SAME_UNKNOWN;
					String is_diff_moji = DIFF_UNKNOWN;

					// サービスフォームBeanのカード名義人種別の「値」が
					// "0": 契約者と同じ   => 共有フォームBeanのクレジット・名義人種別（契約者と同じ）  の「項目」に 値「"1"」 を設定
					// "1": 契約者と異なる => 共有フォームBeanのクレジット・名義人種別（契約者と異なる）の「項目」に 値「"1"」 を設定
					meiginin_select_flag = service_form_bean.sendMessageString(FUW00115SFConst.CUST_NM_SLCT, X31CWebConst.DATABEAN_GET_VALUE);
					is_same_moji =
							((meiginin_select_flag != null) && (MEIGININ_SBT_SAME.equals(meiginin_select_flag.toString()))) ? (SAME_YES)
									: (SAME_UNKNOWN);
					is_diff_moji =
							((meiginin_select_flag != null) && (MEIGININ_SBT_DIFF.equals(meiginin_select_flag.toString()))) ? (DIFF_YES)
									: (DIFF_UNKNOWN);

					payway_info_bean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_SAME_15, X31CWebConst.DATABEAN_SET_VALUE, is_same_moji);
					payway_info_bean.sendMessageString(CommonInfoCFConst.CUST_NM_SBT_DIFF_15, X31CWebConst.DATABEAN_SET_VALUE, is_diff_moji);
				}

				if (MEIGININ_SBT_DIFF.equals(cust_nm_slct))
				{
					// 異なる場合は入力された名義人名をセット
					if (JFUStrConst.KEI_SBT_KOJINCD.equals(kiyk_sbt))
					{
						// マンションタイプの場合
						if (JFUStrConst.MSKM_MNS_TYPE_MANSION.equals(mskm_mns_type))
						{
							cpStr(payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_15, service_form_bean, FUW00115SFConst.CUST_NM_KANA);
						}
						else
						{
							//個人の場合
							cpStr(payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_SEI_15, service_form_bean, FUW00115SFConst.CUST_NM_KANA_SEI);
							cpStr(payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_NM_15, service_form_bean, FUW00115SFConst.CUST_NM_KANA_NM);
						}
					}
					else if (JFUStrConst.KEI_SBT_HOJINCD.equals(kiyk_sbt))
					{
						//法人の場合
						cpStr(payway_info_bean, CommonInfoCFConst.CUST_NM_KANA_15, service_form_bean, FUW00115SFConst.CUST_NM_KANA);
					}
				}
				else if (MEIGININ_SBT_SAME.equals(cust_nm_slct))
				{
					// 同一の場合契約者名をクレジットカード名義人名にセット
					// 契約者情報のアクセサを取得
					X31SDataBeanAccessArray contract_info = web_new_bean.getDataBeanArray(CommonInfoCFConst.KEIYAKUSHA_INFO); // 契約者情報
					X31SDataBeanAccess contract_infobean = contract_info.getDataBean(0);

					if (JFUStrConst.KEI_SBT_KOJINCD.equals(kiyk_sbt))
					{
						//個人の場合
						//ひらがな→カタカナへの変換
						String kiyksh_hiraganaSei =
								contract_infobean.sendMessageString(CommonInfoCFConst.KSHKN_SEI_09, X31CWebConst.DATABEAN_GET_VALUE);
						String kiyksh_hiraganaMei =
								contract_infobean.sendMessageString(CommonInfoCFConst.KSHKN_NM_09, X31CWebConst.DATABEAN_GET_VALUE);
						String kiyksh_katakanaSei = JFUWebCommon.convFullHiraToFullKataV(kiyksh_hiraganaSei);
						String kiyksh_katakanaMei = JFUWebCommon.convFullHiraToFullKataV(kiyksh_hiraganaMei);
						// 値をセット
						payway_info_bean
								.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_SEI_15, X31CWebConst.DATABEAN_SET_VALUE, kiyksh_katakanaSei);
						payway_info_bean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_NM_15, X31CWebConst.DATABEAN_SET_VALUE, kiyksh_katakanaMei);

					}
					else if (JFUStrConst.KEI_SBT_HOJINCD.equals(kiyk_sbt))
					{
						//法人の場合
						//ひらがな→カタカナへの変換
						String kiyksh_hiraganaMei =
								contract_infobean.sendMessageString(CommonInfoCFConst.DHSKN_NM_09, X31CWebConst.DATABEAN_GET_VALUE);

						String kiyksh_katakanaMei = JFUWebCommon.convFullHiraToFullKataV(kiyksh_hiraganaMei);
						// 値をセット
						payway_info_bean.sendMessageString(CommonInfoCFConst.CUST_NM_KANA_15, X31CWebConst.DATABEAN_SET_VALUE, kiyksh_katakanaMei);
					}
				}

				// ○クレジットカード名義人同意 - 転記時にワンクッション必要な項目↓↓↓
				boolean meigin_doi_flag = false;
				String meigin_doi_moji = "";

				// サービスフォームBeanの名義人同意が boolean であるため String に変更
				meigin_doi_flag = service_form_bean.sendMessageBoolean(FUW00115SFConst.CRECARD_MEIGIN_DOI, X31CWebConst.DATABEAN_GET_VALUE);
				meigin_doi_moji = (meigin_doi_flag) ? (DOI_OK) : (DOI_UNKNOWN);

				payway_info_bean.sendMessageString(CommonInfoCFConst.CRECARD_MEIGIN_DOI_15, X31CWebConst.DATABEAN_SET_VALUE, meigin_doi_moji);
			}
			// 口座振替情報 ANK2318-00-00 START
			else
			// 支払方法が口座振替の場合
			{
				// 口座振替リスト
				X31SDataBeanAccessArray kfr_bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.KFR_LIST);
				X31SDataBeanAccess kfr_list = getDataBeanZero(kfr_bean_array);

				// クリアパスステータスの確認
				String cp_status = payway_info_bean.sendMessageString(CommonInfoCFConst.STATUS_15, X31CWebConst.DATABEAN_GET_VALUE);

// ■"郵送"(次へ)→確認画面(戻る)→口振インターネット(次へ)→確認画面で"郵送"になってしまうため「口座振替了承フラグ(KFR_DOI_FLG)」の設定値を変更
//  （jsでKFR_DOI_FLGが非表示になっていた）
//				// 口座振替了承
//				boolean kfr_doi_flg = service_form_bean.sendMessageBoolean(FUW00115SFConst.KFR_DOI_FLG, X31CWebConst.DATABEAN_GET_VALUE);

				if (CLEARPASS_STATUS_OK.equals(cp_status))
				{
					// 口座振替フラグを「口座振替する」に設定
					payway_info_bean.sendMessageString(CommonInfoCFConst.KOUFURI_FLG_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.KOUFURI_YES);
					// 口座振替了承フラグ
					service_form_bean.sendMessageBoolean(FUW00115SFConst.KFR_DOI_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
				} else {
					// 口座振替フラグを「口座振替しない」に設定
					payway_info_bean.sendMessageString(CommonInfoCFConst.KOUFURI_FLG_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.KOUFURI_NON);
					// 口座振替了承フラグ
					service_form_bean.sendMessageBoolean(FUW00115SFConst.KFR_DOI_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
				}

				if(payway_info_bean.sendMessageString(CommonInfoCFConst.KFR_OUKA_COUNT_15, X31CWebConst.DATABEAN_GET_VALUE).equals(KOUFURI_OUKA_MAX)){
					payway_info_bean.sendMessageString(CommonInfoCFConst.KFR_OUKA_COUNT_15, X31CWebConst.DATABEAN_SET_VALUE, KOUFURI_OUKA_MAX_2);
				}

				cpStr(payway_info_bean, CommonInfoCFConst.BANK_NM_15, kfr_list, FUW00115SFConst.KFR_BANK_NM_08);
				cpStr(payway_info_bean, CommonInfoCFConst.BANK_KANA_15, kfr_list, FUW00115SFConst.KFR_BANK_SHITEN_KANA_08);
				cpStr(payway_info_bean, CommonInfoCFConst.BANK_SHITEN_NM_15, kfr_list, FUW00115SFConst.KFR_BANK_SHITEN_NM_08);
				cpStr(payway_info_bean, CommonInfoCFConst.BANK_SHITEN_KANA_15, kfr_list, FUW00115SFConst.KFR_BANK_SHITEN_KANA_08);

			}
			// 口座振替情報 ANK2318-00-00 END
		}

		return result;
	}

	/**
	 * FUSV0157へのパラメータ設定
	 * @param web_new_bean
	 * @param service_form_bean
	 * @param mobileSingle
	 */
	private void setInParamFusv0157(X31SDataBeanAccess web_new_bean, X31SDataBeanAccess service_form_bean, String mobileSingle)
	{
		// ●請求方法コード
		// 支払い方法情報リストを保持
		X31SDataBeanAccessArray bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.HKTGI_PAYWAY);
		if (bean_array.getCount() == 0)
		{
			bean_array.addDataBean();
		}

		// 支払方法選択（銀行・ゆうちょ／クレジット）
		String payway = service_form_bean.sendMessageString(FUW00115SFConst.PAYWAY, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込区分
		String mskm_kbn = web_new_bean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);

		// 支払方法選択が"1"：銀行・ゆうちょの場合
		if (JFUStrConst.PAYWAY_BANK_POSTAL.equals(payway))
		{
			service_form_bean.sendMessageString(FUW00115SFConst.SEIKY_WAY_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00166_2);
		}
		else if (JFUStrConst.PAYWAY_CREDIT.equals(payway) || MOBILE_SINGLE_ADD_CREDIT.equals(mobileSingle) || MOBILE_SINGLE_NEW.equals(mobileSingle))
		{
			// 支払方法選択が"2"：クレジット または引き継ぎなしのモバイル単独申込の場合
			service_form_bean.sendMessageString(FUW00115SFConst.SEIKY_WAY_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00166_4);
		}

		// ●異動区分
		if (JFUStrConst.MSKM_KBN_NEW.equals(mskm_kbn))
		{
			service_form_bean.sendMessageString(FUW00115SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00576_00001);
		}
		else if (JFUStrConst.MSKM_KBN_ADD.equals(mskm_kbn))
		{
			service_form_bean.sendMessageString(FUW00115SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00576_00002);
		}

		// ●加盟店ID
		service_form_bean.sendMessageString(FUW00115SFConst.CR_CPID, X31CWebConst.DATABEAN_SET_VALUE, APP_FU_CR_CPID);
		// ●加盟店パスワード
		service_form_bean.sendMessageString(FUW00115SFConst.CR_PASSWD, X31CWebConst.DATABEAN_SET_VALUE, APP_FU_CR_PASSWD);

		// ●運用日付（日付）、●運用日付（時間）
		String opeDate = JCCWebCommon.getOpeDateTimeStamp(this, null);
		String opeDate_date = opeDate.substring(0, 8);
		String opeDate_time = opeDate.substring(8, 14);
		service_form_bean.sendMessageString(FUW00115SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, opeDate_date);
		service_form_bean.sendMessageString(FUW00115SFConst.UNYO_TIME, X31CWebConst.DATABEAN_SET_VALUE, opeDate_time);

		// 決済金額
		service_form_bean.sendMessageString(FUW00115SFConst.CR_AMOUNT, X31CWebConst.DATABEAN_SET_VALUE, CR_AMOUNT_VAL);

		// クレジットカード会社選択値（index）
		//Object co = service_form_bean.sendMessageObject(FUW00115SFConst.CARD_SELECTED_IDX, X31CWebConst.DATABEAN_GET_VALUE);
		// NULL値対策
		//int idx = (co != null) ? (Integer.parseInt(co.toString())) : 0;

		// クレジットカード会社リスト
		//X31SDataBeanAccessArray creBean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.CRECARD_COMP_LST);
		//if (creBean_array.getCount() == 0)
		//{
			//creBean_array.addDataBean();
		//}
		//X31SDataBeanAccess crecard_comp_list = creBean_array.getDataBean(0);

		// 選択したクレジットカード会社コードを保持
		//String selectedCrecardCompCd =
				//crecard_comp_list.sendMessageString(FUW00115SFConst.CRECARD_COMP_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, idx);
		//String selectedMembstrNo = "";
		//String selectedMembstrNoTrim = "";
		//String selectedCreditKokanCd = JFUStrConst.EMPTY;

		// クレジットカード会社が「NICOS」の場合
		//if (JFUStrConst.KK0531_CRECARD_COMP_CD_00009.equals(selectedCrecardCompCd))
		//{
			// クレジットカード会社リストのクレジットカード 加盟店番号（１２桁）を設定
			//selectedMembstrNo = crecard_comp_list.sendMessageString(FUW00115SFConst.MEMBSTR_NO_12_02, X31CWebConst.DATABEAN_GET_VALUE, idx);
		//}
		//else
		//{
			// クレジットカード会社が「NICOS」以外
			// クレジットカード会社リストのクレジットカード 加盟店番号（１５桁）を設定
			//selectedMembstrNo = crecard_comp_list.sendMessageString(FUW00115SFConst.MEMBSTR_NO_15_02, X31CWebConst.DATABEAN_GET_VALUE, idx);
		//}

		// クレジット契約番号は先頭から11桁に編集
		//if (selectedMembstrNo.length() >= 12)
		//{
			//selectedMembstrNo = selectedMembstrNo.substring(0, 11);

		//}
		//selectedMembstrNoTrim = selectedMembstrNo.trim();

		// クレジット交換コード
		//selectedCreditKokanCd = crecard_comp_list.sendMessageString(FUW00115SFConst.CREDIT_KOKAN_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, idx);

		// ●クレジット契約番号
		//service_form_bean.sendMessageString(FUW00115SFConst.CR_CCID, X31CWebConst.DATABEAN_SET_VALUE, selectedMembstrNoTrim);
		// ● 加盟店番号
		//service_form_bean.sendMessageString(FUW00115SFConst.MEMBSTR_NO, X31CWebConst.DATABEAN_SET_VALUE, selectedMembstrNo);
		// ●クレジット交換コード
		//service_form_bean.sendMessageString(FUW00115SFConst.CREDIT_KOKAN_CD, X31CWebConst.DATABEAN_SET_VALUE, selectedCreditKokanCd);
	}

	/**
	 * Beanの子要素の配列1番目を取得（子要素無い場合作成）
	 * @param i_bean_array Beanアクセサの配列
	 * @return 子要素配列１番目へのアクセサ
	 */
	private X31SDataBeanAccess getDataBeanZero(X31SDataBeanAccessArray i_bean_array)
	{
		if (i_bean_array.getCount() <= 0)
		{
			i_bean_array.addDataBean();
		}

		return i_bean_array.getDataBean(0);
	}

	/**
	 * Bean項目の転記(記述シンプル化目的)
	 * @param t_bean 転記先Bean(to)
	 * @param t_name 転記先項目名
	 * @param f_bean 転記元Bean(from)
	 * @param f_name 転記元項目名
	 */
	private void cpStr(X31SDataBeanAccess t_bean, String t_name, X31SDataBeanAccess f_bean, String f_name)
	{
		t_bean.sendMessageString(t_name, X31CWebConst.DATABEAN_SET_VALUE, f_bean.sendMessageString(f_name, X31CWebConst.DATABEAN_GET_VALUE));
	}

	/**
	 * Bean項目(String)のクリア
	 * @param i_bean 対象のBean
	 * @param i_name 対象の項目名
	 */
	private void clStr(X31SDataBeanAccess i_bean, String i_name)
	{
		i_bean.sendMessageString(i_name, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
	}

	/**
	 * 引継支払方法リストを作成
	 * @param service_form_bean サービスフォームBeanへのアクセサ
	 * @throws Exception
	 */
	private void setHktgiPayway(X31SDataBeanAccess service_form_bean, String mobCourse) throws Exception
	{
		X31SDataBeanAccess hktgi_payway_list = null; // 一時受け皿
		hktgi_payway_list = service_form_bean.getDataBeanArray(FUW00115SFConst.HKTGI_PAYWAY).getDataBean(0);

		// OKな請求契約番号を格納するリスト
		ArrayList<String> mob_list = new ArrayList<String>();

		// 請求先リスト
		X31SDataBeanAccess seiky_saki_list = service_form_bean.getDataBeanArray(FUW00115SFConst.SEIKY_SAKI_LIST).getDataBean(0);
		int seiky_saki_list_count = (Integer)seiky_saki_list.sendMessage(FUW00115SFConst.SEIKY_KEI_NO_07, X31CWebConst.DATABEAN_GET_COUNT);

		int netCnt = 0; // 同一請求契約番号に対するネット契約数をカウントする
		int mobileCnt = 0; // ハイブリッドタイプの件数をカウントする
		String prevSeikyKeiNo = "";

		// アウトな請求契約番号を格納するリスト
		ArrayList<String> seiky_out_list = new ArrayList<String>();

		// 料金グループコード
		String prc_grp_cd = "";
		// 請求契約番号
		String seiky_kei_no = "";
		// 料金コースコード
		String pcrs_cd = "";

		// ループ：サービス契約一覧照会（同一請求先回線情報取得）件数分
		for (int i = 0; i < seiky_saki_list_count; i++)
		{
			// 料金グループコード
			prc_grp_cd = seiky_saki_list.sendMessageString(FUW00115SFConst.PRC_GRP_CD_07, X31CWebConst.DATABEAN_GET_VALUE, i);
			// 請求契約番号
			seiky_kei_no = seiky_saki_list.sendMessageString(FUW00115SFConst.SEIKY_KEI_NO_07, X31CWebConst.DATABEAN_GET_VALUE, i);
			// 料金コースコード
			pcrs_cd = seiky_saki_list.sendMessageString(FUW00115SFConst.PCRS_CD_07, X31CWebConst.DATABEAN_GET_VALUE, i);

			// フラグ初期化
			// ネットフラグ
			boolean netFlg = false;
			// ハイブリッドフラグ
			boolean hbFlg = false;

			// 料金グループコードがネット(02・03・04)の場合
			if (JFUStrConst.CD00133_02.equals(prc_grp_cd) || JFUStrConst.CD00133_03.equals(prc_grp_cd) || JFUStrConst.CD00133_04.equals(prc_grp_cd))
			{
				netFlg = true;
			}

			// 料金コースコードがハイブリッドタイプの場合
			if (JFUStrConst.CD00134_A59.equals(pcrs_cd) || JFUStrConst.CD00134_A60.equals(pcrs_cd))
			{
				hbFlg = true;
			}

			if (i == 0)
			{
				// 料金グループコードがネット(02・03・04)の場合
				if (netFlg)
				{
					netCnt++; // ネット件数カウント
				}

				// 料金コースコードがハイブリッドタイプの場合
				if (hbFlg)
				{
					mobileCnt++; // ハイブリッド件数カウント
				}
			}
			else
			{
				// １つ前の請求契約番号と今回の請求契約番号が同じ場合
				if (prevSeikyKeiNo.equals(seiky_kei_no))
				{
					// 料金グループコードがネット(02・03・04)の場合
					if (netFlg)
					{
						netCnt++; // ネット件数カウント
					}

					// 料金コースコードがハイブリッドタイプの場合
					if (hbFlg)
					{
						mobileCnt++; // ハイブリッド件数カウント
					}
				}
				else
				// 請求契約番号が変わったタイミング。
				{
					// 回線数がネットの契約数×N回線より多い場合
					if (Integer.parseInt(JFUWebCommon.getApplicationConst(MAX_SAME_SEIKYUSAKI_CNT)) * netCnt <= mobileCnt)
					{
						// 前回の請求契約番号をアウトリストに設定する。
						seiky_out_list.add(prevSeikyKeiNo);

						// カウント初期化
						netCnt = 0;
						mobileCnt = 0;

						// 料金グループコードがネット(02・03・04)の場合
						if (netFlg)
						{
							netCnt++; // ネット件数カウント
						}

						// 料金コースコードがハイブリッドタイプの場合
						if (hbFlg)
						{
							mobileCnt++; // ハイブリッド件数カウント
						}
					}
					else
					{
						// 前回の請求契約番号を設定する。(ネット契約数×５回線以下の契約がないかどうかの確認に利用)
						mob_list.add(prevSeikyKeiNo);

						// カウント初期化
						netCnt = 0;
						mobileCnt = 0;

						// 料金グループコードがネット(02・03・04)の場合
						if (netFlg)
						{
							netCnt++; // ネット件数カウント
						}

						// 料金コースコードがハイブリッドタイプの場合
						if (hbFlg)
						{
							mobileCnt++; // ハイブリッド件数カウント
						}
					}
				}
			}
			// 前回の請求契約番号に今回の値を上書き
			prevSeikyKeiNo = seiky_kei_no;
		}

		// 処理を抜けた請求契約に対してチェック
		// 回線数がネットの契約数×N回線より多い場合
		if (Integer.parseInt(JFUWebCommon.getApplicationConst(MAX_SAME_SEIKYUSAKI_CNT)) * netCnt <= mobileCnt)
		{
			// 前回の請求契約番号をアウトリストに設定する。
			seiky_out_list.add(prevSeikyKeiNo);
		}
		else
		{
			mob_list.add(prevSeikyKeiNo);
		}

		// 回線数がネットの契約数×5回線未満の契約がない場合
		if (mob_list.size() == 0)
		{
			// 業務共通例外クラス（JCCBusinessException）をスローする。
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
		}

		// 支払い方法情報リストからアウトリストの値をキーにして、列ごと削除する。
		for (int i = 0; i < seiky_out_list.size(); i++)
		{
			for (int j = 0; j < (Integer)hktgi_payway_list.sendMessage(FUW00115SFConst.SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_GET_COUNT); j++)
			{
				if (seiky_out_list.get(i).equals(
						hktgi_payway_list.sendMessageString(FUW00115SFConst.SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE, j)))
				{
					// n番目の引継ぎ支払い方法を削除する。
					hktgi_payway_list.sendMessage(FUW00115SFConst.SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SEIKY_KEI_STAT_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SEIKY_KEI_STAT_NM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SEIKY_WAY_CD_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SEIKY_WAY_CD_NM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SEIKY_WAY_NO_KOZA_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SEIKY_WAY_NO_CRECARD_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.BANK_NM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.BANK_SHITEN_NM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.KOZA_NO_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.YOKIN_SHUMOKU_CD_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.YOKIN_SHUMOKU_CD_NM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.CRECARD_NO_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.CRECARD_COMP_NM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.TSUCHO_SYMBOL_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.TSUCHO_NO_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.HKTGI_PAYWAY_NM_LIST_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.UPD_DTM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SOHUS_CITY_NM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SOHUS_OAZTSU_NM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SOHUS_AZCHO_NM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SOHUS_ADRTTM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SOHUS_ADRRM_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SOHUS_BNCHIGO_01, X31CWebConst.DATABEAN_REMOVE, j);
					hktgi_payway_list.sendMessage(FUW00115SFConst.SOHUS_NM_01, X31CWebConst.DATABEAN_REMOVE, j);
				}
			}
		}
	}

	/**
	 * 引継支払方法の選択肢数を返します。
	 *
	 * <br>
	 * @param service_form_bean
	 * @return
	 */
	private int countHktgiPaywayList(X31SDataBeanAccess service_form_bean)
	{
		X31SDataBeanAccess hktgi_payway_list = null; // 一時受け皿
		hktgi_payway_list = service_form_bean.getDataBeanArray(FUW00115SFConst.HKTGI_PAYWAY).getDataBean(0);
		return (Integer)hktgi_payway_list.sendMessage(FUW00115SFConst.SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_GET_COUNT);
	}

	/**
	 * 引継支払方法の選択肢の窓口払に対して編集を行います。
	 *
	 * <br>
	 * @param service_form_bean
	 * @throws Exception
	 */
	private void editMadc4HktgiPaywayList(X31SDataBeanAccess service_form_bean) throws Exception
	{
		X31SDataBeanAccess hktgi_payway_list = null; // 一時受け皿
		hktgi_payway_list = service_form_bean.getDataBeanArray(FUW00115SFConst.HKTGI_PAYWAY).getDataBean(0);
		int len = (Integer)hktgi_payway_list.sendMessage(FUW00115SFConst.SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_GET_COUNT);
		int mdgcCnt = 0;
		for (int i = 0; i < len; i++)
		{
			if (JFUStrConst.CD00166_1
					.equals(hktgi_payway_list.sendMessageString(FUW00115SFConst.SEIKY_WAY_CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
			{
				mdgcCnt++;
			}
		}
		if (mdgcCnt == 1)
		{
			for (int i = 0; i < len; i++)
			{
				if (JFUStrConst.CD00166_1.equals(hktgi_payway_list.sendMessageString(FUW00115SFConst.SEIKY_WAY_CD_01,
						X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					hktgi_payway_list.sendMessageString(FUW00115SFConst.HKTGI_PAYWAY_NM_LIST_01,
							X31CWebConst.DATABEAN_SET_VALUE, i, JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW00115, "CD00166_1"));
				}
			}
		}
	}

	/**
	 * 月年リストを作成
	 * @param service_form_bean サービスフォームBeanへのアクセサ
	 * @param opeDate 運用日付(ODATE：yyyymmdd)
	 * @throws Exception
	 */
	private void setMonthYearList(X31SDataBeanAccess service_form_bean, String opeDate) throws Exception
	{
		// クレジットカードの有効期限を入力するプルダウンを作成する

		X31SDataBeanAccess month_list = null; // サービスフォームBean.月リストへのアクセサ
		X31SDataBeanAccess year_list = null; // サービスフォームBean.年リストへのアクセサ
		X31SDataBeanAccessArray bean_array = null; // 一時受け皿

		// ■サービスフォームBean.引継支払情報
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.MONTH_LIST);
		bean_array.clearArray();
		month_list = getDataBeanZero(bean_array);
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.YEAR_LIST);
		bean_array.clearArray();
		year_list = getDataBeanZero(bean_array);

		// 月 （配列サイズ13固定）
		month_list.sendMessageString(FUW00115SFConst.MONTH_VALUE_LIST_03, X31CWebConst.DATABEAN_SET_VALUE, 0, "0");
		month_list.sendMessageString(FUW00115SFConst.MONTH_LABEL_LIST_03, X31CWebConst.DATABEAN_SET_VALUE, 0, "  ");

		String m_moji = "";
		for (int m = 1; m <= 12; m++)
		{
			m_moji = String.format("%02d", m);

			month_list.sendMessageString(FUW00115SFConst.MONTH_VALUE_LIST_03, X31CWebConst.DATABEAN_SET_VALUE, m, m_moji);
			month_list.sendMessageString(FUW00115SFConst.MONTH_LABEL_LIST_03, X31CWebConst.DATABEAN_SET_VALUE, m, m_moji);
		}

		// 年 （配列サイズ可変）
		year_list.sendMessageString(FUW00115SFConst.YEAR_VALUE_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, "0");
		year_list.sendMessageString(FUW00115SFConst.YEAR_LABEL_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, "    ");

		// 運用日付の年を保持
		String opeYear = opeDate.substring(0, 4);

		// 画面定義ファイルよりクレジットカードの表示年数を取得します
		String crecardDispYears = JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW00115, CRECARD_DISP_YEARS);

		for (int i = 0; i < Integer.parseInt(crecardDispYears); i++)
		{
			// セットする年を計算
			int intYear = Integer.parseInt(opeYear) + i;
			year_list.sendMessageString(FUW00115SFConst.YEAR_VALUE_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, String.valueOf(intYear));
			year_list.sendMessageString(FUW00115SFConst.YEAR_LABEL_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, String.valueOf(intYear));
		}
	}

	/**
	 * 引継支払方法リストの選択インデックスを得ます
	 * @param service_form_bean サービスフォームBeanへのアクセサ
	 * @param payway_info_bean  共有フォームBean.引継支払情報へのアクセサ
	 */
	private void setHktgiPaywayIndex(X31SDataBeanAccess service_form_bean, X31SDataBeanAccess payway_info_bean)
	{
		X31SDataBeanAccess hktgi_payway = null; // サービスフォームBean.引継支払情報へのアクセサ
		X31SDataBeanAccessArray bean_array = null; // 一時受け皿
		int cm = -1;
		int ci = 0;

		// サービスフォームBean.支払い方法情報配列を得る
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.HKTGI_PAYWAY);
		hktgi_payway = getDataBeanZero(bean_array);

		if (service_form_bean.sendMessageBoolean(FUW00115SFConst.PAYWAY_HKTGI_LABEL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			/**
			 * ラベルの場合は無条件に"1"を設定する。
			 */
			ci = 1;
		}
		else
		{
			/**
			 * プルダウンの場合、同一請求契約番号のインデックスを設定する。
			 */
			// 共有フォームBean.引継支払情報の請求契約番号を取得
			String seiky_kei_no = payway_info_bean.sendMessageString(CommonInfoCFConst.HKTGI_SEIKY_KEI_NO_15, X31CWebConst.DATABEAN_GET_VALUE);

			// サービスフォームBean.支払い方法情報配列の件数を得る
			cm = (Integer)hktgi_payway.sendMessage(FUW00115SFConst.SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_GET_COUNT);

			// 請求契約番号とサービス契約番号が一致した引継支払方法のインデックスを引継支払方法選択値に設定する
			String tmpSeikyKeiNo = "";
			for (int i = 0; i < cm; i++)
			{
				tmpSeikyKeiNo = hktgi_payway.sendMessageString(FUW00115SFConst.SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE, i);
				if (seiky_kei_no.equals(tmpSeikyKeiNo))
				{
					ci = i;
					break;
				}
			}
		}

		service_form_bean.sendMessageString(FUW00115SFConst.HKTGI_SELECTED_IDX, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(ci));

	}

	/**
	 * クレジット会社名リストの選択インデックスを得ます
	 * @param service_form_bean サービスフォームBeanへのアクセサ
	 */
	private void setCardCompListIndex(X31SDataBeanAccess service_form_bean)
	{
		String cd = "";

		// リストと引き当ててインデックスを得ます

		X31SDataBeanAccess card_list = null; // サービスフォームBean.クレジットカードリストへのアクセサ
		X31SDataBeanAccessArray bean_array = null; // 一時受け皿
		int cm = -1;
		int ci = 0;

		// サービスフォームBean.クレジットカードリスト配列を得る
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.CRECARD_COMP_LST);
		card_list = getDataBeanZero(bean_array);

		cd = service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_COMP_CD, X31CWebConst.DATABEAN_GET_VALUE);

		// サービスフォームBean.カード会社件数を得る
		cm = (Integer)card_list.sendMessage(FUW00115SFConst.CRECARD_COMP_CD_LIST_02, X31CWebConst.DATABEAN_GET_COUNT);

		for (int i = 0; i < cm; i++)
		{
			String tmp = card_list.sendMessageString(FUW00115SFConst.CRECARD_COMP_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
			if (cd.equals(tmp))
			{
				ci = i;
				break;
			}
		}

		service_form_bean.sendMessageString(FUW00115SFConst.CARD_SELECTED_IDX, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(ci));
	}

	/**
	 * 月年リストの選択インデックスを得ます
	 * @param service_form_bean サービスフォームBeanへのアクセサ
	 */
	private void setMonthYearListIndex(X31SDataBeanAccess service_form_bean)
	{
		String mh = "0";
		String yr = "0";

		// 月は実値を先頭０無し表現に変えます
		mh = service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_MONTH, X31CWebConst.DATABEAN_GET_VALUE);
		if (mh.matches("^0[0-9]$"))
		{
			mh = mh.substring(1);
		}

		// 年は有効期限（年）リストと引き当ててインデックスを得ます

		X31SDataBeanAccess year_list = null; // サービスフォームBean.有効期限（年）リストへのアクセサ
		X31SDataBeanAccessArray bean_array = null; // 一時受け皿
		int cm = -1;
		int ci = 0;

		// サービスフォームBean.有効期限（年）リスト配列を得る
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.YEAR_LIST);
		year_list = getDataBeanZero(bean_array);

		yr = service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_YEAR, X31CWebConst.DATABEAN_GET_VALUE);

		// サービスフォームBean.有効期限（年）リスト配列の件数を得る
		cm = (Integer)year_list.sendMessage(FUW00115SFConst.YEAR_VALUE_LIST_04, X31CWebConst.DATABEAN_GET_COUNT);

		for (int i = 0; i < cm; i++)
		{
			String tmp = year_list.sendMessageString(FUW00115SFConst.YEAR_VALUE_LIST_04, X31CWebConst.DATABEAN_GET_VALUE, i);
			if (yr.equals(tmp))
			{
				ci = i;
				break;
			}
		}

		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_MONTH, X31CWebConst.DATABEAN_SET_VALUE, mh);
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_YEAR, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(ci));
	}

	/**
	 * 引継支払方法リストの選択値を得ます
	 * @param service_form_bean サービスフォームBeanへのアクセサ
	 * @param payway_info_bean  共有フォームBean.引継支払情報へのアクセサ
	 */
	private void getHktgiPaywayListValue(X31SDataBeanAccess service_form_bean, X31SDataBeanAccess payway_info_bean)
	{
		X31SDataBeanAccess hktgi_list = null;
		X31SDataBeanAccessArray bean_array = null;

		// サービスフォームBean.引継支払方法配列を得る
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.HKTGI_PAYWAY);
		hktgi_list = getDataBeanZero(bean_array);

		// 引継方法支払の選択インデックス(0-n)
		Object co = service_form_bean.sendMessageObject(FUW00115SFConst.HKTGI_SELECTED_IDX, X31CWebConst.DATABEAN_GET_VALUE);

		// NULL値対策
		String cs = (co != null) ? (co.toString()) : (JFUStrConst.EMPTY);

		// 数値化(数値にならない場合:-1)
		String hktgiPaywayNm = ""; //引継支払方法名称
		String seikyKeiNo = ""; //請求契約番号
		String updDtm = ""; //更新年月日時分秒
		try
		{
			int ci = Integer.parseInt(cs, 10);
			// 選択した項目に該当する請求契約番号をセット
			seikyKeiNo = hktgi_list.sendMessageString(FUW00115SFConst.SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE, ci);
			hktgiPaywayNm = hktgi_list.sendMessageString(FUW00115SFConst.HKTGI_PAYWAY_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, ci);
			updDtm = hktgi_list.sendMessageString(FUW00115SFConst.UPD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE, ci);
		}
		catch (NumberFormatException e)
		{
			// なにもしない
			seikyKeiNo = "";
		}

		// 請求契約番号をサービスフォームBeanにセット
		service_form_bean.sendMessageString(FUW00115SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, seikyKeiNo);
		//---- ST2-2012-0001437 2012/08/06 h.ikeda start ----//
		service_form_bean.sendMessageString(FUW00115SFConst.UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, updDtm);
		//---- ST2-2012-0001437 2012/08/06 h.ikeda end ----//

		// 次画面の表示用として引継支払方法名称を引き継ぎます(クレジット会社コード名とは排他の関係です)
		String payway_continue = service_form_bean.sendMessageString(FUW00115SFConst.PAYWAY_CONTINUE, X31CWebConst.DATABEAN_GET_VALUE);

		if ((JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(payway_continue)) && (hktgiPaywayNm.trim().length() > 0))
		{
			// 「支払方法を引き継ぐ」ときだけ引き継ぐ
			// 引継支払方法
			payway_info_bean.sendMessageString(CommonInfoCFConst.HKTGI_PAYWAY_15, X31CWebConst.DATABEAN_SET_VALUE, hktgiPaywayNm);
		}
	}

	/**
	 * クレジット会社名リストの選択値を得ます
	 * @param service_form_bean サービスフォームBeanへのアクセサ
	 * @param payway_info_bean  共有フォームBean.引継支払情報へのアクセサ
	 * @param payway_ginchocre 支払い方法の状態
	 */
	private void getCardCompListValue(X31SDataBeanAccess service_form_bean, X31SDataBeanAccess payway_info_bean, String payway_ginchocre)
	{
		X31SDataBeanAccess card_list = null;
		X31SDataBeanAccessArray bean_array = null;

		// サービスフォームBean.クレジットカードリスト配列を得る
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.CRECARD_COMP_LST);
		card_list = getDataBeanZero(bean_array);

		// クレジットカード会社名の選択インデックス(0-n)
		Object co = service_form_bean.sendMessageObject(FUW00115SFConst.CARD_SELECTED_IDX, X31CWebConst.DATABEAN_GET_VALUE);

		// NULL値対策
		String cs = (co != null) ? (co.toString()) : (JFUStrConst.EMPTY);

		// 数値化(数値にならない場合:-1)
		String cn = ""; // クレジット会社コード名
		String cv = "";
		try
		{
			int ci = Integer.parseInt(cs, 10);
			cv = card_list.sendMessageString(FUW00115SFConst.CRECARD_COMP_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, ci);
			cn = card_list.sendMessageString(FUW00115SFConst.CRECARD_COMP_ALI_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, ci);
		}
		catch (NumberFormatException e)
		{
			// なにもしない
			cv = "";
		}

		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_COMP_CD, X31CWebConst.DATABEAN_SET_VALUE, cv);

		if (JFUStrConst.PAYWAY_CREDIT.equals(payway_ginchocre))
		{
			if (cn.trim().length() > 0)
			{
				// 「支払方法を引き継がないを選択 または 選択項目自体が無い時」 かつ 支払方法にクレジット選択」のときだけ引き継ぐ
				payway_info_bean.sendMessageString(CommonInfoCFConst.CRECARD_COMP_NM_15, X31CWebConst.DATABEAN_SET_VALUE, cn);
			}
		}
	}

	/**
	 * 月年リストの選択値を得ます
	 * @param service_form_bean サービスフォームBeanへのアクセサ
	 * @return String 西暦プルダウンの選択インデックス
	 */
	private String getMonthYearListValue(X31SDataBeanAccess service_form_bean)
	{
		X31SDataBeanAccess month_list = null;
		X31SDataBeanAccess year_list = null;
		X31SDataBeanAccessArray bean_array = null;

		// サービスフォームBean.有効期限（月）リスト配列を得る
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.MONTH_LIST);
		month_list = getDataBeanZero(bean_array);
		// サービスフォームBean.有効期限（年）リスト配列を得る
		bean_array = service_form_bean.getDataBeanArray(FUW00115SFConst.YEAR_LIST);
		year_list = getDataBeanZero(bean_array);

		// 月の選択値(0-12)
		Object mo = service_form_bean.sendMessageObject(FUW00115SFConst.CRECARD_YK_KIGEN_MONTH, X31CWebConst.DATABEAN_GET_VALUE);
		// 年の選択値(0-n)
		Object yo = service_form_bean.sendMessageObject(FUW00115SFConst.CRECARD_YK_KIGEN_YEAR, X31CWebConst.DATABEAN_GET_VALUE);

		// NULL値対策
		String ms = (mo != null) ? (mo.toString()) : (JFUStrConst.EMPTY);
		String ys = (yo != null) ? (yo.toString()) : (JFUStrConst.EMPTY);

		String mv = "";
		String yv = "";
		// 数値化(数値にならない場合:-1)
		try
		{
			int mi = Integer.parseInt(ms, 10);
			mv = month_list.sendMessageString(FUW00115SFConst.MONTH_VALUE_LIST_03, X31CWebConst.DATABEAN_GET_VALUE, mi);
		}
		catch (NumberFormatException e)
		{
			// なにもしない
			mv = "";
		}

		try
		{
			int yi = Integer.parseInt(ys, 10);
			yv = year_list.sendMessageString(FUW00115SFConst.YEAR_VALUE_LIST_04, X31CWebConst.DATABEAN_GET_VALUE, yi);
		}
		catch (NumberFormatException e)
		{
			// なにもしない
			yv = "";
		}

		// 年月については上書きになる
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_MONTH, X31CWebConst.DATABEAN_SET_VALUE, mv);
		service_form_bean.sendMessageString(FUW00115SFConst.CRECARD_YK_KIGEN_YEAR, X31CWebConst.DATABEAN_SET_VALUE, yv);

		return ys;
	}

	/**
	 * テレビ単独チェック
	 *
	 * @param commonInfoBean
	 * @return boolean true:テレビ単独  false:それ以外
	 */
	private boolean tvSingleCheck(X31SDataBeanAccess commonInfoBean)
	{

		boolean result = false;
		X31SDataBeanAccess webNewInfoBean = getWebInfo(commonInfoBean);
		X31SDataBeanAccess keiSvcInfoBean = getKeiyakusvcinfo(webNewInfoBean);
		X31SDataBeanAccess tvInfoBean = getTvInfo(webNewInfoBean);

		String tvCourse = tvInfoBean.sendMessageString(CommonInfoCFConst.EO_TV_COURSE_13, X31CWebConst.DATABEAN_GET_VALUE);
		String tv = keiSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TV_10, X31CWebConst.DATABEAN_GET_VALUE);
		String net = keiSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_NET_10, X31CWebConst.DATABEAN_GET_VALUE);
		String tel = keiSvcInfoBean.sendMessageString(CommonInfoCFConst.SELECT_SVC_TEL_10, X31CWebConst.DATABEAN_GET_VALUE);

		// 画面遷移元IDを取得する。
		String screenId = JFUWebCommon.getScreenId(this);
		
		if (JFUScreenConst.SCREEN_ID_FUW00117.equals(screenId))
		{
			return true;
		}

		if (JFUStrConst.SELECT_SVC_TV_CHOICE.equals(tv)
				&& (JFUStrConst.EO_TV_COURSE_BS.equals(tvCourse) || JFUStrConst.EO_TV_COURSE_BS_STAR.equals(tvCourse)))
		{
			if (JFUStrConst.SELECT_SVC_NET_MI_CHOICE.equals(net) && JFUStrConst.SELECT_SVC_TEL_MI_CHOICE.equals(tel))
			{
				result = true;
			}
		}

		return result;
	}

	/**
	 * クリアパスのトークン取得結果判定処理です。
	 *
	 * <br>
	 * @return チェック結果
	 */
	private boolean chkTokenResult()
	{
		X31SDataBeanAccess bean = getServiceFormBean();
		boolean result = true;

		// 結果コード判定
		String resultCd = bean.sendMessageString(FUW00115SFConst.RESULT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if (!CLP_TKN_RSLT_CD_LIST.contains(resultCd))
		{
			// 「0」(正常終了)、「8」(発行前確認エラー)以外の場合エラー
			JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1870_CE, CRECARD_NUM);
			return false;
		}

		// エラーコード判定
		String errCd = bean.sendMessageString(FUW00115SFConst.ERROR_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.CLP_RESULT_CD_8.equals(resultCd))
		{
			// 結果コードが「8」
			if (CLP_TKN_ERR_CD_LIST.contains(errCd))
			{
				// エラーコードが下記のいずれかの場合エラー
				// 「100011006」「100011007」「100011009」
				JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0400_TW, new String[] { CRECARD_NO }, CRECARD_NUM);
				return false;
			}
			else
			{
				// 上記のエラーコード以外の場合エラー
				JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1870_CE, CRECARD_NUM);
				return false;
			}
		}

		// トークンチェック
		String token = bean.sendMessageString(FUW00115SFConst.TOKEN, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUWebCommon.isNull(token))
		{
			// トークンが未設定の場合エラー
			JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1870_CE, CRECARD_NUM);
			return false;
		}

		// カード番号下4桁チェック
		String cardNoUnder4 = bean.sendMessageString(FUW00115SFConst.CARD_NO_UNDER_4, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUWebCommon.isNull(cardNoUnder4))
		{
			// カード番号下4桁が未設定の場合エラー
			JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1870_CE, CRECARD_NUM);
			return false;
		}

		return result;
	}

	/**
	 * ペイジェントのトークン取得結果判定処理です。
	 *
	 * <br>
	 * @return チェック結果
	 */
	private boolean chkTokenResultPaygent()
	{
		X31SDataBeanAccess bean = getServiceFormBean();
		boolean result = true;

		// 結果コード判定
		String resultCd = bean.sendMessageString(FUW00115SFConst.RESULT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if (JFUStrConst.PYGNT_RESULT_CD_0000.equals(resultCd))
		{
			// 正常終了時
			String token = bean.sendMessageString(FUW00115SFConst.TOKEN, X31CWebConst.DATABEAN_GET_VALUE);
			String cardNoUnder4 = bean.sendMessageString(FUW00115SFConst.CARD_NO_UNDER_4, X31CWebConst.DATABEAN_GET_VALUE);
			if (JFUWebCommon.isNull(token) || JFUWebCommon.isNull(cardNoUnder4))
			{
				// トークン、カード番号下4桁が未設定の場合エラー
				JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1870_CE, CRECARD_NUM);
				result = false;
			}
		}
		else
		{
			// 異常終了時
			result = false;
			if (JFUStrConst.PYGNT_RESULT_CD_1100.equals(resultCd) ||
					JFUStrConst.PYGNT_RESULT_CD_1200.equals(resultCd) ||
					JFUStrConst.PYGNT_RESULT_CD_1201.equals(resultCd))
			{
				// マーチャントIDエラー、トークン生成公開鍵エラー
				JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1870_CE, CRECARD_NUM);
			}
			else if (JFUStrConst.PYGNT_RESULT_CD_1300.equals(resultCd) ||
					JFUStrConst.PYGNT_RESULT_CD_1301.equals(resultCd))
			{
				// カード番号エラー
				JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0400_TW, new String[] { CARD_NO }, CRECARD_NUM);
			}
			else if (JFUStrConst.PYGNT_RESULT_CD_1400.equals(resultCd) ||
					JFUStrConst.PYGNT_RESULT_CD_1401.equals(resultCd) ||
					JFUStrConst.PYGNT_RESULT_CD_1500.equals(resultCd) ||
					JFUStrConst.PYGNT_RESULT_CD_1501.equals(resultCd) ||
					JFUStrConst.PYGNT_RESULT_CD_1502.equals(resultCd))
			{
				// 有効期限エラー
				JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0400_TW, new String[] { EXP_DATE }, CRECARD_EXP_ERR);
			}
			else if (JFUStrConst.PYGNT_RESULT_CD_1600.equals(resultCd) ||
					JFUStrConst.PYGNT_RESULT_CD_1601.equals(resultCd))
			{
				// セキュリティコードエラー
				JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0400_TW, new String[] { SECURITY_CD }, SECURITY_CD_ERR);
			}
			else if (JFUStrConst.PYGNT_RESULT_CD_1700.equals(resultCd))
			{
				// カード名義エラー
				JCCWebCommon.setMessageInfo(this, ERR_CD_EKF0400_TW, new String[] { CRECARD_NAME }, CRECARD_NAME_ERR);
			}
			else if (JFUStrConst.PYGNT_RESULT_CD_7000.equals(resultCd))
			{
				// 非対応ブラウザエラー
				JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF2280_CE, CRECARD_NUM);
			}
			else
			{
				// その他エラー
				JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF1870_CE, CRECARD_NUM);
			}
		}

		return result;
	}

	/**
	 * WEB新規情報
	 *
	 * @param bean
	 * @return bn
	 */
	private X31SDataBeanAccess getWebInfo(X31SDataBeanAccess bean)
	{

		X31SDataBeanAccessArray arr = bean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn = arr.getDataBean(0);

		return bn;
	}

	/**
	 * 契約サービス情報
	 *
	 * @param bn WEB新規情報
	 * @return bn1
	 */
	private X31SDataBeanAccess getKeiyakusvcinfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 契約サービス情報
	 *
	 * @param bn WEB新規情報
	 * @return bn1
	 */
	private X31SDataBeanAccess getKeiyakushaInfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.KEIYAKUSHA_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * モバイル情報
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getMobile(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EOMOBILE);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * 光テレビ情報
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getTvInfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.EOTV);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * リダイレクト情報
	 *
	 * @param bn
	 * @return bn1
	 */
	private X31SDataBeanAccess getRedirectInfo(X31SDataBeanAccess bn)
	{

		X31SDataBeanAccessArray arr = bn.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO);
		if (arr.getCount() == 0)
		{
			arr.addDataBean();
		}
		X31SDataBeanAccess bn1 = arr.getDataBean(0);

		return bn1;
	}

	/**
	 * その他情報
	 * @param webNewInfoBean
	 * @return elseInfoBean
	 */
	private X31SDataBeanAccess getelseInfo(X31SDataBeanAccess webNewInfoBean)
	{
		X31SDataBeanAccessArray array = webNewInfoBean.getDataBeanArray(CommonInfoCFConst.ELSE_INFO);
		if (array.getCount() == 0)
		{
			array.addDataBean();
		}
		X31SDataBeanAccess elseInfoBean = array.getDataBean(0);

		return elseInfoBean;
	}

	/**
	 * ビジネスログへの出力処理
	 *
	 * @param msg ログ情報
	 */
	private void outputBusLog(String msg)
	{
		JSYwebLog.println(JSYwebLog.EXECUTION, getClass(), msg, "CS0003I", null, null);
	}

	/**
	 * 運用日付(OPEDATE)の設定
	 *
	 * 共通フォームBean.フロント共有情報.フロント運用日付に運用日付(OPEDATE)を設定。
	 *
	 * @param commonInfoBean
	 * @return 運用日付(OPEDATE:yyyyMMdd)
	 */
	private String setFuOpedate(X31SDataBeanAccess commonInfoBean)
	{
		String opeDate = JCCWebCommon.getOpeDate(this, null);

		//=====================================================================
		// 運用日付の設定
		//=====================================================================
		setFuOpedate(commonInfoBean, opeDate);
		return opeDate;
	}

	/**
	 * 運用日付(OPEDATE)の設定
	 *
	 * 共通フォームBean.フロント共有情報.フロント運用日付に運用日付(OPEDATE)を設定。
	 *
	 * @param commonInfoBean 共通フォームBean
	 * @param opeDate 運用日付(OPEDATE)
	 */
	private void setFuOpedate(X31SDataBeanAccess commonInfoBean, String opeDate)
	{
		//=====================================================================
		// 運用日付の設定
		//=====================================================================
		// 共通フォームBean.フロント共有情報
		X31SDataBeanAccess frontInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.FRONT_COMMON_INFO).getDataBean(0);
		// フロント共有情報.フロント運用日付を設定します。
		frontInfo.sendMessageString(CommonInfoCFConst.FU_OPEDATE_05, X31CWebConst.DATABEAN_SET_VALUE, opeDate);

	}

	/**
	 * FUIFE211_口座振替契約申込結果(取引検索) API
	 * @param service_form_bean サービスフォームBean
	 * @param payway_info_bean 支払い方法情報Bean
	 */
	private void getKhriSmbcfsResultApi(X31SDataBeanAccess service_form_bean, X31SDataBeanAccess payway_info_bean)
	{
		//顧客番号を退避
		String smbcfs_bill_no = payway_info_bean.sendMessageString(CommonInfoCFConst.SMBCFS_BILL_NO_15, X31CWebConst.DATABEAN_GET_VALUE);

		if (JFUWebCommon.isNull(smbcfs_bill_no))
		{
			return;
		}

		//初期化
		clearKhriSmbcfs(payway_info_bean);

		//=====================================================================
		// (1) サービスインターフェイスパラメータの設定
		//=====================================================================
		FUSV0375_FUSV0375OPDBMapper mapper = new FUSV0375_FUSV0375OPDBMapper(); // 口座振替ＳＭＢＣＦＳ顧客番号採番
		HashMap<String, String> paramMap = new HashMap<String, String>(); // ユースケースIDマップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>(); // 入力データマップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>(); // 結果データマップ
		X31SDataBeanAccess[] beans_can = { service_form_bean, getCommonInfoBean() };

		// ユースケースIDをセット
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0375);
		// パラメータ設定
		mapper.setFUSV037501CC(beans_can, inputMap, JPCModelConstant.FUNC_CD_1, smbcfs_bill_no);

		//=====================================================================
		// (2) サービス呼出処理
		//=====================================================================
		ArrayList resutlList = null;
		try
		{
			invokeService(paramMap, inputMap, outputMap);
			resutlList = mapper.getFUSV037501CC(outputMap);
		}
		catch (X31SRuntimeException ex)
		{
			// エラー
		}
		if (resutlList == null || resutlList.size() == 0)
		{
			payway_info_bean.sendMessageString(CommonInfoCFConst.STATUS_15, X31CWebConst.DATABEAN_SET_VALUE, CLEARPASS_STATUS_ERROR);
		}
		else
		{
			HashMap<String, String> childMap = null;
			for (int idx = 0; idx < resutlList.size(); idx++)
			{
				// １件のみのはず
				childMap = (HashMap<String, String>)resutlList.get(idx);
				String trn_rslt_cd = childMap.get("trn_rslt_cd");
				String kanaName = childMap.get("account_holder");
				// 口座名義のカタカナ（半角）→カタカナ（全角）
				kanaName = JFUCommonUtil.convertToZenkaku(kanaName);
				String account_number = childMap.get("account_number");
				String bank_cd = childMap.get("bank_cd");
				String branch_cd = childMap.get("branch_cd");
				String depodit_item = childMap.get("depodit_item");

				boolean isError = false;
				if (JFUWebCommon.isNull(kanaName) || JFUWebCommon.isNull(account_number) || JFUWebCommon.isNull(bank_cd)
						|| JFUWebCommon.isNull(branch_cd) || JFUWebCommon.isNull(depodit_item))
				{
					isError = true;
				}

				if (TRN_RSLT_CD_NORMAL.equals(trn_rslt_cd) && (!isError))
				{
					// 正常
					payway_info_bean.sendMessageString(CommonInfoCFConst.ACCOUNT_HOLDER_15, X31CWebConst.DATABEAN_SET_VALUE, kanaName); //口座名義人（カナ）
					payway_info_bean.sendMessageString(CommonInfoCFConst.ACCOUNT_NUMBER_15, X31CWebConst.DATABEAN_SET_VALUE, account_number); //口座番号
					payway_info_bean.sendMessageString(CommonInfoCFConst.BANK_CD_15, X31CWebConst.DATABEAN_SET_VALUE, bank_cd); //銀行コード
					payway_info_bean.sendMessageString(CommonInfoCFConst.BRANCH_CD_15, X31CWebConst.DATABEAN_SET_VALUE, branch_cd); //支店コード
					payway_info_bean.sendMessageString(CommonInfoCFConst.DEPODIT_ITEM_15, X31CWebConst.DATABEAN_SET_VALUE, depodit_item); //預金種目
					payway_info_bean.sendMessageString(CommonInfoCFConst.STATUS_15, X31CWebConst.DATABEAN_SET_VALUE, CLEARPASS_STATUS_OK);
				}
				else
				{
					payway_info_bean.sendMessageString(CommonInfoCFConst.STATUS_15, X31CWebConst.DATABEAN_SET_VALUE, CLEARPASS_STATUS_ERROR);
				}
			}
		}
	}

	/**
	 * 支払い方法情報Beanの口座振替項目のクリア
	 * 
	 * @param payway_info_bean 支払い方法情報Bean
	 */
	private void clearKhriSmbcfs(X31SDataBeanAccess payway_info_bean)
	{
		// 口座振替の連携なし（初期化）
		payway_info_bean.sendMessageString(CommonInfoCFConst.SMBCFS_BILL_NO_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY); //顧客番号

		payway_info_bean.sendMessageString(CommonInfoCFConst.ACCOUNT_HOLDER_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY); //口座名義人（カナ）
		payway_info_bean.sendMessageString(CommonInfoCFConst.ACCOUNT_NUMBER_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY); //口座番号
		payway_info_bean.sendMessageString(CommonInfoCFConst.BANK_CD_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY); //銀行コード
		payway_info_bean.sendMessageString(CommonInfoCFConst.BRANCH_CD_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY); //支店コード
		payway_info_bean.sendMessageString(CommonInfoCFConst.DEPODIT_ITEM_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY); //預金種目
		payway_info_bean.sendMessageString(CommonInfoCFConst.STATUS_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
	}
}
