/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEKK0341C180ETDA
*	ソースファイル名：JEKK0341C180ETDA.java
*	作成者			：富士通
*	日付			：2011年10月14日
*＜機能概要＞
*	機器提供サービス契約料金コース変更確定時の副次処理を行う部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/14	富士通		新規作成
*	v9.00.00	2014/07/18	FJ)小島		OM-2014-0002300
*	v10.00.00	2014/09/08	FJ)森本		IT2-2014-0000307対応
*	v11.00.00	2014/11/27	FJ)米谷		OM-2014-0003662
*	v20.00.00	2015/12/7	FJ)余野木	OM-2014-0003853
*
**********************************************************************/

package eo.ejb.common.db;

import java.util.ArrayList;

import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.JSYbpmLog;
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.JSYejbLog;
import com.fujitsu.futurity.model.ejb.common.StatusCodes;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateMainHandler;

import eo.ejb.cbm.entity.KK0341ETMsg;
import eo.ejb.cbm.entity.KK0341LE;
import eo.ejb.cbm.entity.KK1681ETMsg;
import eo.ejb.cbm.entity.KK1681LE;
import eo.ejb.cbs.cbsmsg.EKK0341C180CBSMsg;
import eo.ejb.common.JKKModelCommon;
import eo.ejb.common.JKKModelConst;
import eo.ejb.common.edit.JKKejbEKK0341C180Edit;

/**
 * <p>
 * 機器提供サービス契約料金コース変更確定の副次処理を行う部品クラスです。
 * </p>
 * @author 富士通
 */
public class JEKK0341C180ETDA implements TemplateMainHandler
{
	/** 異動予約詳細コード：機器コース変更 */
	private static final String OPE_CHNG = "011";
	
	/** 異動予約状態コード：異動予約対象外 */
	private static final String YOYAKU_OUTSIDE = "04";
	
	/** プラン終了種別コード（プラン変更による終了） */
	private static final String PLAN_END_SBT_PLAN_CNG = "1";
	
	/** 機器提供サービスコード（BBR） */
	private static final String KKTK_SVC_CD_BBR = "C014";
	
	/* ++++++++++ v20.00.00 追加開始 ++++++++++ */
	/** 異動区分（ＧＧ乗換） */
	private static final String IDO_DIV_00085 = "00085";
	/* ++++++++++ v20.00.00 追加終了 ++++++++++ */
	
	/** 異動区分（機器機種変更） */
	private static final String IDO_DIV_KKCNG = "00028";
	
	/* ++++++++++ v20.00.00 追加開始 ++++++++++ */
	/** 機器提供種別コード(買取)*/
	private static final String KKTK_SBT_CD_01 = "01";
	/* ++++++++++ v20.00.00 追加終了 ++++++++++ */
	
	/* ++++++++++ v20.00.00 追加開始 ++++++++++ */
	/** 宅内機器種別コード(モデム) */
	private static final String SBT_CD_60 = "60";
	/* ++++++++++ v20.00.00 追加終了 ++++++++++ */

	/**
	 * <p>
	 * 機器提供サービス契約料金コース変更確定の副次処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	public void execDBAccess(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// カレントレコードの取得処理
		CAANMsg curRetMsg = findByCurrentKK0341(inCBSMsg, inContext);
		
		// 世代の判定
		if (curRetMsg != null) {
			if (inCBSMsg.getString(EKK0341C180CBSMsg.GENE_ADD_DTM).equals(curRetMsg.getString(KK0341ETMsg.GENE_ADD_DTM))) {
				// 世代登録年月日時分秒が入力情報と一致した場合は、履歴から更新対象レコードを取得する
				
				// 履歴レコードの取得処理
				CAANMsg[] histRetMsg = findByHistoryKK0341(inCBSMsg, inContext);
				if (histRetMsg != null && histRetMsg.length != 0) {
					// 直近の履歴レコードを更新対象とする
					curRetMsg = histRetMsg[0];
				}
				else {
					curRetMsg = null;
				}
			}
		}
		
		// OM-2014-0002300 ADD START
		if (curRetMsg == null) {
			inCBSMsg.set(JCMConstants.STATUS_INT_KEY, StatusCodes.RELATION_ERR);
			inCBSMsg.set(EKK0341C180CBSMsg.KKTK_SVC_KEI_NO_ERR, "EA");
			return;
		}
		
		// 予約レコードを取得
		CAANMsg resRetMsg = new JKKejbKK0341DBABase().getKK0341Primary(inCBSMsg.getString(EKK0341C180CBSMsg.KKTK_SVC_KEI_NO),
																		inCBSMsg.getString(EKK0341C180CBSMsg.GENE_ADD_DTM));
		// レコードの登録
		boolean flg = create0341(inCBSMsg, inContext, resRetMsg, curRetMsg);
		if (!flg)
		{
			// プラン開始年月日もしくはプラン課金開始年月日が取得できなかった場合は終了
			return;
		}
		
		// 予約レコードを論理削除
		delete0341(inCBSMsg);
		// OM-2014-0002300 ADD END
		
		// EE対応表の条件の判定(機器提供サービス契約の更新)
		if (checkJokenForUpdateKK0341(inCBSMsg, inContext, curRetMsg))
		{
			// 機器提供サービス契約のカレントレコードを更新
			update0341(inCBSMsg, inContext, curRetMsg);
		}

		// 異動予約更新処理を実行
		update(inCBSMsg, inContext);
		
		return;
	}
	
	/**
	 * <p>
	 * 異動予約更新処理のDBアクセス処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	*/
	private void update(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// ETMsgの作成
		CAANMsg inETMsg = new CAANMsg(KK1681ETMsg.class.getName());
		
		// 予約適用年月日	RSV_APLY_YMD
		inETMsg.set(KK1681ETMsg.RSV_APLY_YMD, getKkSvcStaymd(inCBSMsg));
		
		// 更新年月日時分秒	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));
		
		// 異動予約番号のリスト取得
		String[] keyNoList = getIDO_RSV_NO(inCBSMsg);
		
		// 取得した異動予約番号の数だけ更新処理を行う
		for (int i = 0; i < keyNoList.length; i++)
		{
			// 異動予約番号	IDO_RSV_NO
			inETMsg.set(KK1681ETMsg.IDO_RSV_NO, keyNoList[i]);
			
			// 異動予約番号の更新
			JKKejbDBAUtil dba = new JKKejbDBAUtil(inCBSMsg);
			dba.update(inETMsg);
		}
	
		return;
	}

	/**
	 * DBより条件に一致する異動予約番号を取得して配列で返却する。
	 * @param inCBSMsg 入力元のCBSMsg
	 * @return 更新対象の異動予約番号リスト
	 */
	private String[] getIDO_RSV_NO(CAANMsg inCBSMsg)
	{
		KK1681LE le = new KK1681LE();
		
		// 異動予約参照用Msg生成
		CAANMsg conditionETMsg = new CAANMsg(KK1681ETMsg.class.getName());
		conditionETMsg.set(KK1681ETMsg.KKTK_SVC_KEI_NO, inCBSMsg.getString(EKK0341C180CBSMsg.KKTK_SVC_KEI_NO));
		conditionETMsg.set(KK1681ETMsg.IDO_RSV_DTL_CD, OPE_CHNG);
		conditionETMsg.set(KK1681ETMsg.IDO_RSV_STAT_CD, YOYAKU_OUTSIDE);
		conditionETMsg.set(KK1681ETMsg.MK_FLG, "0");
		
		//条件付き一覧照会
		CAANMsg[] resultMsg;
		try
		{
			resultMsg = le.findByCondition(conditionETMsg);
		}
		catch (CAANException e)
		{
			throw new CAANRuntimeException(e);
		}

		// 運用日付取得
		String upd_date = JKKModelCommon.getOpeDate(inCBSMsg);
		
		// 異動予約番号取得用Msg配列生成
		ArrayList<String> keyNoList = new ArrayList<String>();
		for (int i = 0; i < resultMsg.length; i++)
		{
			//一覧照会で判定できなかった条件で絞り込み
			if (resultMsg[i].getString(KK1681ETMsg.RSV_APLY_YMD).compareTo(upd_date) > 0)
			{
				keyNoList.add(resultMsg[i].getString(KK1681ETMsg.IDO_RSV_NO));
			}
		}
		
		return keyNoList.toArray(new String[0]);
	}
	
	/**
	 * <p>
	 * 機器提供サービス契約のサービス開始年月日を取得します。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージ
	 * @return 機器提供サービス契約のサービス開始年月日
	 */
	private String getKkSvcStaymd(CAANMsg inCBSMsg)
	{
		// 機器提供サービス契約検索用のパラメータ設定
		CAANMsg msg = new CAANMsg(KK0341ETMsg.class.getName());
		msg.set(KK0341ETMsg.KKTK_SVC_KEI_NO, inCBSMsg.getString(EKK0341C180CBSMsg.KKTK_SVC_KEI_NO));
		msg.set(KK0341ETMsg.GENE_ADD_DTM, inCBSMsg.getString(EKK0341C180CBSMsg.GENE_ADD_DTM));

		// 機器提供サービス契約のプライマリ検索
		CAANMsg ret = new KK0341LE().findByPrimaryKey(msg);

		// 取得したレコードのサービス開始年月日を返却
		return ret.getString(KK0341ETMsg.SVC_STA_YMD);
	}
	
	/**
	 * <p>
	 * 機器提供サービス契約の更新処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param curRetMsg 処理対象のカレントレコード
	*/
	private void update0341(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg curRetMsg){
			
		// ETMsgの作成
		CAANMsg inETMsg = new CAANMsg(KK0341ETMsg.class.getName());
		
		// OM-2014-0002300 DEL START
		// JKKejbEKK0341C180Edit
		//KKejbEKK0341C180Edit eKK0341C180Edit = new JKKejbEKK0341C180Edit();
		// OM-2014-0002300 DEL END
		
		// 機器提供サービス契約番号
		String kktkSvcKeiNo = inCBSMsg.getString(EKK0341C180CBSMsg.KKTK_SVC_KEI_NO);
		
		// 世代登録年月日時分秒
		String geneAddDtm = curRetMsg.getString(KK0341ETMsg.GENE_ADD_DTM);
		
		// OM-2014-0002300 MOD START
		// プラン終了年月日
		//String planEndYmd = (String)eKK0341C180Edit.getEndYmd(inCBSMsg, inContext);
		String planEndYmd = JKKModelCommon.addDay(inCBSMsg.getString(EKK0341C180CBSMsg.PLAN_STAYMD), -1);
		// プラン課金終了年月日
		//String planChrgEndYmd = (String)eKK0341C180Edit.getChrgEndYmd(inCBSMsg, inContext);
		String planChrgEndYmd = JKKModelCommon.addDay(inCBSMsg.getString(EKK0341C180CBSMsg.PLAN_CHRG_STAYMD), -1);
		// OM-2014-0002300 MOD END
		
		// 更新データ設定
		// 機器提供サービス契約番号	KKTK_SVC_KEI_NO
		inETMsg.set(KK0341ETMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		
		// 世代登録年月日時分秒	GENE_ADD_DTM
		inETMsg.set(KK0341ETMsg.GENE_ADD_DTM, geneAddDtm);
		
		// プラン終了年月日	PLAN_ENDYMD
		inETMsg.set(KK0341ETMsg.PLAN_ENDYMD, planEndYmd);
		
		// プラン課金終了年月日	PLAN_CHRG_ENDYMD
		inETMsg.set(KK0341ETMsg.PLAN_CHRG_ENDYMD, planChrgEndYmd);
		
		// プラン終了種別コード	PLAN_END_SBT_CD
		inETMsg.set(KK0341ETMsg.PLAN_END_SBT_CD, PLAN_END_SBT_PLAN_CNG);
		
		// 更新年月日時分秒	UPD_DTM
		inETMsg.set(KK0341ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		
		// 更新オペレータアカウント	UPD_OPEACNT
		inETMsg.set(KK0341ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		
		// 機器提供サービス契約の更新
		JKKejbDBAUtil dba = new JKKejbDBAUtil(inCBSMsg);
		dba.update(inETMsg);
	}
	
	/**
	 * <p>
	 * 機器提供サービス契約更新処理の条件チェックを行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext ディスパッチコンテキスト
	 * @param curRetMsg 処理対象のカレントレコード
	 * @return チェック結果(OK:true, NG:false)
	*/
	private boolean checkJokenForUpdateKK0341(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg curRetMsg)
	{
		// カレントレコードが存在しない場合falseを返却
		if (curRetMsg == null)
		{
			return false;
		}
		
		// カレントレコードの機器提供サービスコードが"BBR"以外、または異動区分が"機器機種変更"以外の場合Trueを返却
		if (!KKTK_SVC_CD_BBR.equals(curRetMsg.getString(KK0341ETMsg.KKTK_SVC_CD)) || 
				!IDO_DIV_KKCNG.equals(curRetMsg.getString(KK0341ETMsg.IDO_DIV)))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * <p>
	 * 機器提供サービス契約のカレントレコードを取得します。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext ディスパッチコンテキスト
	 * @return curRetMsg 処理対象のカレントレコード
	*/
	private CAANMsg findByCurrentKK0341(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		String kktkSvcKeiNo = inCBSMsg.getString(EKK0341C180CBSMsg.KKTK_SVC_KEI_NO);
		String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);
		
		CAANMsg cond = new CAANMsg(KK0341ETMsg.class.getName());
		cond.set(KK0341ETMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		cond.set(KK0341ETMsg.RSV_APLY_YMD, opeDate);
		
		// 機器提供サービス契約のカレントレコード検索
		CAANMsg curRetMsg = new JKKejbKK0341DBABase().findByCurrent(cond);
				
		return curRetMsg;
	}

	/**
	 * <p>
	 * 機器提供サービス契約の履歴レコードを取得します。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext ディスパッチコンテキスト
	 * @return curRetMsg 処理対象の履歴レコード配列
	*/
	private CAANMsg[] findByHistoryKK0341(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		String kktkSvcKeiNo = inCBSMsg.getString(EKK0341C180CBSMsg.KKTK_SVC_KEI_NO);
		String opeDate = JKKModelCommon.getOpeDate(inCBSMsg);
		
		CAANMsg cond = new CAANMsg(KK0341ETMsg.class.getName());
		cond.set(KK0341ETMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		cond.set(KK0341ETMsg.RSV_APLY_YMD, opeDate);
		
		// 機器提供サービス契約の履歴レコード検索
		CAANMsg[] curRetMsg = new JKKejbKK0341DBABase().findByHistory(cond);
				
		return curRetMsg;
	}
	
	// OM-2014-0002300 ADD START
	/**
	 * <p>
	 * 機器提供サービス契約の登録処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param resRetMsg 処理対象の予約レコード
	 * @param curRetMsg 処理対象のカレントレコード
	 * @return プラン開始年月日もしくはプラン課金開始年月日が取得できなかった場合はfalse
	 */
	private boolean create0341(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg resRetMsg, CAANMsg curRetMsg)
	{
		// ETMsgの作成 カレントレコードを取得
		// 機器提供サービス契約検索用のパラメータ設定
		CAANMsg msg = new CAANMsg(KK0341ETMsg.class.getName());
		msg.set(KK0341ETMsg.KKTK_SVC_KEI_NO, curRetMsg.getString(KK0341ETMsg.KKTK_SVC_KEI_NO));
		msg.set(KK0341ETMsg.GENE_ADD_DTM, curRetMsg.getString(KK0341ETMsg.GENE_ADD_DTM));

		// 機器提供サービス契約のプライマリ検索
		CAANMsg inETMsg = new KK0341LE().findByPrimaryKey(msg);
		
		// JKKejbEKK0341C180Edit
		JKKejbEKK0341C180Edit eKK0341C180Edit = new JKKejbEKK0341C180Edit();
		
		// 機器提供サービス契約番号
		String kktkSvcKeiNo = inCBSMsg.getString(EKK0341C180CBSMsg.KKTK_SVC_KEI_NO);
		
		// 世代登録年月日時分秒
		String geneAddDtm = (String)JKKModelCommon.getTransferGeneAddDtm(inCBSMsg, inContext);
		
		// プラン開始年月日
		String planStaYmd = (String)eKK0341C180Edit.getStaYmd(inCBSMsg, inContext);
		
		// プラン課金開始年月日
		String planChrgStaYmd = (String)eKK0341C180Edit.getChrgStaYmd(inCBSMsg, inContext);
		
		if (planStaYmd == null || planChrgStaYmd == null)
		{
			return false;
		}
		
		// 更新データ設定
		// 機器提供サービス契約番号	KKTK_SVC_KEI_NO
		inETMsg.set(KK0341ETMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		
		// 世代登録年月日時分秒
		inETMsg.set(KK0341ETMsg.GENE_ADD_DTM, geneAddDtm);
		
		// 機器提供サービス契約ステータス
		inETMsg.set(KK0341ETMsg.KKTK_SVC_KEI_STAT, JKKModelConst.KKTK_SVC_KEI_STAT_SVCTK_CHU);
		
		//++++++++++ v10.00.00 追加開始 ++++++++++
		// 機器提供種別コード(予約レコードを引き継ぐ)
		inETMsg.set(KK0341ETMsg.KKTK_SBT_CD, resRetMsg.getString(KK0341ETMsg.KKTK_SBT_CD));
		//++++++++++ v10.00.00 追加終了 ++++++++++
		
		// 料金コースコード
		inETMsg.set(KK0341ETMsg.PCRS_CD, resRetMsg.getString(KK0341ETMsg.PCRS_CD));

		// 料金プランコード
		inETMsg.set(KK0341ETMsg.PPLAN_CD, resRetMsg.getString(KK0341ETMsg.PPLAN_CD));

		// 宅内機器型式コード
		inETMsg.set(KK0341ETMsg.TAKNKIKI_MODEL_CD, resRetMsg.getString(KK0341ETMsg.TAKNKIKI_MODEL_CD));

		// 機器製造番号
		inETMsg.set(KK0341ETMsg.KIKI_SEIZO_NO, resRetMsg.getString(KK0341ETMsg.KIKI_SEIZO_NO));

		// 宅内機器セット品型コード
		inETMsg.set(KK0341ETMsg.TAKNKIKI_SETHIN_MODEL_CD, resRetMsg.getString(KK0341ETMsg.TAKNKIKI_SETHIN_MODEL_CD));

		// 機器変更番号
		inETMsg.set(KK0341ETMsg.KIKI_CHG_NO, resRetMsg.getString(KK0341ETMsg.KIKI_CHG_NO));

		// 機器変更理由コード
		inETMsg.set(KK0341ETMsg.KIKI_CHG_RSN_CD, resRetMsg.getString(KK0341ETMsg.KIKI_CHG_RSN_CD));

		// HDD容量コード
		inETMsg.set(KK0341ETMsg.HDD_CAPA_CD, resRetMsg.getString(KK0341ETMsg.HDD_CAPA_CD));

		// 申込明細番号
		inETMsg.set(KK0341ETMsg.MSKM_DTL_NO, resRetMsg.getString(KK0341ETMsg.MSKM_DTL_NO));

		// リンクSTBフラグ
		inETMsg.set(KK0341ETMsg.LINK_STB_FLG, resRetMsg.getString(KK0341ETMsg.LINK_STB_FLG));

		// 機器引当指定倉庫コード
		inETMsg.set(KK0341ETMsg.KIKI_HKAT_SHITEI_SOKO_CD, resRetMsg.getString(KK0341ETMsg.KIKI_HKAT_SHITEI_SOKO_CD));

		// 機器引当指定倉庫棚コード
		inETMsg.set(KK0341ETMsg.KIKI_HKAT_SHITEI_SKDN_CD, resRetMsg.getString(KK0341ETMsg.KIKI_HKAT_SHITEI_SKDN_CD));

		// 機器指定時管理場所識別コード
		inETMsg.set(KK0341ETMsg.KIKI_STI_JI_KRIPLACE_SKCD, resRetMsg.getString(KK0341ETMsg.KIKI_STI_JI_KRIPLACE_SKCD));

		// 機器指定時工事会社コード
		inETMsg.set(KK0341ETMsg.KIKI_STI_JI_KOCOMP_CD, resRetMsg.getString(KK0341ETMsg.KIKI_STI_JI_KOCOMP_CD));

		// 機器指定時工事会社棚コード
		inETMsg.set(KK0341ETMsg.KIKI_STI_JI_KOCOMP_SLF_CD, resRetMsg.getString(KK0341ETMsg.KIKI_STI_JI_KOCOMP_SLF_CD));

		// 機器指定時預託先オフィスコード
		inETMsg.set(KK0341ETMsg.KIKI_STI_JI_YTKSKOF_CD, resRetMsg.getString(KK0341ETMsg.KIKI_STI_JI_YTKSKOF_CD));

		// 機器指定時預託先オフィス棚コード
		inETMsg.set(KK0341ETMsg.KIKI_STI_JI_YTKSKOF_SLF_CD, resRetMsg.getString(KK0341ETMsg.KIKI_STI_JI_YTKSKOF_SLF_CD));

		// 機器提供サービス契約引継発生年月日
		inETMsg.set(KK0341ETMsg.KKTK_SVC_KEI_HKHASYMD, resRetMsg.getString(KK0341ETMsg.KKTK_SVC_KEI_HKHASYMD));

		// 機器送料有無
		inETMsg.set(KK0341ETMsg.KIKI_SORYO_UM, resRetMsg.getString(KK0341ETMsg.KIKI_SORYO_UM));

		// 機器送料作成年月日
		inETMsg.set(KK0341ETMsg.KIKI_SORYO_SAKSEI_YMD, resRetMsg.getString(KK0341ETMsg.KIKI_SORYO_SAKSEI_YMD));

		// 機器送付先_契約者住所差異フラグ
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_KSH_AD_SAI_FLG, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_KSH_AD_SAI_FLG));

		// 機器送付先個別指定フラグ
		inETMsg.set(KK0341ETMsg.KIKI_SHS_KBT_SHITEI_FLG, resRetMsg.getString(KK0341ETMsg.KIKI_SHS_KBT_SHITEI_FLG));

		// 保証開始年月日
		inETMsg.set(KK0341ETMsg.HOSHO_STAYMD, resRetMsg.getString(KK0341ETMsg.HOSHO_STAYMD));
		
		// 予約適用年月日
		inETMsg.set(KK0341ETMsg.RSV_APLY_YMD, inCBSMsg.getString(EKK0341C180CBSMsg.RSV_APLY_YMD));
		
		// 予約適用コード
		inETMsg.set(KK0341ETMsg.RSV_APLY_CD, JKKModelConst.RSV_APLY_CD_RSV_FIX);

		// 機器変更年月日
		inETMsg.set(KK0341ETMsg.KIKI_CHG_YMD, resRetMsg.getString(KK0341ETMsg.KIKI_CHG_YMD));
		
		// プラン開始年月日
		inETMsg.set(KK0341ETMsg.PLAN_STAYMD, planStaYmd);
		
		// プラン終了年月日
		inETMsg.set(KK0341ETMsg.PLAN_ENDYMD, JKKModelConst.DATE_MAX);
		
		// プラン課金開始年月日
		inETMsg.set(KK0341ETMsg.PLAN_CHRG_STAYMD, planChrgStaYmd);
		
		// プラン課金終了年月日
		inETMsg.set(KK0341ETMsg.PLAN_CHRG_ENDYMD, JKKModelConst.DATE_MAX);
		
		// サービス開始起算年月日
		inETMsg.set(KK0341ETMsg.SVC_STA_KISAN_YMD, resRetMsg.getString(KK0341ETMsg.SVC_STA_KISAN_YMD));
		
		// 違約金発生コード
		inETMsg.set(KK0341ETMsg.PNLTY_HASSEI_CD, resRetMsg.getString(KK0341ETMsg.PNLTY_HASSEI_CD));
		
		// 異動区分
		inETMsg.set(KK0341ETMsg.IDO_DIV, resRetMsg.getString(KK0341ETMsg.IDO_DIV));
		
		// 機器設置実績受付年月日
		inETMsg.set(KK0341ETMsg.KKST_JSEKI_UK_YMD, resRetMsg.getString(KK0341ETMsg.KKST_JSEKI_UK_YMD));
		
		// eoTV機器設置承認状態コード
		inETMsg.set(KK0341ETMsg.EO_TV_KKST_SNN_STAT_CD, resRetMsg.getString(KK0341ETMsg.EO_TV_KKST_SNN_STAT_CD));
		
		// 機器設置承認年月日
		inETMsg.set(KK0341ETMsg.KKST_SNN_YMD, resRetMsg.getString(KK0341ETMsg.KKST_SNN_YMD));
		
		// 宅内機器異動コード
		inETMsg.set(KK0341ETMsg.TAKNKIKI_IDO_CD, resRetMsg.getString(KK0341ETMsg.TAKNKIKI_IDO_CD));
		
		// 機器付加情報コード
		inETMsg.set(KK0341ETMsg.KIKI_HUKA_INFO_CD, resRetMsg.getString(KK0341ETMsg.KIKI_HUKA_INFO_CD));
		
		// 配送方法コード
		inETMsg.set(KK0341ETMsg.HAISO_WAY_CD, resRetMsg.getString(KK0341ETMsg.HAISO_WAY_CD));
		
		// 回収機器有無
		inETMsg.set(KK0341ETMsg.KAISHU_KIKI_UM, resRetMsg.getString(KK0341ETMsg.KAISHU_KIKI_UM));
		
		// 配送依頼指定年月日
		inETMsg.set(KK0341ETMsg.HAISO_REQ_SHITEI_YMD, resRetMsg.getString(KK0341ETMsg.HAISO_REQ_SHITEI_YMD));
		
		// 出荷完了時処理済フラグ
		inETMsg.set(KK0341ETMsg.SHKA_FIN_JI_SYRZM_FLG, resRetMsg.getString(KK0341ETMsg.SHKA_FIN_JI_SYRZM_FLG));
		
		// サービス開始時配送状況識別コード
		inETMsg.set(KK0341ETMsg.SVC_STA_JI_HIS_JOKYO_SKCD, resRetMsg.getString(KK0341ETMsg.SVC_STA_JI_HIS_JOKYO_SKCD));
		
		// 登録年月日時分秒
		inETMsg.set(KK0341ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		
		// 登録オペレータアカウント
		inETMsg.set(KK0341ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		
		// 更新年月日時分秒
		inETMsg.set(KK0341ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		
		// 更新オペレータアカウント
		inETMsg.set(KK0341ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		
		// 無効フラグ
		inETMsg.set(KK0341ETMsg.MK_FLG, JKKModelConst.MK_FLG_YK);
		
// ------------------------------------------ v11.00.00 START ------------------------------------------
		// 機器提供サービスコード
		inETMsg.set(KK0341ETMsg.KKTK_SVC_CD, resRetMsg.getString(KK0341ETMsg.KKTK_SVC_CD));
		// 提供方式契約番号
		inETMsg.set(KK0341ETMsg.TK_HOSHIKI_KEI_NO, resRetMsg.getString(KK0341ETMsg.TK_HOSHIKI_KEI_NO));
		// 販売種別コード
		inETMsg.set(KK0341ETMsg.HAMBAI_SBT_CD, resRetMsg.getString(KK0341ETMsg.HAMBAI_SBT_CD));
		// サービス利用開始希望年月日
		inETMsg.set(KK0341ETMsg.SVC_USE_STA_KIBO_YMD, resRetMsg.getString(KK0341ETMsg.SVC_USE_STA_KIBO_YMD));
		// 予約適用開始希望年月日
		inETMsg.set(KK0341ETMsg.RSV_TSTA_KIBO_YMD, resRetMsg.getString(KK0341ETMsg.RSV_TSTA_KIBO_YMD));
		// 希望メーカーコード
		inETMsg.set(KK0341ETMsg.KIBO_MAKER_CD, resRetMsg.getString(KK0341ETMsg.KIBO_MAKER_CD));
		// 機器指定種別コード
		inETMsg.set(KK0341ETMsg.KIKI_SHITEI_SBT_CD, resRetMsg.getString(KK0341ETMsg.KIKI_SHITEI_SBT_CD));
		// 宅内機器種別コード
		inETMsg.set(KK0341ETMsg.TAKNKIKI_SBT_CD, resRetMsg.getString(KK0341ETMsg.TAKNKIKI_SBT_CD));
		// 付属品種別コード
		inETMsg.set(KK0341ETMsg.HUZOKUHIN_SBT_CD, resRetMsg.getString(KK0341ETMsg.HUZOKUHIN_SBT_CD));
		// 付属品型式コード
		inETMsg.set(KK0341ETMsg.HUZOKUHIN_MODEL_CD, resRetMsg.getString(KK0341ETMsg.HUZOKUHIN_MODEL_CD));
		// 通信機器セットコード
		inETMsg.set(KK0341ETMsg.TSUSHIN_KIKI_SET_CD, resRetMsg.getString(KK0341ETMsg.TSUSHIN_KIKI_SET_CD));
		// 機器設置先場所番号
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_PLACE_NO, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_PLACE_NO));
		// 親契約識別コード
		inETMsg.set(KK0341ETMsg.OYA_KEI_SKBT_CD, resRetMsg.getString(KK0341ETMsg.OYA_KEI_SKBT_CD));
		// サービス契約番号
		inETMsg.set(KK0341ETMsg.SVC_KEI_NO, resRetMsg.getString(KK0341ETMsg.SVC_KEI_NO));
		// サービス契約内訳番号
		inETMsg.set(KK0341ETMsg.SVC_KEI_UCWK_NO, resRetMsg.getString(KK0341ETMsg.SVC_KEI_UCWK_NO));
		// サービス契約回線内訳番号
		inETMsg.set(KK0341ETMsg.SVC_KEI_KAISEN_UCWK_NO, resRetMsg.getString(KK0341ETMsg.SVC_KEI_KAISEN_UCWK_NO));
		// オプションサービス契約番号
		inETMsg.set(KK0341ETMsg.OP_SVC_KEI_NO, resRetMsg.getString(KK0341ETMsg.OP_SVC_KEI_NO));
		// SYSID
		inETMsg.set(KK0341ETMsg.SYSID, resRetMsg.getString(KK0341ETMsg.SYSID));
		// 機器送付先名
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_NM, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_NM));
		// 機器送付先カナ名
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_KANA, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_KANA));
		// 機器送付先住所コード
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_AD_CD, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_AD_CD));
		// 機器送付先郵便番号
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_PCD, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_PCD));
		// 機器送付先都道府県名
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_STATE_NM, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_STATE_NM));
		// 機器送付先市区町村名
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_CITY_NM, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_CITY_NM));
		// 機器送付先大字通称名
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_OAZTSU_NM, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_OAZTSU_NM));
		// 機器送付先字丁目名
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_AZCHO_NM, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_AZCHO_NM));
		// 機器送付先番地号
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_BNCHIGO, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_BNCHIGO));
		// 機器送付先住所補記・建物名
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_ADRTTM, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_ADRTTM));
		// 機器送付先住所補記・部屋番号
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_ADRRM, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_ADRRM));
		// 機器送付先住所手動入力フラグ
		inETMsg.set(KK0341ETMsg.KIKI_SHS_AD_MAN_INPUT_FLG, resRetMsg.getString(KK0341ETMsg.KIKI_SHS_AD_MAN_INPUT_FLG));
		// 機器送付先電話番号
		inETMsg.set(KK0341ETMsg.KIKI_SOHUS_TELNO, resRetMsg.getString(KK0341ETMsg.KIKI_SOHUS_TELNO));
		// マンション物件番号
		inETMsg.set(KK0341ETMsg.MANSION_BUKKEN_NO, resRetMsg.getString(KK0341ETMsg.MANSION_BUKKEN_NO));
		// 機器送付先補足コード1
		inETMsg.set(KK0341ETMsg.KIKI_SHS_HSK_CD_1, resRetMsg.getString(KK0341ETMsg.KIKI_SHS_HSK_CD_1));
		// 機器送付先補足コード2
		inETMsg.set(KK0341ETMsg.KIKI_SHS_HSK_CD_2, resRetMsg.getString(KK0341ETMsg.KIKI_SHS_HSK_CD_2));
		// 機器送付先補足メモ
		inETMsg.set(KK0341ETMsg.KIKI_SHS_HSK_MEMO, resRetMsg.getString(KK0341ETMsg.KIKI_SHS_HSK_MEMO));
		// 機器設置先名
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_NM, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_NM));
		// 機器設置先カナ名
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_KANA, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_KANA));
		// 機器設置先住所コード
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_AD_CD, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_AD_CD));
		// 機器設置先郵便番号
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_PCD, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_PCD));
		// 機器設置先都道府県名
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_STATE_NM, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_STATE_NM));
		// 機器設置先市区町村名
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_CITY_NM, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_CITY_NM));
		// 機器設置先大字通称名
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_OAZTSU_NM, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_OAZTSU_NM));
		// 機器設置先字丁目名
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_AZCHO_NM, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_AZCHO_NM));
		// 機器設置先番地号
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_BNCHIGO, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_BNCHIGO));
		// 機器設置先住所補記・建物名
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_ADRTTM, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_ADRTTM));
		// 機器設置先住所補記・部屋番号
		inETMsg.set(KK0341ETMsg.KIKI_STC_SAKI_ADRRM, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SAKI_ADRRM));
		// 機器設置先_契約者住所差異フラグ
		inETMsg.set(KK0341ETMsg.KIKI_STC_SK_KSH_AD_SAI_FLG, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SK_KSH_AD_SAI_FLG));
		// 機器設置先電話番号
		inETMsg.set(KK0341ETMsg.KIKI_STC_SK_TELNO, resRetMsg.getString(KK0341ETMsg.KIKI_STC_SK_TELNO));
		// 機器設置先区画整理中フラグ
		inETMsg.set(KK0341ETMsg.KIKI_STS_KKK_SEIRI_CHU_FLG, resRetMsg.getString(KK0341ETMsg.KIKI_STS_KKK_SEIRI_CHU_FLG));
		// 住所未確定フラグ
		inETMsg.set(KK0341ETMsg.AD_MI_FIX_FLG, resRetMsg.getString(KK0341ETMsg.AD_MI_FIX_FLG));
		// 自動登録コード
		inETMsg.set(KK0341ETMsg.AUTO_ADD_CD, resRetMsg.getString(KK0341ETMsg.AUTO_ADD_CD));
		// 住所未確定解除年月日
		inETMsg.set(KK0341ETMsg.AD_MI_FIX_RLS_YMD, resRetMsg.getString(KK0341ETMsg.AD_MI_FIX_RLS_YMD));
		// 課金開始年月日補正有無
		inETMsg.set(KK0341ETMsg.CHRG_STA_YMD_HOSEI_UM, resRetMsg.getString(KK0341ETMsg.CHRG_STA_YMD_HOSEI_UM));
		// 機器設置先補足コード1
		inETMsg.set(KK0341ETMsg.KIKI_STS_HSK_CD_1, resRetMsg.getString(KK0341ETMsg.KIKI_STS_HSK_CD_1));
		// 機器設置先補足コード2
		inETMsg.set(KK0341ETMsg.KIKI_STS_HSK_CD_2, resRetMsg.getString(KK0341ETMsg.KIKI_STS_HSK_CD_2));
		// 機器設置先補足メモ
		inETMsg.set(KK0341ETMsg.KIKI_STS_HSK_MEMO, resRetMsg.getString(KK0341ETMsg.KIKI_STS_HSK_MEMO));
		// 機器提供サービス契約後続業務依頼年月日
		inETMsg.set(KK0341ETMsg.KKTK_SVC_KEI_KZKWRK_REQYMD, resRetMsg.getString(KK0341ETMsg.KKTK_SVC_KEI_KZKWRK_REQYMD));
		// 照査年月日
		inETMsg.set(KK0341ETMsg.SHOSA_YMD, resRetMsg.getString(KK0341ETMsg.SHOSA_YMD));
		// 照査取消年月日
		inETMsg.set(KK0341ETMsg.SHOSA_CL_YMD, resRetMsg.getString(KK0341ETMsg.SHOSA_CL_YMD));
		// 配送区分
		inETMsg.set(KK0341ETMsg.HAISO_DIV, resRetMsg.getString(KK0341ETMsg.HAISO_DIV));
		// 配送期限年月日
		inETMsg.set(KK0341ETMsg.HAISO_KIGEN_YMD, resRetMsg.getString(KK0341ETMsg.HAISO_KIGEN_YMD));
		// 配送到着指定年月日
		inETMsg.set(KK0341ETMsg.HAISO_ARIV_SHITEI_YMD, resRetMsg.getString(KK0341ETMsg.HAISO_ARIV_SHITEI_YMD));
		// 試用加入年月日
		inETMsg.set(KK0341ETMsg.FTRIAL_KANYU_YMD, resRetMsg.getString(KK0341ETMsg.FTRIAL_KANYU_YMD));
		// 試用期間終了年月日
		inETMsg.set(KK0341ETMsg.FTRIAL_PRD_ENDYMD, resRetMsg.getString(KK0341ETMsg.FTRIAL_PRD_ENDYMD));
		// 本加入年月日
		inETMsg.set(KK0341ETMsg.HONKANYU_YMD, resRetMsg.getString(KK0341ETMsg.HONKANYU_YMD));
		// 本加入移行期限年月日
		inETMsg.set(KK0341ETMsg.HONKANYU_IKO_KIGEN_YMD, resRetMsg.getString(KK0341ETMsg.HONKANYU_IKO_KIGEN_YMD));
		// 契約締結年月日
		inETMsg.set(KK0341ETMsg.KEI_CNC_YMD, resRetMsg.getString(KK0341ETMsg.KEI_CNC_YMD));
		// JCCC加入書記入年月日
		inETMsg.set(KK0341ETMsg.JCCC_KANYU_BUNSHO_YMD, resRetMsg.getString(KK0341ETMsg.JCCC_KANYU_BUNSHO_YMD));
		// 保証コード
		inETMsg.set(KK0341ETMsg.HOSHO_CD, resRetMsg.getString(KK0341ETMsg.HOSHO_CD));
		// 機器提供サービス契約補記
		inETMsg.set(KK0341ETMsg.KKTK_SVKEI_HOKI, resRetMsg.getString(KK0341ETMsg.KKTK_SVKEI_HOKI));
		// 保証終了年月日
		inETMsg.set(KK0341ETMsg.HOSHO_END_YMD, resRetMsg.getString(KK0341ETMsg.HOSHO_END_YMD));
		// 予約取消年月日
		inETMsg.set(KK0341ETMsg.RSV_CL_YMD, resRetMsg.getString(KK0341ETMsg.RSV_CL_YMD));
		// プラン終了種別コード
		inETMsg.set(KK0341ETMsg.PLAN_END_SBT_CD, resRetMsg.getString(KK0341ETMsg.PLAN_END_SBT_CD));
		// サービスキャンセル年月日
		inETMsg.set(KK0341ETMsg.SVC_CANCEL_YMD, resRetMsg.getString(KK0341ETMsg.SVC_CANCEL_YMD));
		// サービスキャンセル理由コード
		inETMsg.set(KK0341ETMsg.SVC_CANCEL_RSN_CD, resRetMsg.getString(KK0341ETMsg.SVC_CANCEL_RSN_CD));
		// 機器認証ID
		inETMsg.set(KK0341ETMsg.KIKI_NINSHO_ID, resRetMsg.getString(KK0341ETMsg.KIKI_NINSHO_ID));
		// 機器認証IDパスワード
		inETMsg.set(KK0341ETMsg.KIKI_NINSHO_ID_PWD, resRetMsg.getString(KK0341ETMsg.KIKI_NINSHO_ID_PWD));
		// CASカード使用許諾年月日
		inETMsg.set(KK0341ETMsg.CAS_CARD_USE_KYODAK_YMD, resRetMsg.getString(KK0341ETMsg.CAS_CARD_USE_KYODAK_YMD));
		// 照査解約完了コード
		inETMsg.set(KK0341ETMsg.SHOSA_DSL_FIN_CD, resRetMsg.getString(KK0341ETMsg.SHOSA_DSL_FIN_CD));
		// ルーター解約予約処理状態コード
		inETMsg.set(KK0341ETMsg.ROUTER_DSL_RSV_TRN_STAT_CD, resRetMsg.getString(KK0341ETMsg.ROUTER_DSL_RSV_TRN_STAT_CD));
		// ルーター解約予約処理結果コード
		inETMsg.set(KK0341ETMsg.ROUTER_DSL_RSV_TRN_RSLT_CD, resRetMsg.getString(KK0341ETMsg.ROUTER_DSL_RSV_TRN_RSLT_CD));
		// 機器移転先移動実施者識別コード
		inETMsg.set(KK0341ETMsg.KIKI_ITENS_MV_JSSIS_SKCD, resRetMsg.getString(KK0341ETMsg.KIKI_ITENS_MV_JSSIS_SKCD));
		// 保証・補償期間開始日算出基準年月日
		inETMsg.set(KK0341ETMsg.HCPRD_STAD_SNSTSTD_YMD, resRetMsg.getString(KK0341ETMsg.HCPRD_STAD_SNSTSTD_YMD));
		// 保証・補償期間開始日算出基準年月日移行フラグ
		inETMsg.set(KK0341ETMsg.HCPRD_STAD_SNSTSTD_YMD_IKF, resRetMsg.getString(KK0341ETMsg.HCPRD_STAD_SNSTSTD_YMD_IKF));
		// 保証・補償期間開始日算出基準年月日識別コード
		inETMsg.set(KK0341ETMsg.HCPRD_STAD_SNSTSTD_YMD_SCD, resRetMsg.getString(KK0341ETMsg.HCPRD_STAD_SNSTSTD_YMD_SCD));
// ------------------------------------------ v11.00.00 END ------------------------------------------
		/* ++++++++++ v20.00.00 追加開始 ++++++++++ */
		// 機器提供種別:買取 且つ 異動区分:GG乗換 且つ 宅内機器種別コード:モデムの場合
		if(KKTK_SBT_CD_01.equals(resRetMsg.getString(KK0341ETMsg.KKTK_SBT_CD))
				&& IDO_DIV_00085.equals(resRetMsg.getString(KK0341ETMsg.IDO_DIV))
				&& SBT_CD_60.equals(resRetMsg.getString(KK0341ETMsg.TAKNKIKI_SBT_CD)))
		{
			// サービス課金開始日にプラン課金開始日を設定する。
			inETMsg.set(KK0341ETMsg.SVC_CHRG_STAYMD, planChrgStaYmd);
		}
		/* ++++++++++ v20.00.00 追加終了 ++++++++++ */
		
		
		// 機器提供サービス契約の更新
		JKKejbDBAUtil dba = new JKKejbDBAUtil(inCBSMsg);
		dba.create(inETMsg);
		
		// 出力項目の設定
		// 世代登録年月日時分秒
		inCBSMsg.set(EKK0341C180CBSMsg.GENE_ADD_DTM_O, inETMsg.getString(KK0341ETMsg.GENE_ADD_DTM));
		// 機器提供サービス契約ステータス
		inCBSMsg.set(EKK0341C180CBSMsg.KKTK_SVC_KEI_STAT, inETMsg.getString(KK0341ETMsg.KKTK_SVC_KEI_STAT));
		// プラン開始年月日
		inCBSMsg.set(EKK0341C180CBSMsg.PLAN_STAYMD, inETMsg.getString(KK0341ETMsg.PLAN_STAYMD));
		// プラン課金開始年月日
		inCBSMsg.set(EKK0341C180CBSMsg.PLAN_CHRG_STAYMD, inETMsg.getString(KK0341ETMsg.PLAN_CHRG_STAYMD));
		// 予約適用コード
		inCBSMsg.set(EKK0341C180CBSMsg.RSV_APLY_CD, inETMsg.getString(KK0341ETMsg.RSV_APLY_CD));
		// 登録年月日時分秒
		inCBSMsg.set(EKK0341C180CBSMsg.ADD_DTM, inETMsg.getString(KK0341ETMsg.ADD_DTM));
		// 登録オペレータアカウント
		inCBSMsg.set(EKK0341C180CBSMsg.ADD_OPEACNT, inETMsg.getString(KK0341ETMsg.ADD_OPEACNT));
		// 更新年月日時分秒
		inCBSMsg.set(EKK0341C180CBSMsg.UPD_DTM, inETMsg.getString(KK0341ETMsg.UPD_DTM));
		// 更新オペレータアカウント
		inCBSMsg.set(EKK0341C180CBSMsg.UPD_OPEACNT, inETMsg.getString(KK0341ETMsg.UPD_OPEACNT));
		// 無効フラグ
		inCBSMsg.set(EKK0341C180CBSMsg.MK_FLG, inETMsg.getString(KK0341ETMsg.MK_FLG));
		
		return true;
	}
	
	/**
	 * <p>
	 * 機器提供サービス契約の削除処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	*/
	private void delete0341(CAANMsg inCBSMsg){
			
		// ETMsgの作成
		CAANMsg inETMsg = new CAANMsg(KK0341ETMsg.class.getName());
		
		// 更新データ設定
		// 機器提供サービス契約番号
		inETMsg.set(KK0341ETMsg.KKTK_SVC_KEI_NO, inCBSMsg.getString(EKK0341C180CBSMsg.KKTK_SVC_KEI_NO));
		
		// 世代登録年月日時分秒
		inETMsg.set(KK0341ETMsg.GENE_ADD_DTM, inCBSMsg.getString(EKK0341C180CBSMsg.GENE_ADD_DTM));
		
		// 更新年月日時分秒
		inETMsg.set(KK0341ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		
		// 更新オペレータアカウント
		inETMsg.set(KK0341ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		
		// 削除年月日時分秒
		inETMsg.set(KK0341ETMsg.DEL_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		
		// 削除オペレータアカウント
		inETMsg.set(KK0341ETMsg.DEL_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		
		// 無効フラグ
		inETMsg.set(KK0341ETMsg.MK_FLG, JKKModelConst.MK_FLG_MK);
		
		// 機器提供サービス契約の更新
		JKKejbDBAUtil dba = new JKKejbDBAUtil(inCBSMsg);
		dba.update(inETMsg);
	}
	// OM-2014-0002300 ADD END
}
