/*********************************************************************
*   All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JEKKA0010001KRCK
*   ソースファイル名：JEKKA0010001KRCK.java
*   作成者          ：富士通
*   日付            ：2011年10月13日
*＜機能概要＞
*   初回オーソリ依頼の関連制約部品クラス
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v1.00.00    2011/10/13  富士通      新規作成
*
**********************************************************************/

package eo.ejb.common.entity;

import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.StatusCodes;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.ejb.cbs.cbsmsg.EKKA0010001CBSMsg;
import eo.ejb.common.JKKModelCommon;

/**
 * <p>
 * 初回オーソリ依頼の関連制約部品クラスです。
 * </p>
 * @author 富士通
 */
public class JEKKA0010001KRCK
{

	/**
	 * <p>
	 * 新しいJEKKA0010001KRCKを作成します。
	 * </p>
	 */
	public JEKKA0010001KRCK()
	{
	}

	/**
	 * <p>
	 * 初回オーソリ依頼の関連制約を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 */
	public void execKRCK(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{

		// 有効期限チェック
		String validTerm = inCBSMsg.getString(EKKA0010001CBSMsg.CR_CARDEXP);
		if (null != validTerm)
		{
			String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);
			
			// 運用日の前2桁 + 入力値のカード有効期限のyy/MMのyyMM
			StringBuffer yymm = new StringBuffer();
			yymm.append(opeDate.substring(0, 2))
				.append(validTerm.substring(0, 2))
				.append(validTerm.substring(3, 5));

			if (0 > yymm.toString().compareTo(opeDate.substring(0, 6)))
			{
				inCBSMsg.set(JCMConstants.STATUS_INT_KEY, StatusCodes.RELATION_ERR);
				inCBSMsg.set(EKKA0010001CBSMsg.CR_CARDEXP_ERR, "EA");
				return;
			}
		}
		
	}
}

