/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKBcasCcasKikiReqChk
*	ソースファイル名：JKKBcasCcasKikiReqChk.java
*	作成者			：FJ
*	日付			：2012年03月23日
*＜機能概要＞
*	工事連携判定部品クラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/03/23	FJ			新規作成
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.bp.x21.bpm.common.AbstractCustomReqChk;
import com.fujitsu.futurity.bp.x21.bpm.common.IConditionValue;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.reqchk.exception.ReqChkException;

/**
 * 実行判定クラスです。
 * <BR>
 * @author 富士通
 */
public class JKKBcasCcasKikiReqChk extends AbstractCustomReqChk
{
	/**
	 * 実行判定処理
     * <BR>
     * @param irp
     * @param conditionvalue
	 * @return boolean
	 * @throws ReqChkException
	 */
	@Override
	public boolean checkExecution(IRequestParameterReadOnly irp, IConditionValue conditionvalue) throws ReqChkException
	{
		try
		{
			// 機器提供サービスコード（kktk_svc_cd）
			String kktkSvcCd = "";
			
			// B-CASの機器提供サービスコード
			String bcasKktkSvcCd = "";
			// C-CASの機器提供サービスコード
			String ccasKktkSvcCd = "";
			
			// 機器提供サービス契約一意照会SC
			HashMap<String, Object> kksv043401sc = (HashMap<String, Object>)irp.getData("KKSV043401SC");
			
			if(kksv043401sc != null)
			{
				HashMap<String, Object> kktkSvcKeiMap = (HashMap<String, Object>)((ArrayList)kksv043401sc.get("EKK0341A010CBSMsg1List")).get(0);
				
				// 業務パラメータ取得部品

				// TODO START:ＢＣＡＳ機器提供サービスコード,ＣＣＡＳ機器提供サービスコードを取得を変更
				kktkSvcCd = (String)kktkSvcKeiMap.get("kktk_svc_cd");
				bcasKktkSvcCd = (String)kksv043401sc.get("bcas_kktk_svc_cd");
				ccasKktkSvcCd = (String)kksv043401sc.get("ccas_kktk_svc_cd");
				
				// 以下、修正前の内容
//				HashMap<String, Object> jkkGetWorkParamCC = (HashMap<String, Object>)irp.getData("JKKGetWorkParamCC");
//				
//				HashMap<String, Object> workParamSetValue = (HashMap<String, Object>)jkkGetWorkParamCC.get("work_param_sette_value_map");
//				
//				kktkSvcCd = (String)kktkSvcKeiMap.get("kktk_svc_cd");
//				
//				bcasKktkSvcCd = (String)workParamSetValue.get("KK_BCAS_KKTK_SVC_CD");
//	
//				ccasKktkSvcCd = (String)workParamSetValue.get("KK_CCAS_KKTK_SVC_CD");
				// END
			}
			else
			{
				HashMap<String, Object> scrnData = (HashMap<String, Object>)irp.getData("SCRNDATA");
				
				kktkSvcCd = (String)scrnData.get("kktk_svc_cd_bf");
				
				bcasKktkSvcCd = (String)scrnData.get("bcas_kktk_svc_cd");
	
				ccasKktkSvcCd = (String)scrnData.get("ccas_kktk_svc_cd");
			}

			
			
			// B-CASまたはC-CASの場合
			if(bcasKktkSvcCd.equals(kktkSvcCd) || ccasKktkSvcCd.equals(kktkSvcCd))
			{
				return true;
			}
			
			return false;
			
		}
		catch (RequestParameterException e)
		{
			return false;
		}
	}
}
