/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0350_FUSV0350OPDBMapper
*	ソースファイル名：FUSV0350_FUSV0350OPDBMapper.java
*	作成者			：FJ
*   日付            ：2021年10月11日
*＜機能概要＞
*	BP（eo光無線ルーター申込（初期表示））へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*   v55.00      2021/10/11   FJ）西川  【ANK-4146-00-00】【eo定期】多機能ルーター枯渇対応 STEP2
*   
**********************************************************************/
package eo.web.webview.mapping;

import static eo.web.webview.common.JFUWebCommon.SEP_0;
import static eo.web.webview.common.JFUWebCommon.SSO_INFO;

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.FUW07111SF.FUW07111SFConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class FUSV0350_FUSV0350OPDBMapper
{

	/** 料金グループコード */
	private static final String KEY_PRC_GRP_CD = "key_prc_grp_cd";

	/** 宅内機器型式コード（FUDispDefinition.xmlより） */
	private static final String TAKNKIKI_MODEL_CD_EORTWR = "DISPSETTING/SETTING[@screenId='FUW07111']/DISPCTL[@id='EORTWR_TAKNKIKI_MODEL_CD']";

	/** 一時支払料金番号(事務手数料：eo光無線ルーター) */
	private static final String TMP_PAY_PRC_NO_EORTWR = "DISPSETTING/SETTING[@screenId='FUW07111']/DISPCTL[@id='EORTWR_TMP_PAY_PRC']";

	// マップキー
	/** 提供方式契約番号 */
	private static final String TK_HOSHIKI_KEI_NO = "tk_hoshiki_kei_no";

	/** 申込明細番号 */
	private static final String MSKM_DTL_NO = "mskm_dtl_no";

	/**
	 * コンストラクタ
	 */
	public FUSV0350_FUSV0350OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：eo光無線ルーター申込
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	public HashMap setFUSV035001CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) throws Exception
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → eo光無線ルーター申込（初期表示）マップ.ＫＥＹ＿サービス契約番号
		String svcKeiNo = JFUWebCommon.getDataBeanItemByPath(bean[1], SSO_INFO + SEP_0 + CommonInfoCFConst.SVC_KEI_NO_21);
		parentMap.put("key_svc_kei_no", svcKeiNo);
		// 宅内機器型式コード → eo光無線ルーター申込（初期表示）マップ.ＫＥＹ＿宅内機器型式コード（"EORT150ZWR"eo光無線ルーター）
		parentMap.put("key_taknkiki_model_cd", JFUWebCommon.getDispItem(TAKNKIKI_MODEL_CD_EORTWR));
		// 機器提供種別コード → eo光無線ルーター申込（初期表示）マップ.ＫＥＹ＿機器提供種別コード（"02"レンタル）
		parentMap.put("key_kktk_sbt_cd", JFUStrConst.CD00212_02);

		// SYSID → eo光無線ルーター申込（初期表示）マップ.SYSID
		String sysid = JFUWebCommon.getDataBeanItemByPath(bean[1], SSO_INFO + SEP_0 + CommonInfoCFConst.SYSID_21);
		parentMap.put("sys_id", sysid);

		// サービス契約回線内訳番号 → eo光無線ルーター申込（初期表示）マップ.サービス契約回線内訳番号
		String svcKeiKaisenUcwkNo = JFUWebCommon.getDataBeanItemByPath(bean[1],JFUWebCommon.SVC_KEI_KAISEN_UCWK_INFO + JFUWebCommon.SEP_0 + CommonInfoCFConst.SVC_KEI_KAISEN_UCWK_NO_26);
		parentMap.put("svc_kei_kaisen_ucwk_no", svcKeiKaisenUcwkNo);

		// 共有フォームBean
		X31SDataBeanAccess commoninfoBean = bean[1];

		// 契約サービス情報
		X31SDataBeanAccess svcKeiInfoBean = JFUWebCommon.getDataBeanTypeByPath(commoninfoBean, JFUWebCommon.SVC_KEI_INFO);

		// 料金グループコード（例：02）
		parentMap.put(KEY_PRC_GRP_CD, svcKeiInfoBean.sendMessageString(CommonInfoCFConst.PRC_GRP_CD_23, X31CWebConst.DATABEAN_GET_VALUE));
		// 整理番号
		parentMap.put("seiri_no", svcKeiInfoBean.sendMessageString(CommonInfoCFConst.SEIRI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		// 提供方式契約番号
		String tkHoshikiKeiNo = svcKeiInfoBean.sendMessageString(CommonInfoCFConst.TK_HOSHIKI_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put(TK_HOSHIKI_KEI_NO, tkHoshikiKeiNo);

		// 申込明細番号
		String mskmDtlNo = svcKeiInfoBean.sendMessageString(CommonInfoCFConst.MSKM_DTL_NO_23, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put(MSKM_DTL_NO, mskmDtlNo);

		// 一時支払料金番号
		parentMap.put("key_tmp_pay_prc_no", JFUWebCommon.getDispItem(TMP_PAY_PRC_NO_EORTWR));

		outputMap.put("FUSV035001CC", parentMap);

		return outputMap;
	}
}