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.EKK0191C060CBSMsg;

/**
 * 電話番号情報登録　光電話・番ポ情報変更の実行判定を行うクラスです。<p>
 * <BR>
 * @author FJ
 */
public class JKKSV021410ReqChk extends JKKSV021404ReqChk{

	
	/**
	 * カスタム実行判定処理を実装するメソッド
	 * <br>
	 * @return 実行判定結果
	 * @param  irp  リクエストパラメータ
	 * @param  conditionvalue  判定値格納クラス
	 * @return Boolean 判定結果
	 * @exception ReqChkException
	 */
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp,
			IConditionValue conditionvalue) throws ReqChkException 
	{
		
		boolean isBmp;
		
		//まず番ポありか判断
		isBmp = super.checkExecution(irp, conditionvalue);
		
		//番ポが「無」→「有」に変更したときだけ番ポ工事登録
		HashMap<String, Object> kKSV021400SC;
		ArrayList<HashMap<String, Object>> eKK0191A010CBSMsg1List;
		HashMap<String, Object> eKK0191A010CBSMsg1ListElement;
		HashMap<String, Object> kKSV021305SC;
		
		try{
			
			//サービス契約内訳＜電話＞一意照会の結果を取得
			kKSV021400SC = (HashMap<String, Object>)irp.getData("KKSV021400SC");
			eKK0191A010CBSMsg1List = (ArrayList<HashMap<String, Object>>)kKSV021400SC.get(EKK0191A010CBSMsg.EKK0191A010CBSMSG1LIST);
			eKK0191A010CBSMsg1ListElement = (HashMap<String, Object>)eKK0191A010CBSMsg1List.get(0);
			
			//変更前の番ポ有無を取得
			String bmpUmBF = (String)eKK0191A010CBSMsg1ListElement.get(EKK0191A010CBSMsg1List.BMP_UM);
			
			if(bmpUmBF.equals("0"))
			{
				if(isBmp){
					return true;
				}
			}
			
			
		}catch (Exception e) {
			
			return false;
		}
		
		return false;

	}
	
}
