/**
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v37.00.00	2018/06/13	FJ)吉田		【OM-2018-0000576】電話オプションサービス契約画面表示不正対応
 */
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.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.reqchk.exception.ReqChkException;


/**
 * KKSV0078 電話オプションサービス契約登録確認<br>
 * KKSV007803SC サブオプションサービス契約一覧照会（転送電話オプション）SC<br>
 * <br>
 * 先のオプションサービス契約一覧照会で転送電話オプションの契約がある場合に当ＳＣを実行可能とします。
 * 
 * @author 富士通
 * @since 2011-08-15
 */
public class JKKSV007803ReqChk extends AbstractCustomReqChk {

	/**
	 * サブオプションサービス契約一覧照会（転送電話オプション）SC　実行判定メソッド
	 */
	@SuppressWarnings("unchecked")
	@Override
	public boolean checkExecution(IRequestParameterReadOnly arg0, IConditionValue arg1) throws ReqChkException
	{
		boolean ret = false;

		//比較対象のオプションサービスコード
		String x_op_svc_cd = arg1.get("比較値");

		try 
		{
			String b024op_svc_kei_no = null;

			//オプションサービス契約＜電話＞一覧照会（サービス契約内訳番号）SC
			HashMap<String, Object> parentMap = (HashMap<String, Object>)arg0.getData("KKSV007802SC");
			if (parentMap != null)
			{
				ArrayList<HashMap<String, Object>> dataList = (ArrayList<HashMap<String, Object>>)parentMap.get("EKK0371B001CBSMsg1List");
				for (HashMap<String, Object> childMap: dataList)
				{
					String op_svc_cd = (String) childMap.get("op_svc_cd");
					// OM-2018-0000576 2018/06/13 MOD START
//					if (x_op_svc_cd.equals(op_svc_cd))
//					{
//						b024op_svc_kei_no = op_svc_cd;
//						break;
//					}
					String op_svc_kei_stat = (String) childMap.get("op_svc_kei_stat");
					if (!"910".equals(op_svc_kei_stat) && !"920".equals(op_svc_kei_stat)){
						if (x_op_svc_cd.equals(op_svc_cd))
						{
							b024op_svc_kei_no = op_svc_cd;
							break;
						}
					}
					// OM-2018-0000576 2018/06/13 MOD END
				}
			}

			if (b024op_svc_kei_no != null && x_op_svc_cd.equals(b024op_svc_kei_no))
			{
				ret = true;
			}
		}
		catch (RequestParameterException e) 
		{
			/*NOP*/ ;
		}

		return ret;
	}

}
