/*********************************************************************
*   All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JEKK2811C140ETDA
*   ソースファイル名：JEKK2811C140ETDA.java
*   作成者          ：富士通
*   日付            ：2011年11月14日
*＜機能概要＞
*   機器オプションサービス契約解約のDBアクセス部品クラス
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v7.00.00    2013/11/14  富士通      新規作成
*
**********************************************************************/

package eo.ejb.common.db;

import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.ejb.cbm.entity.KK1681ETMsg;
import eo.ejb.cbs.cbsmsg.EKK2811C140CBSMsg;
import eo.ejb.common.JKKModelConst;
import eo.ejb.common.edit.JKKejbEditYmdInit;
import eo.ejb.common.edit.JKKejbKK1681NumberParts;

/**
 * <p>
 * 機器オプションサービス契約解約のDBアクセス部品クラスです。
 * </p>
 * @author 富士通
 */
public class JEKK2811C140ETDA
{	
	/**
	 * <p>
	 * 新しいJEKK2811C140ETDAを作成します。
	 * </p>
	 */
	public JEKK2811C140ETDA()
	{
	}

	/**
	 * <p>
	 * 相関ルールにて振舞判定を行い、異動予約にDBアクセスを行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 */
	public void execDBAccess(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 採番処理
		JKKejbKK1681NumberParts numberParts = new JKKejbKK1681NumberParts();
		String ido_rsv_no = numberParts.getIdoRsvNo(inCBSMsg, inContext);

		// 異動予約用Msg生成
		CAANMsg inETMsg = new CAANMsg(KK1681ETMsg.class.getName());

		// 異動予約番号	IDO_RSV_NO
		inETMsg.set(KK1681ETMsg.IDO_RSV_NO, ido_rsv_no);

		// 異動区分	IDO_DIV
		inETMsg.set(KK1681ETMsg.IDO_DIV, inCBSMsg.getString(EKK2811C140CBSMsg.IDO_DIV));

		// 異動予約詳細コード	IDO_RSV_DTL_CD
		inETMsg.set(KK1681ETMsg.IDO_RSV_DTL_CD, JKKModelConst.IDO_RSV_DTL_CD_KKOP_DSL);

		// 予約適用年月日	RSV_APLY_YMD
		String rsv_aply_ymd = JKKejbEditYmdInit.convRsvAplyYmdInit(inCBSMsg.getString(EKK2811C140CBSMsg.SVC_ENDYMD));
		inETMsg.set(KK1681ETMsg.RSV_APLY_YMD, rsv_aply_ymd);

		// 異動予約状態コード	IDO_RSV_STAT_CD
		inETMsg.set(KK1681ETMsg.IDO_RSV_STAT_CD, JKKModelConst.IDO_RSV_STAT_CD_RSV_TTDK_CHU);
		
		// 申込明細番号	MSKM_DTL_NO
		inETMsg.set(KK1681ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKK2811C140CBSMsg.MSKM_DTL_NO));

		// 機器オプションサービス契約番号	KKOP_SVC_KEI_NO
		inETMsg.set(KK1681ETMsg.KKOP_SVC_KEI_NO, inCBSMsg.getString(EKK2811C140CBSMsg.KKOP_SVC_KEI_NO));

		// 違約金発生コード	PNLTY_HASSEI_CD
		inETMsg.set(KK1681ETMsg.PNLTY_HASSEI_CD, inCBSMsg.getString(EKK2811C140CBSMsg.PNLTY_HASSEI_CD));

		// 登録年月日時分秒	ADD_DTM
		inETMsg.set(KK1681ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));

		// 登録オペレータアカウント	ADD_OPEACNT
		inETMsg.set(KK1681ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

		// 更新年月日時分秒	UPD_DTM
		inETMsg.set(KK1681ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));

		// 更新オペレータアカウント	UPD_OPEACNT
		inETMsg.set(KK1681ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

		// 無効フラグ	MK_FLG
		inETMsg.set(KK1681ETMsg.MK_FLG, JKKModelConst.MK_FLG_YK);

		// 登録処理の実行
		JKKejbDBAUtil dbaUtil = new JKKejbDBAUtil(inCBSMsg);
		dbaUtil.create(inETMsg);
		
		// 返却項目メッセージ生成
		inCBSMsg.set(EKK2811C140CBSMsg.ADD_DTM, inETMsg.getString(KK1681ETMsg.ADD_DTM));
		inCBSMsg.set(EKK2811C140CBSMsg.ADD_OPEACNT, inETMsg.getString(KK1681ETMsg.ADD_OPEACNT));
		inCBSMsg.set(EKK2811C140CBSMsg.UPD_DTM, inETMsg.getString(KK1681ETMsg.UPD_DTM));
		inCBSMsg.set(EKK2811C140CBSMsg.UPD_OPEACNT, inETMsg.getString(KK1681ETMsg.UPD_OPEACNT));
		inCBSMsg.set(EKK2811C140CBSMsg.MK_FLG, inETMsg.getString(KK1681ETMsg.MK_FLG));


	}
}
