package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.HashMap;

import com.fujitsu.futurity.bp.custom.constant.KKSV0031_KKSV0031OP;
import com.fujitsu.futurity.bp.custom.constant.KKSV0031_KKSV0031OP_RECCHK;
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;

public class JKKSV003105ReqChk extends AbstractCustomReqChk {

	/** サービス契約ステータス（締結済） */
	private static final String SVC_KEI_STAT_030 = "030";
	/** サービス契約ステータス（サービス提供中） */
	private static final String SVC_KEI_STAT_100 = "100";

	/**
	 * カスタム実行判定処理を実装するメソッド
	 */
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException {

		String svcKeiStat = null;
// v5.00 2013/05/30 TG1-2013-0000421 ADD START
		String svcKeiUcwkStat = null;
// v5.00 2013/05/30 TG1-2013-0000421 ADD END
		
		
		try {
			// チェック条件項目マップから必要な情報を取り出す
			HashMap<String,Object> parentMap = (HashMap<String,Object>)irp.getData(KKSV0031_KKSV0031OP.RECCHK);
			// サービス契約ステータス
			svcKeiStat = (String)parentMap.get(KKSV0031_KKSV0031OP_RECCHK.SVC_KEI_STAT);
// v5.00 2013/05/30 TG1-2013-0000421 ADD START
			svcKeiUcwkStat = (String)parentMap.get(KKSV0031_KKSV0031OP_RECCHK.SVC_KEI_UCWK_STAT);
// v5.00 2013/05/30 TG1-2013-0000421 ADD END
		} catch (RequestParameterException e) {
			return false;
		}
		
		/*
		 * 判定処理
		 */
// v5.00 2013/05/30 TG1-2013-0000421 MOD START
		// サービス契約ステータスが「締結済」または「サービス提供中」かつ
//		if ("030".equals(svcKeiStat) || "100".equals(svcKeiStat))
		if ((SVC_KEI_STAT_030.equals(svcKeiStat) || SVC_KEI_STAT_100.equals(svcKeiStat))
				// サービス契約内訳ステータスが「締結済」または「サービス提供中」の場合
				&& (SVC_KEI_STAT_030.equals(svcKeiUcwkStat) || SVC_KEI_STAT_100.equals(svcKeiUcwkStat)))
// v5.00 2013/05/30 TG1-2013-0000421 MOD END
		{
			return true;
		}
		return false;
	}
}
