/*********************************************************************
*   All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JEKK1041C010KRCK
*   ソースファイル名：JEKK1041C010KRCK.java
*	作成者			：富士通
*	日付			：2013年12月24日
*＜機能概要＞
*   機器オプションサービス契約開始の関連制約部品クラス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v7.00.00	2013/12/24	富士通		新規作成
*	v7.00.01	2013/01/26	FJ)大山		OM-2013-0004684 再修正
*
**********************************************************************/

package eo.ejb.common.entity;

import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.model.base.CAANException;
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.cbm.entity.KK0251ETMsg;
import eo.ejb.cbm.entity.KK0251LE;
import eo.ejb.cbs.cbsmsg.EKK1041C010CBSMsg;
import eo.ejb.common.JKKModelConst;

/**
 * <p>
 * オーダ設定情報変更の関連制約部品クラスです。
 * </p>
 * @author 富士通
 */
public class JEKK1041C010KRCK
{

	/** 関連チェックエラーフラグ&エラー返却項目(サービス契約回線内訳存在チェック) */
	private static final String[] KRCK_SVKEIKAISENUCWK_EXISTS_ERR = {"EA", EKK1041C010CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR};

	/**
	 * <p>
	 * 新しいJEKK0341C350KRCKを作成します。
	 * </p>
	 */
	public JEKK1041C010KRCK()
	{
	}

	/**
	 * <p>
	 * オーダ設定情報変更の関連制約チェックを行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 */
	public void execKRCK(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// サービス契約回線内訳番号
		String svcKeiKaisenUcwkNo = inCBSMsg.getString(EKK1041C010CBSMsg.SVC_KEI_KAISEN_UCWK_NO);

	
		if(svcKeiKaisenUcwkNo == null) {
			return;
		}
		
		try {
			// サービス契約回線内訳番号の存在チェックを行う。
			CAANMsg inETMsg = new CAANMsg(KK0251ETMsg.class.getName());
			inETMsg.set(KK0251ETMsg.SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo);
			inETMsg.set(KK0251ETMsg.MK_FLG, JKKModelConst.MK_FLG_YK);
			CAANMsg[] outMsg = new KK0251LE().findByCondition(inETMsg);
			
			if(outMsg == null || outMsg.length == 0) 
			{
				setErrInfo(inCBSMsg, StatusCodes.RELATION_ERR, KRCK_SVKEIKAISENUCWK_EXISTS_ERR);
				return;
			}
		}catch(CAANException cae) {
			return;
		}

	}
	
	/**
	 * <p>
	 * エラー返却項目にエラーフラグを設定します。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param status エラー時のステータス
	 * @param errInfo[] エラー情報が設定された配列 [0]:エラーフラグ [1]:エラー返却項目
	 */
	private void setErrInfo(CAANMsg inCBSMsg, int status, String[] errInfo)
	{
		inCBSMsg.set(JCMConstants.STATUS_INT_KEY, status);
		inCBSMsg.set(errInfo[1], errInfo[0]);
		return;
		
	}

}

