/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUSV0178ReqChk
*   ソースファイル名：JFUSV0178ReqChk.java
*   作成者          ：富士通
*   日付            ：2011年10月27日
*＜機能概要＞
*   実行判定部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/10/27   FJ）赤井    新規作成
*   v3.00       2012/04/02   FJ）西川    【ANK-0037-01-00】紹介CP申込期間制限対応(暫定)
*   v73.00.00   2024/10/29   FJ）余野木  【ANK-4427-00-00】NTT卸対応
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.reqchk;

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;

/**
 * FUSV0178SCの実行条件判定クラス
 * 
 * <br>
 * @author 富士通
 */
public class JFUSV0178ReqChk extends AbstractCustomReqChk 
{
	
	/**
	 * サービスIFの実行判定を実施する。
	 * @param irp
	 * @param conditionvalue
	 * @return 判定結果(条件を満たすtrue/満たさないfalse)
	 * @throws ReqChkException
	 */
	public boolean checkExecution(IRequestParameterReadOnly irp, IConditionValue conditionvalue) throws ReqChkException 
	{

		// 新規登録区分が、True(新規登録)の場合に、trueを返す。

		boolean ret = false;
		try
		{
			// BP定義ツールでセットしている値の取得
			String key = conditionvalue.get(null);
			
			// SCマップ格納用
			HashMap fusv0178scMap = null;
			
			// チェック対象のコード
			String code = "";
			
			// コードが"FUSV017801SC"の場合
			if ("FUSV017801SC".equals(key))
			{
				fusv0178scMap = (HashMap)irp.getData("FUSV017801SC");
				code = (String)fusv0178scMap.get("key_dsp_campaign_cd");
			} 
			else if ("FUSV017802SC".equals(key)) 
			{
				// コードが"FUSV017802SC"の場合
				fusv0178scMap = (HashMap)irp.getData("FUSV017802SC");
				code = (String)fusv0178scMap.get("key_dsp_campaign_cd");
			} 
			else if ("FUSV017803SC".equals(key)) 
			{
				// コードが"FUSV017803SC"の場合
				fusv0178scMap = (HashMap)irp.getData("FUSV017803SC");
				code = (String)fusv0178scMap.get("key_dsp_dchskm_cd");
			} 
			else if ("FUSV017804SC".equals(key)) 
			{
				// コードが"FUSV017804SC"の場合
				fusv0178scMap = (HashMap)irp.getData("FUSV017804SC");
				code = (String)fusv0178scMap.get("key_dsp_dchskm_cd");
			}
			else if ("FUSV017805SC".equals(key)) 
			{
				// コードが"FUSV017805SC"の場合
				fusv0178scMap = (HashMap)irp.getData("FUSV017805SC");
				code = (String)fusv0178scMap.get("key_pcd");
			//【ANK-0037-01-00】add start ------------------------------------------------------
			}
			else if ("FUSV017806SC".equals(key)) 
			{
				// コードが"FUSV017806SC"の場合
				fusv0178scMap = (HashMap)irp.getData("FUSV017806SC");
				code = (String)fusv0178scMap.get("key_intr_cd");
			//【ANK-0037-01-00】add end   ------------------------------------------------------
			}
			else if ("FUSV017807SC".equals(key)) 
			{
				// コードが"FUSV017807SC"の場合
				fusv0178scMap = (HashMap)irp.getData("FUSV017807SC");
				code = (String)fusv0178scMap.get("key_hambai_sbt_cd");
			}
// ANK-4427-00-00 2024/11/7 ADD START
			else if ("FUSV017808SC".equals(key)) 
			{
				// コードが"FUSV017808SC"の場合
				fusv0178scMap = (HashMap)irp.getData("FUSV017808SC");
				if(fusv0178scMap == null){
					code = "";
				}
				else
				{
					code = (String)fusv0178scMap.get("key_pcd");
				}
			}
// ANK-4427-00-00 2024/11/7 ADD END

			// "",nullの場合false
			if (null == code ||  "".equals(code))
			{
				ret = false;
			} 
			else 
			{
				// それ以外
				ret = true;
			}

		}
		catch (RequestParameterException e)
		{
			throw new ReqChkException(e.getMessage(), e);
		}

		return ret;
	}

}
