/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKejbEKK0081C260TKCK
*	ソースファイル名：JKKejbEKK0081C260TKCK.java
*	作成者			：富士通
*	日付			：2014年1月17日
*＜機能概要＞
*	サービス契約解約確定単関連制約部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v8.00.00	2014/01/17	FJ)寺園		ANK-1586-00-00
*	v16.00.00	2015/05/28	FJ)中原		ANK-2480-00-00
*	v16.01.00	2015/08/22	FJ)中野		IT1-2015-0000074対応
**********************************************************************/

package eo.ejb.common.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 eo.ejb.cbm.entity.KK0081ETMsg;
import eo.ejb.cbs.cbsmsg.EKK0081C260CBSMsg;
import eo.ejb.common.JKKModelCommon;

public class JKKejbEKK0081C260TKCK
{

	/**
	 * サービス契約解約確定の単関連制約を行います。
	 * 
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 */
	public void execTKCK(CAANMsg inCBSMsg, AgentDispatchContext arg1)
	{
		// ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"execTKCK#Call");

		// チェックを行う
		int stRet = 0;

		//2015-5-28　中原　ANK-2480-00-00 新電力対応 MOD START
//		//ＭＶＮＯから連携される場合
//		if(JKKModelCommon.isEqualsSvcKK2821(inCBSMsg, arg1, inCBSMsg.getObject(EKK0081C260CBSMsg.SVC_KEI_NO), "51")){
		//ＭＶＮＯから連携される場合 または 電気サービスから連携される場合
		if(JKKModelCommon.isEqualsSvcKK2821(inCBSMsg, arg1, inCBSMsg.getObject(EKK0081C260CBSMsg.SVC_KEI_NO), "51,05")){
		//2015-5-28　中原　ANK-2480-00-00 新電力対応 MOD END
			//サービス課金終了年月日が未入力の場合 ：エラー
			if(inCBSMsg.isNull(EKK0081C260CBSMsg.SVC_CHRG_ENDYMD)){
				inCBSMsg.set(EKK0081C260CBSMsg.SVC_CHRG_ENDYMD_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"svc_chrg_endymd_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
			
			//サービス解約年月日（入力）が未入力の場合 ：エラー
			if(inCBSMsg.isNull(EKK0081C260CBSMsg.SVC_DSL_YMD_I)){
				inCBSMsg.set(EKK0081C260CBSMsg.SVC_DSL_YMD_I_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"svc_dsl_ymd_i_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
			
			//サービス解約理由コードが未入力の場合 ：エラー
			if(inCBSMsg.isNull(EKK0081C260CBSMsg.SVC_DLRE_CD)){
				inCBSMsg.set(EKK0081C260CBSMsg.SVC_DLRE_CD_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"svc_dlre_cd_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		// ▼▼▼▼▼ IT1-2015-0000074 2015/8/22 ADD START ▼▼▼▼▼
		// 電気の場合、サービス終了年月日の未来日チェックを行う。
		if(JKKModelCommon.isEqualsSvcKK2821(inCBSMsg, arg1, inCBSMsg.getObject(EKK0081C260CBSMsg.SVC_KEI_NO), "05"))
		{
			// 運用日の取得
			String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);
			String svcEndymd = inCBSMsg.getString(EKK0081C260CBSMsg.SVC_ENDYMD);
			
			//サービス終了年月日が未来日の場合 ：エラー
			if (JKKModelCommon.isFutureDate(svcEndymd, opeDate, "0"))
			{
				inCBSMsg.set(EKK0081C260CBSMsg.SVC_ENDYMD_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"svc_endymd_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}
		// ▲▲▲▲▲ IT1-2015-0000074 2015/8/22 ADD END   ▲▲▲▲▲

		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"execTKCK#End");

		//チェック結果によりステータスを設定する
		if (stRet > inCBSMsg.getInt(EKK0081C260CBSMsg.STATUS)) {
			inCBSMsg.set(EKK0081C260CBSMsg.STATUS,stRet);
		}
	}
}
