/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKSV0698004CCReqChk
*	ソースファイル名：JKKSV0698004CCReqChk.java
*	作成者			：FJ
*	日付			：2013年1月3日
*＜機能概要＞
*	住所変更確定ボタン押下時（住所変更登録（1周目））のチェック実行判定部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2013/1/3	FJ			新規作成
*
**********************************************************************/
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.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.reqchk.exception.ReqChkException;

public class JKKSV0698004CCReqChk extends AbstractCustomReqChk
{

	/** 異動区分（住所変更・登録） */
	private static final String IDO_DIV_ADCG_ADD = "00019";
	/** 住所変更登録パターン: "2"(入力内容確定) */
	private static final String INPUT_FIX = "2";

	/**
	 * 実行判定処理
     * <BR>
     * @param irp
     * @param conditionvalue
	 * @return 条件を満たすときはtrue、満たさないときはfalse
	 * @throws ReqChkException
	 */
	@Override
	public boolean checkExecution(IRequestParameterReadOnly irp, IConditionValue conditionvalue) throws ReqChkException
	{
		try
		{
			HashMap<String, Object> parentMap = null;
			String idoDiv = null;
			String addPtn = null;
			String rvsPtn = null;
			
			parentMap = (HashMap<String, Object>)irp.getData("KKSV069804CC");
			
			if ( parentMap == null ) {
				return false;
			}
			
			// 異動区分
			idoDiv = (String)parentMap.get("ido_div");
			// 住所変更登録パターン
			addPtn = (String)parentMap.get("ad_chg_add_ptn");
			// 復元パターン
			rvsPtn = (String)parentMap.get("rvs_pat");

			// 異動区分:住所変更・登録
			if ( IDO_DIV_ADCG_ADD.equals(idoDiv) ) {
				// 住所変更登録パターン: "2"(入力内容確定)
				if ( INPUT_FIX.equals(addPtn) ) {
					// 1周目
					if ( !INPUT_FIX.equals(rvsPtn) ) {
						return true;
					}
				}
			}
			return false;
		}
		catch (RequestParameterException e)
		{
			e.printStackTrace();
			throw new ReqChkException(e.getMessage(), e);
		}
	}
}
