/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JDKejbKK0081KRCK
*	ソースファイル名：JDKejbKK0081KRCK.java
*	作成者			：EK909134
*	日付			：2011年08月30日
*＜機能概要＞
*	サービス契約制約部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*
********************************************************************************/

package eo.ejb.common.entity;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.ejb.cbm.entity.KK0081ETMsg;
import eo.ejb.common.JKKModelCommon;
import eo.ejb.common.db.JDKejbKK0081DBABase;

/**
 * <p>
 * サービス契約の関連制約部品クラスです。
 * </p>
 * @author 富士通
 */
public class JDKejbKK0081KRCK extends JDKejbKK0081DBABase
{

	/** サービス契約ステータス（解約済） */
	private static final String SUB_KEI_STATUS_KAIYAKU = "910";

	/** サービス契約ステータス（キャンセル済） */
	private static final String SUB_KEI_STATUS_CANCEL = "920";

	/**
	 * <p>
	 * 新しいJDKejbKK0081KRCKを作成します。
	 * </p>
	 */
	public JDKejbKK0081KRCK()
	{
		super();
	}

	/**
	 * <p>
	 * 解約キャンセルチェックを行います。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return 対象のサービス契約が、解約済、キャンセル済の場合にfalse。以外の場合true。
	 */
	public static boolean isCheckDslCancel(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		// カレント検索用のサービス契約の内部スキーマメッセージを作成
		CAANMsg inETMsg = new CAANMsg(KK0081ETMsg.class.getName());
		inETMsg.set(KK0081ETMsg.SVC_KEI_NO, inMsg.getString(KK0081ETMsg.SVC_KEI_NO));
		inETMsg.set(KK0081ETMsg.RSV_APLY_YMD, JKKModelCommon.getOpeDate(inMsg));

		// 作成したメッセージを使用してカレント検索を行う
		CAANMsg otETMsg = new JDKejbKK0081DBABase().findByCurrent(inETMsg);
		if (otETMsg == null)
		{
			return false;
		}

		// サービス契約ステータスが解約済、キャンセル済かどうか判定
		String svcStat = otETMsg.getString(KK0081ETMsg.SVC_KEI_STAT);
		if (SUB_KEI_STATUS_KAIYAKU.equals(svcStat) || 
				SUB_KEI_STATUS_CANCEL.equals(svcStat))
		{
			return false;
		}

		return true;
	}

}
