/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0157_FUSV0157OPDBMapper
*	ソースファイル名：FUSV0157_FUSV0157OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年11月07日
*＜機能概要＞
*	BP（支払方法入力チェック）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/07	FJ			新規作成
*   v4.00.00	2012/11/22  FJ)大塚		IT2-2012-0001790
*   v5.00.00	2013/05/28  FJ)大村    【No.773】白ロムエラー文言
*   v36.00		2017/11/29  FJ)岡井     【ANK-3313-00-00】クレジットカード非通過対応
*   v58.00.00   2022/05/12	FJ)新谷    【ANK-3846-00-00】【クレカ】クリアパス→ペイジェント移行
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JFUStrConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW00115SF.FUW00115SFConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class FUSV0157_FUSV0157OPDBMapper
{

	/** 姓と名の区切り文字 */
	private static final String NAMAE_KUGIRI = "　";

	/** カード名義人種別 */
	private static final String CUST_NM_SLCT = "カード名義人選択";

	/** クレジット・名義人種別（異なるフラグ）サービス用 */
	private static final String MEIGININ_SBT_DIFF = "1";

	/** 引き継ぐ */
	private static final String PAYWAY_CONTINUE_YES = "1";

	/** 支払方法：クレジット */
	private static final String PAYWAY_CREDIT = "2";

	/** 支払方法引継ぎ選択 */
	private static final String PAYWAY_CONTINUE = "支払方法引継ぎ選択";

	/** 支払方法選択 */
	private static final String PAYWAY = "支払方法選択";

	/**
	 * コンストラクタ
	 */
	public FUSV0157_FUSV0157OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする　代理店一意照会
	 * @param bean　[0]：お支払い方法入力　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015701SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		String tradCode = bean[0].sendMessageString("取扱コード", X31CWebConst.DATABEAN_GET_VALUE);

		if ("".equals(tradCode))
		{
			// 取扱コードがブランクの場合は処理を行わない。
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 取扱コード → 代理店一意照会SCマップ.ＫＥＹ＿代理店コード
		parentMap.put("key_agnt_cd", bean[0].sendMessageString("取扱コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用日付（日付） → 代理店一意照会SCマップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用日付（日付）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015701SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする クレジット請求手続き
	 * @param bean　[0]：お支払い方法入力　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015702SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		String payway_continue = bean[0].sendMessageString(PAYWAY_CONTINUE, X31CWebConst.DATABEAN_GET_VALUE); // 支払方法引継ぎ選択
		String payway_ginchocre = bean[0].sendMessageString(PAYWAY, X31CWebConst.DATABEAN_GET_VALUE); // 支払方法

		X31SDataBeanAccess web_new_bean = null; // 共有フォームBeanのＷＥＢ新規以下へのアクセサ
		X31SDataBeanAccessArray bean_array = null;

		// WEB新規情報
		bean_array = bean[1].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		web_new_bean = bean_array.getDataBean(0);

		// 申込区分
		String mskm_kbn = web_new_bean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);

		// ■共有フォームBean.リダイレクト情報
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO);
		X31SDataBeanAccess redirect_info_bean = bean_array.getDataBean(0);
		// 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()) : ("");

		if (!((PAYWAY_CONTINUE_YES.compareTo(payway_continue) != 0) && (PAYWAY_CREDIT.compareTo(payway_ginchocre) == 0))
				&& !(JFUStrConst.MSKM_KBN_NEW.equals(mskm_kbn) && JFUStrConst.NAVI_PTN_MOBILE_SNGL.equals(seni_pattern)))
		{
			// 「（支払方法を引き継がないを選択 または 選択項目自体が無い）
			//  かつ 「支払方法にクレジット選択」以外の組み合わせではクレジット請求手続きを呼び出さない
			// または、新規申込かつモバイル単独申込ではない場合は呼び出さない
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// チェックNG回避の為、「00001」を設定しておく
		parentMap.put("crecard_comp_cd", "00001");

		// クレジットカード番号１+２+３+４ → クレジット請求手続きSCマップ.クレジットカード番号
//		String cre_no_1 = bean[0].sendMessageString("クレジットカード番号１", X31CWebConst.DATABEAN_GET_VALUE);
//		String cre_no_2 = bean[0].sendMessageString("クレジットカード番号２", X31CWebConst.DATABEAN_GET_VALUE);
//		String cre_no_3 = bean[0].sendMessageString("クレジットカード番号３", X31CWebConst.DATABEAN_GET_VALUE);
//		String cre_no_4 = bean[0].sendMessageString("クレジットカード番号４", X31CWebConst.DATABEAN_GET_VALUE);
//		String cre_no_1234 = cre_no_1 + cre_no_2 + cre_no_3 + cre_no_4;
//		parentMap.put("crecard_no", cre_no_1234);

		// クレジットカード会社コード → クレジット請求手続きSCマップ.クレジットカード会社コード
		//parentMap.put("crecard_comp_cd", bean[0].sendMessageString("クレジットカード会社コード", X31CWebConst.DATABEAN_GET_VALUE));
		// チェックNG回避の為、「0000000000000000」を設定しておく
		parentMap.put("crecard_no", "0000000000000000");

		//---------------------------------------------------------------------
		// カード有効期限（年月） → クレジット請求手続きSCマップ.クレジットカード有効期限
		String year = bean[0].sendMessageString("カード有効期限（年）", X31CWebConst.DATABEAN_GET_VALUE);
		String month = bean[0].sendMessageString("カード有効期限（月）", X31CWebConst.DATABEAN_GET_VALUE);
		// 年月を文字に結合する関係で 1-9月だけは頭に 0 を付加する
		if (month.matches("^[1-9]$"))
		{
			month = "0" + month;
		}
		String year_month = year + month;
		parentMap.put("crecard_yk_kigen", year_month);

		String cust_nm_flag = bean[0].sendMessageString(CUST_NM_SLCT, X31CWebConst.DATABEAN_GET_VALUE);
		if (MEIGININ_SBT_DIFF.compareTo(cust_nm_flag) == 0)
		{
			//=====================================================================
			// クレジットカード情報（名義人） （名義人が契約者と異なる）
			//=====================================================================
			// 契約種別
			String kei_sbt = web_new_bean.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_GET_VALUE);
			String kana_name = "";
			//---------------------------------------------------------------------
			// 個人契約の場合
			if (JFUStrConst.KEI_SBT_KOJINCD.equals(kei_sbt))
			{
				// カード名義人（カナ・姓）+（カナ・名） → クレジット請求手続きSCマップ.クレジットカード名義カナ名
				String kana_sei = bean[0].sendMessageString("カード名義人（カナ・姓）", X31CWebConst.DATABEAN_GET_VALUE);
				String kana_mei = bean[0].sendMessageString("カード名義人（カナ・名）", X31CWebConst.DATABEAN_GET_VALUE);
				kana_name = String.format("%s%s%s", kana_sei, NAMAE_KUGIRI, kana_mei);
			}
			else if (JFUStrConst.KEI_SBT_HOJINCD.equals(kei_sbt))
			{
				// カード名義人（カナ） → クレジット請求手続きSCマップ.クレジットカード名義カナ名
				kana_name = bean[0].sendMessageString(FUW00115SFConst.CUST_NM_KANA, X31CWebConst.DATABEAN_GET_VALUE);
			}

			parentMap.put("crecard_nm_kana", kana_name);
		}

		// 異動区分 → クレジット請求手続きSCマップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015702SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする 請求契約登録
	 * @param bean　[0]：お支払い方法入力　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015703SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		X31SDataBeanAccess web_new_bean = null; // 共有フォームBeanのＷＥＢ新規以下へのアクセサ
		X31SDataBeanAccess eo_mobile_bean = null; // 共有フォームBeanのEOモバイル以下へのアクセサ
		X31SDataBeanAccessArray bean_array = null;

		bean_array = bean[1].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		web_new_bean = bean_array.getDataBean(0);

		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.EOMOBILE);
		eo_mobile_bean = bean_array.getDataBean(0);

		String payway_continue = bean[0].sendMessageString(PAYWAY_CONTINUE, X31CWebConst.DATABEAN_GET_VALUE);

		// ＷＥＢ新規情報.申込区分
		String mskm_kbn = web_new_bean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);
		// ｅｏモバイル.モバイルコース
		String mobile_couorse = eo_mobile_bean.sendMessageString(CommonInfoCFConst.MOBILE_COURSE_14, X31CWebConst.DATABEAN_GET_VALUE);

		if (PAYWAY_CONTINUE_YES.compareTo(payway_continue) == 0
				|| (JFUStrConst.MSKM_KBN_ADD.equals(mskm_kbn) && JFUStrConst.MOBILE_COURSE_3G_HHB.equals(mobile_couorse)))
		{
			// 「支払方法を引き継ぐ」または「光ハイブリッドで追加申込」の場合請求契約登録を呼び出さない(請求方法コードが算出できないため)
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 共有フォームBean.ＷＥＢ新規[0].ｓｙｓＩＤ → 支払方法一覧照会マップ.ＫＥＹ＿SYSID
		parentMap.put("sysid", web_new_bean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));

		//		// 遷移先画面ＩＤ → 請求契約登録SCマップ.SYSID
		//		parentMap.put("sysid", bean[1].sendMessageString("遷移先画面ＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 請求方法コード → 請求契約登録SCマップ.請求方法コード
		parentMap.put("seiky_way_cd", bean[0].sendMessageString("請求方法コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分 → 請求契約登録SCマップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015703SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする 初回オーソリ依頼
	 * @param bean　[0]：お支払い方法入力　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015704SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		String payway_continue = bean[0].sendMessageString(PAYWAY_CONTINUE, X31CWebConst.DATABEAN_GET_VALUE);
		String payway_ginchocre = bean[0].sendMessageString(PAYWAY, X31CWebConst.DATABEAN_GET_VALUE);

		X31SDataBeanAccess web_new_bean = null; // 共有フォームBeanのＷＥＢ新規以下へのアクセサ
		X31SDataBeanAccessArray bean_array = null;

		bean_array = bean[1].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		web_new_bean = bean_array.getDataBean(0);

		// 申込区分
		String mskm_kbn = web_new_bean.sendMessageString(CommonInfoCFConst.MSKM_KBN_06, X31CWebConst.DATABEAN_GET_VALUE);

		// ■共有フォームBean.リダイレクト情報
		bean_array = web_new_bean.getDataBeanArray(CommonInfoCFConst.REDIRECT_INFO);
		X31SDataBeanAccess redirect_info_bean = bean_array.getDataBean(0);

		// 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()) : ("");

		if (!((PAYWAY_CONTINUE_YES.compareTo(payway_continue) != 0) && (PAYWAY_CREDIT.compareTo(payway_ginchocre) == 0))
				&& !(JFUStrConst.MSKM_KBN_NEW.equals(mskm_kbn) && JFUStrConst.NAVI_PTN_MOBILE_SNGL.equals(seni_pattern)))
		{
			// 「（支払方法を引き継がないを選択 または 選択項目自体が無い）
			//  かつ 「支払方法にクレジット選択」以外の組み合わせではクレジット請求手続きを呼び出さない
			// または、新規申込かつモバイル単独申込ではない場合は呼び出さない
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 加盟店ＩＤ → 初回オーソリSCマップ.加盟店ID
		parentMap.put("cr_cpid", "CLEARPASS_CPID");
		// 加盟店パスワード → 初回オーソリSCマップ.加盟店パスワード
		parentMap.put("cr_passwd", "CLEARPASS_PASS");
		// 運用日付（日付） → 初回オーソリSCマップ.取引年月日
		parentMap.put("cr_orderdate", JFUWebCommon.getSysDate());
		// 運用日付（時間） → 初回オーソリSCマップ.取引時間
		parentMap.put("cr_ordertime", bean[0].sendMessageString("運用日付（時間）", X31CWebConst.DATABEAN_GET_VALUE));
		// 決済金額 → 初回オーソリSCマップ.決済金額
		parentMap.put("cr_amount", bean[0].sendMessageString("決済金額", X31CWebConst.DATABEAN_GET_VALUE));

		// クレジットカード番号１+２+３+４ → 初回オーソリSCマップ.カード番号
		String cre_no_1 = bean[0].sendMessageString("クレジットカード番号１", X31CWebConst.DATABEAN_GET_VALUE);
		String cre_no_2 = bean[0].sendMessageString("クレジットカード番号２", X31CWebConst.DATABEAN_GET_VALUE);
		String cre_no_3 = bean[0].sendMessageString("クレジットカード番号３", X31CWebConst.DATABEAN_GET_VALUE);
		String cre_no_4 = bean[0].sendMessageString("クレジットカード番号４", X31CWebConst.DATABEAN_GET_VALUE);
		String cre_no_1234 = cre_no_1 + cre_no_2 + cre_no_3 + cre_no_4;

		// 19桁になるまで前半角スペース埋めを行ってから設定
		parentMap.put("cr_cardnumber", cre_no_1234);

		//---------------------------------------------------------------------
		// カード有効期限（年月） → 初回オーソリSCマップ.カード有効期限
		String year = bean[0].sendMessageString("カード有効期限（年）", X31CWebConst.DATABEAN_GET_VALUE);
		String month = bean[0].sendMessageString("カード有効期限（月）", X31CWebConst.DATABEAN_GET_VALUE);

		// 年月を文字に結合する関係で 1-9月だけは頭に 0 を付加する
		if (month.matches("^[1-9]$"))
		{
			month = "0" + month;
		}

		// MM/YY形式に編集
		String year_month = year.substring(2, 4) + "/" + month;
		parentMap.put("cr_cardexp", year_month);

		// クレジット契約番号 → 初回オーソリSCマップ.クレジット契約番号
		parentMap.put("cr_ccid", bean[0].sendMessageString("クレジット契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015704SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする 現督促ステータス照会
	 * @param bean　[0]：お支払い方法入力　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV015701CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}
		X31SDataBeanAccess web_new_bean = null; // 共有フォームBeanのＷＥＢ新規以下へのアクセサ
		X31SDataBeanAccessArray bean_array = null;

		bean_array = bean[1].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		web_new_bean = bean_array.getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 共有フォームBean.ＷＥＢ新規[0].ｓｙｓＩＤ → 現督促ステータス照会SCマップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("sysid", web_new_bean.sendMessageString(CommonInfoCFConst.SYSID_06, X31CWebConst.DATABEAN_GET_VALUE));
		//		// 遷移先画面ＩＤ → 現督促ステータス照会SCマップ.ＫＥＹ＿ＳＹＳＩＤ
		//		parentMap.put("key_sysid", bean[1].sendMessageString("遷移先画面ＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号 → 現督促ステータス照会SCマップ.ＫＥＹ＿請求契約番号
		parentMap.put("seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用日付（日付） → 現督促ステータス照会SCマップ.ＫＥＹ＿予約適用年月日
		//parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用日付（日付）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV015701CC", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング 代理店一意照会
	 * @param bean　[0]：お支払い方法入力　[1]：共有フォームビーン
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015701SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015701SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015701SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV015701SC_agnt_info_EKK0061A010CBSMsg1List = bean[0].getDataBeanArray("代理店情報");
		childList = null;
		if (listFUSV015701SC_agnt_info_EKK0061A010CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0061A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0061A010CBSMsg1List");

			X31SDataBeanAccess subbean = listFUSV015701SC_agnt_info_EKK0061A010CBSMsg1List.getDataBean(0);

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				// 代理店情報.代理店コード ← 代理店一意照会SCマップ.代理店一意照会明細.代理店コード
				if (childMap != null)
				{
					subbean.sendMessageString("代理店コード", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("agnt_cd"));
				}
				else
				{
					subbean.sendMessageString("代理店コード", X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}
		return bean;
	}

	/**
	 * 下りマッピング 初回オーソリ依頼
	 * @param bean　[0]：お支払い方法入力　[1]：共有フォームビーン
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015704SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015704SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015704SC");
		}

		X31SDataBeanAccessArray webnew_info_array = bean[1].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webnew_info = webnew_info_array.getDataBean(0);
		X31SDataBeanAccessArray payway_info_array = webnew_info.getDataBeanArray(CommonInfoCFConst.PAYWAY_INFO);
		X31SDataBeanAccess payway_info = payway_info_array.getDataBean(0);

		// 処理結果コード ← 初回オーソリSCマップ.処理結果コード
		if (parentMap != null)
		{
			payway_info.sendMessageString("処理結果コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cr_resultcode"));
			payway_info.sendMessageString("オーソリ承認番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cr_authnumber"));
			payway_info.sendMessageString("取引ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cr_orderid"));
			payway_info.sendMessageString("仕向先カード会社コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cr_brandcode"));
			payway_info.sendMessageString("伝票番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cr_slipnumber"));
			payway_info.sendMessageString("決済金額", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cr_paidamount"));

			// サービスフォームBeanへ設定
			bean[0].sendMessageString(FUW00115SFConst.CR_RESULTCODE, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cr_resultcode"));
		}
		else
		{
			payway_info.sendMessageString("処理結果コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
			payway_info.sendMessageString("オーソリ承認番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
			payway_info.sendMessageString("取引ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, new String());
			payway_info.sendMessageString("仕向先カード会社コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
			payway_info.sendMessageString("伝票番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
			payway_info.sendMessageString("決済金額", X31CWebConst.DATABEAN_SET_VALUE, new String());

			// サービスフォームBeanへ設定
			bean[0].sendMessageString(FUW00115SFConst.CR_RESULTCODE, new String());
		}

		return bean;
	}

	/**
	 * 下りマッピング 現督促ステータス照会
	 * @param bean　[0]：お支払い方法入力　[1]：共有フォームビーン
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV015701CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("FUSV015701CC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV015701CC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV015705SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List = bean[0].getDataBeanArray("現督促ステータスリスト");
		childList = null;
		if (listFUSV015705SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List != null && parentMap != null
				&& parentMap.containsKey("JFUGetTokusokuInfoCCList"))
		{
			childList = (ArrayList)parentMap.get("JFUGetTokusokuInfoCCList");
			if (childList.size() == 0)
			{
				listFUSV015705SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List.clearArray();
			}
			
			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV015705SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV015705SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV015705SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}
				// No.773_白ロムエラー文言 >>>
				// 督促データが取得できない場合に、値を初期化していない問題の解決
				if (childMap == null || childMap.get("seiky_kei_no") == null)
				{
					listFUSV015705SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List.clearArray();
					continue;
				}
				// No.773_白ロムエラー文言 <<<E

				// 現督促ステータスリスト.請求契約番号 ← 現督促ステータス照会SCマップ.現督促ステータス一覧照会明細.請求契約番号
				if (childMap != null)
				{
					subbean.sendMessageString("請求契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_kei_no"));
				}
				else
				{
					subbean.sendMessageString("請求契約番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 現督促ステータスリスト.督促ステータス ← 現督促ステータス照会SCマップ.現督促ステータス一覧照会明細.督促ステータス
				if (childMap != null)
				{
					subbean.sendMessageString("督促ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tokusoku_stat"));
				}
				else
				{
					subbean.sendMessageString("督促ステータス", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}
		return bean;
	}

	/**
	 * 指定された長さを対象に" "(半角スペース)を充填します。
	 * <br>
	 * @param arg0 調整する文字列
	 * @param arg1 調整する長さ
	 * @return String 充填後の文字列
	 */
	private String paddingSpace(String arg0, int arg1)
	{
		String sTarget = arg0;

		if (sTarget.length() < arg1)
		{
			StringBuffer buf = new StringBuffer(sTarget);

			int insIdx = 0;

			if (sTarget.startsWith("-"))
			{
				insIdx = 1;
			}

			for (int i = buf.length(); i < arg1; i++)
			{
				buf.insert(insIdx, " ");
			}

			sTarget = buf.toString();
		}

		return sTarget;
	}

}