/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEKK0161C290ETDA
*	ソースファイル名：JEKK0161C290ETDA.java
*	作成者			：FJ）時見
*	日付			：2015年10月20日
*＜機能概要＞
*	サービス契約内訳主従切替対象登録ETMsgDBアクセス部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v20.00.00   2015/10/20   FJ）時見    新規作成
*   v20.01.00   2015/11/24   FJ）時見    IT1-2015-0000127対応
*   v25.00.00   2016/05/23   FJ) 森脇    OM-2016-0001198 
********************************************************************************/

package eo.ejb.common.db;

import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.CAANRuntimeException;
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.cbm.entity.KK0161ETMsg;
import eo.ejb.cbs.cbsmsg.EKK0161C290CBSMsg;
import eo.ejb.common.JKKModelCommon;

/**
 * <p>
 * サービス契約内訳主従切替対象登録ETMsgDBアクセス部品です。
 * </p>
 * @author 富士通
 */
public class JEKK0161C290ETDA 
{
	/**
	 * コンストラクタ
	 */
	public JEKK0161C290ETDA()
	{
	}

	/**
	 * DBAccess処理
	 * 
	 * @param inCBSMsg  処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 */
	public void execDBAccess(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// 開始ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "call:JEKK0161C290ETDA.execDBAccess");

		try
		{
			// サービス契約内訳カレントレコードの検索
			CAANMsg selMsg = new CAANMsg(KK0161ETMsg.class.getName());
			selMsg.set(KK0161ETMsg.SVC_KEI_UCWK_NO, inCBSMsg.getObject(EKK0161C290CBSMsg.SVC_KEI_UCWK_NO));
			selMsg.set(KK0161ETMsg.GENE_ADD_DTM, inCBSMsg.getObject(EKK0161C290CBSMsg.GENE_ADD_DTM));

			CAANMsg retCurrent = new JKKejbKK0161DBABase().findByPrimaryKey(selMsg);
			// サービス契約内訳カレントレコードの検索
			CAANMsg insMsg = new CAANMsg(KK0161ETMsg.class.getName());

			// 登録データの作成
			insMsg.set(KK0161ETMsg.SVC_KEI_UCWK_NO, retCurrent.getObject(KK0161ETMsg.SVC_KEI_UCWK_NO));
			insMsg.set(KK0161ETMsg.GENE_ADD_DTM, (String)JKKModelCommon.getTransferGeneAddDtm(inCBSMsg, inContext));
			insMsg.set(KK0161ETMsg.PPLAN_CD, inCBSMsg.getObject(EKK0161C290CBSMsg.PPLAN_CD));
			insMsg.set(KK0161ETMsg.IDO_DIV, inCBSMsg.getObject(EKK0161C290CBSMsg.IDO_DIV));
			insMsg.set(KK0161ETMsg.PLAN_ENDYMD, inCBSMsg.getObject(EKK0161C290CBSMsg.PLAN_ENDYMD));
			insMsg.set(KK0161ETMsg.PLAN_CHRG_ENDYMD, inCBSMsg.getObject(EKK0161C290CBSMsg.PLAN_CHRG_ENDYMD));

			if(!inCBSMsg.isNull(EKK0161C290CBSMsg.PLAN_END_SBT_CD)){
				insMsg.set(KK0161ETMsg.PLAN_END_SBT_CD, inCBSMsg.getObject(EKK0161C290CBSMsg.PLAN_END_SBT_CD));
			}else{
				insMsg.set(KK0161ETMsg.PLAN_END_SBT_CD, retCurrent.getObject(KK0161ETMsg.PLAN_END_SBT_CD));
			}
			
			if(!inCBSMsg.isNull(EKK0161C290CBSMsg.PLAN_STAYMD)){
				insMsg.set(KK0161ETMsg.PLAN_STAYMD, inCBSMsg.getObject(EKK0161C290CBSMsg.PLAN_STAYMD));
			}else{
				insMsg.set(KK0161ETMsg.PLAN_STAYMD, retCurrent.getObject(KK0161ETMsg.PLAN_STAYMD));
			}
			
			if(!inCBSMsg.isNull(EKK0161C290CBSMsg.PLAN_CHRG_STAYMD)){
				insMsg.set(KK0161ETMsg.PLAN_CHRG_STAYMD, inCBSMsg.getObject(EKK0161C290CBSMsg.PLAN_CHRG_STAYMD));
			}else{
				insMsg.set(KK0161ETMsg.PLAN_CHRG_STAYMD, retCurrent.getObject(KK0161ETMsg.PLAN_CHRG_STAYMD));
			}

			insMsg.set(KK0161ETMsg.SVC_KEI_UCWK_STAT, retCurrent.getObject(KK0161ETMsg.SVC_KEI_UCWK_STAT));
			insMsg.set(KK0161ETMsg.SVC_KEI_NO, retCurrent.getObject(KK0161ETMsg.SVC_KEI_NO));
			insMsg.set(KK0161ETMsg.MSKM_DTL_NO, retCurrent.getObject(KK0161ETMsg.MSKM_DTL_NO));
			insMsg.set(KK0161ETMsg.PCRS_CD, retCurrent.getObject(KK0161ETMsg.PCRS_CD));
			insMsg.set(KK0161ETMsg.TK_HOSHIKI_KEI_NO, retCurrent.getObject(KK0161ETMsg.TK_HOSHIKI_KEI_NO));
			insMsg.set(KK0161ETMsg.PAYWAY_KEIZOKU_FLG, retCurrent.getObject(KK0161ETMsg.PAYWAY_KEIZOKU_FLG));
			insMsg.set(KK0161ETMsg.WEB_OP_ADD_FAIL_FLG, retCurrent.getObject(KK0161ETMsg.WEB_OP_ADD_FAIL_FLG));
			insMsg.set(KK0161ETMsg.WORK_RRK_BIKO, retCurrent.getObject(KK0161ETMsg.WORK_RRK_BIKO));
			insMsg.set(KK0161ETMsg.SVC_USE_STA_KIBO_YMD, retCurrent.getObject(KK0161ETMsg.SVC_USE_STA_KIBO_YMD));
			insMsg.set(KK0161ETMsg.SVC_UEST_KBTMZ_CD, retCurrent.getObject(KK0161ETMsg.SVC_UEST_KBTMZ_CD));
			insMsg.set(KK0161ETMsg.SVC_UEST_KBTM_CD, retCurrent.getObject(KK0161ETMsg.SVC_UEST_KBTM_CD));
			insMsg.set(KK0161ETMsg.RSV_TSTA_KIBO_YMD, retCurrent.getObject(KK0161ETMsg.RSV_TSTA_KIBO_YMD));
			insMsg.set(KK0161ETMsg.SKEKKA_SEND_CD, retCurrent.getObject(KK0161ETMsg.SKEKKA_SEND_CD));
			insMsg.set(KK0161ETMsg.SVC_KEI_UCWK_KZKWRK_REQYMD, retCurrent.getObject(KK0161ETMsg.SVC_KEI_UCWK_KZKWRK_REQYMD));
			insMsg.set(KK0161ETMsg.SHOSA_YMD, retCurrent.getObject(KK0161ETMsg.SHOSA_YMD));
			insMsg.set(KK0161ETMsg.SHOSA_CL_YMD, retCurrent.getObject(KK0161ETMsg.SHOSA_CL_YMD));
			insMsg.set(KK0161ETMsg.FTRIAL_KANYU_YMD, retCurrent.getObject(KK0161ETMsg.FTRIAL_KANYU_YMD));
			insMsg.set(KK0161ETMsg.FTRIAL_PRD_ENDYMD, retCurrent.getObject(KK0161ETMsg.FTRIAL_PRD_ENDYMD));
			insMsg.set(KK0161ETMsg.HONKANYU_YMD, retCurrent.getObject(KK0161ETMsg.HONKANYU_YMD));
			insMsg.set(KK0161ETMsg.HONKANYU_IKO_KIGEN_YMD, retCurrent.getObject(KK0161ETMsg.HONKANYU_IKO_KIGEN_YMD));
			insMsg.set(KK0161ETMsg.KEI_CNC_YMD, retCurrent.getObject(KK0161ETMsg.KEI_CNC_YMD));
// OM-2016-0001198 MOD START
//			insMsg.set(KK0161ETMsg.RSV_APLY_YMD, retCurrent.getObject(KK0161ETMsg.RSV_APLY_YMD));
			insMsg.set(KK0161ETMsg.RSV_APLY_YMD, JKKModelCommon.getOpeDate(inCBSMsg));
// OM-2016-0001198 MOD END
			insMsg.set(KK0161ETMsg.RSV_CL_YMD, retCurrent.getObject(KK0161ETMsg.RSV_CL_YMD));
			insMsg.set(KK0161ETMsg.RSV_APLY_CD, retCurrent.getObject(KK0161ETMsg.RSV_APLY_CD));
			insMsg.set(KK0161ETMsg.SVC_CANCEL_YMD, retCurrent.getObject(KK0161ETMsg.SVC_CANCEL_YMD));
			insMsg.set(KK0161ETMsg.SVC_CANCEL_RSN_CD, retCurrent.getObject(KK0161ETMsg.SVC_CANCEL_RSN_CD));
			insMsg.set(KK0161ETMsg.SVC_STA_YMD, retCurrent.getObject(KK0161ETMsg.SVC_STA_YMD));
			insMsg.set(KK0161ETMsg.SVC_CHRG_STAYMD, retCurrent.getObject(KK0161ETMsg.SVC_CHRG_STAYMD));
			insMsg.set(KK0161ETMsg.SVC_STP_YMD, retCurrent.getObject(KK0161ETMsg.SVC_STP_YMD));
			insMsg.set(KK0161ETMsg.SVC_STP_RSN_CD, retCurrent.getObject(KK0161ETMsg.SVC_STP_RSN_CD));
			insMsg.set(KK0161ETMsg.SVC_STP_RLS_YMD, retCurrent.getObject(KK0161ETMsg.SVC_STP_RLS_YMD));
			insMsg.set(KK0161ETMsg.SVC_STP_RLS_RSN_CD, retCurrent.getObject(KK0161ETMsg.SVC_STP_RLS_RSN_CD));
			insMsg.set(KK0161ETMsg.PAUSE_STP_CD, retCurrent.getObject(KK0161ETMsg.PAUSE_STP_CD));
			insMsg.set(KK0161ETMsg.SVC_PAUSE_YMD, retCurrent.getObject(KK0161ETMsg.SVC_PAUSE_YMD));
			insMsg.set(KK0161ETMsg.SVC_PAUSE_RSN_CD, retCurrent.getObject(KK0161ETMsg.SVC_PAUSE_RSN_CD));
			insMsg.set(KK0161ETMsg.SVC_PAUSE_RSN_MEMO, retCurrent.getObject(KK0161ETMsg.SVC_PAUSE_RSN_MEMO));
			insMsg.set(KK0161ETMsg.SVC_PAUSE_RLS_YMD, retCurrent.getObject(KK0161ETMsg.SVC_PAUSE_RLS_YMD));
			insMsg.set(KK0161ETMsg.SVC_PAUSE_RLS_RSN_CD, retCurrent.getObject(KK0161ETMsg.SVC_PAUSE_RLS_RSN_CD));
			insMsg.set(KK0161ETMsg.SVC_PAUSE_RLS_RSN_MEMO, retCurrent.getObject(KK0161ETMsg.SVC_PAUSE_RLS_RSN_MEMO));
			insMsg.set(KK0161ETMsg.SVC_ENDYMD, retCurrent.getObject(KK0161ETMsg.SVC_ENDYMD));
			insMsg.set(KK0161ETMsg.SVC_CHRG_ENDYMD, retCurrent.getObject(KK0161ETMsg.SVC_CHRG_ENDYMD));
			insMsg.set(KK0161ETMsg.SVC_DSL_KISAN_YMD, retCurrent.getObject(KK0161ETMsg.SVC_DSL_KISAN_YMD));
			insMsg.set(KK0161ETMsg.SVC_DSL_YMD, retCurrent.getObject(KK0161ETMsg.SVC_DSL_YMD));
			insMsg.set(KK0161ETMsg.SVC_DLRE_CD, retCurrent.getObject(KK0161ETMsg.SVC_DLRE_CD));
			insMsg.set(KK0161ETMsg.SVC_DLRE_MEMO, retCurrent.getObject(KK0161ETMsg.SVC_DLRE_MEMO));
			insMsg.set(KK0161ETMsg.SVC_DSL_TTDKI_FIN_FLG, retCurrent.getObject(KK0161ETMsg.SVC_DSL_TTDKI_FIN_FLG));
			insMsg.set(KK0161ETMsg.KAIHK_YMD, retCurrent.getObject(KK0161ETMsg.KAIHK_YMD));
			insMsg.set(KK0161ETMsg.SVC_CANCEL_CL_YMD, retCurrent.getObject(KK0161ETMsg.SVC_CANCEL_CL_YMD));
			insMsg.set(KK0161ETMsg.SVC_DSL_CL_YMD, retCurrent.getObject(KK0161ETMsg.SVC_DSL_CL_YMD));
			insMsg.set(KK0161ETMsg.SVKEIUW_HKHASYMD, retCurrent.getObject(KK0161ETMsg.SVKEIUW_HKHASYMD));
			insMsg.set(KK0161ETMsg.CHRG_STA_YMD_HOSEI_UM, retCurrent.getObject(KK0161ETMsg.CHRG_STA_YMD_HOSEI_UM));
			insMsg.set(KK0161ETMsg.SVC_PAUSE_CHRG_STA_YMD, retCurrent.getObject(KK0161ETMsg.SVC_PAUSE_CHRG_STA_YMD));
			insMsg.set(KK0161ETMsg.PNLTY_HASSEI_CD, retCurrent.getObject(KK0161ETMsg.PNLTY_HASSEI_CD));
			insMsg.set(KK0161ETMsg.SHOSA_DSL_FIN_CD, retCurrent.getObject(KK0161ETMsg.SHOSA_DSL_FIN_CD));
			insMsg.set(KK0161ETMsg.SVCTK_BUT_DEL_TRN_JSSI_DTM, retCurrent.getObject(KK0161ETMsg.SVCTK_BUT_DEL_TRN_JSSI_DTM));
			insMsg.set(KK0161ETMsg.KEIZK_MT_SVC_KEI_UCWK_NO, retCurrent.getObject(KK0161ETMsg.KEIZK_MT_SVC_KEI_UCWK_NO));
			insMsg.set(KK0161ETMsg.KEIZK_AF_KEI_CHGECHU_FLG, retCurrent.getObject(KK0161ETMsg.KEIZK_AF_KEI_CHGECHU_FLG));
			insMsg.set(KK0161ETMsg.DEL_DTM, retCurrent.getObject(KK0161ETMsg.DEL_DTM));
			insMsg.set(KK0161ETMsg.DEL_OPEACNT, retCurrent.getObject(KK0161ETMsg.DEL_OPEACNT));
			insMsg.set(KK0161ETMsg.MK_FLG, retCurrent.getObject(KK0161ETMsg.MK_FLG));
			// 登録年月日時分秒	ADD_DTM
			insMsg.set(KK0161ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 登録オペレータアカウント	ADD_OPEACNT
			insMsg.set(KK0161ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			// 更新年月日時分秒	UPD_DTM
			insMsg.set(KK0161ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
			// 更新オペレータアカウント	UPD_OPEACNT
			insMsg.set(KK0161ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
			insMsg.set(KK0161ETMsg.ADD_UNYO_YMD, retCurrent.getObject(KK0161ETMsg.ADD_UNYO_YMD));
			insMsg.set(KK0161ETMsg.ADD_TRN_ID, retCurrent.getObject(KK0161ETMsg.ADD_TRN_ID));
			insMsg.set(KK0161ETMsg.UPD_UNYO_YMD, retCurrent.getObject(KK0161ETMsg.UPD_UNYO_YMD));
			insMsg.set(KK0161ETMsg.UPD_TRN_ID, retCurrent.getObject(KK0161ETMsg.UPD_TRN_ID));
			insMsg.set(KK0161ETMsg.DEL_UNYO_YMD, retCurrent.getObject(KK0161ETMsg.DEL_UNYO_YMD));
			insMsg.set(KK0161ETMsg.DEL_TRN_ID, retCurrent.getObject(KK0161ETMsg.DEL_TRN_ID));

			// 登録処理の実行
			JKKejbDBAUtil dbaUtil0161 = new JKKejbDBAUtil(inCBSMsg);
			dbaUtil0161.create(insMsg);

			inCBSMsg.set(EKK0161C290CBSMsg.LAST_UPD_DTM, insMsg.getString(KK0161ETMsg.UPD_DTM));

		}
		catch(CAANRuntimeException ce)
		{
			inCBSMsg.set(JCMConstants.STATUS_INT_KEY, StatusCodes.FATAL_ERR);
			throw new CAANRuntimeException(ce);
		}

		// 終了ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "end:JEKK0161C290ETDA.execDBAccess");
	}

}
