/*********************************************************************
 *  All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *  システム名      ：eo顧客基幹システム
 *  モジュール名    ：JKKejbEKK0341C080Edit
 *  ソースファイル名：JKKejbEKK0341C080Edit.java
 *  作成者          ：富士通
 *  日付            ：2013年07月07日
 *＜機能概要＞
 *  機器提供サービス契約手続中料金コース変更編集部品クラス
 *＜修正履歴＞
 *  バージョン  修正日      修正者      修正内容
 *  v4.00.00    2013/07/07  FJ)竹内     IT1-2013-0001325
 *
 **********************************************************************/

package eo.ejb.common.edit;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.ejb.cbm.entity.KK0341ETMsg;
import eo.ejb.cbs.cbsmsg.EKK0341C080CBSMsg;
import eo.ejb.common.JKKModelCommon;
import eo.ejb.common.JKKModelConst;
import eo.ejb.common.db.JKKejbKK0341DBABase;

/**
 * <p>
 * 機器提供サービス契約手続中料金コース変更の編集を行う部品クラスです。
 * </p>
 * @author 富士通
 */
public class JKKejbEKK0341C080Edit
{

	/**
	 * <p>
	 * 機器提供サービス契約-機器変更番号を取得する。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return 機器変更番号
	 */
	public String getKikiChgNo(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		// 機器提供サービス契約番号が未設定の場合、処理対象外
		String kktkSvcKeiNo = inMsg.getString(EKK0341C080CBSMsg.KKTK_SVC_KEI_NO);
		if (kktkSvcKeiNo == null)
		{
			return null;
		}

		// 対象の「機器提供サービス契約」を一意検索する。
		CAANMsg kk0341Msg = new JKKejbKK0341DBABase().getKK0341Primary(kktkSvcKeiNo, inMsg.getString(EKK0341C080CBSMsg.GENE_ADD_DTM));

		String kikiChgNo = null;
		if (!JKKModelConst.KKTK_SVC_KEI_STAT_UK_ZM.equals(kk0341Msg.getString(KK0341ETMsg.KKTK_SVC_KEI_STAT)))
		{
			// 機器提供サービス契約ステータスが"受付済"以外の場合、機器変更番号を採番する。
			kikiChgNo = (String)JKKModelCommon.getKikiChgNoKK0341(inMsg, inContext);
		}
		else
		{
			// 機器提供サービス契約ステータスが"受付済"の場合、機器変更番号は更新しない。
			kikiChgNo = kk0341Msg.getString(KK0341ETMsg.KIKI_CHG_NO);
		}

		return kikiChgNo;
	}

	/**
	 * <p>
	 * 機器提供サービス契約-機器変更年月日を取得する。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return 機器変更年月日
	 */
	public String getKikiChgYmd(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		// 機器提供サービス契約番号が未設定の場合、処理対象外
		String kktkSvcKeiNo = inMsg.getString(EKK0341C080CBSMsg.KKTK_SVC_KEI_NO);
		if (kktkSvcKeiNo == null)
		{
			return null;
		}

		// 対象の「機器提供サービス契約」を一意検索する。
		CAANMsg kk0341Msg = new JKKejbKK0341DBABase().getKK0341Primary(kktkSvcKeiNo, inMsg.getString(EKK0341C080CBSMsg.GENE_ADD_DTM));

		String kikiChgYmd = null;
		if (!JKKModelConst.KKTK_SVC_KEI_STAT_UK_ZM.equals(kk0341Msg.getString(KK0341ETMsg.KKTK_SVC_KEI_STAT)))
		{
			// 機器提供サービス契約ステータスが"受付済"以外の場合、機器変更年月日に運用日付を設定する(機器変更番号採番)。
			kikiChgYmd = JKKModelCommon.getOpeDate(inMsg);
		}
		else
		{
			// 機器提供サービス契約ステータスが"受付済"の場合、機器変更年月日は更新しない(機器変更番号未更新)。
			kikiChgYmd = kk0341Msg.getString(KK0341ETMsg.KIKI_CHG_YMD);
		}

		return kikiChgYmd;
	}

}
