/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：JKKejbKK1961Edit
 *	ソースファイル名：JKKejbKK1961Edit.java
 *	作成者			：富士通
 *	日付			：2011年11月15日
 *＜機能概要＞
 *	SYSID, 住所変更申込一時保存番号をKEYとする、
 *  任意の住所変更申込送付先一時保存番号以外の住所変更申込送付先一時保存番号を取得する部品。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/11/15	富士通		新規作成
 *
 **********************************************************************/

package eo.ejb.common.edit;

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.KK1961ETMsg;
import eo.ejb.cbm.entity.KK1961LE;
import eo.ejb.cbs.cbsmsg.EKK1961E010CBSMsg;


/**
 * <p>
 * SYSID, 住所変更申込一時保存番号をKEYとする、
 * 任意の住所変更申込送付先一時保存番号以外の住所変更申込送付先一時保存番号を取得する。
 * </p>
 * @author 富士通
 */
public class JKKejbKK1961Edit
{

	/** 無効フラグ */
	private static final String MK_FLG_YUKOU = "0";

	/**
	 * <p>
	 * SYSID, 住所変更申込一時保存番号をKEYとする、
	 * 任意の住所変更申込送付先一時保存番号以外の住所変更申込送付先一時保存番号を取得する。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return 有効な住所変更申込送付先一時保存番号の最大値
	 */
	public Object getPrimaryAdchmSohskTppvNo(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		//検索条件にNULLが含まれる場合処理を終了する
		if (inMsg.isNull(EKK1961E010CBSMsg.SYSID)
			|| inMsg.isNull(EKK1961E010CBSMsg.ADCHM_TPPV_NO))
		{
			return null;
		}
		
		// 全件検索用のメッセージを作成
		CAANMsg inETMsg = new CAANMsg(KK1961ETMsg.class.getName());
		inETMsg.set(KK1961ETMsg.SYSID, inMsg.getString(EKK1961E010CBSMsg.SYSID));
		inETMsg.set(KK1961ETMsg.ADCHM_TPPV_NO, inMsg.getString(EKK1961E010CBSMsg.ADCHM_TPPV_NO));
		inETMsg.set(KK1961ETMsg.MK_FLG, MK_FLG_YUKOU);

		CAANMsg[] otETMsg = null;
		try
		{
			otETMsg = new KK1961LE().findByCondition(inETMsg);
		}
		catch (CAANException e1)
		{
			throw new CAANRuntimeException(e1);
		}
		
		//削除対象が0件の場合NULLを返す
		if (1 > otETMsg.length) 
		{
			return null;
		}
		
		String MaxAST_No = otETMsg[0].getString(KK1961ETMsg.ADCHM_SHS_TPPV_NO);
		
		for (int i = 1; i < otETMsg.length; i++) 
		{
			if (MaxAST_No.compareTo(otETMsg[i].getString(KK1961ETMsg.ADCHM_SHS_TPPV_NO)) < 0 )
			{
				MaxAST_No = otETMsg[i].getString(KK1961ETMsg.ADCHM_SHS_TPPV_NO);
			}
		}

		return MaxAST_No;
	}
	
}
