/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW00118SFLogic
*   ソースファイル名：KKW00118SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年09月01日
*＜機能概要＞
*   料金確認画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v4.00.00    2012/08/28   FJ）山本    新規作成
*   v5.00.00    2013/02/25   FJ）谷口    【IT1-2013-0000326】スマートリンク料金シュミレーション対応
*   v5.01.00    2013/04/04   FJ）松田    【IT1-2013-0000746】VDSL電話単独時の料金確認（同一回線も含む）
*   v6.00.00    2013/10/08   FJ) 竹中    【ANK-1580-00-00】eoスマートリンク改修対応@(複数契約対応・機種追加)
*   v9.00.00    2014/04/25   FJ) 高橋    【ANK-2054-00-00】スマートリンク端末補償
**********************************************************************/
package eo.web.webview.KKW00118SF;

import java.util.HashMap;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKKeiNewCmnLogicUtil;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0675_KKSV0675OPDBMapper;

/**
 * 料金シュミレーションを行います。
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW00118SFLogic extends JCCWebBusinessLogic 
{

	/**
	 * サービスフォームBeanの初期化処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// HashMap定義
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 親画面からの情報を取得
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
		
		// スマートリンク用文言の初期設定
		if ("".equals(bean.sendMessageString(KKW00118SFConst.TABLET_KAP_PLAN_CD, X31CWebConst.DATABEAN_GET_VALUE))
				&& "1".equals(bean.sendMessageString(KKW00118SFConst.TABLET_PREMIUM_OP_MKM_UM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 端末は申し込まずにプレミアムパックのみ申し込んでいる場合
			bean.sendMessageString(KKW00118SFConst.TABLET_KAPPLAN_PDMGN, X31CWebConst.DATABEAN_SET_VALUE,
					JKKKeiNewCmnLogicUtil.MSG_NO_SMART_LINK);
		}
		
		// --------------------------------
		// 上りのマッピング
		// --------------------------------

		KKSV0675_KKSV0675OPDBMapper mapper = new KKSV0675_KKSV0675OPDBMapper();
		mapper.setKKSV067501SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1, JCCWebCommon.getOpeDate(this, null));
		
		// 不要項目の削除
		map.remove(KKW00118SFConst.TABLET_KAP_PLAN_CD);
		map.remove(KKW00118SFConst.TABLET_PREMIUM_OP_MKM_UM);
		map.remove(KKW00118SFConst.TABLET_TNMT_COMPS_MKM_UM);
		// 呼び出し元画面で設定されたマップを、上りのマップとして渡す
		inputMap.put("KKSV067501CC", map);
		
		// --------------------------------
		// サービスの実施
		// --------------------------------
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0675");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0675OP");

		// 料金シュミレーションサービス
		invokeService(paramMap, inputMap, outputMap);

		// --------------------------------
		// 下りのマッピング
		// --------------------------------
		mapper.getKKSV067501SC(paramBean, outputMap);
		mapper.getKKSV067501CC(bean, outputMap);

		// 遷移先画面IDの設定
		setNextScreen(JKKScreenConst.SCREEN_ID_KKW00118, JKKScreenConst.SCREEN_NAME_KKW00118);

		return true;
	}

	/**
	 * 画面遷移先を設定します。
	 * <br>
	 * @param nextScreenId 遷移先画面ID
	 * @param nextScreenName 遷移先画面名
	 */
	private void setNextScreen(String nextScreenId, String nextScreenName)
	{
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);
	}
	
}
