/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKUejbGetTkHoshikiPatternCd
*   ソースファイル名：JKUejbGetTkHoshikiPatternCd.java
*   作成者          ：富士通
*   日付            ：2019年01月08日
*＜機能概要＞
*   提供方式パターンコード取得部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v41.00.00	2019/01/08	FJ)周藤		【ANK-3387-00-00】マンションタイプ光コンセントサービス導入
*   v51.00.01	2020/12/09	FJ)謝		【IT1-2020-0000076】対応
*
**********************************************************************/

package eo.ejb.common;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.fujitsu.futurity.model.base.CAANConnectionMgr;
import com.fujitsu.futurity.model.base.CAANException;
import com.fujitsu.futurity.model.base.CAANJDBCUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.JSYejbConnection;

import eo.common.util.JKUCommonUtil;
import eo.ejb.cbm.entity.KK0081ETMsg;
import eo.ejb.cbm.entity.KK0891ETMsg;
import eo.ejb.common.db.JKKejbKK0891DBABase;
import eo.ejb.common.db.JKUejbKK0081DBABase;

/**
 * 提供方式パターンコード取得を定義するクラス。<p>
 * 工事受付共通アクセッサー部品で実装します。
 * <BR>
 * @author 富士通
 */
public class JKUejbGetTkHoshikiPatternCd
{

	/**
	 * サービス契約番号をキーに提供方式パターンコードを取得します。
	 * @param svcKeiNo サービス契約番号
	 * @return 提供方式パターンコード
	 * @throws CAANException 
	 */
	public static String getTkHoshikiPatternCd(String svcKeiNo) throws CAANException
	{
		// 運用日付取得
		String opeDate = JKUModelCommon.getOpeDate(new CAANMsg(), null);
		
		//サービス契約番号をキーにサービス契約を取得する
		CAANMsg kk0081Msg = new CAANMsg(KK0081ETMsg.class.getName());
		JKUejbKK0081DBABase baseKK0081 = new JKUejbKK0081DBABase();
		// サービス契約番号
		kk0081Msg.set(KK0081ETMsg.SVC_KEI_NO, svcKeiNo);
		// 予約適用年月日
		kk0081Msg.set(KK0081ETMsg.RSV_APLY_YMD, opeDate); 
		
		// カレントレコードを取得
		kk0081Msg = baseKK0081.findByCurrent(kk0081Msg);  

		if (null == kk0081Msg)
		{
			return null;
		}
		
		//提供方式契約番号をキーに提供方式契約を取得する
		CAANMsg kk0891Msg = new CAANMsg(KK0891ETMsg.class.getName());
		JKKejbKK0891DBABase baseKK0891 = new JKKejbKK0891DBABase();
		// 提供方式契約番号
		kk0891Msg.set(KK0891ETMsg.TK_HOSHIKI_KEI_NO, kk0081Msg.getString(KK0081ETMsg.TK_HOSHIKI_KEI_NO));
		// プライマリレコードを取得
		kk0891Msg = baseKK0891.findByCurrent(kk0891Msg);  

		if (null == kk0891Msg)
		{
			return null;
		}
		else
		{
			return kk0891Msg.getString(KK0891ETMsg.TK_HOSHIKI_PATTERN_CD);
		}
	}
// IT1-2020-0000076 ADD START
	/**
	 * 回線使用契約番号をキーに提供方式パターンコードを取得します。
	 * @param kaisenUseKeiNo 回線使用契約番号
	 * @return 提供方式パターンコード
	 * @throws CAANException 
	 */
	public static String getTkHoshikiPatternCdKs(String kaisenUseKeiNo) throws CAANException
	{
		// 回線使用契約番号が設定されていない場合
		if (JKUCommonUtil.isNull(kaisenUseKeiNo))
		{
			return null;
		}
		
		// コネクション
		Connection con1 = null;
		
		// プリペアステートメント
		PreparedStatement pstmt = null;
		
		// リザルトセット
		ResultSet rsltQuery = null;
	
		
		/******************** 
		 * SQL文の作成
		 ********************/
		try
		{
			
			//コネクション取得
			con1 = JSYejbConnection.getConnection(KK0891ETMsg.getTableName());
			
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(" SELECT ")
					.append("     KK0891.TK_HOSHIKI_PATTERN_CD ")
					.append(" FROM ")
					.append("     KK_T_TK_HOSHIKI_KEI KK0891 ")
					.append(" WHERE ")
					.append("     KK0891.KAISEN_USE_KEI_NO = ? ")
					.append(" AND KK0891.MK_FLG = '0' ")
					.append(" ORDER BY KK0891.SVC_STA_YMD DESC ");
			
			
			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());
			
			int i = 1;
			
			// パラメータの設定(回線使用契約番号を指定)
			CAANJDBCUtil.setParam(pstmt, i++, kaisenUseKeiNo);
			
			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();
			
			// 戻り値の判定
			if (rsltQuery.next())
			{
				// 提供方式パターンコードを取得する
				return rsltQuery.getString(KK0891ETMsg.TK_HOSHIKI_PATTERN_CD);
			}
			return null;
		}
		catch (SQLException e)
		{
			return null;
		}
		finally
		{
			// 資源の解放
			try
			{
				if (rsltQuery != null)
				{
					rsltQuery.close();
				}
				if (pstmt != null)
				{
					pstmt.close();
				}
				if (con1 != null)
				{
					CAANConnectionMgr.getInstance().close(con1);
				}
			}
			catch(SQLException e)
			{
				return null;
			}
		}
	}
// IT1-2020-0000076 ADD END
}
