/*********************************************************************
*   All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKejbKK2981DBABase
*   ソースファイル名：JKKejbKK2981DBABase.java
*   作成者          ：富士通
*   日付            ：2015年8月22日
*＜機能概要＞
*   サービス契約<eo電気>の制約部品クラス
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v16.00.00    2015/8/22  富士通      新規作成
*
**********************************************************************/

package eo.ejb.common.db;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.CAANRuntimeException;

import eo.ejb.cbm.entity.KK2981ETMsg;
import eo.ejb.cbm.entity.KK2981LE;
import eo.ejb.common.JKKModelConst;

/**
 * <p>
 * サービス契約<eo電気>の制約部品クラスです。
 * </p>
 * @author 富士通
 */
public class JKKejbKK2981DBABase extends JKKejbDBABase
{

	/**
	 * <p>
	 * 新しいJKKejbKK2981DBABaseを作成します。
	 * </p>
	 */
	public JKKejbKK2981DBABase()
	{
		super(KK2981ETMsg.class.getName());
	}

	/**
	 * <p>
	 * 世代を管理するカラム名を取得します。
	 * </p>
	 * @return 世代を管理するカラム名
	 */
	protected String getGenerationColumn()
	{
		return KK2981ETMsg.GENE_ADD_DTM;
	}

	/**
	 * <p>
	 * 無効状態を管理するカラム名を取得します。
	 * </p>
	 * @return 無効状態を管理するカラム名
	 */
	protected String getInvalidColumn()
	{
		return KK2981ETMsg.MK_FLG;
	}

	/**
	 * <p>
	 * 予約管理エンティティか判定します。
	 * </p>
	 * @return 予約管理エンティティの場合はtrue
	 */
	protected boolean isReserveMgr()
	{
		return true;
	}

	/**
	 * <p>
	 * 予約適用基準日となるカラム名を取得します。
	 * </p>
	 * @return 予約適用基準日となるカラム名
	 */
	protected String getCurrentColumn()
	{
		return null;
	}

	/**
	 * <p>
	 * 予約の状態を管理するエンティティか判定します。
	 * </p>
	 * @return 予約の状態を管理するエンティティの場合はtrue
	 */
	protected boolean isReserveStateMgr()
	{
		return true;
	}

	/**
	 * <p>
	 * 予約の状態を管理するカラム名を取得します。
	 * </p>
	 * @return 予約の状態を管理するカラム名
	 */
	protected String getReserveStateColumn()
	{
		return null;
	}


	/**
	 * <p>
	 * サービス契約<eo電気>のプライマリレコードを取得を行います。
	 * </p>
	 * @param svcKeiNo サービス契約番号
	 * @param geneAddDtm 世代登録年月日時分秒
	 * @return サービス契約番号、世代登録年月日時分秒に紐付くサービス契約<eo電気>のプライマリレコード
	 */
	public CAANMsg getKK2981Primary(String svcKeiNo, String geneAddDtm)
	{
		CAANMsg searchKey = new CAANMsg(KK2981ETMsg.class.getName());
		searchKey.set(KK2981ETMsg.SVC_KEI_NO, svcKeiNo);
		searchKey.set(KK2981ETMsg.GENE_ADD_DTM, geneAddDtm);
		
		CAANMsg outMsg1 = new KK2981LE().findByPrimaryKey(searchKey);
		
		// 検索結果が未設定または無効フラグが"無効"の場合
		if (outMsg1 == null 
				|| JKKModelConst.MK_FLG_MK.equals(outMsg1.getString(KK2981ETMsg.MK_FLG)))
		{
			throw new CAANRuntimeException("該当のサービス契約<eo電気>が存在しません。サービス契約番号:" + svcKeiNo);
		}
		
		return outMsg1;
	}

}
