/**
 * 
 */
package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.HashMap;

import com.fujitsu.futurity.bp.custom.constant.KKSV0034_KKSV0034OP;
import com.fujitsu.futurity.bp.custom.constant.KKSV0034_KKSV0034OP_KKSV003401SC;
import com.fujitsu.futurity.bp.custom.constant.KKSV0034_KKSV0034OP_KKSV003403SC;
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;


/**
 * KKSV0034 ダイヤルアップ接続情報登録<br>
 * <br>
 * 即時登録の場合に当ＳＣを実行可能とします。<br>
 * 
 * @author 富士通
 * @since 2011-08-11
 */
public class JKKSV003402ReqChk extends AbstractCustomReqChk 
{

	/**
	 * ダイヤルアップ接続情報登録実行判定メソッド
	 */
	@SuppressWarnings("unchecked")
	@Override
	public boolean checkExecution(IRequestParameterReadOnly arg0, IConditionValue arg1) throws ReqChkException
	{
		boolean ret = false;

		try 
		{
			String mskm_ymd = null;					// 申込年月日
			String svc_use_sta_kibo_ymd = null;		// サービス利用開始希望年月日

			// 申込内容承認登録マップ
			HashMap<String, Object> kksv003401Map = (HashMap<String, Object>)arg0.getData(KKSV0034_KKSV0034OP.KKSV003401SC);
			if (kksv003401Map != null)
			{
				// 申込年月日を取得
				mskm_ymd = (String)kksv003401Map.get(KKSV0034_KKSV0034OP_KKSV003401SC.MSKM_YMD);
			}
			
			// オプションサービス契約＜ＩＳＰ＞登録マップ
			HashMap<String, Object> kksv003403Map = (HashMap<String, Object>)arg0.getData(KKSV0034_KKSV0034OP.KKSV003403SC);
			if (kksv003403Map != null)
			{
				// サービス利用開始希望年月日を取得
				svc_use_sta_kibo_ymd = (String)kksv003403Map.get(KKSV0034_KKSV0034OP_KKSV003403SC.SVC_USE_STA_KIBO_YMD);
			}

			//実行判定
			if (null != mskm_ymd && null != svc_use_sta_kibo_ymd)
			{
				// 即時適用（サービス利用開始希望年月日＝申込年月日）の場合にのみ実施
				if (svc_use_sta_kibo_ymd.equals(mskm_ymd))
				{
					ret = true;		//OK
				}
			}
		}
		catch (RequestParameterException e) 
		{
			/*NOP*/ ;
		}

		return ret;
	}
}
