/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEZM0121D010ETDA
*	ソースファイル名：JEZM0121D010ETDA.java
*	作成者			：富士通
*	日付			：2014年07月10日
*＜機能概要＞
*	電話番号登録の副次処理を行う部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v9.00.00	2014/07/10	富士通		新規作成
*	v13.00.00	2015/03/13  FJ) 藤本    【ANK-2288-00-00】番ポ戻り判定フラグ対応
*	v72.00.00	2024/04/03  FJ) 竹内    【ANK-4494-00-00】【eo定期】 双方向番ポ対応
*
**********************************************************************/

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 com.fujitsu.futurity.model.ejb.common.fw.TemplateMainHandler;

import eo.ejb.cbm.entity.ZM0121ETMsg;
import eo.ejb.cbs.cbsmsg.EZM0121D010CBSMsg;
import eo.ejb.common.JPCModelCommon;
import eo.ejb.common.edit.JZMejbTEndYmdParts;

/**
 * <p>
 * 電話番号登録の副次処理を行う部品クラスです。
 * </p>
 * @author 富士通
 */
public class JEZM0121D010ETDA implements TemplateMainHandler

{	
	/** 警告　：WA */
	private static final String INFO_FLG_WA = "WA";
	
	/**
	 * <p>
	 * 電話番号登録のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	public void execDBAccess(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// ステータスコードが"WA"（ワーニング）の場合、登録対象外とする
		if (INFO_FLG_WA.equals(inCBSMsg.getString(EZM0121D010CBSMsg.TELNO_ERR)))
		{
			return;
		}
		// ETMsgの作成
		CAANMsg inETMsg = new CAANMsg(ZM0121ETMsg.class.getName());
		
		// 電話番号 TELNO
		inETMsg.set(ZM0121ETMsg.TELNO, inCBSMsg.getString(EZM0121D010CBSMsg.TELNO));
		
		// 局番 KYOKU_NO
		inETMsg.set(ZM0121ETMsg.KYOKU_NO, inCBSMsg.getString(EZM0121D010CBSMsg.KYOKU_NO));
		
		// 番号コード NO_CD
		inETMsg.set(ZM0121ETMsg.NO_CD, inCBSMsg.getString(EZM0121D010CBSMsg.NO_CD));
		
		// 割当通信事業者コード	WARIATE_TSJGS_CD
		inETMsg.set(ZM0121ETMsg.WARIATE_TSJGS_CD, inCBSMsg.getString(EZM0121D010CBSMsg.WARIATE_TSJGS_CD));
		
		// 使用通信事業者コード USE_TSJGS_CD
		inETMsg.set(ZM0121ETMsg.USE_TSJGS_CD, inCBSMsg.getString(EZM0121D010CBSMsg.USE_TSJGS_CD));
		
		// サービス区分	SVC_DIV
		inETMsg.set(ZM0121ETMsg.SVC_DIV, inCBSMsg.getString(EZM0121D010CBSMsg.SVC_DIV));
		
		// 引当制約種別コード HKAT_SIYK_SBT_CD
		inETMsg.set(ZM0121ETMsg.HKAT_SIYK_SBT_CD, inCBSMsg.getString(EZM0121D010CBSMsg.HKAT_SIYK_SBT_CD));
		
		// 引当制約設定年月日時分秒	HKAT_SIYK_SET_DTM
		inETMsg.set(ZM0121ETMsg.HKAT_SIYK_SET_DTM, inCBSMsg.getString(EZM0121D010CBSMsg.HKAT_SIYK_SET_DTM));
		
		// 電話番号説明	TLN_SETMEI
		inETMsg.set(ZM0121ETMsg.TLN_SETMEI, inCBSMsg.getString(EZM0121D010CBSMsg.TLN_SETMEI));
		
		// 個人法人電話番号帯コード	KOJIN_HOJIN_TLN_TAI_CD
		inETMsg.set(ZM0121ETMsg.KOJIN_HOJIN_TLN_TAI_CD, inCBSMsg.getString(EZM0121D010CBSMsg.KOJIN_HOJIN_TLN_TAI_CD));
		
		// Ｃ５サーバ号機識別コード	C5_SERVER_GOKI_SKBT_CD
		inETMsg.set(ZM0121ETMsg.C5_SERVER_GOKI_SKBT_CD, inCBSMsg.getString(EZM0121D010CBSMsg.C5_SERVER_GOKI_SKBT_CD));
		
		// 電話番号適用開始年月日 TELNO_TSTAYMD
		inETMsg.set(ZM0121ETMsg.TELNO_TSTAYMD, inCBSMsg.getString(EZM0121D010CBSMsg.TELNO_TSTAYMD));
		
		// 電話番号適用終了年月日 TELNO_TENDYMD
		inETMsg.set(ZM0121ETMsg.TELNO_TENDYMD, JZMejbTEndYmdParts.getTEndYmd(inCBSMsg, inContext, inCBSMsg.getString(EZM0121D010CBSMsg.TELNO_TENDYMD)));
		
		// ＮＲＮ番号 NRN_NO
		inETMsg.set(ZM0121ETMsg.NRN_NO, inCBSMsg.getString(EZM0121D010CBSMsg.NRN_NO));
		
		// 初回割当年月日 SVC_DIV
		inETMsg.set(ZM0121ETMsg.FIRST_WARIATE_YMD, JPCModelCommon.getOpeDate(inCBSMsg, inContext, null));
		
		// サービス区分	SVC_DIV
		inETMsg.set(ZM0121ETMsg.SVC_DIV, inCBSMsg.getString(EZM0121D010CBSMsg.SVC_DIV));
		
		// 登録年月日時分秒	ADD_DTM
		inETMsg.set(ZM0121ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		
		// 登録オペレータアカウント	ADD_OPEACNT
		inETMsg.set(ZM0121ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		
		// 更新年月日時分秒	UPD_DTM
		inETMsg.set(ZM0121ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		
		// 更新オペレータアカウント	UPD_OPEACNT
		inETMsg.set(ZM0121ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		
		// 無効フラグ	MK_FLG
		inETMsg.set(ZM0121ETMsg.MK_FLG, "0");

		// 20150313 ANK-2288-00-00 番ポ戻り判定フラグ対応 ADD START
		// 番ポ廃止依頼制御コード
		inETMsg.set(ZM0121ETMsg.BMP_HAISHI_REQ_CTRL_CD, "1");
		// 20150313 ANK-2288-00-00 番ポ戻り判定フラグ対応 ADD END

		//【ANK-4494-00-00】双方向番ポ対応 ADD STRAT
		// 初期個人法人電話番号帯コード	SHK_KOJIN_HOJIN_TLN_TAI_CD
		inETMsg.set(ZM0121ETMsg.SHK_KOJIN_HOJIN_TLN_TAI_CD, inCBSMsg.getString(EZM0121D010CBSMsg.SHK_KOJIN_HOJIN_TLN_TAI_CD));
		
		// 電話番号取得通信事業者コード TLN_STKU_TSJGS_CD
		inETMsg.set(ZM0121ETMsg.TLN_STKU_TSJGS_CD, inCBSMsg.getString(EZM0121D010CBSMsg.TLN_STKU_TSJGS_CD));
		
		// 移転元通信事業者コード ITNM_TSJGS_CD
		inETMsg.set(ZM0121ETMsg.ITNM_TSJGS_CD, inCBSMsg.getString(EZM0121D010CBSMsg.ITNM_TSJGS_CD));
		
		// 移転先通信事業者コード ITNS_TSJGS_CD
		inETMsg.set(ZM0121ETMsg.ITNS_TSJGS_CD, inCBSMsg.getString(EZM0121D010CBSMsg.ITNS_TSJGS_CD));
		//【ANK-4494-00-00】双方向番ポ対応 ADD END

		// 登録処理の実行
		JKKejbDBAUtil dbaUtilZM0121 = new JKKejbDBAUtil(inCBSMsg);
		dbaUtilZM0121.create(inETMsg);
	
		// 返却項目メッセージ生成
		inCBSMsg.set(EZM0121D010CBSMsg.FIRST_WARIATE_YMD, inETMsg.getString(ZM0121ETMsg.FIRST_WARIATE_YMD));
		inCBSMsg.set(EZM0121D010CBSMsg.ADD_DTM, inETMsg.getString(ZM0121ETMsg.ADD_DTM));
		inCBSMsg.set(EZM0121D010CBSMsg.ADD_OPEACNT, inETMsg.getString(ZM0121ETMsg.ADD_OPEACNT));
		inCBSMsg.set(EZM0121D010CBSMsg.UPD_DTM, inETMsg.getString(ZM0121ETMsg.UPD_DTM));
		inCBSMsg.set(EZM0121D010CBSMsg.UPD_OPEACNT, inETMsg.getString(ZM0121ETMsg.UPD_OPEACNT));
		inCBSMsg.set(EZM0121D010CBSMsg.MK_FLG, inETMsg.getString(ZM0121ETMsg.MK_FLG));
	}
}
