/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0284_FUSV0284OPDBMapper
*	ソースファイル名：FUSV0284_FUSV0284OPDBMapper.java
*	作成者			：富士通
*	日付			：2014年05月09日
*＜機能概要＞
*	BP（eoスマートリンク端末補償一括申込(申込)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v9.00       2014/05/09  FJ)岡井     【ANK-2054-00-00】スマートリンク端末補償
*
**********************************************************************/
package eo.web.webview.mapping;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

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.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW11101SF.FUW11101SFConst;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをします。
 * <p>
 * <BR>
 * @author 富士通
 */

@SuppressWarnings("unchecked")
public class FUSV0284_FUSV0284OPDBMapper
{

	// ■SC＆CC
	/** FUSV028401CC */
	private static final String FUSV028401CC = "FUSV028401CC";

	// ■項目ID
	/** サービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";
	/** 更新年月日時分秒 */
	private static final String UPD_DTM = "upd_dtm";
	/** 進捗特記事項 */
	private static final String PRG_TKJK = "prg_tkjk";
	/** 機器提供サービス契約番号 */
	private static final String KKTK_SVC_KEI_NO = "kktk_svc_kei_no";
	/** 機器提供サービス契約ステータス */
	private static final String KKTK_SVC_KEI_STAT = "kktk_svc_kei_stat";
	/** 料金プランコード */
	private static final String PPLAN_CD = "pplan_cd";
	/** SYSID */
	private static final String SYSID = "sysid";
	/** 申込明細番号 */
	private static final String MSKM_DTL_NO = "mskm_dtl_no";
	/** 端末補償登録リスト */
	private static final String ADD_COMPS_LIST = "add_comps_list";

	// ■その他
	/** 特記事項１要素を取得する際のid */
	private static final String PRGADD_ID = "0";

	/** DataBean操作種別：項目値取得 */
	private static final String GET = X31CWebConst.DATABEAN_GET_VALUE;

	/**
	 * コンストラクタです。
	 */
	public FUSV0284_FUSV0284OPDBMapper()
	{
	}

	/**
	 * 端末補償登録CCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap マップ
	 * @return 結果マップ
	 */
	public HashMap setFUSV028401CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス契約番号
		parentMap.put(SVC_KEI_NO, bean[1].sendMessageString(CommonInfoCFConst.SVC_KEI_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
		// 更新年月日時分秒
		parentMap.put(UPD_DTM, bean[0].sendMessageString(FUW11101SFConst.LAST_UPD_DTM, X31CWebConst.DATABEAN_GET_VALUE));

		// 進捗特記事項1
		try
		{
			String prgTkjk = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW11102, PRGADD_ID);

			if(!JFUWebCommon.isNull(prgTkjk))
			{
				parentMap.put(PRG_TKJK, prgTkjk);
			}
			else
			{
				DEBUG_LOG.debug("※進捗特記事項1がXMLから正常に取得できませんでした。処理は続行します。");
			}
		}
		catch (Exception e)
		{
			DEBUG_LOG.debug("※進捗特記事項1がXMLから正常に取得できませんでした。処理は続行します。");
		}

		// 機器登録情報リスト
		ArrayList addCompsList = new ArrayList();
		// ｅｏスマートリンクタブレットリスト
		X31SDataBeanAccessArray tnmtBeanArray = bean[0].getDataBeanArray(FUW11101SFConst.EO_SMART_LINK_TAB_LIST);
		for (int i = 0; i < tnmtBeanArray.getCount(); i++)
		{
			X31SDataBeanAccess tnmtBean = tnmtBeanArray.getDataBean(i);
			HashMap childMap = new HashMap();

			// 申込判定
			if(!tnmtBean.sendMessageBoolean(FUW11101SFConst.MSKM_TNMT_COMPS_01, GET))
			{
				// 申し込まない端末情報は設定しない
				continue;
			}

			// 端末補償料金プランコード
			childMap.put(PPLAN_CD, tnmtBean.sendMessageString(FUW11101SFConst.TNMT_COMPS_PPLAN_CD_01, GET));
			// 機器提供サービス契約番号
			childMap.put(KKTK_SVC_KEI_NO, tnmtBean.sendMessageString(FUW11101SFConst.KKTK_SVC_KEI_NO_01, GET));
			// 機器提供サービス契約ステータス
			childMap.put(KKTK_SVC_KEI_STAT, tnmtBean.sendMessageString(FUW11101SFConst.KKTK_SVC_KEI_STAT_01, GET));
			// SYSID
			childMap.put(SYSID, tnmtBean.sendMessageString(FUW11101SFConst.SYSID_01, GET));
			// 申込明細番号
			childMap.put(MSKM_DTL_NO, tnmtBean.sendMessageString(FUW11101SFConst.MSKM_DTL_NO_01, GET));

			// リストへ格納
			addCompsList.add(childMap);
		}
		parentMap.put(ADD_COMPS_LIST, addCompsList);

		outputMap.put(FUSV028401CC, parentMap);

		return outputMap;
	}
}