/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CHSV0013_CHSV0013OPDBMapper
 *	ソースファイル名：CHSV0013_CHSV0013OPDBMapper.java
 *	作成者			：富士通
 *	日付			：2011年08月22日
 *＜機能概要＞
 *	BP（金庫登録）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/08/22	富士通		新規作成
 *  v5.00.00	2013/07/06  FJ) 林	   【LT-2013-0000252】 入金登録時、郵券＿受取組織コードを登録するよう修正
 *	v5.00.01	2013/08/03  FJ) 吉田   【IT1-2013-0001510】入金系画面強化対応
 *	v5.00.02	2013/08/08	FJ) 林	   【IT2-2013-0000721・722】入金スキーマ登録対象項目の精査
 *	v5.00.03	2013/09/07	FJ) 垣内   【OM-2013-0001613】現金・総合口座時の金融機関コード設定不備
 *	v6.00.00	2013/10/23	FJ)鈴木		【OM-2013-0002865】入金経路が総合口座の場合、引落金融機関、支店を選択可能とする
 *	v32.00.00	2017/04/21	FJ)佐々木	【ANK-2996-00-00】
 *	v37.00.00	2018/04/26	FJ)麻生		【ANK-3366-00-00】eo光設備卸対応
 **********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JACStrConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CHW01102SF.CHW01102SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JACScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCHDspEditUtil;
import eo.web.webview.common.JCHPulldownUtil;
import eo.web.webview.common.JCHWebCommon;
import eo.web.webview.common.JCRWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CHSV0013_CHSV0013OPDBMapper
{

	/**
	 * コンストラクタ
	 */
	public CHSV0013_CHSV0013OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：金庫登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001301SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 固定値 → 入金登録マップ.入金ステータス
		parentMap.put("nyukin_stat_cd", JACStrConst.NYUKIN_STAT_CD_NYUKIN_SUMI);
		
		// 指定口座コード取得
		String shiteiKozaCd = JCHPulldownUtil.getSelectedValue(bean, CHW01102SFConst.SHITEIKOZA_INFO, CHW01102SFConst.SHITEIKOZA_CD_LIST_03,
				CHW01102SFConst.SHITEIKOZA_CD_SEL_03);

//ANK-2996-00-00 MOD START
		// 固定値 → 入金登録マップ.収納機関コード
//		parentMap.put("shunokikan_cd", JCHDspEditUtil.getShunoKikanCd(
//				bean[0].sendMessageString("入金経路コード", X31CWebConst.DATABEAN_GET_VALUE)
//				, shiteiKozaCd));
		//収納機関コード取得
		String shunokkancd = JCHPulldownUtil.getSelectedValue(bean, CHW01102SFConst.SHUNO_KKN_INFO, CHW01102SFConst.SHUNO_KKN_CD_LIST_09,
				CHW01102SFConst.SHUNO_KKN_CD_SEL_09);
		// ANK-3366-00-00 ADD START
		// 卸先事業者コード取得
		String orsjgsCd = JCHPulldownUtil.getSelectedValue(bean, CHW01102SFConst.ORSJGS_INFO, CHW01102SFConst.ORSJGS_CD_LIST_10,
				CHW01102SFConst.ORSJGS_SEL_10);
		// ANK-3366-00-00 ADD END
		parentMap.put("shunokikan_cd", JCHDspEditUtil.getShunoKikanCd(
		bean[0].sendMessageString("入金経路コード", X31CWebConst.DATABEAN_GET_VALUE)
		// ANK-3366-00-00 MOD START
//		, shiteiKozaCd, shunokkancd));
		, shiteiKozaCd, shunokkancd, orsjgsCd));
		// ANK-3366-00-00 MOD END
//ANK-2996-00-00 MOD END
		// 固定値 → 入金登録マップ.入金登録方法コード
		parentMap.put("nyukin_add_way_cd", JACStrConst.NYUKIN_ADD_WAY_KNK);
		// 固定値 → 入金登録マップ.入金処理済フラグ
		parentMap.put("nyukin_syrzm_flg", JACStrConst.NKIN_SYORI_ZUMI_FLG_SUMI);

		// 入金経路コード
		String nyukinRouteCd = bean[0].sendMessageString("入金経路コード", X31CWebConst.DATABEAN_GET_VALUE);
		// v52.00.00 ADD Start
		if (JACStrConst.SHNKKNCD_CVSTORE_ETC_NORMAL_CUST.equals(nyukinRouteCd) || JACStrConst.SHNKKNCD_CVSTORE_ETC_NORMAL_COMP.equals(nyukinRouteCd))
		{
			nyukinRouteCd = JACStrConst.NYKNKEIRCD_CVSTORE_ETC;
		}
		// v52.00.00 ADD End
		
		// 入金経路コード → 入金登録マップ.入金経路コード
		parentMap.put("nyukin_route_cd", nyukinRouteCd);
		// 収納日 → 入金登録マップ.外部組織収納年月日
		parentMap.put("shuno_ymd", bean[0].sendMessageString("収納日", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用日 → 入金登録マップ.入金処理年月日
		parentMap.put("nyukin_trn_ymd", JCCWebCommon.getOpeDate(bl, null));
		// 運用日（時分秒） → 入金登録マップ.入金処理時分秒
		parentMap.put("nyukin_trn_hms", JCCWebCommon.getOpeDateTimeStamp(bl, null).substring(8, 17));
		// 領収日 → 入金登録マップ.領収年月日
		parentMap.put("receipt_ymd", bean[0].sendMessageString("領収日", X31CWebConst.DATABEAN_GET_VALUE));
		// 入金額 → 入金登録マップ.入金額
		parentMap.put("nyukin_amnt", bean[0].sendMessageString("入金額", X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号 → 入金登録マップ.請求契約番号
		parentMap.put("seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 窓口支払金融機関コード → 入金登録マップ.窓口金融機関コード
		parentMap.put("madoguchi_bank_cd", bean[0].sendMessageString("窓口支払金融機関コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 窓口支払金融機関支店コード → 入金登録マップ.窓口金融機関支店コード
		parentMap.put("madoguchi_bank_shiten_cd", bean[0].sendMessageString("窓口支払金融機関支店コード", X31CWebConst.DATABEAN_GET_VALUE));

		String bankCd = null;
		String bankSubCd = null;
		if (JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nyukinRouteCd)) // 入金経路コードが総合口座の場合
		{
			// 引落金融機関を取得
			bankCd = bean[0].sendMessageString("引落金融機関コード", X31CWebConst.DATABEAN_GET_VALUE);
			bankSubCd = bean[0].sendMessageString("引落金融機関支店コード", X31CWebConst.DATABEAN_GET_VALUE);
		}
		else // 入金経路コードが総合口座以外の場合
		{
			// 窓口支払金融機関を取得
			bankCd = bean[0].sendMessageString("窓口支払金融機関コード", X31CWebConst.DATABEAN_GET_VALUE);
			bankSubCd = bean[0].sendMessageString("窓口支払金融機関支店コード", X31CWebConst.DATABEAN_GET_VALUE);
		}
		// 入金登録マップ.払込先金融機関コードを設定
		parentMap.put("hrakmisaki_bank_cd", bankCd);
		// 入金登録マップ.払込先金融機関支店コードを設定
		parentMap.put("hrakmisaki_bank_shiten_cd", bankSubCd);

		// 入金経路コードが総合口座以外の場合（総合口座の場合は引落金融機関コードを払込先金融機関コードに設定する）
		if (!JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nyukinRouteCd))
		{
			// 引落金融機関コード → 入金登録マップ.口座振替金融機関コード
			parentMap.put("khri_bank_cd", bean[0].sendMessageString("引落金融機関コード", X31CWebConst.DATABEAN_GET_VALUE));
			// 引落金融機関支店コード → 入金登録マップ.口座振替金融機関支店コード
			parentMap.put("khri_bank_shiten_cd", bean[0].sendMessageString("引落金融機関支店コード", X31CWebConst.DATABEAN_GET_VALUE));
		}
		// クレジットカード会社コード → 入金登録マップ.クレジットカード会社コード
		parentMap.put("crecard_comp_cd", bean[0].sendMessageString("クレジットカード会社コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 債権回収委託会社コード → 入金登録マップ.債権回収委託会社コード
		parentMap.put("sknksitkcm_cd", bean[0].sendMessageString("債権回収委託会社コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 指定口座コード → 入金登録マップ.指定口座コード
		parentMap.put("shiteikoza_cd", bean[0].sendMessageString("指定口座コード", X31CWebConst.DATABEAN_GET_VALUE));

		// 入金経路コードが現金、総合口座、郵便振込の場合
		if (JACStrConst.NYKNKEIRCD_GENKIN.equals(nyukinRouteCd) || JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nyukinRouteCd)
				|| JACStrConst.NYKNKEIRCD_YUBIN_FURIKM.equals(nyukinRouteCd))
		{
			// 受取り部門コード → 入金登録マップ.受取組織コード
			parentMap.put("uketori_org_cd", bean[0].sendMessageString("受取り部門コード", X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 入金経路コードが社用の場合
		if (JACStrConst.NYKNKEIRCD_SHANAI_USE.equals(nyukinRouteCd))
		{
			// 受取り部門コード → 入金登録マップ.社内使用分組織コード
			parentMap.put("syayobun_org_cd", bean[0].sendMessageString("受取り部門コード", X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		// 入金経路コードが郵券の場合
		if (JACStrConst.NYKNKEIRCD_YUKEN.equals(nyukinRouteCd))
		{
			// 受取り部門コード → 入金登録マップ.郵券＿受取組織コード
			parentMap.put("yuken_uketori_org_cd", bean[0].sendMessageString("受取り部門コード", X31CWebConst.DATABEAN_GET_VALUE));
		}

		// コンビニエンスストアコード → 入金登録マップ.コンビニエンスストアコード
		parentMap.put("cvstore_cd", bean[0].sendMessageString("コンビニエンスストアコード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV001301SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：金庫登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001302SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 固定値 → 金庫登録マップ.金庫移動コード
		parentMap.put("knk_move_cd", JACStrConst.KINKO_IDO_ADD);
		// 固定値 → 金庫登録マップ.金庫料金項目コード
		parentMap.put("knk_prc_kmk_cd", JACStrConst.PRC_KMK_CD_KARIUKE_AMNT);
		// 固定値 → 金庫登録マップ.履歴データフラグ
		parentMap.put("rireki_data_flg", JACStrConst.KNK_RIREKI_DATA_FLG_CURRENT);

		// 入金額 → 金庫登録マップ.金庫金額
		parentMap.put("knk_amnt", bean[0].sendMessageString("入金額", X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号 → 金庫登録マップ.請求契約番号
		parentMap.put("seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV001302SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：金庫登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　 ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setTAIOKIROKADDCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		String wkkbtOrgCd = JCRWebCommon.getWkkbtOrgCd(bean[1]);
		String wkkbtOrgNm = JCRWebCommon.getWkkbtOrgNm(bean[1]);
		String userId = bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		String userNm = bean[1].sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String dtm = JCCWebCommon.getSysDateTime();

		ArrayList<HashMap<String, Object>> taioKirokAddList = new ArrayList<HashMap<String, Object>>();

		HashMap<String, Object> childMap = new HashMap<String, Object>();

		// 金庫登録["125"固定] → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別コード
		childMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_KNK_ADD);

		// 金庫登録["1401"固定] → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別詳細コード
		childMap.put("prc_taio_kirok_dtl_bunrui_cd", JACStrConst.TKRK_SBTD_KNK_ADD);

		// "請求書再発行" → 対応記録登録マップ.対応記録登録リスト.タイトル
		childMap.put("title", JACScreenConst.SCREEN_NAME_CHW01102);

		// 記事 → 対応記録登録マップ.対応記録登録リスト.問合せ内容
		childMap.put("toiawase_naiyo", bean[0].sendMessageString("記事", X31CWebConst.DATABEAN_GET_VALUE));

		// 業務個別設定組織コード → 対応記録登録マップ.対応記録登録リスト.業務個別設定組織コード
		childMap.put("wkkbt_org_cd", wkkbtOrgCd);

		// 業務個別設定組織名 → 対応記録登録マップ.対応記録登録リスト.業務個別設定組織名
		childMap.put("wkkbt_org_nm", wkkbtOrgNm);

		// ユーザーＩＤ → 対応記録登録マップ.対応記録登録リスト.ユーザーＩＤ
		childMap.put("user_id", userId);

		// ユーザー名 → 対応記録登録マップ.対応記録登録リスト.ユーザー名
		childMap.put("user_nm", userNm);

		// 年月日時分秒 → 対応記録登録マップ.対応記録登録リスト.年月日時分秒
		childMap.put("dtm", dtm);

		// 応対区分カテゴリーリストの作成
		ArrayList<HashMap<String, Object>> rspCtgrList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> ctgrMap = new HashMap<String, Object>();

		// 金庫登録["125"固定] → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別コード
		ctgrMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_KNK_ADD);

		// 金庫登録["1401"固定] → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別詳細コード
		ctgrMap.put("prc_taio_kirok_dtl_bunrui_cd", JACStrConst.TKRK_SBTD_KNK_ADD);

		// taio_kirok_add_listにrsp_ctgr_listを追加
		rspCtgrList.add(ctgrMap);
		childMap.put("rsp_ctgr_list", rspCtgrList);

		taioKirokAddList.add(childMap);

		parentMap.put("taio_kirok_add_list", taioKirokAddList);

		parentMap.put("seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(JACStrConst.TAIOKIROKADDCC_MAP_ID, parentMap);

		return outputMap;

	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　 ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setADDHOTVOICCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 応対区分カテゴリーリストの作成
		ArrayList<HashMap<String, Object>> rspCtgrList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> ctgrMap = new HashMap<String, Object>();
		rspCtgrList.add(ctgrMap);

		parentMap.put("RSP_CTGR_List", rspCtgrList);
		outputMap.put("ADDHOTVOICCC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：金庫登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　 ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setPRCTAIOKIROKADDCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		List<HashMap<String, Object>> list = null;

		if (parentMap.containsKey("prc_taio_kirok_list"))
		{
			list = (ArrayList) parentMap.get("prc_taio_kirok_list");
		}
		else
		{
			list = new ArrayList();
		}

		HashMap childMap = new HashMap();
		// ユーザＩＤ → 料金対応記録登録マップ.料金対応記録明細リスト.料金対応ユーザＩＤ
		childMap.put("prc_taio_user_id", bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求契約番号 → 料金対応記録登録マップ.料金対応記録明細リスト.請求契約番号
		childMap.put("seiky_kei_no", bean[0].sendMessageString(CHW01102SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 金庫登録["125"固定] → 料金対応記録登録マップ.料金対応記録明細リスト.料金対応記録種別コード
		childMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_KNK_ADD);

		// 金庫登録["1401"固定] → 料金対応記録登録マップ.料金対応記録明細リスト.料金対応記録種別詳細コード
		childMap.put("prc_taio_kirok_sbt_dtl_cd", JACStrConst.TKRK_SBTD_KNK_ADD);

		// "請求書再発行" → 対応記録登録マップ.対応記録登録リスト.タイトル
		childMap.put("title", JACScreenConst.SCREEN_NAME_CHW01102);

		// 記事 → 料金対応記録登録マップ.料金対応記録明細リスト.記事
		childMap.put("kiji", bean[0].sendMessageString(CHW01102SFConst.KIJI, X31CWebConst.DATABEAN_GET_VALUE));

		// 入金額 → 料金対応記録登録マップ.料金対応記録明細リスト.変更後金額
		childMap.put("chg_af_amnt", bean[0].sendMessageString(CHW01102SFConst.NYUKIN_AMNT, X31CWebConst.DATABEAN_GET_VALUE));

		// 対応履歴表示 → 料金対応記録登録マップ.料金対応記録明細リスト.対応履歴連動対象フラグ
		childMap.put("taiorrki_rendo_tg_flg", JCHWebCommon.getRendoFlg(bean[0], CHW01102SFConst.TAIO_RIREKI_DSP));

		list.add(childMap);

		parentMap.put("prc_taio_kirok_list", list);

		outputMap.put(JACStrConst.PRCTAIOKIROKADDCC_MAP_ID, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：入金登録 [1]:共有フォームBean
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　       ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setPRCSCHDLTEIGI(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl) {

		if(bean == null){
			return null;
		}

		if(bean.length != 2){
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 部品呼び出し → 料金スケジュール定義一意照会マップ.ＫＥＹ＿イベントコード
		parentMap.put("key_event_cd", JACStrConst.EVENT_CD_CREDIT_SEIKY_REQ_YMD);

		// 部品呼び出し → 料金スケジュール定義一意照会マップ.ＫＥＹ＿運用日
		parentMap.put("key_unyo_day", JCCWebCommon.getOpeDate(bl, null));

		outputMap.put("PRCSCHDLTEIGI", parentMap);

		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：金庫登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001303SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 業務パラメータID（金融機関コード（ゆうちょ銀行）） → 業務パラメータ管理一意照会マップ.ＫＥＹ＿業務パラメータID
		parentMap.put("key_work_param_id", JACStrConst.WORK_PARAM_ID_BANK_CD_YUUCHO);

		outputMap.put("CHSV001303SC", parentMap);

		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：金庫登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001304SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		outputMap.put("CHSV001304SC", parentMap);

		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：金庫登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001305SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 入金経路コード → 入金登録マップ.入金経路コード
		String nyukinRouteCd = bean[0].sendMessageString("入金経路コード", X31CWebConst.DATABEAN_GET_VALUE);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		if (JACStrConst.NYKNKEIRCD_CVSTORE.equals(nyukinRouteCd))
		{
			// イベントコード(コンビニ) → 料金スケジュール定義一意照会マップ.ＫＥＹ＿イベントコード
			parentMap.put("key_event_cd", JACStrConst.SHNKKNCD_CVSTORE);
		}
		else if (JACStrConst.NYKNKEIRCD_CREDIT.equals(nyukinRouteCd))
		{
			// イベントコード(クレジット) → 料金スケジュール定義一意照会マップ.ＫＥＹ＿イベントコード
			parentMap.put("key_event_cd", JACStrConst.EVENT_CD_KAIK_SHORI_YMD);
		}

		// 収納日 → 料金スケジュール定義一意照会マップ.ＫＥＹ＿運用日
		parentMap.put("key_unyo_day", bean[0].sendMessageString("収納日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV001305SC", parentMap);

		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：金庫登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001306SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		outputMap.put("CHSV001306SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：金庫登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001307SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 業務パラメータID（金融機関コード（ゆうちょ銀行）） → 業務パラメータ管理一意照会マップ.ＫＥＹ＿業務パラメータID
		parentMap.put("key_work_param_id", JACStrConst.WKPARA_CH_HRKMSK_BANK_CD);

		outputMap.put("CHSV001307SC", parentMap);

		return outputMap;
	}
	
}