package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.HashMap;
import java.util.Map;

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;

/**
 * 修理完了登録実行判定クラスです。
 * @author 富士通
 */
public class JDKDKSV006006ReqChk extends AbstractCustomReqChk
{

	@Override
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException
	{
		HashMap<String, Object> parentMap = null;
		HashMap<String, Object> dataMap = null;
		String btryhoznStat = null;
		String knshokkanNo = null;
		try
		{
			// SCマップから必要な情報を取り出す
			parentMap = (HashMap)irp.getData("DKSV006016SC");
			btryhoznStat = (String)parentMap.get("btryhozn_stat_bf");
			parentMap = (HashMap)irp.getData("DKSV006017SC");
			Map workMap = (Map)irp.getMappingWorkArea();
			if(workMap != null)
			{
				/* 作業領域データ設定 */
				dataMap = (HashMap)workMap.get("work2");
			}
			knshokkanNo = (String)parentMap.get("knshokkan_no");
			if(knshokkanNo == null || "".equals(knshokkanNo))
			{
				if(dataMap != null)
				{
					knshokkanNo = (String)dataMap.get("knshokkan_no");
				}
			}
			if ( !"004".equals(btryhoznStat) && !"".equals(knshokkanNo)&& knshokkanNo != null)
			{
				return true;
			}
			return false;
		}
		catch (RequestParameterException e)
		{
			return false;
		}
	}
}
