/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEKK1151C010TPMA
*	ソースファイル名：JEKK1151C010TPMA.java
*	作成者			：富士通
*	日付			：2012年11月27日
*＜機能概要＞
*	加入御礼書発行変更顧客独自処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/11/27	FJ)			新規作成
*	v4.00.00	2013/01/31	FJ)寺園		IT1-2013-0000162 
*
**********************************************************************/

package eo.ejb.cbs.mainproc;

import com.fujitsu.futurity.model.base.CAANMsg;
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.KK2541ETMsg;
import eo.ejb.cbs.cbsmsg.EKK1151C010CBSMsg;
import eo.ejb.common.edit.JKKejbSeptWarnInfoFlgEdit;
import eo.ejb.common.entity.JKKejbKK2541KRCK;

/**
 * <p>
 * 加入御礼書発行変更顧客独自処理部品クラスです。
 * </p>
 * @author 富士通
 */
public class JEKK1151C010TPMA implements TemplateMainHandler
{

	/** 警告：WA */
	private static final String INFO_FLG_WA = "WA";
	/** 送信除外フラグ：除外 */
	private static final String SEND_JGI_FLG_JGI = "2";

	/**
	 * <p>
	 * 加入御礼書発行変更時の警告・確認メッセージ用エラーフラグの設定を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 */
	public void setWarnInfo(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// ステータス
		int rtn = 0;

		JKKejbSeptWarnInfoFlgEdit edit = new JKKejbSeptWarnInfoFlgEdit();
		JKKejbKK2541KRCK kk2541KRCK = new JKKejbKK2541KRCK();

		// 開始ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG, getClass(), "call:JEKK1151C010TPMA#setWarnInfo");

		CAANMsg inETMsg = new CAANMsg(KK2541ETMsg.class.getName());

		// "サービス契約番号"が設定された場合、かつ、"送信除外フラグ"が"2"（除外）の場合
		if (!inCBSMsg.isNull(EKK1151C010CBSMsg.SVC_KEI_NO) && SEND_JGI_FLG_JGI.equals(inCBSMsg.getString(EKK1151C010CBSMsg.SEND_JGI_FLG)))
		{
			// 未存在チェック
			if (kk2541KRCK.isExistsKapKeiSvcKeiNo(inETMsg, inContext, inCBSMsg.getObject(EKK1151C010CBSMsg.SVC_KEI_NO)))
			{
				// 情報メッセージを設定する
				inCBSMsg.set(EKK1151C010CBSMsg.WARN_FLG_ERR, 
						edit.getSeptWarnInfoFlg(inCBSMsg.getString(EKK1151C010CBSMsg.WARN_FLG_ERR), INFO_FLG_WA));
				rtn = StatusCodes.WARNING;
			}
		}

		// ステータスのセット
		if (rtn > inCBSMsg.getInt(EKK1151C010CBSMsg.STATUS))
		{
			inCBSMsg.set(EKK1151C010CBSMsg.STATUS, rtn);
		}

		// 終了ログ出力
		JSYejbLog.println(JSYejbLog.DEBUG, getClass(), "end:JEKK1151C010TPMA#setWarnInfo");
	}
}
