/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW14201SFLogic
*   ソースファイル名：KKW14201SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年08月11日
*＜機能概要＞
*   eo光テレビ 新コース登録／コース変更画面 Viewロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/08/11   FJ）磯俣    新規作成
*   v4.00.00    2012/11/05   FJ）磯俣    新規作成
*
**********************************************************************/

package eo.web.webview.KKW14201SF;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCMessageCache;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0610_KKSV0610OPDBMapper;


/**
 * STBコース履歴詳細画面のビューロジック処理を行います。
 * @author user
 *
 */
public class KKW14201SFLogic extends JCCWebBusinessLogic
{
	
	
	/**
	 * STBコース履歴詳細画面 初期表示処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定する
		HashMap<String, Object> parameterMap = JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		
		// 運用日の取得
		String unyo_ymd = JCCWebCommon.getOpeDate(this, null);
		serviceBean.sendMessageString(KKW14201SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);
		
		// 引継情報の取得
		String param = (String)parameterMap.get("svc_kei_ucwk_no");
		serviceBean.sendMessageString(KKW14201SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, param);
		
		
		
		// STBコース履歴情報を取得する
		callServiceKKSV0610(serviceBean);
		
		
		// 自画面へ遷移する
		setMyScreen(commonBean);
		
		
		return true;
	}
	
	/**
	 * 画面初期表示時の取得処理を行います。
	 * <br>
	 * @param serviceBean 設定する画面のBean
	 * 
	 * @return boolean サービス呼び出し結果
	 * @throws Exception
	 */
	private boolean callServiceKKSV0610(X31SDataBeanAccess serviceBean)throws Exception
	{
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// 検索処理のユースケースID格納用マップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0610");
		
		// データBeanとBPをマッピングするインスタンスを生成
		KKSV0610_KKSV0610OPDBMapper mapper = new KKSV0610_KKSV0610OPDBMapper();
		
		// 共通情報の設定
		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
		
		
		mapper.setKKSV061001SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV061002SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		
		
		// 検索結果有無フラグ
		paramBean[0].sendMessageBoolean(KKW14201SFConst.RESULT_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		
		
		
		// サービスの呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// メッセージ定義ファイルを読み込む
		JCCMessageCache.setMessageCache();
		
		// サービス結果の転記
		mapper.getKKSV061001SC(paramBean, outputMap);
		
		int listArray = serviceBean.getDataBeanArray(KKW14201SFConst.STB_CRS_RIREKI_LIST).getCount();
		
		if(listArray != 0)
		{
			// 検索結果有無フラグ
			paramBean[0].sendMessageBoolean(KKW14201SFConst.RESULT_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
		}
		
		return true;
	}
	
	/**
	 * 自画面へ遷移します。
	 * <br>
	 * @param commoninfoBean 共有フォームBean
	 * @return なし
	 */
	private void setMyScreen(X31SDataBeanAccess commoninfoBean) 
	{
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14201);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW14201);
	}
	
	
}
