/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：局番一意照会実行判定部品
*   ソースファイル名：JFUFUSV004208ReqChk.java
*   作成者          ：富士通
*   日付            ：2012年07月25日
*＜機能概要＞
*	契約者タイプが個人or法人であるかの判定を行なう。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.01		2012/07/25	FJ）山名	新規作成
*
**********************************************************************/
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;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EZM0121A010CBSMsg1List;

/**
 * FUSV0042_2番号サービスお申し込み(申込)：番ポ電話番号登録可否チェックCC判定部品
 * <br>
 * @author 富士通
 */
public class JFUFUSV004209ReqChk extends AbstractCustomReqChk
{
	// ■固定値
	/** 番ポ電話番号登録可否チェックCC */
	private static final String FUSV004203CC = "FUSV004203CC";
	
	/**
	 * 番ポ電話番号登録可否チェックCC判定処理
	 * <br/>
	 * @param  irp            (I)リクエストパラメータ操作クラス
	 * @param  conditionvalue (I)判定値格納クラス
	 * @return 番ポ電話番号登録可否チェックがエラーなしの場合はtrueを返す。
	 * @throws ReqChkException
	 */
	@Override
	public boolean checkExecution(IRequestParameterReadOnly irp, IConditionValue conditionvalue) throws ReqChkException
	{
		try
		{
			// 個人法人電話番号帯コード
			String kojinHojinTlnTaiCd = null;
			// ANK-2464-00-00_番ポ廃止登録バッチ不具合に伴うフロント機能暫定改修対応 ADD START --
			// 電話番号マスタ存在フラグ
			String telnoMstExistFlg = null;
			// -- ANK-2464-00-00_番ポ廃止登録バッチ不具合に伴うフロント機能暫定改修対応 ADD END
			
			// 番ポ電話番号登録可否チェックCCを取得
			HashMap<String, Object> parentMap = (HashMap<String, Object>)irp.getData(FUSV004203CC);

			if (null != parentMap && parentMap.containsKey("chk_res_list"))
			{
				ArrayList childList = (ArrayList)parentMap.get("chk_res_list");
				
				for (int i = 0; i < childList.size(); i++)
				{
					HashMap childMap = (HashMap)childList.get(i);
					
					// 個人法人電話番号帯コード
					kojinHojinTlnTaiCd = (String)childMap.get(EZM0121A010CBSMsg1List.KOJIN_HOJIN_TLN_TAI_CD);
					// ANK-2464-00-00_番ポ廃止登録バッチ不具合に伴うフロント機能暫定改修対応 ADD START --
					// 電話番号マスタ存在フラグ
					telnoMstExistFlg = (String)childMap.get("telno_mst_exist_flg");
					// -- ANK-2464-00-00_番ポ廃止登録バッチ不具合に伴うフロント機能暫定改修対応 ADD END
				}
			}
			
			// "2"(法人）の場合、チェック＆登録処理を行わない
			if (kojinHojinTlnTaiCd != null && !kojinHojinTlnTaiCd.equals("") && JFUStrConst.CD00410_2.equals(kojinHojinTlnTaiCd))
			{
				return false;
			}
			// 上記以外の場合、登録処理を行う
			else
			{
				// ANK-2464-00-00_番ポ廃止登録バッチ不具合に伴うフロント機能暫定改修対応 ADD START --
				// 暫定対応で、電話番号マスタ存在フラグが「1：存在あり」の場合は、
				// 電話番号マスタ、エイジングマスタに対する登録を行わない。
				if (JFUStrConst.CD00002_1.equals(telnoMstExistFlg))
				{
					return false;
				}
				// 上記以外の場合、登録処理を行う
				else
				{
					return true;
				}
				// 暫定対応で上記のif文を入れているため、一旦コメントアウトする。
//				return true;
				// -- ANK-2464-00-00_番ポ廃止登録バッチ不具合に伴うフロント機能暫定改修対応 ADD END

			}
			
		}
		catch (RequestParameterException e)
		{
			throw new ReqChkException(e.getMessage(), e);
		}
	}
}
