/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム構築
*   モジュール名    ：JECR0021C020TPMA
*   ソースファイル名：JECR0021C020TPMA.java
*   作成者          ：富士通
*   日付            ：2011年06月04日
*＜機能概要＞
*   対応記録登録顧客独自処理部品
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v1.00.00    2011/06/04  富士通      新規作成
*
**********************************************************************/
package eo.ejb.cbs.mainproc;

import com.fujitsu.futurity.model.base.CAANException;
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.common.constant.JCRStrConst;
import eo.ejb.cbm.entity.CR0021ETMsg;
import eo.ejb.cbs.cbsmsg.ECR0021C020CBSMsg;
import eo.ejb.common.db.JCRejbCR0011SecProc;

/**
 * <p>
 * 対応記録明細変更（メモ）顧客独自処理部品クラスです。
 * </p>
 * @author 富士通
 */
public class JECR0021C020TPMA implements TemplateMainHandler
{

	/**
	 * コンストラクタです。
	 */
	public JECR0021C020TPMA()
	{
		super();
	}

	/**
	 * <p>
	 * 対応記録副次処理を呼び出します。
	 * </p>
	 * @param inCBSMsg 概念スキーマのCBSメッセージ
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @throws CAANException 
	 */
	public static void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{

		// (1) 編集状態フラグが「編集中」の場合、以降の処理は行わない。
		if (JCRStrConst.HENSHU_STAT_FLG_HENSHU_CHU.equals(inCBSMsg.getString(ECR0021C020CBSMsg.HENSHU_STAT_FLG)))
		{
			return;
		}

		// (2) 対応記録のETメッセージを生成する。
		CAANMsg cr0021ETMsgTmpSave = new CAANMsg(CR0021ETMsg.class.getName());
		cr0021ETMsgTmpSave.set(CR0021ETMsg.TAIO_KIROK_NO, inCBSMsg.getString(ECR0021C020CBSMsg.TAIO_KIROK_NO));
		cr0021ETMsgTmpSave.set(CR0021ETMsg.TAIO_KIROK_DTL_NO, inCBSMsg.getString(ECR0021C020CBSMsg.TAIO_KIROK_DTL_NO));
		cr0021ETMsgTmpSave.set(CR0021ETMsg.UPD_OPEACNT, inCBSMsg.getString(ECR0021C020CBSMsg.LOGIN_USER_ID));

		// (3) 対応記録副次処理部品の一時保存有無更新処理を呼出し、一時保存有無を更新する。
		new JCRejbCR0011SecProc().updateTmpSaveUm(inCBSMsg, inContext, cr0021ETMsgTmpSave);

		// (4) 対応記録明細のETメッセージを生成し、DB更新値を引き継ぐために以下の値を設定する。
		CAANMsg cr0021ETMsgHistory = new CAANMsg(CR0021ETMsg.class.getName());
		// ETメッセージ.対応記録番号 ← CBSメッセージ.対応記録番号
		cr0021ETMsgHistory.set(CR0021ETMsg.TAIO_KIROK_NO, inCBSMsg.getString(ECR0021C020CBSMsg.TAIO_KIROK_NO));
		// ETメッセージ.アクション終了年月日時分秒 ← CBSメッセージ.アクション終了年月日時分秒
		cr0021ETMsgHistory.set(CR0021ETMsg.ACTION_FIN_DTM, inCBSMsg.getString(ECR0021C020CBSMsg.ACTION_FIN_DTM));
		// ETメッセージ.メモタイプコード ← CBSメッセージ.メモタイプコード
		cr0021ETMsgHistory.set(CR0021ETMsg.MEMO_TYPE_CD, inCBSMsg.getString(ECR0021C020CBSMsg.MEMO_TYPE_CD));
		// ETメッセージ.メモ内容 ← CBSメッセージ.メモ内容
		cr0021ETMsgHistory.set(CR0021ETMsg.MEMO_NAIYO, inCBSMsg.getString(ECR0021C020CBSMsg.MEMO_NAIYO));

		// (5) 対応記録副次処理部品のメモ登録用対応履歴編集処理を呼出し、対応記録の対応記録履歴を更新する。
		new JCRejbCR0011SecProc().updTaioKirokMemo(inCBSMsg, inContext, cr0021ETMsgHistory
				, inCBSMsg.getString(ECR0021C020CBSMsg.WKKBT_ORG_NM)
				, inCBSMsg.getString(ECR0021C020CBSMsg.LOGIN_USER_NM));

	}

}
