/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム構築
*	モジュール名	：JCRejbDateChecker.java
*	ソースファイル名：JCRejbDateChecker.java
*	作成者			：EK908998
*	日付			：2011年06月07日
*＜機能概要＞
*	対応記録登録の単関連チェック部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*
********************************************************************************/

package eo.ejb.common.itemrelation;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.jcc.util.JCCDateUtil;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.constant.JCRStrConst;


/**
 * 
 * 日付チェック部品クラス｡
 * 
 */ 
public class JCRejbDateChecker {

	/**
	 * 
	 * 有効範囲判定チェック処理
	 * 判定開始年月日と判定終了年月日の差を求め、指定範囲日数との比較を行います。
	 * <br>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param judgeStatymd 判定開始年月日(yyyyMMdd)
	 * @param judgeEndymd  判定終了年月日(yyyyMMdd)
	 * @param scopeDayNum  指定範囲日数
	 * @param sameDayFlg   同日判定フラグ
	 * @return boolean 範囲内：true 範囲外：false
	 */
	public static boolean checkScopeDayPrd(CAANMsg inCBSMsg, AgentDispatchContext inContext, Object judgeStatymd, Object judgeEndymd, Object scopeDayNum, Object sameDayFlg) 
	{
		
		// 判定開始年月日と判定終了年月日の日差を求める。
		int hisa = JCCDateUtil.subtractDay(inCBSMsg.getString((String) judgeEndymd), inCBSMsg.getString((String) judgeStatymd));
		int intScopeDayNum = Integer.parseInt(inCBSMsg.getString((String)scopeDayNum));
		boolean result = false;
		
		// 同日を含まない場合
		if(JCRStrConst.SAME_DAY_FLG_FALSE.equals((String)sameDayFlg))
		{
			if(hisa < intScopeDayNum)
			{
				result = true;
			}
			else{
				result = false;
			}
		}
		// 同日を含む場合
		else if(JCRStrConst.SAME_DAY_FLG_TRUE.equals((String)sameDayFlg))
		{
			if(hisa <= intScopeDayNum)
			{
				result = true;
			}
			else{
				result = false;
			}
		}
		
		return result;
	}


}
