package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.DKSV0014_DKSV0014OP_DKSV001407SC;
import com.fujitsu.futurity.bp.custom.constant.DKSV0014_DKSV0014OP_DKSV001407SC_EDK0171B050List;
import com.fujitsu.futurity.bp.custom.constant.DKSV0014_DKSV0014OP_DKSV001408SC;
import com.fujitsu.futurity.bp.custom.constant.DKSV0014_DKSV0014OP_DKSV001409SC;
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;

import eo.common.constant.JDKStrConst;

/**
 * 機器メーカー修理完了登録実行判定クラスです。
 * @author 富士通
 */
public class JDKDKSV001402ReqChk extends AbstractCustomReqChk
{

	@Override
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException {
		try
		{
			// SCマップから必要な情報を取り出す
			Map DKSV001407SC = (Map)irp.getData("DKSV001407SC");
			List<Map<String, Object>> DKSV001407SCList = (List<Map<String, Object>>)DKSV001407SC.get(DKSV0014_DKSV0014OP_DKSV001407SC.EDK0171B050LIST);
			Map<String, Object> dataMap = DKSV001407SCList.get(0);
			String daitaikikicd = (String)dataMap.get(DKSV0014_DKSV0014OP_DKSV001407SC_EDK0171B050List.DAITAI_KIKI_CD);

			Map DKSV001408SC = (Map)irp.getData("DKSV001408SC");
			String oldSeizono = (String)DKSV001408SC.get(DKSV0014_DKSV0014OP_DKSV001408SC.KIKI_SEIZO_NO);
			String oldMdlcd = (String)DKSV001408SC.get(DKSV0014_DKSV0014OP_DKSV001408SC.TAKNKIKI_MDL_CD);

			Map DKSV001409SC = (Map)irp.getData("DKSV001409SC");
			String newSeizono = (String)DKSV001409SC.get(DKSV0014_DKSV0014OP_DKSV001409SC.RENEWAL_AF_KIKI_SEIZO_NO);
			String newMdlcd = (String)DKSV001409SC.get(DKSV0014_DKSV0014OP_DKSV001409SC.RENEWAL_AF_TAKNKIKI_MDL_CD);
			
			return     newSeizono.equals(oldSeizono)
					&& newMdlcd.equals(oldMdlcd) 
					&& JDKStrConst.DAITAIKI_HITUYO.equals(daitaikikicd);
		}
		catch (RequestParameterException e)
		{
			return false;
		}
	}

}
