/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0003_FUSV0003OPDBMapper
*	ソースファイル名：FUSV0003_FUSV0003OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年07月28日
*＜機能概要＞
*	BP（eo光ネット入力チェック）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/07/28	FJ		新規作成
*
**********************************************************************/
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.JFUStrConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class FUSV0003_FUSV0003OPDBMapper
{

	/** マップキー 最大年月日 */
	private static final String MAXYMD = "29991231";

	/** マップキー 割引サービス対象契約適用終了年月日 */
	private static final String MAPKEY_KEY_WRISVC_TG_KEI_TENDYMD = "wrisvc_tg_kei_tendymd";

	/** マップキー 割引サービス対象契約明細 */
	private static final String MAPKEY_KEY_EKK0451D010CBSMSG1LIST = "EKK0451D010CBSMsg1List";

	/**
	 * コンストラクタ
	 */
	public FUSV0003_FUSV0003OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネット入力
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV000301SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ｓｙｓｉｄ → サービス契約＜eo光ネット＞登録SCマップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ｓｙｓｉｄ", X31CWebConst.DATABEAN_GET_VALUE));
		// サービスコード → サービス契約＜eo光ネット＞登録SCマップ.サービスコード
		parentMap.put("svc_cd", bean[0].sendMessageString("サービスコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金グループコード → サービス契約＜eo光ネット＞登録SCマップ.料金グループコード
		parentMap.put("prc_grp_cd", bean[0].sendMessageString("料金グループコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースコード → サービス契約＜eo光ネット＞登録SCマップ.料金コースコード
		parentMap.put("pcrs_cd", bean[0].sendMessageString("料金コースコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金プランコード → サービス契約＜eo光ネット＞登録SCマップ.料金プランコード
		parentMap.put("pplan_cd", bean[0].sendMessageString("料金プランコード", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス開始希望日 → サービス契約＜eo光ネット＞登録SCマップ.サービス利用開始希望年月日
		parentMap.put("svc_use_sta_kibo_ymd", bean[0].sendMessageString("サービス開始希望日", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分 → サービス契約＜eo光ネット＞登録SCマップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV000301SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネット入力
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV000302SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス開始希望日 → サービス契約内訳＜eo光ネット＞登録SCマップ.サービス利用開始希望年月日
		parentMap.put("svc_use_sta_kibo_ymd", bean[0].sendMessageString("サービス開始希望日", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分 → サービス契約内訳＜eo光ネット＞登録SCマップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV000302SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネット入力
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV000303SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 機器提供サービスコード → 機器提供サービス契約登録SCマップ.機器提供サービスコード
		parentMap.put("kktk_svc_cd", bean[0].sendMessageString("機器提供サービスコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースコード（モデム） → 機器提供サービス契約登録SCマップ.料金コースコード
		parentMap.put("pcrs_cd", bean[0].sendMessageString("料金コースコード（モデム）", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金プランコード（モデム） → 機器提供サービス契約登録SCマップ.料金プランコード
		parentMap.put("pplan_cd", bean[0].sendMessageString("料金プランコード（モデム）", X31CWebConst.DATABEAN_GET_VALUE));
		// 機器提供種別コード → 機器提供サービス契約登録SCマップ.機器提供種別コード
		parentMap.put("kktk_sbt_cd", bean[0].sendMessageString("機器提供種別コード", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス開始希望日 → 機器提供サービス契約登録SCマップ.サービス利用開始希望年月日
		parentMap.put("svc_use_sta_kibo_ymd", bean[0].sendMessageString("サービス開始希望日", X31CWebConst.DATABEAN_GET_VALUE));
		// 販売種別コード → 機器提供サービス契約登録SCマップ.販売種別コード
		parentMap.put("hambai_sbt_cd", bean[0].sendMessageString("販売種別コード", X31CWebConst.DATABEAN_GET_VALUE));
		// ｓｙｓｉｄ → 機器提供サービス契約登録SCマップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ｓｙｓｉｄ", X31CWebConst.DATABEAN_GET_VALUE));

		// 異動区分 → 機器提供サービス契約登録SCマップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV000303SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネット入力
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV000304SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 月額料金 → 割引サービス契約登録SCマップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ｓｙｓｉｄ", X31CWebConst.DATABEAN_GET_VALUE));
		// 割引サービスコード → 割引サービス契約登録SCマップ.割引サービスコード
		parentMap.put("wrib_svc_cd", bean[0].sendMessageString("割引サービスコード", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス開始希望日 → 割引サービス契約登録SCマップ.サービス利用開始希望年月日
		parentMap.put("svc_use_sta_kibo_ymd", bean[0].sendMessageString("サービス開始希望日", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分 → 割引サービス契約登録SCマップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));

		/* ++++++++++ v1.00.00 個別実装開始 ++++++++++ */
		// 割引サービス契約自動継続識別コード → 割引サービス契約登録SCマップ.割引サービス契約自動継続識別コード (単項目チェックエラー回避用)
		parentMap.put("wrib_svc_kei_at_keizk_skcd", JFUStrConst.EMPTY);

		parentMap.put(MAPKEY_KEY_EKK0451D010CBSMSG1LIST, new ArrayList());

		List<HashMap<String, String>> childList = new ArrayList<HashMap<String, String>>();
		HashMap<String, String> childMap = new HashMap<String, String>();
		childMap.put(MAPKEY_KEY_WRISVC_TG_KEI_TENDYMD, MAXYMD);
		childList.add(childMap);
		parentMap.put(MAPKEY_KEY_EKK0451D010CBSMSG1LIST, childList);
		/* ++++++++++ v1.00.00 個別実装終了 ++++++++++ */

		outputMap.put("FUSV000304SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光ネット入力
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV000305SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ｓｙｓｉｄ → 割引サービス契約登録SCマップ（長割）.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ｓｙｓｉｄ", X31CWebConst.DATABEAN_GET_VALUE));
		// 割引サービスコード（長割） → 割引サービス契約登録SCマップ（長割）.割引サービスコード
		parentMap.put("wrib_svc_cd", bean[0].sendMessageString("割引サービスコード（長割）", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分 → 割引サービス契約登録SCマップ（長割）.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		// 割引サービス契約自動継続識別コード → 割引サービス契約登録SCマップ（長割）.割引サービス契約自動継続識別コード
		parentMap.put("wrib_svc_kei_at_keizk_skcd", bean[0].sendMessageString("割引サービス契約自動継続識別コード", X31CWebConst.DATABEAN_GET_VALUE));

		parentMap.put(MAPKEY_KEY_EKK0451D010CBSMSG1LIST, new ArrayList());
		/* ++++++++++ v1.00.00 個別実装開始 ++++++++++ */
		List<HashMap<String, String>> childList = new ArrayList<HashMap<String, String>>();
		HashMap<String, String> childMap = new HashMap<String, String>();
		childMap.put(MAPKEY_KEY_WRISVC_TG_KEI_TENDYMD, MAXYMD);
		childList.add(childMap);
		parentMap.put(MAPKEY_KEY_EKK0451D010CBSMSG1LIST, childList);
		/* ++++++++++ v1.00.00 個別実装終了 ++++++++++ */

		outputMap.put("FUSV000305SC", parentMap);

		return outputMap;
	}

}