/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTgWbSKCkanChsht
*	ソースファイル名	：JBSbatKKTgWbSKCkanChsht.java
*	作成者				：富士通　
*	作成日				：2012年09月25日
*＜機能概要＞
*　対象割引サービス契約（置換型）抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/09/25   FJ)団		新規作成
*	v4.01.00	2013/03/18   FJ)中作	【IT1-2013-0000498】障害対応
*	v9.00.00	2014/04/21   FJ)小林	【ANK-2056-00-00】光電話セレクトオプションパック対応
*	v10.00.00	2014/07/07   FJ)小林	【ANK-2135-00-00】地デジ・ＢＳコース　スターチャンネルセット割引
**********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM264;
import eo.business.util.table.JBSbatKK_M_WRIB_SVC;
import eo.business.util.table.JBSbatKK_T_WRIB_SVC_KEI;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKTgWbSKCkanChsht extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	// ++++++++++ v10.00.00 削除開始 ++++++++++ //
//	// ++++++++++ v9.00.00 修正開始 ++++++++++ //
//	/** テーブル(業務パラメータ管理)*/
//	private static final String D_TBL_NAME_ZM_M_WORK_PARAM_KNRI = "ZM_M_WORK_PARAM_KNRI";
//
//	/** SQL定義キー(KK_SELECT_016)*/
//	private static final String ZM_M_WORK_PARAM_KNRI_KK_SELECT_016 = "KK_SELECT_016";
//
//	/** テーブルアクセスクラス(業務パラメータ管理)*/
//	private JBSbatSQLAccess db_ZM_M_WORK_PARAM_KNRI = null;
//
//	/** 業務パラメータ設定値(電話オプションパック割引サービスコード)*/
//	protected String workParamTelOpWribSvcCd = "";
//	// ++++++++++ v9.00.00 修正終了 ++++++++++ //
	// ++++++++++ v10.00.00 削除終了 ++++++++++ //

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/

		// ++++++++++ v10.00.00 削除開始 ++++++++++ //
//		// ++++++++++ v9.00.00 修正開始 ++++++++++ //
//		// DBアクセスクラスを生成します
//		db_ZM_M_WORK_PARAM_KNRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_WORK_PARAM_KNRI);
//
//		// 電話オプションパック割引サービスコードの業務パラメータを取得します
//		Object[] setParam = {
//				"KK_TELOP_WRIB_SVC_CD",
//				this.opeDate,
//				this.opeDate
//			};
//		executeZM_M_WORK_PARAM_KNRI_KK_SELECT_016(setParam);
//		JBSbatCommonDBInterface retMap = db_ZM_M_WORK_PARAM_KNRI.selectNext();
//		workParamTelOpWribSvcCd = retMap.getString(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_SETTE_VALUE);
//		// ++++++++++ v9.00.00 修正終了 ++++++++++ //
		// ++++++++++ v10.00.00 削除終了 ++++++++++ //
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");
		
		// ++++++++++ v9.00.00 修正開始 ++++++++++ //
		// 割引サービス契約テーブルより割引サービスコードを取得する。
		String wribSvcCd = inMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD);
		// 割引サービス契約テーブルよりサービス利用開始希望年月日を取得する。
		String svcUseStaKiboYmd = inMap.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_USE_STA_KIBO_YMD);
		
		// サービス利用開始希望年月日と運用日を比較する。
		int svcDateDiff = 0;
		// ++++++++++ v10.00.00 修正開始 ++++++++++ //
//		if(svcUseStaKiboYmd != null)
		if((svcUseStaKiboYmd != null) && (!"".equals(svcUseStaKiboYmd)))
		// ++++++++++ v10.00.00 修正終了 ++++++++++ //
		{
			svcDateDiff = eo.framework.util.JBSbatDateUtil.dayDiff(svcUseStaKiboYmd, this.opeDate, "0");
		}
		
		// 出力共通電文を初期化する。
		JBSbatOutputItem outputBean = null;
		
		// ++++++++++ v10.00.00 修正開始 ++++++++++ //
//		// 割引サービスコードが業務パラメータ設定値(電話オプションパック割引サービスコード)に含まれる場合、
//		// かつサービス利用開始希望年月日が運用日の翌日より後の場合
//		if((workParamTelOpWribSvcCd.indexOf(wribSvcCd) != -1) && svcDateDiff > 1)
//		{
//			// 出力共通電文を生成しない。
//		}
//		else
		// サービス利用開始希望年月日が運用日の翌日以前の場合
		if(svcDateDiff <= 1)
		{
		// ++++++++++ v10.00.00 修正終了 ++++++++++ //
		// ++++++++++ v9.00.00 修正終了 ++++++++++ //
			// 出力共通電文を生成する。
			outputBean = new JBSbatOutputItem();

			//入出力インターフェースオブジェクトを生成
			JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();

			//項目を設定
			outmap.setString(JBSbatKKIFM264.WRIB_SVC_KEI_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO)));				// 割引サービス契約番号
			outmap.setString(JBSbatKKIFM264.MSKM_DTL_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_WRIB_SVC_KEI.MSKM_DTL_NO)));						// 申込明細番号番号
			outmap.setString(JBSbatKKIFM264.WRIB_TYPE_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_M_WRIB_SVC.WRIB_TYPE_CD)));						// 割引タイプコード
			outmap.setString(JBSbatKKIFM264.MSKM_KISAN_YMD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_WRIB_SVC_KEI.MSKM_KISAN_YMD)));				// 申込起算年月日
			// ++++++++++ v9.00.00 修正開始 ++++++++++ //
			outmap.setString(JBSbatKKIFM264.WRIB_SVC_CD, wribSvcCd);																						// 割引サービスコード
			outmap.setString(JBSbatKKIFM264.SVC_USE_STA_KIBO_YMD, svcUseStaKiboYmd);																		// サービス利用開始希望年月日
			// ++++++++++ v9.00.00 修正終了 ++++++++++ //

			//出力フラグを設定
			outmap.setOutFlg(true);
			//出力共通電文に入出力インターフェースを設定する。
			outputBean.addOutMapList(outmap);
			// ++++++++++ v9.00.00 修正開始 ++++++++++ //
		}
		// ++++++++++ v9.00.00 修正終了 ++++++++++ //
		
		super.logPrint.printDebugLog("execute_END");
		
		//出力共通電文を返却
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	// ++++++++++ v10.00.00 削除開始 ++++++++++ //
//	/**
//	 * SQLKEY(KK_SELECT_016)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	業務パラメータID
//	 *		 	バッチ運用日付
//	 *		 	バッチ運用日付
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeZM_M_WORK_PARAM_KNRI_KK_SELECT_016(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//		paramList.setValue(param[2].toString());
//
//		// DBアクセスを実行します
//		db_ZM_M_WORK_PARAM_KNRI.selectBySqlDefine(paramList, ZM_M_WORK_PARAM_KNRI_KK_SELECT_016);
//	}
	// ++++++++++ v10.00.00 削除終了 ++++++++++ //
}
