/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKejbKK1151SecProc
*	ソースファイル名：JKKejbKK1151SecProc.java
*	作成者			：富士通
*	日付			：2011年10月18日
*＜機能概要＞
*	加入御礼書発行に対する副次処理を行う部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/18	富士通		新規作成
*
********************************************************************************/

package eo.ejb.common.db;

import com.fujitsu.futurity.common.JCMConstants;
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.fw.AgentDispatchContext;

import eo.ejb.cbm.entity.KK1151ETMsg;
import eo.ejb.cbm.entity.KK1151LE;
import eo.ejb.cbs.cbsmsg.EKK1151C020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1151C030CBSMsg;

/**
 * <p>
 * 加入御礼書発行に対する副次処理部品クラスです。
 * </p>
 * @author 富士通
 *
 */
public class JKKejbKK1151SecProc extends JKKejbKK1151DBABase
{

	/** 無効フラグ_有効 **/
	private static final String MK_FLG_VALID = "0";

	/**
	 * コンストラクタです。
	 */
	public JKKejbKK1151SecProc()
	{
		super();
	}

	/**
	 * 加入御礼書発行お客様情報変更を行います。
	 * 
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 */
	public void kanuoresoHakkoCustChg(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{

		CAANMsg inETMsgForCondition1151 = new CAANMsg(KK1151ETMsg.class.getName());
		inETMsgForCondition1151.set(KK1151ETMsg.SYSID, inCBSMsg.getString(EKK1151C020CBSMsg.SYSID));
		inETMsgForCondition1151.setNull(KK1151ETMsg.SEND_DTM);
		inETMsgForCondition1151.set(KK1151ETMsg.MK_FLG, MK_FLG_VALID);
		KK1151LE le1151 = new KK1151LE();
		CAANMsg[] retConditionETMsg1151 = null;
		try
		{
			retConditionETMsg1151 = le1151.findByCondition(inETMsgForCondition1151);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConditionETMsg1151.length; i++)
		{

			// 加入御礼書発行の更新
			CAANMsg etMsgForUpdate1151 = setETMsgCustChg(inCBSMsg, inContext, retConditionETMsg1151[i]);
			updateKanuoresoHakko(inCBSMsg, etMsgForUpdate1151);

			// O項目の設定（とりあえず）
			inCBSMsg.set(EKK1151C020CBSMsg.UPD_DTM, etMsgForUpdate1151.getString(JCMConstants.OPERATE_DATETIME_KEY));
			inCBSMsg.set(EKK1151C020CBSMsg.UPD_OPEACNT, etMsgForUpdate1151.getString(JCMConstants.OPERATOR_ID_KEY));
		}	
	}

	/**
	 * 加入御礼書発行利用場所住所変更を行います。
	 * 
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 */
	public void kanuoresoHakkoAddChg(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{

		CAANMsg inETMsgForCondition1151 = new CAANMsg(KK1151ETMsg.class.getName());
		inETMsgForCondition1151.set(KK1151ETMsg.SAME_KAISEN_GRP_SKBT_NO, inCBSMsg.getString(EKK1151C030CBSMsg.SAME_KAISEN_GRP_SKBT_NO));
		inETMsgForCondition1151.setNull(KK1151ETMsg.SEND_DTM);
		inETMsgForCondition1151.set(KK1151ETMsg.MK_FLG, MK_FLG_VALID);
		KK1151LE le1151 = new KK1151LE();
		CAANMsg[] retConditionETMsg1151 = null;
		try
		{
			retConditionETMsg1151 = le1151.findByCondition(inETMsgForCondition1151);
		}
		catch (CAANException ce)
		{
			throw new CAANRuntimeException(ce);
		}

		for (int i = 0; i < retConditionETMsg1151.length; i++)
		{

			// 加入御礼書発行の更新
			CAANMsg etMsgForUpdate1151 = setETMsgAddChg(inCBSMsg, inContext, retConditionETMsg1151[i]);
			updateKanuoresoHakko(inCBSMsg, etMsgForUpdate1151);

			// O項目の設定（とりあえず）
			inCBSMsg.set(EKK1151C020CBSMsg.UPD_DTM, etMsgForUpdate1151.getString(JCMConstants.OPERATE_DATETIME_KEY));
			inCBSMsg.set(EKK1151C020CBSMsg.UPD_OPEACNT, etMsgForUpdate1151.getString(JCMConstants.OPERATOR_ID_KEY));
		}	
	}

	/**
	 * 加入御礼書発行お客様情報変更時の更新用のETMsgを作成します。
	 * 
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param conditionETMsg1151 一覧検索結果のETMsg
	 * @return 作成されたETMsg
	 */
	private CAANMsg setETMsgCustChg(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg conditionETMsg1151)
	{

		// ETMsgを作成します
		conditionETMsg1151.set(KK1151ETMsg.CUST_NM, inCBSMsg.getString(EKK1151C020CBSMsg.CUST_NM));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_AD_CD, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_AD_CD));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_PCD, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_PCD));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_STATE_NM, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_STATE_NM));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_CITY_NM, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_CITY_NM));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_OAZTSU_NM, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_OAZTSU_NM));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_AZCHO_NM, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_AZCHO_NM));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_BNCHIGO, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_BNCHIGO));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_ADRTTM, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_ADRTTM));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_ADRRM, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_ADRRM));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_AD_MAN_INPUT_FLG, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_AD_MAN_INPUT_FLG));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_TYPE_CD, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_TYPE_CD));
		conditionETMsg1151.set(KK1151ETMsg.KEISHA_TELNO, inCBSMsg.getString(EKK1151C020CBSMsg.KEISHA_TELNO));
		conditionETMsg1151.set(KK1151ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		conditionETMsg1151.set(KK1151ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

		return conditionETMsg1151;
	}

	/**
	 * 加入御礼書発行利用場所住所変更時の更新用のETMsgを作成します。
	 * 
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param conditionETMsg1151 一覧検索結果のETMsg
	 * @return 作成されたETMsg
	 */
	private CAANMsg setETMsgAddChg(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg conditionETMsg1151)
	{

		// ETMsgを作成します
		conditionETMsg1151.set(KK1151ETMsg.KAISEN_PLACE_PCD, inCBSMsg.getString(EKK1151C030CBSMsg.KAISEN_PLACE_PCD));
		conditionETMsg1151.set(KK1151ETMsg.KAISEN_PLACE_AD_CD, inCBSMsg.getString(EKK1151C030CBSMsg.KAISEN_PLACE_AD_CD));
		conditionETMsg1151.set(KK1151ETMsg.KAISEN_PLACE_STATE_NM, inCBSMsg.getString(EKK1151C030CBSMsg.KAISEN_PLACE_STATE_NM));
		conditionETMsg1151.set(KK1151ETMsg.KAISEN_PLACE_CITY_NM, inCBSMsg.getString(EKK1151C030CBSMsg.KAISEN_PLACE_CITY_NM));
		conditionETMsg1151.set(KK1151ETMsg.KAISEN_PLACE_OAZTSU_NM, inCBSMsg.getString(EKK1151C030CBSMsg.KAISEN_PLACE_OAZTSU_NM));
		conditionETMsg1151.set(KK1151ETMsg.KAISEN_PLACE_AZCHO_NM, inCBSMsg.getString(EKK1151C030CBSMsg.KAISEN_PLACE_AZCHO_NM));
		conditionETMsg1151.set(KK1151ETMsg.KAISEN_PLACE_BNCHIGO, inCBSMsg.getString(EKK1151C030CBSMsg.KAISEN_PLACE_BNCHIGO));
		conditionETMsg1151.set(KK1151ETMsg.KAISEN_PLACE_ADRTTM, inCBSMsg.getString(EKK1151C030CBSMsg.KAISEN_PLACE_ADRTTM));
		conditionETMsg1151.set(KK1151ETMsg.KAISEN_PLACE_ADRRM, inCBSMsg.getString(EKK1151C030CBSMsg.KAISEN_PLACE_ADRRM));
		conditionETMsg1151.set(KK1151ETMsg.KAISEN_PLACE_TELNO, inCBSMsg.getString(EKK1151C030CBSMsg.KAISEN_PLACE_TELNO));
		conditionETMsg1151.set(KK1151ETMsg.KISN_PLC_AD_MI_FIX_FLG, inCBSMsg.getString(EKK1151C030CBSMsg.KISN_PLC_AD_MI_FIX_FLG));
		conditionETMsg1151.set(KK1151ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		conditionETMsg1151.set(KK1151ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));

		return conditionETMsg1151;
	}

	/**
	 * 加入御礼書発行の更新処理を行います。
	 * 
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inETMsg 更新用のETMsg
	 */
	private void updateKanuoresoHakko(CAANMsg inCBSMsg, CAANMsg inETMsg)
	{
		JKKejbDBAUtil dbaUtil = new JKKejbDBAUtil(inCBSMsg);
		dbaUtil.update(inETMsg);
	}
}
