/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム構築
*   モジュール名    ：JCRejbCR0011KRCK
*   ソースファイル名：JCRejbCR0011KRCK.java
*   作成者          ：富士通
*   日付            ：2011年03月16日
*＜機能概要＞
*   連絡先の関連制約部品クラス
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v1.00.00    2011/03/16  富士通      新規作成
*
**********************************************************************/
package eo.ejb.common.entity;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.constant.JCRStrConst;
import eo.common.util.JCRUtilCommon;
import eo.ejb.cbm.entity.CR0011ETMsg;
import eo.ejb.cbm.entity.CR0011LE;
import eo.ejb.common.JCRModelCommon;

/**
 * <p>
 * 対応記録の関連制約部品クラスです。
 * </p>
 * @author 富士通
 */
public class JCRejbCR0011KRCK {

	public static boolean isCheckCallbkKiboDtm(CAANMsg inETMsg, AgentDispatchContext inContext, Object inCheckType
			, Object inTaioKirokNo, Object inCallbkKiboYmd, Object inCallbkKiboTime, Object inCallbkShiteiTypeCd)
	{
		String chkCallbkKiboYmd = null;
		String chkCallbkKiboTime = null;
		String chkCallbkShiteiTypeCd = null;
		
		if (JCRUtilCommon.isNull(inCallbkKiboYmd))
		{
			chkCallbkKiboYmd = "";
		}
		else
		{
			chkCallbkKiboYmd = (String) inCallbkKiboYmd;
		}

		if (JCRUtilCommon.isNull(inCallbkKiboTime))
		{
			chkCallbkKiboTime = "";
		}
		else
		{
			chkCallbkKiboTime = (String) inCallbkKiboTime;
		}

		if (JCRUtilCommon.isNull(inCallbkShiteiTypeCd))
		{
			chkCallbkShiteiTypeCd = "";
		}
		else
		{
			chkCallbkShiteiTypeCd = (String) inCallbkShiteiTypeCd;
		}

		// (2) 対応記録を取得する。
		// 対応記録のETメッセージを生成
		CAANMsg searchMsg = new CAANMsg(CR0011ETMsg.class.getName());

		// 検索条件を設定
		// 対応記録番号
		searchMsg.set(CR0011ETMsg.TAIO_KIROK_NO, inTaioKirokNo);

		// プライマリーキー検索
		CAANMsg retTaioKirok = new CR0011LE().findByPrimaryKey(searchMsg);

		if (retTaioKirok != null)
		{
			String retCallbkKiboYmd = null;
			String retCallbkKiboTime = null;
			String retCallbkShiteiTypeCd = null;

			if (JCRUtilCommon.isNull(retTaioKirok.getString(CR0011ETMsg.CALLBK_KIBO_YMD)))
			{
				retCallbkKiboYmd = "";
			}
			else
			{
				retCallbkKiboYmd = retTaioKirok.getString(CR0011ETMsg.CALLBK_KIBO_YMD);
			}

			if (JCRUtilCommon.isNull(retTaioKirok.getString(CR0011ETMsg.CALLBK_KIBO_TIME)))
			{
				retCallbkKiboTime = "";
			}
			else
			{
				retCallbkKiboTime = retTaioKirok.getString(CR0011ETMsg.CALLBK_KIBO_TIME);
			}

			if (JCRUtilCommon.isNull(retTaioKirok.getString(CR0011ETMsg.CALLBK_SHITEI_TYPE_CD)))
			{
				retCallbkShiteiTypeCd = "";
			}
			else
			{
				retCallbkShiteiTypeCd = retTaioKirok.getString(CR0011ETMsg.CALLBK_SHITEI_TYPE_CD);
			}

			if (chkCallbkKiboYmd.equals(retCallbkKiboYmd)
					&& chkCallbkKiboTime.equals(retCallbkKiboTime)
					&& chkCallbkShiteiTypeCd.equals(retCallbkShiteiTypeCd))
			{
				return true;
			}

		}

		String sysDate = null;
		String checkDate = null;

		// コールバック希望年月日時分秒チェックの場合
		if ("1".equals(inCheckType))
		{
			checkDate = chkCallbkKiboYmd;
			if (JCRUtilCommon.isNull(chkCallbkKiboTime)) {
				sysDate = JCRModelCommon.getSysDate();
			}
			else
			{
				sysDate = JCRUtilCommon.formatDate(JCRModelCommon.getSysDateTime(), JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_YMDHM);
				checkDate = checkDate.concat(chkCallbkKiboTime);
			}

		}
		// コールバック希望年月日チェックの場合
		else if ("2".equals(inCheckType))
		{
			sysDate = JCRModelCommon.getSysDate();
			checkDate = chkCallbkKiboYmd;
		}

		if (checkDate == null)
		{
			return true;
		}

		// システム日付 < コールバック希望年月日
		if (checkDate.compareTo(sysDate) < 0)
		{
			return false;
		}
		
		return true;
	}
}
