/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKejbKK0491Edit
*	ソースファイル名：JKKejbKK0491Edit.java
*	作成者			：富士通
*	日付			：2015年09月17日
*＜機能概要＞
*	請求契約に対する編集処理を行う部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v20.00.00	2015/09/17	富士通		ANK-2073-00-00（新規作成）
*
**********************************************************************/

package eo.ejb.common.edit;

import java.util.HashMap;

import com.fujitsu.futurity.common.JCCWebAddTrnId;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.ejb.cbm.cbmmsg.KK0491CBMMsg;
import eo.ejb.common.JKKModelConst;
import eo.ejb.common.db.JKKejbKK0491DBABase;

/**
 * <p>
 * 請求契約に対する編集処理を行う部品クラスです。
 * </p>
 * @author 富士通
 */
public class JKKejbKK0491Edit extends JKKejbKK0491DBABase
{
	
	/** 画面ID（フロント）*/
	private static final String INVOKE_GAMEN_ID_KEY_FU = "FU";

	/**
	 * コンストラクタです。
	 */
	public JKKejbKK0491Edit()
	{
	}

	/**
	 * <p>
	 * 請求契約登録用支払方法通知メール制御コードを取得する。
	 * </p>
	 * @param inCBMMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return 支払方法通知メール制御コード
	 */
	public String getSkKeiAddPayWayTcMlCtlCd(CAANMsg inCBMMsg, AgentDispatchContext inContext)
	{
		
		// 画面IDを取得
		HashMap<String, Object> comMsg = JCCWebAddTrnId.get(JCMConstants.ADD_TRN_ID_MESSAGE_COMMON_MAP);
		String trnId = (String)comMsg.get(JCMConstants.INVOKE_GAMEN_ID_KEY);
		
		// 請求方法コードを取得
		String seikyWayCd = inCBMMsg.getString(KK0491CBMMsg.SEIKY_WAY_CD.toLowerCase());
		
		// 画面IDがフロント以外かつ請求方法コードが「預金口座振替」または「郵便自動振込」の場合
		if (!INVOKE_GAMEN_ID_KEY_FU.equals(trnId.substring(0,2))
				&& ((JKKModelConst.SEIKY_WAY_CD_YKNKHRI).equals(seikyWayCd)
				|| (JKKModelConst.SEIKY_WAY_CD_YBNJHRI).equals(seikyWayCd)))
		{
				// 「未送信」を返却
				return JKKModelConst.MI_SEND;
		}
		
		// 画面IDがフロントの場合
		// 画面IDがフロント以外かつ請求方法コードが「預金口座振替」または「郵便自動振込」以外の場合
		// 「対象外」を返却
		return JKKModelConst.TG_GAI;
	}


	/**
	 * <p>
	 * 請求支払先変更用支払方法通知メール制御コードを取得する。
	 * </p>
	 * @param inCBMMsg 処理対象のメッセージキャリア
	 * @param inETMsg カレントデータが格納されたメッセージキャリア
	 * @return 支払方法通知メール制御コード
	 */
	public String getSkPaysChgPayWayTcMlCtlCd(CAANMsg inCBMMsg, CAANMsg inETMsg)
	{
		// 画面IDを取得
		HashMap<String, Object> comMsg = JCCWebAddTrnId.get(JCMConstants.ADD_TRN_ID_MESSAGE_COMMON_MAP);
		String trnId = (String)comMsg.get(JCMConstants.INVOKE_GAMEN_ID_KEY);
		
		// 支払方法通知メール制御コードを取得
		String paywaytcmlCtlCd = inETMsg.getString(KK0491CBMMsg.PAYWAYTCML_CTL_CD);
		
		// 画面IDがフロントかつ支払方法通知メール制御コードが「抑止」以外の場合
		if (INVOKE_GAMEN_ID_KEY_FU.equals(trnId.substring(0,2))
				&& !JKKModelConst.YOKSI.equals(paywaytcmlCtlCd))
		{
			// 「対象外」を返却
			return JKKModelConst.TG_GAI;
			
		}
		
		// 画面IDがフロントかつ支払方法通知メール制御コードが「抑止」の場合
		// 画面IDがフロント以外の場合
		// カレントデータの支払方法通知メール制御コードを返却
		return paywaytcmlCtlCd;
	}

}
