/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKHapieMmbYkKeiChk
*	ソースファイル名	：JBSbatKKHapieMmbYkKeiChk.java
*	作成者				：富士通　
*	作成日				：2012年07月11日
*＜機能概要＞
*　はぴｅ会員有効契約チェック部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/07/11   富士通		新規作成
*	v4.00.01	2013/06/27   富士通		TG1-2013-0000579
*	v9.00.00	2014/07/14   FJ)西面	OM-2014-0002127 全戸一括時の出力判定変更
*	v25.00.00	2016/06/03   FJ)寺園	OM-2016-0000375 性能改善（アンロード化）
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.util.file.JBSbatACIFI005;
import eo.common.util.JKKStringUtil;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;
//v25.00.00 ADD START
import eo.business.util.file.JBSbatKKIFM709;
//v25.00.00 ADD END

/**
* <p>はぴｅポイント計算時に、ポイント対象のサービス中であるかのチェックを行い、
* 対象請求期間内の有効な契約情報を「はぴｅ会員有効契約ありファイル」へ出力する。 </p>
*<BR>
* @author 富士通
*/
public class JBSbatKKHapieMmbYkKeiChk extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
// v25.00.00 DEL START
//	/** テーブル(サービス契約)*/
//	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";
//
//	/** SQL定義キー(KK_SELECT_191)*/
//	private static final String KK_T_SVC_KEI_KK_SELECT_191 = "KK_SELECT_191";
//
//	/** テーブルアクセスクラス(サービス契約)*/
//	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
// v25.00.00 DEL END
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 料金月初日（YYYYMMDD） */
	private String pMonthFirstDate = "";

	/** 料金月末日（YYYYMMDD） */
	private String pMonthLastDate = "";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

// v25.00.00 DEL START
//		// DBアクセスクラスを生成します
//		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
// v25.00.00 DEL END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// 料金月(バッチ運用日付の前月)
		String priceYm = JBSbatDateUtil.adjustMonth(super.opeDate, -1).substring(0, 6);
		super.logPrint.printDebugLog("execute() バッチ運用日=" + super.opeDate);
		super.logPrint.printDebugLog("execute() 料金月(YYYYMM)=" + priceYm);
		pMonthFirstDate = priceYm + "01";

		pMonthLastDate = priceYm + JBSbatDateUtil.getEndOfMonth(priceYm);
		super.logPrint.printDebugLog("execute() 料金月初日=" + pMonthFirstDate);
		super.logPrint.printDebugLog("execute() 料金月末日=" + pMonthLastDate);

	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute() start");
		
// v25.00.00 MOD START
//		super.logPrint.printDebugLog("サービス契約番号=" + inMap.getString("HTS_SKSN_TRGT_SVC_KEI_NO"));
		super.logPrint.printDebugLog("サービス契約番号=" + inMap.getString(JBSbatKKIFM709.SKSN_TRGT_SVC_KEI_NO));
// v25.00.00 MOD END
		
// v25.00.00 DEL START
//		// 検索対象のサービス契約番号を取得
//		searchKK_T_SVC_KEI(inMap.getString("HTS_SKSN_TRGT_SVC_KEI_NO"));
//		
//		JBSbatCommonDBInterface dbOutMap = db_KK_T_SVC_KEI.selectNext();
//		if (dbOutMap == null)
//		{
//			super.logPrint.printDebugLog("execute() end:検索結果なし");
//			return null;
//		}
//		super.logPrint.printDebugLog("サービス契約番号結果=" + dbOutMap.getMap().toString());
//
//		// 「料金プラン」によるはぴｅポイント積算判定
//		String hppsstgFlg = JBSbatStringUtil.Rtrim(dbOutMap.getString("PPL_HPPSSTG_FLG"));
//		if (!"1".equals(hppsstgFlg))
//		{
//			// "1"（はぴｅポイント積算対象）ではないので対象外
//			super.logPrint.printDebugLog("execute() end:料金プラン=" + hppsstgFlg);
//			return null;
//		}
// v25.00.00 DEL END
		
// v25.00.00 MOD START
//		// 照査年月日
//		String shosaYmd = JBSbatStringUtil.Rtrim(dbOutMap.getString("SVK_SHOSA_YMD"));
//		// サービス解約起算年月日
//		String svcDslKisanYmd = JBSbatStringUtil.Rtrim(dbOutMap.getString("SVK_SVC_DSL_KISAN_YMD"));
//		// 照査解約完了コード
//		String shosaDslFinCd = JBSbatStringUtil.Rtrim(dbOutMap.getString("SVK_SHOSA_DSL_FIN_CD"));
//		// v9.00.00 2014/07/14 Add Start
//		// サービス課金開始年月日
//		String svcChrgStaYmd = JBSbatStringUtil.Rtrim(dbOutMap.getString("SVK_SVC_CHRG_STAYMD"));
//		// 加入契約支払方式コード
//		String kanyuKeiPayHoshikiCd = JBSbatStringUtil.Rtrim(dbOutMap.getString("TKH_KANYU_KEI_PAY_HOSHIKI_CD"));
		// 照査年月日
		String shosaYmd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.SHOSA_YMD));
		// サービス解約起算年月日
		String svcDslKisanYmd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.SVC_DSL_KISAN_YMD));
		// 照査解約完了コード
		String shosaDslFinCd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.SHOSA_DSL_FIN_CD));
		// サービス課金開始年月日
		String svcChrgStaYmd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.SVC_CHRG_STAYMD));
		// 加入契約支払方式コード
		String kanyuKeiPayHoshikiCd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.KANYU_KEI_PAY_HOSHIKI_CD));
// v25.00.00 MOD END
		// v9.00.00 2014/07/14 Add End
		// ファイル出力要否フラグ
		boolean out = false;

// v25.00.00 MOD START
		// 「サービス契約」によるはぴｅポイント積算判定
//		String svcKeiStat = JBSbatStringUtil.Rtrim(dbOutMap.getString("SVK_SVC_KEI_STAT"));
		String svcKeiStat = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.SVC_KEI_STAT));
// v25.00.00 MOD END
		
		super.logPrint.printDebugLog("execute() サービス契約ステータス=" + svcKeiStat);
		super.logPrint.printDebugLog("execute() 照査年月日=" + shosaYmd);
		super.logPrint.printDebugLog("execute() サービス解約起算年月日=" + svcDslKisanYmd);
		super.logPrint.printDebugLog("execute() 照査解約完了コード=" + shosaDslFinCd);
		// v9.00.00 2014/07/14 Add Start
		super.logPrint.printDebugLog("execute() サービス課金開始年月日=" + svcChrgStaYmd);
		super.logPrint.printDebugLog("execute() 加入契約支払方式コード=" + kanyuKeiPayHoshikiCd);
		
		//-------------------------------------------------------全戸一括時or居住者一括時独自実装 start---------------------------------------------------
		//全戸一括時、居住者一括時の独自実装判定処理の実行有無を判定するため、加入契約支払方式コード・サービス契約ステータスのチェックを行う
		if(isSksnCheckTgForMinasi(kanyuKeiPayHoshikiCd)){
			
			super.logPrint.printDebugLog("全戸一括or居住者一括 独自実装開始");
			
			//積算対象であるかの判定を行うため、日付のチェックを行う
			if(chkSvcChrgStaYmd(svcChrgStaYmd,svcKeiStat,svcDslKisanYmd)){
			
				super.logPrint.printDebugLog("全戸一括or居住者一括 独自実装終了 積算対象");
				super.logPrint.printDebugLog("execute() end:出力");
				//サービス課金開始年月日≦料金月末日であった場合積算対象となるため、ファイル出力処理を行う
// v25.00.00 MOD START
//				return setOutputItem(inMap, dbOutMap);
				return setOutputItem(inMap);
// v25.00.00 MOD END
				
			}
			
			super.logPrint.printDebugLog("全戸一括or居住者一括 独自実装終了 積算対象外");
			//積算対象チェックを独自実装により行ったため、以降の処理は必要なし、よって次のレコード判定処理へ
			return null;
		}
		//-------------------------------------------------------全戸一括時or居住者一括時独自実装 start end-------------------------------------------------------
		// v9.00.00 2014/07/14 Add End
		
		if (JBSbatKKConst.SVC_KEI_STAT_UK_ZM.equals(svcKeiStat))
		{
			// "010"(受付済)
			super.logPrint.printDebugLog("execute() end:サービス契約ステータス不可");
			return null;
		}
		else if (JBSbatKKConst.SVC_KEI_STAT_SHOSA_ZM.equals(svcKeiStat))
		{
			// "020"(照査済)
			
			if (!"1".equals(shosaDslFinCd))
			{
				// "1"(照査OK)以外
				super.logPrint.printDebugLog("execute() end:照査OK以外");
				return null;
			}
			out = chkShosaYmd(shosaYmd);
		}
		else if (JBSbatKKConst.SVC_KEI_STAT_CNC_ZM.equals(svcKeiStat) ||
				JBSbatKKConst.SVC_KEI_STAT_SVCTK_CHU.equals(svcKeiStat) ||
				JBSbatKKConst.SVC_KEI_STAT_PAUSE_STP_CHU.equals(svcKeiStat) ||
				JBSbatKKConst.SVC_KEI_STAT_STP_CHU.equals(svcKeiStat))
		{
			// "030"(締結済)
			// "100"(サービス提供中)
			// "210"(休止/中断中)
			// "220"(停止中)
			out = chkShosaYmd(shosaYmd);
		}
		else if (JBSbatKKConst.SVC_KEI_STAT_DLS_ZM.equals(svcKeiStat))
		{
			// "910"(解約済)
			out = chkShosaYmdAndSvcDslKisanYmd(shosaYmd, svcDslKisanYmd);
		}
		else
		{
			// その他（処理なし）
			super.logPrint.printDebugLog("execute() end");
			return null;
		}

		if (out)
		{
			// 出力要と判定された場合
			super.logPrint.printDebugLog("execute() end:出力");
// v25.00.00 MOD START
//			return setOutputItem(inMap, dbOutMap);
			return setOutputItem(inMap);
// v25.00.00 MOD END
		}
	
		super.logPrint.printDebugLog("execute() end");
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
// v25.00.00 DEL START
//		db_KK_T_SVC_KEI.close();
// v25.00.00 DEL END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_191)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	課金先適用開始年月日
	 *		 	課金先適用終了年月日
	 *		 	サービス課金開始年月日
	 *		 	サービス課金終了年月日
	 *		 	適用開始年月日
	 *		 	適用終了年月日
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
// v25.00.00 DEL START
//	private void executeKK_T_SVC_KEI_KK_SELECT_191(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//		paramList.setValue(param[2].toString());
//		paramList.setValue(param[3].toString());
//		paramList.setValue(param[4].toString());
//		paramList.setValue(param[5].toString());
//		paramList.setValue(param[6].toString());
//		paramList.setValue(param[7].toString());
//		paramList.setValue(param[8].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_191);
//	}
// v25.00.00 DEL END
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * サービス契約テーブルの検索を行います。
	 * <br>
	 * @param svcKeiNo サービス契約番号
	 * @throws Exception 
	 */
// v25.00.00 DEL START
//	private void searchKK_T_SVC_KEI(String svcKeiNo) throws Exception
//	{
//		// 条件項目を設定します
//		Object[] prm = new Object[]{
//				super.opeDate,
//				super.opeDate,
//				super.opeDate,
//				super.opeDate,
//				super.opeDate,
//				super.opeDate,
//				svcKeiNo,
//				super.opeDate,
//				super.opeDate
//		};
//	
//		// 検索実行
//		executeKK_T_SVC_KEI_KK_SELECT_191(prm);
//	}
// v25.00.00 DEL END
	
	/**
	 * 照査年月日と料金月末日のチェックを行います。
	 * <br>
	 * @param shosaYmd 照査年月日
	 * @return true:照査年月日≦料金月末日　false：以外
	 */
	private boolean chkShosaYmd(String shosaYmd)
	{
		super.logPrint.printDebugLog("chkShosaYmd() shosaYmd.compareTo(pMonthLastDate)=" + shosaYmd.compareTo(pMonthLastDate));

		if (shosaYmd.compareTo(pMonthLastDate) <= 0)
		{
			return true;
		}
		return false;
	}

	/**
	 * 照査年月日と料金月末日かつサービス解約起算年月日と料金月初日のチェックを行います。
	 * <br>
	 * @param shosaYmd 照査年月日
	 * @param svcDslKisanYmd サービス解約起算年月日
	 * @return true:照査年月日≦料金月末日かつサービス解約起算年月日＞料金月初日　false：以外
	 */
	private boolean chkShosaYmdAndSvcDslKisanYmd(String shosaYmd, String svcDslKisanYmd)
	{
		super.logPrint.printDebugLog("chkShosaYmdAndSvcDslKisanYmd() shosaYmd.compareTo(pMonthLastDate)=" + shosaYmd.compareTo(pMonthLastDate));
		super.logPrint.printDebugLog("chkShosaYmdAndSvcDslKisanYmd() svcDslKisanYmd.compareTo(pMonthFirstDate)=" +
				svcDslKisanYmd.compareTo(pMonthFirstDate));

		if ((shosaYmd.compareTo(pMonthLastDate) <= 0) && (svcDslKisanYmd.compareTo(pMonthFirstDate) > 0))
		{
			return true;
		}
		return false;
	}

	/**
	 * 出力情報を設定します。
	 * <br>
	 * @param inMap 入力電文
	 * @param dbOutMap ＤＢ検索結果
	 * @return JBSbatOutputItem 出力情報
	 * @throws Exception 
	 */
// v25.00.00 MOD START
//	private JBSbatOutputItem setOutputItem(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbOutMap) throws Exception
	private JBSbatOutputItem setOutputItem(JBSbatServiceInterfaceMap inMap) throws Exception
// v25.00.00 MOD END
	{
		// 出力共通電文を生成する。
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
// v25.00.00 MOD START
//		outmap.setString(JBSbatACIFI005.HAPIEPOINT_KEI_NO, JBSbatStringUtil.Rtrim(inMap.getString("HPK_HAPIE_POINT_KEI_NO")));
//// v4.00.01 2013.05.27 MOD Start (はぴｅ番号についてもトリムを実施する)
////		outmap.setString(JBSbatACIFI005.HAPIE_NO,          inMap.getString("HPK_HAPIE_NO"));
//		outmap.setString(JBSbatACIFI005.HAPIE_NO,          JBSbatStringUtil.Rtrim(inMap.getString("HPK_HAPIE_NO")));
//// v4.00.01 2013.05.27 MOD End
//		outmap.setString(JBSbatACIFI005.EOID,              JBSbatStringUtil.Rtrim(dbOutMap.getString("CK0011_EOID")));
//		outmap.setString(JBSbatACIFI005.SYSID,             JBSbatStringUtil.Rtrim(dbOutMap.getString("CK0011_SYSID")));
//		outmap.setString(JBSbatACIFI005.SEIKY_KEI_NO,      JBSbatStringUtil.Rtrim(dbOutMap.getString("KKN_SEIKY_KEI_NO")));
		outmap.setString(JBSbatACIFI005.HAPIEPOINT_KEI_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.HAPIE_POINT_KEI_NO)));
		outmap.setString(JBSbatACIFI005.HAPIE_NO,          JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.HAPIE_NO)));
		outmap.setString(JBSbatACIFI005.EOID,              JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.EOID)));
		outmap.setString(JBSbatACIFI005.SYSID,             JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.SYSID)));
		outmap.setString(JBSbatACIFI005.SEIKY_KEI_NO,      JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.SEIKY_KEI_NO)));
//		outmap.setString(JBSbatACIFI005.SVC_KEI_NO,        JBSbatStringUtil.Rtrim(inMap.getString("HTS_SKSN_TRGT_SVC_KEI_NO")));
		outmap.setString(JBSbatACIFI005.SVC_KEI_NO,        JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.SKSN_TRGT_SVC_KEI_NO)));
//		outmap.setString(JBSbatACIFI005.PCRS_CD,           JBSbatStringUtil.Rtrim(dbOutMap.getString("SVK_PCRS_CD")));
//		outmap.setString(JBSbatACIFI005.PPLAN_CD,          JBSbatStringUtil.Rtrim(dbOutMap.getString("SVK_PPLAN_CD")));
//
//		String kanyuKeiPayHoshikiCd = JBSbatStringUtil.Rtrim(dbOutMap.getString("TKH_KANYU_KEI_PAY_HOSHIKI_CD"));
		outmap.setString(JBSbatACIFI005.PCRS_CD,           JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.PCRS_CD)));
		outmap.setString(JBSbatACIFI005.PPLAN_CD,          JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.PPLAN_CD)));
		String kanyuKeiPayHoshikiCd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM709.KANYU_KEI_PAY_HOSHIKI_CD));
// v25.00.00 MOD END
		String val = "0";
		if (JBSbatKKConst.KEI_PAY_HOSHIKI_CD_ZENKO.equals(kanyuKeiPayHoshikiCd)
				|| JBSbatKKConst.KEI_PAY_HOSHIKI_CD_KYOJU.equals(kanyuKeiPayHoshikiCd))
		{
			val = "1";
		}
		outmap.setString(JBSbatACIFI005.MNS_KEI_KUBUN, val);

		//出力フラグを設定
		outmap.setOutFlg(true);
		//出力共通電文に入出力インターフェースを設定する。
		outputItem.addOutMapList(outmap);
		return outputItem;
	}
	
	// v9.00.00 2014/07/14 Add Start
	
	/**
	 * 積算対象条件判定処理の分岐をコントロールするため、みなしポイントが発生する処理の判定を行う
	 * 判定方法
	 * 加入契約支払方式コード="003"全戸一括、"004"居住者一括
	 * @param kanyuKeiPayHoshikiCd
	 * @return true 全戸一括or居住者一括 false 全戸一括or居住者一括以外
	 */
	private boolean isSksnCheckTgForMinasi(String kanyuKeiPayHoshikiCd){
	
		
		// 積算対象条件判定処理を振り分けるため、加入契約支払方式コードが"003"全戸一括であるかの判定を行う。
		if (JBSbatKKConst.KEI_PAY_HOSHIKI_CD_ZENKO.equals(kanyuKeiPayHoshikiCd)||
				JBSbatKKConst.KEI_PAY_HOSHIKI_CD_KYOJU.equals(kanyuKeiPayHoshikiCd)){
			//全戸一括or居住者一括であった場合、独自実装となるため、trueを返却する。
			return true;
		}

		return false;
	}
	
	/**
	 * 積算対象であるかの判定を行うため、サービス課金開始年月日と料金月末日のチェックを行う。
	 * サービス課金開始年月日が空白or nullの場合、積算対象外となるサービス契約ステータスが（010,020,030,910）の時
	 * サービス契約ステータスが"910"解約済の場合のみ、サービス解約起算年月日の判定を行う。
	 * 上記以外は、サービス課金開始年月日≦料金月末日の判定のみ行う。
	 * <br>
	 * @param svcChrgStaYmd サービス課金開始年月日
	 * @param svcKeiStat    サービス契約ステータス
	 * @param svcDslKisanYmdサービス解約起算年月日
	 * @return true"積算対象" false "積算対象外"
	 */
	private boolean chkSvcChrgStaYmd(String svcChrgStaYmd,String svcKeiStat,String svcDslKisanYmd)
	{
		super.logPrint.printDebugLog("chkSvcChrgStaYmd() svcChrgStaYmd.compareTo(pMonthLastDate)=" + svcChrgStaYmd.compareTo(pMonthLastDate));

		
		//サービス課金開始年月日がnull or 空白の時は、積算対象外のため、falseを返却する。
		if(JKKStringUtil.isNullBlank(svcChrgStaYmd)){
			
			super.logPrint.printDebugLog("サービス課金開始年月日が空白");
			return false;
		}
		
		//サービス契約ステータスが解約済の場合、解約起算年月日の判定を行う
		if(JBSbatKKConst.SVC_KEI_STAT_DLS_ZM.equals(svcKeiStat)){

			//サービス課金開始年月日≦料金月末日 且つ > サービス解約起算年月日の場合積算対象である時true"積算対象"を返却
			if (svcChrgStaYmd.compareTo(pMonthLastDate) <= 0
					&& (svcDslKisanYmd.compareTo(pMonthFirstDate) > 0)) {
				return true;
			}
			
		}else{
			
			//サービス契約ステータスが解約済以外の場合は、サービス課金開始年月日≦料金月末日の判定を行う
			if (svcChrgStaYmd.compareTo(pMonthLastDate) <= 0)
			{
				//サービス課金開始年月日≦料金月末日の時、積算対象となるため、trueを返却する。
				return true;
			}
		}
		//積算対象ではない場合falseを返却
		return false;
	}

	// v9.00.00 2014/07/14 Add End
}
