/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：契約管理
 *   モジュール名    ：帯域制限照会画面
 *   ソースファイル名：KKW02541SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2012年05月25日
 *＜機能概要＞
 *   帯域情報の一覧を表示します。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v4.00       2012/05/25   FJ）森本    新規作成
 *   v4.01       2012/10/03   FJ）近藤    障害番号：IT1-2012-0001210対応
 *
 **********************************************************************/
package eo.web.webview.KKW02541SF;

import java.util.HashMap;

import com.fujitsu.futurity.common.JSYwebLog;
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.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0573_KKSV0573OPDBMapper;

/**
 * <dd>クラス名：KKW02541SFLogic 
 * <dd>クラス説明：該当サービス契約の帯域情報の表示を行う。 
 * <dd>備考：なし。
 * 
 * @version 4.00 2012/05/25
 * @author 富士通
 */
public class KKW02541SFLogic extends JCCWebBusinessLogic {

	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionInit() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定。
		JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// DataBean設定処理（引継情報）
		setHktgiBean(paramBean);
		
		// 初期表示サービス呼出処理
		executeInitSvc(paramBean);
		
		// 表示用認証ID作成処理
		setNinshoID(paramBean);

		// 自画面の画面名を設定
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW02541);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 帯域情報照会サービス実行処理(初期表示用)
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void executeInitSvc(X31SDataBeanAccess[] paramBean)
	{
		
		// 帯域情報照会
		HashMap<String, Object> paramMap = new HashMap<String, Object>();		// パラメタ設定用マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();		// 入力用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();		// 結果格納用マップ

		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0573");

		// 上りマッピング処理(サービス項目-DataBean項目マッピング)
		KKSV0573_KKSV0573OPDBMapper mapper = new KKSV0573_KKSV0573OPDBMapper();

		// 帯域情報一覧照会
		mapper.setKKSV057301SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// サービス呼出処理
		invokeService(paramMap, inputMap, outputMap);

		// オプションサービス契約一意照会
		mapper.getKKSV057301SC(paramBean, outputMap);

	}

	/**
	 * DataBean設定処理（初回データ保持用）<br>
	 * <br>
	 * 画面DataBeanに必要な項目をセットします。<br>
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setHktgiBean(X31SDataBeanAccess[] paramBean)
	{
		// v4.01 2012/10/03 IT1-2012-0001210 DEL START
		// 顧客契約引継リストの取得
//		X31SDataBeanAccessArray hktgilist = paramBean[0].getDataBeanArray(KKW02541SFConst.CUST_KEI_HKTGI_LIST);
//		X31SDataBeanAccess hktgiBean = hktgilist.getDataBean(0);

		// 引継リストから取得した項目をDataBeanにセットしなおす
		// SYSID
//		String sysid = hktgiBean.sendMessageString(KKW02541SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE);
//		paramBean[0].sendMessageString(KKW02541SFConst.SYSID,  X31CWebConst.DATABEAN_SET_VALUE, sysid);
//		v4.01 2012/10/03 DEL END

		// v4.01 2012/10/03 MOD START
		// サービス契約番号
//		String svc_kei_no = hktgiBean.sendMessageString(KKW02541SFConst.SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		String svc_kei_no = paramBean[0].sendMessageString(KKW02541SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW02541SFConst.SVC_KEI_NO,  X31CWebConst.DATABEAN_SET_VALUE, svc_kei_no);
		// v4.01 2012/10/03 IT1-2012-0001210 MOD END
	}

	/**
	 * 表示用認証ID作成処理<br>
	 * <br>
	 * 表示用認証IDをセットします。<br>
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setNinshoID(X31SDataBeanAccess[] paramBean)
	{
		// 帯域情報リストを取得
		X31SDataBeanAccessArray tik_list = paramBean[0].getDataBeanArray(KKW02541SFConst.TIK_LIST);
		
		for(int i = 0; i < tik_list.getCount(); i++)
		{
			X31SDataBeanAccess tik_bean = null;
			if(tik_list.getCount() - 1 >= i)
			{
				tik_bean = tik_list.getDataBean(i);
			}
			else
			{
				tik_bean = tik_list.addDataBean();
			}
			if (tik_bean == null) 
			{
				continue;
			}
			
			// 表示用認証ID
			String ninsho_id = null;
			// isp認証IDを取得
			String isp_ninsho_id = tik_bean.sendMessageString(KKW02541SFConst.ISP_NINSHO_ID_01, X31CWebConst.DATABEAN_GET_VALUE);
			// マルチセッション用認証IDを取得
			String mltise_ninsho_id = tik_bean.sendMessageString(KKW02541SFConst.MLTISE_NINSHO_ID_01, X31CWebConst.DATABEAN_GET_VALUE);
			
			if(mltise_ninsho_id == null || "".equals(mltise_ninsho_id))
			{
				ninsho_id = isp_ninsho_id;
			}
			else
			{
				ninsho_id = isp_ninsho_id + "," + mltise_ninsho_id;
			}
			// 帯域情報リスト.表示用認証IDの設定
			tik_bean.sendMessageString(KKW02541SFConst.NINSHO_ID_01, X31CWebConst.DATABEAN_SET_VALUE, ninsho_id);
			
			// v4.01 2012/10/03 IT1-2012-0001210 ADD START
			// 表示に使用する行の設定を表示
			if (i % 2 == 1)
			{
				tik_bean.sendMessageString(KKW02541SFConst.ROW_STYLE_01, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
			else
			{
				tik_bean.sendMessageString(KKW02541SFConst.ROW_STYLE_01, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}
			// v4.01 2012/10/03 IT1-2012-0001210 ADD END

		}
	}
}
