/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JECK0011C040TPMA
*	ソースファイル名：JECK0011C040TPMA.java
*	作成者			：富士通
*	日付			：2011年10月05日
*＜機能概要＞
*	お客様回復時の副次処理を呼び出す部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/05	富士通		新規作成
*   v10.00.00	2014/10/04	FJ)星野		OM-2014-0003146
**********************************************************************/

package eo.ejb.cbs.mainproc;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateMainHandler;

import eo.ejb.cbs.cbsmsg.ECK0011C040CBSMsg;
import eo.ejb.common.db.JCKejbCK0011SecProc;
import eo.ejb.common.db.JCKejbCK0011SubTypeCreate;
import eo.ejb.common.db.JCKejbCK0121SecProc;
import eo.ejb.common.db.JCKejbCK0141SecProc;
import eo.ejb.common.db.JKKejbIdoRsvDBAUtil;

/**
 * <p>
 * お客様回復の顧客独自処理部品クラスです。
 * </p>
 * @author 富士通
 */
public class JECK0011C040TPMA implements TemplateMainHandler
{

	/**
	 * <p>
	 * お客様回復の副次処理部品の呼び出しを行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	public void createSubTypeCK0011(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 開始ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG, getClass(), "call:JECK0011C040TPMA.createSubTypeCK0011");

		// お客様サブタイプ登録処理の呼び出し
		JCKejbCK0011SubTypeCreate instance = new JCKejbCK0011SubTypeCreate(inCBSMsg);
		instance.setSysid(inCBSMsg.getString(ECK0011C040CBSMsg.SYSID));
		instance.setGeneAddDtm(inCBSMsg.getString(ECK0011C040CBSMsg.GENE_ADD_DTM));
		instance.createSubTypeCK0011();

		// 終了ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG, getClass(), "end:JECK0011C040TPMA.createSubTypeCK0011");
	}
	
	/**
	 * <p>
	 * お客様回復の副次処理部品の呼び出しを行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{

		// 開始ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG, getClass(), "call:JECK0011C040TPMA.invoke");

		// 引数設定
		String sysid = inCBSMsg.getString(ECK0011C040CBSMsg.SYSID);
		String cust_kaihk_ymd = inCBSMsg.getString(ECK0011C040CBSMsg.CUST_KAIHK_YMD);

		// オプトインメール受信設定副次処理部品
		JCKejbCK0141SecProc ck0141 = new JCKejbCK0141SecProc();
		ck0141.custKaihk(inCBSMsg, sysid, cust_kaihk_ymd);

		// お客様グループ設定副次処理部品
		JCKejbCK0121SecProc ck0121 = new JCKejbCK0121SecProc();
		ck0121.custKaihk(inCBSMsg, inContext, sysid, cust_kaihk_ymd);

		// 終了ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG, getClass(), "end:JECK0011C040TPMA.invoke");

	}
	
	// v10.00.00 OM-2014-0003146対応 20141004 ADD START
	/**
	 * <p>
	 * お客様回復予約取消処理
	 * @param svcKeiNo   サービス契約番号
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * </p>
	 */
	public void callCancelRsv(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 開始ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG, getClass(), "call:JECK0011C040TPMA.callCancelRsv");
		
		// SYSID取得
		String sysid = inCBSMsg.getString(ECK0011C040CBSMsg.SYSID);
		// お客様回復年月日
		String cust_kaihk_ymd = inCBSMsg.getString(ECK0011C040CBSMsg.CUST_KAIHK_YMD);
		
		
		// SYSIDでお客様_お客様予約取消
		JCKejbCK0011SecProc instanceCK0011 = new JCKejbCK0011SecProc();
		instanceCK0011.cancelCustRsv(inCBSMsg, inContext, sysid, cust_kaihk_ymd);

		
		// SYSIDで異動予約_お客様予約取消
		JKKejbIdoRsvDBAUtil instanceIdoRsv = new JKKejbIdoRsvDBAUtil();
		CAANMsg[] targetMsgsOfCur = instanceIdoRsv.getCustRsvInIdoRsv(inCBSMsg, inContext, sysid, cust_kaihk_ymd);

		// 対象レコードの更新
		for (CAANMsg targetMsgOfCur : targetMsgsOfCur)
		{
			instanceIdoRsv.cancelCustRsvInIdoRsv(inCBSMsg, inContext, targetMsgOfCur);
		}
		
		// 終了ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG, getClass(), "end:JECK0011C040TPMA.callCancelRsv");
	}
	// v10.00.00 OM-2014-0003146対応 20141004 ADD END
}
