/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbETU0011B018TKCK
*	ソースファイル名：JSYejbETU0011B018TKCK.java
*	作成者			：EK909288
*	日付			：2012年06月29日
*＜機能概要＞
*	番ポ工事一覧照会（番ポ申込書タイプ）の単関連チェック部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*
********************************************************************************/

package eo.ejb.check.itemrelation;

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.ETU0011B018CBSMsg;
import eo.ejb.common.JTUModelCommon;

/**
 * <HR>
 * 番ポ工事一覧照会（番ポ申込書タイプ）CBSMsgの単関連チェック用クラス｡ <p>
 * 
 * 以下の機能をサポートする。
 * <ul>
 * <li>番ポ工事一覧照会（番ポ申込書タイプ）CBSMsgの単関連をチェックする。
 * </ul>
 * <p>
 * <HR>
 * <p>
 */ 
public class JSYejbETU0011B018TKCK implements TankanrenCheckHandler {

	/**
	 * JSYejbETU0011B018TKCK単関連をチェックする。<br>
	 * 
	 * JSYejbETU0011B018TKCK単関連をチェックする。
	 * <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_etu0011b018cbsmsg1list = new CAANMsg[]{};
//		if(!inCBSMsg.isNull(ETU0011B018CBSMsg.ETU0011B018CBSMSG1LIST)){
//			l_etu0011b018cbsmsg1list = inCBSMsg.getCAANMsgList(ETU0011B018CBSMsg.ETU0011B018CBSMSG1LIST);
//		}

		//チェック条件：ＫＥＹ＿番ポ工事希望年月日時＿ＦＲＯＭがnullでない かつ ＫＥＹ＿番ポ工事希望年月日時＿ＴＯがnullでない
		if(!inCBSMsg.isNull(ETU0011B018CBSMsg.KEY_BMP_KOJI_KIBO_YMDH_FROM) && !inCBSMsg.isNull(ETU0011B018CBSMsg.KEY_BMP_KOJI_KIBO_YMDH_TO)){
			//未来日判定処理の戻り値がtrueと等しい ：正常
			if(!(JTUModelCommon.isFutureDateForTU(inCBSMsg, inContext , "key_bmp_koji_kibo_ymdh_to", "key_bmp_koji_kibo_ymdh_from", "1" ) == true)){
				inCBSMsg.set(ETU0011B018CBSMsg.KEY_BMP_KOJI_KIBO_YMDH_FROM_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"key_bmp_koji_kibo_ymdh_from_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}
		
		//チェック条件：ＫＥＹ＿番ポ申込書タイプコードがnullでない
		if(!inCBSMsg.isNull(ETU0011B018CBSMsg.KEY_BMP_MSKMSHO_TYPE_CD)){
			String keyBmpMskmshoTypeCd = inCBSMsg.getString(ETU0011B018CBSMsg.KEY_BMP_MSKMSHO_TYPE_CD);
			if (!keyBmpMskmshoTypeCd.matches("[0-9](,[0-9])*")) {
				inCBSMsg.set(ETU0011B018CBSMsg.KEY_BMP_MSKMSHO_TYPE_CD_ERR, "E6");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"key_bmp_mskmsho_type_cd_err:E6");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}


		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"invoke#End");

		//チェック結果によりステータスを設定する
		if (stRet > inCBSMsg.getInt(ETU0011B018CBSMsg.STATUS)) {
			inCBSMsg.set(ETU0011B018CBSMsg.STATUS,stRet);
		}
	}

//	/**
//	 * 比較処理
//	 * 
//	 * @param left_arg 		比較値（左辺）
//	 * @param right_arg 	比較値（右辺）
//	 * @param enzan_arg 	比較演算子
//	 * @param checkType 	比較形式
//	 */
//	private boolean comparison(Object left_arg, Object right_arg, String enzan_arg, String checkType)
//	{
//
//		boolean booRet = true;
//
//		String leftStr = new String();
//		String rightStr = new String();
//
//		if ( left_arg != null ){
//			leftStr = left_arg.toString();
//		}
//		if ( right_arg != null ){
//			rightStr = right_arg.toString();
//		}
//
//		// 文字比較
//		if ( "1".equals(checkType) ) {
//
//			//より小さい
//			if ( "10".equals(enzan_arg) || "40".equals(enzan_arg) || "41".equals(enzan_arg) ) {
//				if( (leftStr.compareTo(rightStr) < 0)){
//					return true;
//				}else{
//					return false;
//				}
//			//以下
//			} else if ( "11".equals(enzan_arg) || "50".equals(enzan_arg) || "51".equals(enzan_arg) ) {
//				if( (leftStr.compareTo(rightStr) <= 0)){
//					return true;
//				}else{
//					return false;
//				}
//			//等しい
//			} else if ( "20".equals(enzan_arg) || "60".equals(enzan_arg) || "61".equals(enzan_arg) ) {
//				if( (leftStr.compareTo(rightStr) == 0)){
//					return true;
//				}else{
//					return false;
//				}
//			//等しくない
//			} else if ( "21".equals(enzan_arg) || "70".equals(enzan_arg) || "71".equals(enzan_arg) ) {
//				if( (leftStr.compareTo(rightStr) != 0)){
//					return true;
//				}else{
//					return false;
//				}
//			//以上
//			} else if ( "30".equals(enzan_arg) || "80".equals(enzan_arg) || "81".equals(enzan_arg) ) {
//				if( (leftStr.compareTo(rightStr) >= 0)){
//					return true;
//				}else{
//					return false;
//				}
//			//より大きい
//			} else if ( "31".equals(enzan_arg) || "90".equals(enzan_arg) || "91".equals(enzan_arg) ) {
//				if( (leftStr.compareTo(rightStr) > 0)){
//					return true;
//				}else{
//					return false;
//				}
//			//該当無し
//			} else {
//				return false;
//			}
//
//		//数値比較
//		} else if ( "2".equals(checkType) ) {
//
//			try{
//				Long l_left_arg = new Long(leftStr);
//				Long l_right_arg = new Long(rightStr);
//
//				//より小さい
//				if ( "10".equals(enzan_arg) || "40".equals(enzan_arg) || "41".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) < 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//以下
//				} else if ( "11".equals(enzan_arg) || "50".equals(enzan_arg) || "51".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) <= 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//等しい
//				} else if ( "20".equals(enzan_arg) || "60".equals(enzan_arg) || "61".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) == 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//等しくない
//				} else if ( "21".equals(enzan_arg) || "70".equals(enzan_arg) || "71".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) != 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//以上
//				} else if ( "30".equals(enzan_arg) || "80".equals(enzan_arg) || "81".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) >= 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//より大きい
//				} else if ( "31".equals(enzan_arg) || "90".equals(enzan_arg) || "91".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) > 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//該当無し
//				} else {
//					return false;
//				}
//			}catch(NumberFormatException e){
//				return false;
//			}
//
//		//精度比較
//		} else if ( "3".equals(checkType) ) {
//
//			try{
//				Double l_left_arg = new Double(leftStr);
//				Double l_right_arg = new Double(rightStr);
//				
//				//より小さい
//				if ( "10".equals(enzan_arg) || "40".equals(enzan_arg) || "41".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) < 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//以下
//				} else if ( "11".equals(enzan_arg) || "50".equals(enzan_arg) || "51".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) <= 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//等しい
//				} else if ( "20".equals(enzan_arg) || "60".equals(enzan_arg) || "61".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) == 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//等しくない
//				} else if ( "21".equals(enzan_arg) || "70".equals(enzan_arg) || "71".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) != 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//以上
//				} else if ( "30".equals(enzan_arg) || "80".equals(enzan_arg) || "81".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) >= 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//より大きい
//				} else if ( "31".equals(enzan_arg) || "90".equals(enzan_arg) || "91".equals(enzan_arg) ) {
//					if( (l_left_arg.compareTo(l_right_arg) > 0)){
//						return true;
//					}else{
//						return false;
//					}
//				//該当無し
//				} else {
//					return false;
//				}
//			}catch(NumberFormatException e){
//				return false;
//			}
//		}
//
//		return booRet;
//
//	}

}
