/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JTUejbTU0011DBABase
*	ソースファイル名：JTUejbTU0011DBABase.java
*	作成者			：FJ
*	日付			：2011年06月14日
*＜機能概要＞
*	番ポ工事データベースアクセス共通部品のスーパークラス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2011/06/14	FJ)楠神		新規作成
*	v4.00.00	2012/07/20	FJ)北村		
*	v6.00.00	2013/12/13	FJ)黒田		【ANK-1760-00-00】送信実績取消ができない
*
**********************************************************************/

package eo.ejb.common.db;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.constant.JTUStrConst;
import eo.ejb.cbm.entity.TU0011ETMsg;

/**
 * <p>
 * 番ポ工事へのデータベースアクセスクラスです。<br>
 * </p>
 * @author FJ
 */
public class JTUejbTU0011DBABase extends JPCejbDBABase
{

	/**
	 * <p>
	 * 新しいJTUejbTU0011DBABaseを作成します。
	 * </p>
	 */
	public JTUejbTU0011DBABase()
	{
		super(TU0011ETMsg.class.getName());
	}

	/**
	 * <p>
	 * 世代を管理するカラム名を取得します。
	 * </p>
	 * @return 世代を管理するカラム名
	 */
	protected String getGenerationColumn()
	{
		return TU0011ETMsg.GENE_ADD_DTM;
	}

	/**
	 * <p>
	 * 無効状態を管理するカラム名を取得します。
	 * </p>
	 * @return 無効状態を管理するカラム名
	 */
	protected String getInvalidColumn()
	{
		return TU0011ETMsg.MK_FLG;
	}

	/**
	 * <p>
	 * 予約を管理するエンティティか判定します。
	 * </p>
	 * @return 予約を管理するエンティティの場合はtrue
	 */
	protected boolean isReserveMgr()
	{
		return false;
	}
	

	/**
	 * <p>
	 * 予約適用基準日となるカラム名を取得します。
	 * </p>
	 * @return 予約適用基準日となるカラム名
	 */
	protected String getCurrentColumn()
	{
		return null;
	}

	/**
	 * <p>
	 * 予約の状態を管理するエンティティか判定します。
	 * </p>
	 * @return 予約の状態を管理するエンティティの場合はtrue
	 */
	protected boolean isReserveStateMgr()
	{
		return false;
	}

	/**
	 * <p>
	 * 予約の状態を管理するカラム名を取得します。
	 * </p>
	 * @return 予約の状態を管理するカラム名
	 */
	protected String getReserveStateColumn()
	{
		return null;
	}

	/**
	 * <p>
	 * 番ポ工事の状態遷移チェックを行います。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param bmp_koji_no 番ポ工事番号
	 * @param bmp_koji_stat 番ポ工事ステータス
	 * @return カレントデータのステータスと一致する場合、true。一致しない場合、false。
	 */
	public boolean isBmpKojiStatCheck(CAANMsg inMsg, AgentDispatchContext inContext, String bmp_koji_no, String bmp_koji_stat)
	{
		
		if(bmp_koji_no == null || bmp_koji_stat == null)
		{
			return false;
		}
		
		// 検索条件の設定
		CAANMsg msg = new CAANMsg(TU0011ETMsg.class.getName());
		msg.set(TU0011ETMsg.BMP_KOJI_NO, bmp_koji_no);

		// 検索処理の実行
		
		CAANMsg resultMsg = super.findByCurrent(msg);

		// 検索結果の判定
		if (resultMsg == null)
		{
			return false;
		}
		
		String tmp = resultMsg.getString(TU0011ETMsg.BMP_KOJI_STAT);
		
		if(tmp == null || bmp_koji_stat.indexOf(tmp) < 0)
		{
			return false;
		}
		
		return true;

	}
	
	/**
	 * <p>
	 * 番ポ工事の状態遷移チェックを行います。
	 * （他事業者送信実績取消の場合）
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param bmp_koji_no 番ポ工事番号
	 * @param bmp_koji_stat 番ポ工事ステータス
	 * @return カレントデータのステータスと一致する場合、true。一致しない場合、false。
	 */
	public boolean isBmpKojiStatCheck2(CAANMsg inMsg, AgentDispatchContext inContext, String bmp_koji_no, String bmp_koji_stat)
	{
		
		if(bmp_koji_no == null || bmp_koji_stat == null)
		{
			return false;
		}
		
		// 検索条件の設定
		CAANMsg msg = new CAANMsg(TU0011ETMsg.class.getName());
		msg.set(TU0011ETMsg.BMP_KOJI_NO, bmp_koji_no);

		// 検索処理の実行
		
		CAANMsg resultMsg = super.findByCurrent(msg);

		// 検索結果の判定
		if (resultMsg == null)
		{
			return false;
		}
		
		String tmp = resultMsg.getString(TU0011ETMsg.BMP_KOJI_STAT);
		
		if(tmp == null || bmp_koji_stat.indexOf(tmp) < 0)
		{
			return false;
		}

		String msk = resultMsg.getString(TU0011ETMsg.BMP_MSKMSHO_TYPE_CD);
		
		if(msk == null || !"2".equals(msk))
		{
			return false;
		}

//		String dtm = resultMsg.getString(TU0011ETMsg.TAJGS_RNKI_SEND_DTM);
//		if(dtm == null || "".equals(dtm))
//		{
//			return false;
//		}
		
		return true;

	}
	
	/**
	 * <p>
	 * 番ポ工事の状態遷移チェックを行います。
	 * （NTT送信実績取消の場合）
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param bmp_koji_no 番ポ工事番号
	 * @param bmp_koji_stat 番ポ工事ステータス
	 * @return カレントデータのステータスと一致する場合、true。一致しない場合、false。
	 */
	public boolean isBmpKojiStatCheck3(CAANMsg inMsg, AgentDispatchContext inContext, String bmp_koji_no, String bmp_koji_stat)
	{
		
		if(bmp_koji_no == null || bmp_koji_stat == null)
		{
			return false;
		}
		
		// 検索条件の設定
		CAANMsg msg = new CAANMsg(TU0011ETMsg.class.getName());
		msg.set(TU0011ETMsg.BMP_KOJI_NO, bmp_koji_no);

		// 検索処理の実行
		
		CAANMsg resultMsg = super.findByCurrent(msg);

		// 検索結果の判定
		if (resultMsg == null)
		{
			return false;
		}
		
		String tmp = resultMsg.getString(TU0011ETMsg.BMP_KOJI_STAT);
		
		if(tmp == null || bmp_koji_stat.indexOf(tmp) < 0)
		{
			return false;
		}

//		String dtm = resultMsg.getString(TU0011ETMsg.NTT_RNKI_SEND_DTM);
//		if(dtm == null || "".equals(dtm))
//		{
//			return false;
//		}
		
		return true;

	}
	
	/**
	 * <p>
	 * 番ポ工事の状態遷移チェックを行います。
	 * （番ポ工事希望年月日時更新の場合）
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param bmp_koji_no 番ポ工事番号
	 * @param bmp_koji_stat 番ポ工事ステータス
	 * @return カレントデータのステータスと一致する場合、true。一致しない場合、false。
	 */
	public boolean isBmpKojiStatCheck4(CAANMsg inMsg, AgentDispatchContext inContext, String bmp_koji_no, String bmp_koji_stat)
	{
		
		if(bmp_koji_no == null || bmp_koji_stat == null)
		{
			return false;
		}
		
		// 検索条件の設定
		CAANMsg msg = new CAANMsg(TU0011ETMsg.class.getName());
		msg.set(TU0011ETMsg.BMP_KOJI_NO, bmp_koji_no);

		// 検索処理の実行
		
		CAANMsg resultMsg = super.findByCurrent(msg);

		// 検索結果の判定
		if (resultMsg == null)
		{
			return false;
		}
		
		String tmp = resultMsg.getString(TU0011ETMsg.BMP_KOJI_STAT);
		
		if(tmp == null || bmp_koji_stat.indexOf(tmp) < 0)
		{
			return false;
		}

//		String dtm = resultMsg.getString(TU0011ETMsg.TAJGS_RNKI_SEND_DTM);
//		if(dtm != null && !"".equals(dtm))
//		{
//			return false;
//		}
		
		return true;

	}
	
	/**
	 * <p>
	 * 番ポ工事の状態遷移チェックを行います。
	 * （番ポ工事利用停止解除依頼の場合）
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param bmp_koji_no 番ポ工事番号
	 * @param bmp_koji_stat 番ポ工事ステータス
	 * @return カレントデータのステータスと一致する場合、true。一致しない場合、false。
	 */
	public boolean isBmpKojiStatCheck5(CAANMsg inMsg, AgentDispatchContext inContext, String bmp_koji_no, String bmp_koji_stat)
	{
		
		if(bmp_koji_no == null || bmp_koji_stat == null)
		{
			return false;
		}
		
		// 検索条件の設定
		CAANMsg msg = new CAANMsg(TU0011ETMsg.class.getName());
		msg.set(TU0011ETMsg.BMP_KOJI_NO, bmp_koji_no);

		// 検索処理の実行
		
		CAANMsg resultMsg = super.findByCurrent(msg);

		// 検索結果の判定
		if (resultMsg == null)
		{
			return false;
		}
		
		String tmp = resultMsg.getString(TU0011ETMsg.BMP_KOJI_STAT);
		
		if(tmp == null || bmp_koji_stat.indexOf(tmp) < 0)
		{
			return false;
		}
		
		return true;

	}

}
