package com.fujitsu.futurity.bp.custom.reqchk;

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.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.reqchk.exception.ReqChkException;

public class JKKSV003719ReqChk  extends AbstractCustomReqChk {

	/** 料金グループコード　02：eo光ネットホームタイプ */
	public static final String PRC_GRP_CD_HOME = "02";
	
	/** 料金グループコード　03：eo光ネットメゾンタイプ */
	public static final String PRC_GRP_CD_MEZON = "03";
	
	/** 料金グループコード　04：eo光ネットマンションタイプ */
	public static final String PRC_GRP_CD_MANS = "04";
	
	/** 料金グループコード　05：eoADSL(eAccess) */
	public static final String PRC_GRP_CD_EACCESS = "05";
	
	/** 料金グループコード　06：eoADSL(フレッツ) */
	public static final String PRC_GRP_CD_FU = "06";
	
	/** 料金グループコード　07：eoモバイル(Wi-Fi) */
	public static final String PRC_GRP_CD_WIFI = "07";
	
	/** 料金グループコード　08：eoモバイル(EM) */
	public static final String PRC_GRP_CD_EM = "08";
	
	/** 料金グループコード　09：eoモバイル(UQ-WiMAX) */
	public static final String PRC_GRP_CD_WIMAX = "09";
	
	/**
	 * カスタム実行判定処理を実装するメソッド
	 */
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException {
		
		
		HashMap<String, Object> kKSV003719SCHash;
		String svcCd;
		String prcGrpCd;

		//サービスコードがeoADSLであれば実行
		try{
			kKSV003719SCHash = (HashMap<String, Object>)irp.getData("KKSV003719SC");
			
			svcCd = (String)kKSV003719SCHash.get("svc_cd");
			prcGrpCd = (String)kKSV003719SCHash.get("prc_grp_cd");
			
			if (svcCd.equals("01"))
			{
				if (prcGrpCd.equals(PRC_GRP_CD_HOME) ||
					prcGrpCd.equals(PRC_GRP_CD_MEZON) ||
					prcGrpCd.equals(PRC_GRP_CD_MANS))
				{
					// eo光ネット
					return false;
				}
				else if (prcGrpCd.equals(PRC_GRP_CD_EACCESS) ||
					prcGrpCd.equals(PRC_GRP_CD_FU))
				{
					// eoADSL
					return true;
				}
				else
				{
					// eoモバイル
					return false;
				}
			}

			return false;
			
		}catch (Exception e) {
			return false;
		}
		
	}

}
