/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKUejbGetCschRsvInfo
*   ソースファイル名：JKUejbGetCschRsvInfo.java
*   作成者          ：富士通
*   日付            ：2024年01月18日
*＜機能概要＞
*   コース変更予約情報取得部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v70.00.00	2024/01/17	FJ)中川		【ANK-4530-00-00】【eo】 HGW導入フォロー対応 １
*
**********************************************************************/

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.KK1681ETMsg;

/**
 * コース変更予約情報取得を定義するクラス。<p>
 * 工事受付共通アクセッサー部品で実装します。
 * <BR>
 * @author 富士通
 */
public class JKUejbGetCschRsvInfo
{
	/**
	 * サービス契約番号をキーにコース変更予約情報を取得します。
	 * @param svcKeiNo サービス契約番号
	 * @return コース変更予約情報
	 * @throws CAANException 
	 */
	public static String[] getCschRsvInfo(String svcKeiNo) throws CAANException
	{
		// サービス契約番号が設定されていない場合
		if (JKUCommonUtil.isNull(svcKeiNo))
		{
			return null;
		}
		
		// 運用日付取得
		String opeDate = JKUModelCommon.getOpeDate(new CAANMsg(), null);
		
		// コネクション
		Connection con1 = null;
		
		// プリペアステートメント
		PreparedStatement pstmt = null;
		
		// リザルトセット
		ResultSet rsltQuery = null;
	
		
		/******************** 
		 * SQL文の作成
		 ********************/
		try
		{
			
			//コネクション取得
			con1 = JSYejbConnection.getConnection(KK1681ETMsg.getTableName());
			
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(" SELECT ")
					.append("     KK1681.NEW_PCRS_CD, ")
					.append("     KK1681.NEW_PPLAN_CD ")
					.append(" FROM ")
					.append("     KK_T_IDO_RSV KK1681 ")
					.append(" WHERE ")
					.append("     KK1681.SVC_KEI_NO = ? ")
					.append(" AND KK1681.IDO_DIV = '00009' ")
					.append(" AND (KK1681.IDO_RSV_STAT_CD = '00' ")
					.append(" OR  KK1681.IDO_RSV_STAT_CD = '03') ")
					.append(" AND KK1681.RSV_APLY_YMD > ? ")
					.append(" AND KK1681.MK_FLG = '0' ");
			
			
			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());
			
			int i = 1;
			
			// パラメータの設定(サービス契約番号を指定)
			CAANJDBCUtil.setParam(pstmt, i++, svcKeiNo);
			// パラメータの設定(運用日付を指定)
			CAANJDBCUtil.setParam(pstmt, i++, opeDate);
			
			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();
			
			// 戻り値の判定
			if (rsltQuery.next())
			{
				String[] rsltArray = new String[2];
				rsltArray[0] = rsltQuery.getString(KK1681ETMsg.NEW_PCRS_CD);
				rsltArray[1] = rsltQuery.getString(KK1681ETMsg.NEW_PPLAN_CD);
				return rsltArray;
			}
			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;
			}
		}
	}
}
