/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKUejbGetKepcoBusiofficeCd
*   ソースファイル名：JKUejbGetKepcoBusiofficeCd.java
*   作成者          ：富士通
*   日付            ：2011年10月01日
*＜機能概要＞
*   関電営業所番号取得処理部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/10/01   FJ          新規作成
*
**********************************************************************/

package eo.ejb.common;

import com.fujitsu.futurity.model.base.CAANException;
import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.constant.JKUStrConst;
import eo.ejb.cbm.entity.KK2321ETMsg;
import eo.ejb.cbm.entity.KK2321LE;

/**
 * 関電営業所番号取得処理を定義するクラス。<p>
 * 工事受付共通アクセッサー部品で実装します。
 * <BR>
 * @author 富士通
 */
public class JKUejbGetKepcoBusiofficeCd
{

	/**
	 * 郵便番号をキーに基準日に有効な関電営業所番号を取得します。
	 * @param pcd 郵便番号
	 * @param ymd 基準日
	 * @return 関電営業所番号
	 * @throws CAANException 
	 */
	public static String getKepcoBusiofficeCd(String pcd, String ymd) throws CAANException
	{
		// 郵便番号をキーに郵便番号関連情報を取得する
		CAANMsg inETMsg = new CAANMsg(KK2321ETMsg.class.getName());
		
		inETMsg.set(KK2321ETMsg.PCD, pcd);
		
		inETMsg.set(KK2321ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		CAANMsg[] outKK2321ETMsg = new KK2321LE().findByCondition(inETMsg);
		
		if (0 ==  outKK2321ETMsg.length)
		{
			return null;
		}
		else
		{
			for(int i = 0; i < outKK2321ETMsg.length; i++)
			{
				// 適用開始年月日＜＝基準日＜＝適用終了年月日の場合はコードを返却する
				if(JPCModelCommon.isPastDate(outKK2321ETMsg[i].getString(KK2321ETMsg.PCDB_KPCOFC_KHO_TSTAYMD), ymd, "1")
						&& JPCModelCommon.isFutureDate(outKK2321ETMsg[i].getString(KK2321ETMsg.PCDB_KPCOFC_KHO_TENDYMD), ymd, "1"))
				{
					return outKK2321ETMsg[i].getString(KK2321ETMsg.KEPCO_BUSIOFFICE_CD);
				}
			}
		}
		return null;
	}

	/**
	 * 関電営業所番号を取得します。
	 * @param pcd 郵便番号
	 * @param ymd 基準日
	 * @param kepcoBusiofficeCd 関電営業所番号
	 * @return 関電営業所番号
	 * @throws CAANException 
	 */
	public static String getKepcoBusiofficeCd(String pcd, String ymd, String kepcoBusiofficeCd) throws CAANException
	{
		if (null != kepcoBusiofficeCd)
		{
			return kepcoBusiofficeCd;
		}
		else
		{
			return getKepcoBusiofficeCd(pcd, ymd);
		}
	}

}
