/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0227_FUSV0227OPDBMapper
*	ソースファイル名：FUSV0227_FUSV0227OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年04月25日
*＜機能概要＞
*	BP（会員情報チェック）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/04/25	FJ		    新規作成
*   v5.00.00    2013/02/21  FJ）齋藤    【ANK-1222-00-00】スマートリンク料金シミュレーション対応
*   v5.01.00    2013/03/13  FJ）岡井    【IT1-2013-0000445】ADSL＆登録フラグ対応
*
**********************************************************************/
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.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class FUSV0227_FUSV0227OPDBMapper
{

	/**
	 * コンストラクタ
	 */
	public FUSV0227_FUSV0227OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV022701CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		X31SDataBeanAccessArray arr = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webinfo = arr.getDataBean(0);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// ＳＹＳＩＤ → 現督促ステータス一覧照会SCマップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("sysid", webinfo.sendMessageString("ｓｙｓＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV022701CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV022702SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		X31SDataBeanAccessArray arr = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webinfo = arr.getDataBean(0);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// ＳＹＳＩＤ → お客様一意照会SCマップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("key_sysid", webinfo.sendMessageString("ｓｙｓＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		parentMap.put("key_rsv_aply_ymd", JFUWebCommon.getOpeDate(bl, null));

		outputMap.put("FUSV022702SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV022703SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		X31SDataBeanAccessArray arr = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webinfo = arr.getDataBean(0);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// ＳＹＳＩＤ → 連絡先メールアドレス一覧照会SCマップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("key_sysid", webinfo.sendMessageString("ｓｙｓＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV022703SC", parentMap);

		return outputMap;
	}

	/* 2013/02/21 ANK-1222-00-00 Y.Saitou ADD-START */
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV022704SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		X31SDataBeanAccessArray arr = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webinfo = arr.getDataBean(0);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// ＳＹＳＩＤ → オプションサービス既契約情報一覧照会SCマップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("key_sysid", webinfo.sendMessageString("ｓｙｓＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV022704SC", parentMap);

		return outputMap;
	}
	/* 2013/02/21 ANK-1222-00-00 Y.Saitou ADD-END */

	/**
	 * サービス契約一覧照会（SYSID）3SCの上りマッピングをします。
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV022705SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		X31SDataBeanAccessArray arr = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webinfo = arr.getDataBean(0);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// ＳＹＳＩＤ → オプションサービス既契約情報一覧照会SCマップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("key_sysid", webinfo.sendMessageString("ｓｙｓＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV022705SC", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピングをする
	 * @param bean　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public void getFUSV022702SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		if (outputMap == null)
		{
			return;
		}

		if (!outputMap.containsKey("FUSV022702SC"))
		{
			return;
		}

		HashMap scMap = (HashMap)outputMap.get("FUSV022702SC");

		if (!scMap.containsKey("ECK0011A010CBSMsg1List"))
		{
			return;
		}

		// 明細を取得
		ArrayList<HashMap> meisaiList = (ArrayList<HashMap>)scMap.get("ECK0011A010CBSMsg1List");

		if (null == meisaiList || meisaiList.size() < 1)
		{
			return;
		}

		// 検索結果を取得
		HashMap searchResultMap = meisaiList.get(0);

		X31SDataBeanAccessArray arr = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webinfo = arr.getDataBean(0);
		
		X31SDataBeanAccessArray arr1 = webinfo.getDataBeanArray(CommonInfoCFConst.CONT_INFO);
		X31SDataBeanAccess contInfo = arr1.getDataBean(0);

		// コンテンツお客様名
		contInfo.sendMessageString(CommonInfoCFConst.CONT_CUST_NM_50, X31CWebConst.DATABEAN_SET_VALUE, (String)searchResultMap.get("cont_cust_nm"));
		// コンテンツお客様カナ名
		contInfo.sendMessageString(CommonInfoCFConst.CONT_CUST_KANA_50, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon
				.convFullKataToFullHiraV((String)searchResultMap.get("cont_cust_kana")));
		// コンテンツ郵便番号
		contInfo.sendMessageString(CommonInfoCFConst.CONT_PCD_50, X31CWebConst.DATABEAN_SET_VALUE, (String)searchResultMap.get("cont_pcd"));
		// コンテンツお客様生年月日
		contInfo.sendMessageString(CommonInfoCFConst.CONT_CUST_BIRTHD_50, X31CWebConst.DATABEAN_SET_VALUE, (String)searchResultMap.get("cont_cust_birthd"));
		// コンテンツお客様性別コード
		contInfo.sendMessageString(CommonInfoCFConst.CONT_CUST_SEX_CD_50, X31CWebConst.DATABEAN_SET_VALUE, (String)searchResultMap.get("cont_cust_sex_cd"));
		// 契約者タイプコード
		webinfo.sendMessageString(CommonInfoCFConst.KEI_SBT_06, X31CWebConst.DATABEAN_SET_VALUE, (String)searchResultMap.get("keisha_type_cd"));
	}

	/**
	 * 下りマッピングをする
	 * @param bean　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public void getFUSV022703SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		if (outputMap == null)
		{
			return;
		}

		if (!outputMap.containsKey("FUSV022703SC"))
		{
			return;
		}

		HashMap scMap = (HashMap)outputMap.get("FUSV022703SC");

		if (!scMap.containsKey("ECK0201B002CBSMsg1List"))
		{
			return;
		}

		// 明細を取得
		ArrayList<HashMap> meisaiList = (ArrayList<HashMap>)scMap.get("ECK0201B002CBSMsg1List");

		if (null == meisaiList || meisaiList.size() < 1)
		{
			return;
		}

		// 検索結果を取得
		HashMap searchResultMap = meisaiList.get(0);

		X31SDataBeanAccessArray arr = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webinfo = arr.getDataBean(0);
		
		X31SDataBeanAccessArray arr1 = webinfo.getDataBeanArray(CommonInfoCFConst.CONT_INFO);
		X31SDataBeanAccess contInfo = arr1.getDataBean(0);

		// WEB新規情報.コンテンツ用連絡先メールアドレス
		contInfo.sendMessageString(CommonInfoCFConst.CONT_MLAD_50, X31CWebConst.DATABEAN_SET_VALUE, (String)searchResultMap.get("mlad"));
	}

	/* 2013/02/21 ANK-1222-00-00 Y.Saitou ADD-START */
	/**
	 * 下りマッピングをする
	 * @param bean　[0]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public void getFUSV022704SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		if (outputMap == null)
		{
			return;
		}

		if (!outputMap.containsKey("FUSV022704SC"))
		{
			return;
		}

		HashMap scMap = (HashMap)outputMap.get("FUSV022704SC");

		if (!scMap.containsKey("EKK0351B513CBSMsg1List"))
		{
			return;
		}

		// 明細を取得
		ArrayList<HashMap> meisaiList = (ArrayList<HashMap>)scMap.get("EKK0351B513CBSMsg1List");

		if (null == meisaiList || meisaiList.size() < 1)
		{
			return;
		}

		// ＷＥＢ新規情報
		X31SDataBeanAccessArray arr = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess webinfo = arr.getDataBean(0);

		// 契約サービス情報
		X31SDataBeanAccessArray arr1 = webinfo.getDataBeanArray(CommonInfoCFConst.KEIYAKU_SVC_INFO);
		X31SDataBeanAccess keiyakuSvcInfo = arr1.getDataBean(0);
		
		// 検索結果
		for (int i = 0; i < meisaiList.size(); i++)
		{
			HashMap searchResultMap = meisaiList.get(i);
			
			// オプションサービスコード＝「B077：スマートリンクプレミアム」の場合 
			if (JFUStrConst.CD00136_B077.equals((String) searchResultMap.get("op_svc_cd")))
			{
				// 契約サービス情報.契約中オプション（スマートリンク）
				keiyakuSvcInfo.sendMessageString(CommonInfoCFConst.NOW_OPTION_SMARTLINK_10, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.NOW_OPTION_SMARTLINK_KEI_CHU);
				break;
			}
		}

	}
	/* 2013/02/21 ANK-1222-00-00 Y.Saitou ADD-END */

}