/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CNW00101SFLogic
*	ソースファイル名：CNW00101SFLogic.java
*	作成者			：EK908988
*	日付			：2011年08月03日
*＜機能概要＞
*	コンテンツ契約一覧照会のViewロジックです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*
********************************************************************************/

package eo.web.webview.CNW01601SF;

import java.util.ArrayList;
import java.util.EventObject;
import java.util.HashMap;

import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CID;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31SRuntimeException;
import com.fujitsu.futurity.web.x33.X33SException;

import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CNW00501SF.CNW00501SFConst;
import eo.web.webview.CNW01601SF.CNW01601SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCNScreenConst;
import eo.web.webview.common.JCNWebConst;
import eo.web.webview.mapping.CNSV0001_CNSV0001OPDBMapper;
import eo.web.webview.mapping.CNSV0002_CNSV0002OPDBMapper;
import eo.web.webview.mapping.CNSV0003_CNSV0003OPDBMapper;
import eo.web.webview.mapping.CNSV0039_CNSV0039OPDBMapper;
import eo.common.constant.JPCModelConstant;

/**
 * コンテンツ契約一覧照会のViewロジック<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CNW01601SFLogic extends JCCWebBusinessLogic
{

	private static final String BLANK_STRING = "";

	/**
	 * 親クラスX31BWebBusinessLogicのreceiveMessageWebを
	 * オーバーライドして自動生成されたメソッドです。
	 * @param arg0 (I) イベント情報
	 * @param arg1 (I) WebFWでは使用しません
	 * @param arg2 (I) WebFWでは使用しません
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws X33SException X33SException
	 */
	@Override
	protected boolean receiveMessageWeb(X31CID arg0, Object arg1,
			EventObject arg2) throws X33SException
	{

		return false;
	}

	/**
	 * コンテンツ契約一覧の初期表示を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean action_init() throws Exception
	{

		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// パラメータ情報を取得する
		HashMap param = JCCWebCommon.getScreenInfo(this);
		bean.sendMessageString(CNW01601SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)param.get(CNW01601SFConst.SYSID));
		bean.sendMessageString(CNW01601SFConst.ISP_KSSAI_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)param.get(CNW01601SFConst.ISP_KSSAI_SVC_KEI_NO));
		bean.sendMessageString(CNW01601SFConst.CONT_PAYWAY, X31CWebConst.DATABEAN_SET_VALUE, (String)param.get(CNW01601SFConst.CONT_PAYWAY));
		
		// マッピングクラスに渡すため、配列に作り変える
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップ生成
		HashMap paramMap = new HashMap();
		// ユースケースID設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CNSV0039");

		// マッピングクラスのインスタンス作成

		// 検索結果格納用マップ生成
		HashMap outputMap = new HashMap();

		HashMap inMap = new HashMap();
		CNSV0039_CNSV0039OPDBMapper mapper = new CNSV0039_CNSV0039OPDBMapper();
		
		// 上りマッピング
		// サービス契約
		mapper.setCNSV003901SC(paramBean, inMap, "2", this);
		// 料金コース
		mapper.setCNSV003902SC(inMap, "2");
		// サービス契約回線内訳
		mapper.setCNSV003903SC(inMap, "1");
		
		try 
		{
			// サービス呼出し
			invokeService(paramMap, inMap, outputMap);
		} 
		catch (JCCWebServiceException jwse)
		{
			jwse.printStackTrace();
			
			// TODO
			throw jwse;
		}
		
		// 下りマッピング
		// サービス契約
		mapper.getCNSV003901SC(paramBean, outputMap);
		// 料金コース
		mapper.getCNSV003902SC(paramBean, outputMap);
		// サービス契約回線内訳
		mapper.getCNSV003903SC(paramBean, outputMap);
		
		// エラー処理 

		// 検索結果の取り出し

		// 検索エラーフラグの取得
//		String searchError = JCCWebCommon.getSearchErrFlg("CNSV003901SC", outputMap);
//		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchError))
//		{
//			// 検索結果０件
//			JCCWebCommon.setMessageInfo(this, JCNWebConst.SEARCH_ERR_MESSAGE_ZERO);
//		}

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW01601);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW01601);

		return true;
	}


}