package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.ArrayList;
import java.util.HashMap;

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.EKK0191C060CBSMsg;

public class JKKSV021107ReqChk  extends JKKSV021106ReqChk {
	
	/**
	 * 電話番号情報登録・光電話・電話番号情報変更の実行判定クラス
	 */
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException {

		HashMap<String, Object> kKSV021102SCHash;
		ArrayList<HashMap<String, Object>> eKK0191A010CBSMsg1List;
		HashMap<String, Object> eKK0191A010CBSMsg1ListElement;
		HashMap<String, Object> kKSV021107SCHash;
		String before;
		String after;

		try{
			
			//サービス契約内訳＜eo光電話＞一意照会の結果取得
			kKSV021102SCHash = (HashMap<String, Object>)irp.getData("KKSV021102SC");
			eKK0191A010CBSMsg1List = (ArrayList<HashMap<String,Object>>)kKSV021102SCHash.get(EKK0191A010CBSMsg.EKK0191A010CBSMSG1LIST);
			eKK0191A010CBSMsg1ListElement = eKK0191A010CBSMsg1List.get(0);
			
			//サービス契約内訳＜eo光電話＞情報変更のIN情報取得
			kKSV021107SCHash = (HashMap<String, Object>)irp.getData("KKSV021107SC");
			
			//-- 緊急通報用住所補記・建物名
			//新旧の値を取得
			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.EMG_ADRTTM);
			after = (String)kKSV021107SCHash.get(EKK0191C060CBSMsg.EMG_ADRTTM);
			
			//画面で値が変えているか？
			if(!before.equals(after)){
				return true;
			}
			
			//-- 緊急通報用契約者名
			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.EMG_KSH_NM);
			after = (String)kKSV021107SCHash.get(EKK0191C060CBSMsg.EMG_KSH_NM);
			
			//画面で値が変えているか？
			if(!before.equals(after)){
				return true;
			}
			
			//-- 緊急通報用契約者カナ名
			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.EMG_KSH_KANA);
			after = (String)kKSV021107SCHash.get(EKK0191C060CBSMsg.EMG_KSH_KANA);
			
			//画面で値が変えているか？
			if(!before.equals(after)){
				return true;
			}
			
			//-- VA宅内機器形式コード
			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.VA_TAKNKIKI_MODEL_CD);
			after = (String)kKSV021107SCHash.get(EKK0191C060CBSMsg.VA_TAKNKIKI_MODEL_CD);
			
			//画面で値が変えているか？
			if(!before.equals(after)){
				return true;
			}
			
			// IT1-2013-0000099 2013/01/25 start
//			//-- VA機器製造番号
//			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.VA_KIKI_SEIZO_NO);
//			after = (String)kKSV021107SCHash.get(EKK0191C060CBSMsg.VA_KIKI_SEIZO_NO);
//			
//			//画面で値が変えているか？
//			if(!before.equals(after)){
//				return true;
//			}
			//-- VA機器変更番号
			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.VA_KIKI_CHG_NO);
			after = (String)kKSV021107SCHash.get(EKK0191C060CBSMsg.VA_KIKI_CHG_NO);
			
			//画面で値が変えているか？
			if(!before.equals(after)){
				return true;
			}
			// IT1-2013-0000099 2013/01/25 end
			
			//-- VAポート番号
			before = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.VA_PORT_NO);
			after = (String)kKSV021107SCHash.get(EKK0191C060CBSMsg.VA_PORT_NO);
			
			//画面で値が変えているか？
			if(!before.equals(after)){
				return true;
			}
			
		}catch (Exception e) {
			return false;
		}
		
		//変わっていない
		return false;
		
	}
	
}
