/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEKK0341B036TKCK
*	ソースファイル名：JSYejbEKK0341B036TKCK.java
*	作成者			：EK948993
*	日付			：2019年04月04日
*＜機能概要＞
*	機器提供サービス契約一覧照会（オペレータ支援）の単関連チェック部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*
********************************************************************************/

package eo.ejb.check.itemrelation;

import java.sql.Date;
import java.sql.Timestamp;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;
import com.fujitsu.futurity.model.ejb.common.StatusCodes;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TankanrenCheckHandler;
import eo.ejb.cbs.cbsmsg.EKK0341B036CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B036CBSMsg1List;
import eo.ejb.common.JKKModelCommon;

/**
 * <HR>
 * 機器提供サービス契約一覧照会（オペレータ支援）CBSMsgの単関連チェック用クラス｡ <p>
 * 
 * 以下の機能をサポートする。
 * <ul>
 * <li>機器提供サービス契約一覧照会（オペレータ支援）CBSMsgの単関連をチェックする。
 * </ul>
 * <p>
 * <HR>
 * <p>
 */ 
public class JSYejbEKK0341B036TKCK implements TankanrenCheckHandler {

	/**
	 * JSYejbEKK0341B036TKCK単関連をチェックする。<br>
	 * 
	 * JSYejbEKK0341B036TKCK単関連をチェックする。
	 * <p>
	 * @param	inCBSMsg	CBSMsgメッセージ
	 * @param	inContext	Agent
	 */
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) {

		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"invoke#Call");

		// チェックを行う
		int stRet = 0;

		//機器提供サービス契約一覧照会（オペレータ支援）明細のnullチェック
		CAANMsg[] l_ekk0341b036cbsmsg1list = new CAANMsg[]{};
		if(!inCBSMsg.isNull(EKK0341B036CBSMsg.EKK0341B036CBSMSG1LIST)){
			l_ekk0341b036cbsmsg1list = inCBSMsg.getCAANMsgList(EKK0341B036CBSMsg.EKK0341B036CBSMSG1LIST);
		}

		//チェック条件：機能コード判定処理の戻り値がtrueと等しい
		if(JKKModelCommon.isFuncCd(inCBSMsg, inContext , "1" ) == true){
			//ＫＥＹ＿サービス契約回線内訳番号がnullでない ：正常
			if(!(!inCBSMsg.isNull(EKK0341B036CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO))){
				inCBSMsg.set(EKK0341B036CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"key_svc_kei_kaisen_ucwk_no_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：機能コード判定処理の戻り値がtrueと等しい
		if(JKKModelCommon.isFuncCd(inCBSMsg, inContext , "2" ) == true){
			//ＫＥＹ＿サービス契約番号がnullでない ：正常
			if(!(!inCBSMsg.isNull(EKK0341B036CBSMsg.KEY_SVC_KEI_NO))){
				inCBSMsg.set(EKK0341B036CBSMsg.KEY_SVC_KEI_NO_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"key_svc_kei_no_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：機能コード判定処理の戻り値がtrueと等しい
		if(JKKModelCommon.isFuncCd(inCBSMsg, inContext , "3" ) == true){
			//ＫＥＹ＿サービス契約内訳番号がnullでない ：正常
			if(!(!inCBSMsg.isNull(EKK0341B036CBSMsg.KEY_SVC_KEI_UCWK_NO))){
				inCBSMsg.set(EKK0341B036CBSMsg.KEY_SVC_KEI_UCWK_NO_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"key_svc_kei_ucwk_no_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}


		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"invoke#End");

		//チェック結果によりステータスを設定する
		if (stRet > inCBSMsg.getInt(EKK0341B036CBSMsg.STATUS)) {
			inCBSMsg.set(EKK0341B036CBSMsg.STATUS,stRet);
		}
	}
}
