package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.ArrayList;
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.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.reqchk.exception.ReqChkException;

import eo.ejb.cbs.cbsmsg.EKK0191A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0191C012CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191C060CBSMsg;

/**
 * 電話番号情報登録　光電話・番号変更の実行判定を行うクラスです。<p>
 * <BR>
 * @author FJ
 */
public class JKKSV021305ReqChk extends AbstractCustomReqChk{

	
	/**
	 * カスタム実行判定処理を実装するメソッド
	 * <br>
	 * @return 実行判定結果
	 * @param  irp  リクエストパラメータ
	 * @param  conditionvalue  判定値格納クラス
	 * @return Boolean 判定結果
	 * @exception ReqChkException
	 */
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException 
	{
		
		HashMap<String, Object> kKSV021302SC;
		HashMap<String, Object> kKSV021313SC;
		HashMap<String, Object> kKSV021305SC;
			ArrayList<HashMap<String, Object>> eKK0191A010CBSMsg1List;
		HashMap<String, Object> eKK0191A010CBSMsg1ListElement;
		String before;
		String after;
		
		try{
			
			//サービス契約内訳＜電話＞一意照会の結果を取得
			kKSV021302SC = (HashMap<String, Object>)irp.getData("KKSV021302SC");
			eKK0191A010CBSMsg1List = (ArrayList<HashMap<String, Object>>)kKSV021302SC.get(EKK0191A010CBSMsg.EKK0191A010CBSMSG1LIST);
			eKK0191A010CBSMsg1ListElement = (HashMap<String, Object>)eKK0191A010CBSMsg1List.get(0);
			
			//サービス契約内訳＜電話＞情報変更の情報を取得
			kKSV021305SC = (HashMap<String, Object>)irp.getData("KKSV021305SC");
			
			//サービス契約内訳＜電話＞番ポ情報変更の情報を取得
			kKSV021313SC = (HashMap<String, Object>)irp.getData("KKSV021313SC");
			
			//緊急通報用契約者名が変更されているか？
			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.EMG_KSH_NM);
			after = (String)kKSV021305SC.get(EKK0191C060CBSMsg.EMG_KSH_NM);
			if(!before.equals(after)){
				return true;
			}
			
			//緊急通報用契約者かな名が変更されているか？
			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.EMG_KSH_KANA);
			after = (String)kKSV021305SC.get(EKK0191C060CBSMsg.EMG_KSH_KANA);
			if(!before.equals(after)){
				return true;
			}
			
			//番ポ有無が変更されたか？
			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.BMP_UM);
			after = (String)kKSV021313SC.get(EKK0191C012CBSMsg.BMP_UM);
			if(!before.equals(after)){
				return true;
			}
			
			//電話番号が変更されたか？
			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.TELNO);
			after = (String)kKSV021313SC.get(EKK0191C012CBSMsg.TELNO);
			if(!before.equals(after)){
				return true;
			}
			
		}catch (Exception e) {
			
			return false;
		}
		
		
		return false;
	}
	
}
