/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEKK2461C010TPMA
*	ソースファイル名：JEKK2461C010TPMA.java
*	作成者			：富士通
*	日付			：2016年11月04日
*＜機能概要＞
*	KDDI割引契約異動通知更新時の更新処理を呼び出す部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v27.00.00	2016/11/30	FJ)三原		ANK-2862-00-00 スマートバリューコード引継　機能の実装＜随時削減策＞
*
********************************************************************************/

package eo.ejb.cbs.mainproc;

import com.fujitsu.futurity.model.base.CAANException;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.CAANRuntimeException;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateMainHandler;

import eo.ejb.cbm.entity.KK2461ETMsg;
import eo.ejb.cbm.entity.KK2461LE;
import eo.ejb.cbs.cbsmsg.EKK2461C010CBSMsg;
import eo.ejb.common.db.JKKejbDBAUtil;

/**
 * <p>
 * KDDI割引契約異動通知状態コード変更独自処理部品クラスです。
 * </p>
 * @author 富士通
 */
public class JEKK2461C010TPMA implements TemplateMainHandler
{
	/**
	 * KDDI割引契約異動通知更新独自処理をします。
	 * 
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 */
	public void execDBAccess(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 検索条件の設定
		CAANMsg kk2461Msg = new CAANMsg(KK2461ETMsg.class.getName());
		kk2461Msg.set(KK2461ETMsg.TAJGS_WRIB_KEI_NO, inCBSMsg.getString(EKK2461C010CBSMsg.TAJGS_WRIB_KEI_NO));
		kk2461Msg.set(KK2461ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKK2461C010CBSMsg.SVC_KEI_NO));
		kk2461Msg.set(KK2461ETMsg.KDDI_WKEI_IDT_STAT_CD, "0");
		kk2461Msg.set(KK2461ETMsg.MK_FLG, "0");
		CAANMsg[] retMsg = null;

		try
		{
			retMsg = new KK2461LE().findByCondition(kk2461Msg);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		// 取得件数分、処理を行う
		for (int i = 0; i < retMsg.length; i++)
		{
			//UPD_UNYO_YMD,UPD_TRN_IDは自動で更新される
			// 更新内容を設定
			retMsg[i].set(KK2461ETMsg.UPD_DTM, inCBSMsg.getString(EKK2461C010CBSMsg.OPERATEDATETIME));
			retMsg[i].set(KK2461ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKK2461C010CBSMsg.OPERATORID));
			retMsg[i].set(KK2461ETMsg.KDDI_WKEI_IDT_STAT_CD, "2");

			// update
			JKKejbDBAUtil dbu = new JKKejbDBAUtil(inCBSMsg);
			
			dbu.update(retMsg[i]);
		}
		
		// 出力項目の設定
		if(0 < retMsg.length)
		{
			inCBSMsg.set(EKK2461C010CBSMsg.UPD_DTM, inCBSMsg.getString(EKK2461C010CBSMsg.OPERATEDATETIME));
			inCBSMsg.set(EKK2461C010CBSMsg.UPD_OPEACNT, inCBSMsg.getString(EKK2461C010CBSMsg.OPERATORID));
		}
	}
}
