/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
*	モジュール名	：JKKejbConvertChk
*	ソースファイル名：JKKejbConvertChk.java
*	作成者			：富士通
*	日付			：2013年02月16日
*＜機能概要＞
*	変換条件を記載する部品です
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v5.00.00	2013/02/16	FJ)寺園		ANK-1458-00-00
*
**********************************************************************/

package eo.ejb.common.convert;

import com.fujitsu.futurity.model.base.CAANMsg;
import eo.ejb.cbm.entity.KK0451ETMsg;
import eo.ejb.cbs.cbsmsg.EKK0451C170CBSMsg;
import eo.ejb.common.JKKModelCommon;
import eo.ejb.common.db.JKKejbKK0451DBABase;

/**
 * ３層スキーマ変換時の変換条件を提供するクラスです。<p>
 * <br>
 * @author 富士通
 */
public class JKKejbKK0451ConvChk
{

	/**
	 * <p>
	 * 割引サービス契約のサービス課金開始年月日が設定されていないか判定する。
	 * </p>
	 * @param inMsg 処理対象メッセージキャリア
	 * @param wribSvcKeiNo 割引サービス契約番号
	 * @return サービス課金開始年月日が設定されていない場合true、設定されている場合false
	 */
	public boolean isSvcChrgStaymd(CAANMsg inMsg, Object wribSvcKeiNo)
	{
		// 引数チェック
		if (wribSvcKeiNo == null)
		{
			return false;
		}

		// 割引サービス契約取得（カレントレコード）
		CAANMsg msg = new CAANMsg(KK0451ETMsg.class.getName());
		msg.set(KK0451ETMsg.WRIB_SVC_KEI_NO, wribSvcKeiNo.toString());
		msg.set(KK0451ETMsg.RSV_APLY_YMD, JKKModelCommon.getOpeDate(inMsg));
		CAANMsg crtMsg = new JKKejbKK0451DBABase().findByCurrent(msg);

		// 存在しない場合
		if (crtMsg == null)
		{
			return false;
		}

		// 入力のサービス課金開始年月日を取得する
		String inputSvcChrgStaYmd = inMsg.getString(EKK0451C170CBSMsg.SVC_CHRG_STAYMD);
		// カレントの割引額算出基準年月日を取得する
		String dbWaribAmntSnstStYmd = crtMsg.getString(KK0451ETMsg.WRIB_AMNT_SNST_STDARDYMD);

		// カレントのサービス課金開始年月日が設定されている
		if (!crtMsg.isNull(KK0451ETMsg.SVC_CHRG_STAYMD))
		{
			// カレントの割引額算出基準年月日が設定されている
			if (dbWaribAmntSnstStYmd != null)
			{
				// カレントの割引額算出基準年月日と入力のサービス課金開始年月日に差異がある場合
				if (!dbWaribAmntSnstStYmd.equals(inputSvcChrgStaYmd))
				{
					// ルールを実施する
					return false;
				}
			}
		}
		return true;
	}
}
