/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKAdchgCancelHakkoSODMappingCC
*	ソースファイル名：JKKAdchgCancelHakkoSODMappingCC.java
*	作成者			：FJ
*	日付			：2011年07月24日
*＜機能概要＞
*	サービスオーダ発行取消前処理CC（住変キャンセル）です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v26.00.00	2016/08/03	FJ)藤本		【ANK-2765-00-00】認証IDの統一化
*   v61.00.00	2023/02/08	FJ)西窪	    【ANK-4315-00-00】【eo定期】 eoホームゲートウェイ導入対応
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.JKKAdchgHakkoSODConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKHakkoSODConstCC;
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;

import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0161B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0351B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2101B001CBSMsg1List;

public class JKKAdchgCancelHakkoSODMappingCC extends AbstractCommonComponent{

	/** セッションハンドル保持域 */
	private static ThreadLocal<SessionHandle> keepSesHandle = new ThreadLocal<SessionHandle>()
	{
		// 保持域への設定はinitialValue()ではなくset()を使用する為、
		// initialValue()は実装しない
	};


	/**
	 * サービスオーダ発行マッピング処理
	 * <br>
	 * パラメータの件数分<br>
	 * サービスオーダ登録処理を呼び出します。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得・書込用I/F
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite mapping(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
// OM-2013-0004303対応 20131120 星野 ADD START
		try {
// OM-2013-0004303対応 20131120 星野 ADD END
	
		
			/** 事前準備 */
			HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);
			HashMap<String, String> condMap = new HashMap<String, String>();
			HashMap<String, Object> reqMap;
			ArrayList<HashMap<String, Object>> opSvcKeiList = null;
			Map<?, ?> resMap;
			
			ArrayList<HashMap<String, Object>> odr_hakko_svc_kei_list = (ArrayList<HashMap<String, Object>>) paramMap.get("odr_hakko_svc_kei_list");
			if(odr_hakko_svc_kei_list==null || odr_hakko_svc_kei_list.isEmpty()){
				return param;
			}
			
			HashMap<String, Object> trgt_data_map = (HashMap<String, Object>)odr_hakko_svc_kei_list.get(0);
			if(trgt_data_map==null || trgt_data_map.isEmpty()){
				return param;
			}
			
			ArrayList<HashMap<String, Object>> hakko_trgr_trgt_list = (ArrayList<HashMap<String, Object>>) trgt_data_map.get("hakko_trgr_trgt_list");
			if(hakko_trgr_trgt_list==null || hakko_trgr_trgt_list.isEmpty()){
				return param;
			}
			
			HashMap<String, Object> hakko_trgt_trgt_data_map = (HashMap<String, Object>)hakko_trgr_trgt_list.get(0);
			if(hakko_trgt_trgt_data_map==null || hakko_trgt_trgt_data_map.isEmpty()){
				return param;
			}
			
			ArrayList<HashMap<String, Object>> kiki_trgt_data_list = (ArrayList<HashMap<String, Object>>) hakko_trgt_trgt_data_map.get("kiki_trgt_data_list");
			ArrayList<HashMap<String, Object>> opt_trgt_data_list = (ArrayList<HashMap<String, Object>>) hakko_trgt_trgt_data_map.get("opt_trgt_data_list");
	
	//		if(kiki_trgt_data_list==null || kiki_trgt_data_list.isEmpty()){
				
	//.		} else{
	//		}
	
			/** リソース保持 */
			// セッションハンドルをローカル変数に保持
			keepSesHandle.set(handle);
	
			// SCリクエストInvokerを取得
			ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
	
			// 住所変更明細取得処理
			JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
	
			/** 一覧照会*/
			
			// 光ネット変更区分を取得
			HashMap<String, Object> jdgChgDivNetMap = null;
			String jdgChgDivNet = null;
			
			jdgChgDivNetMap = (HashMap<String, Object>)param.getData("KKSV072926CC");
			
			jdgChgDivNet = (String)jdgChgDivNetMap.get("jdg_chg_div_net");
	
			trgt_data_map.put("use_svc_chg_div", jdgChgDivNet);
			// ＳＹＳＩＤ
			String sysid = (String)paramMap.get("sysid");
			// 異動区分
			String ido_div = (String)paramMap.get("ido_div");
	
			// SOD基本情報
			HashMap<String, Object> sod_kihon_info = new HashMap<String, Object>();
			// 共通＿ＳＹＳＩＤ → サービスオーダ発行ＣＣ（ネット）.SYSID
			sod_kihon_info.put("sysid", sysid);
			// 共通＿異動区分 → サービスオーダ発行ＣＣ（ネット）.異動区分
			sod_kihon_info.put("ido_div", ido_div);
	
			// サービス契約番号（変更前）
			String chbf_svc_kei_no = (String)paramMap.get("svc_kei_no");
			// サービス契約番号（変更後）
			String chaf_svc_kei_no = (String)paramMap.get("saki_svc_kei_no");
	
			if((chbf_svc_kei_no == null || "".equals(chbf_svc_kei_no)) && (chaf_svc_kei_no == null || "".equals(chaf_svc_kei_no)))
			{
				return param;
			}
					
			if(chbf_svc_kei_no == null || "".equals(chbf_svc_kei_no))
			{
				chbf_svc_kei_no = chaf_svc_kei_no;
			}
	
			if(chaf_svc_kei_no == null || "".equals(chaf_svc_kei_no) )
			{
				chaf_svc_kei_no = chbf_svc_kei_no;
			}
			
			
			// サービス契約情報
			HashMap<String, Object> svc_kei_info = new HashMap<String, Object>();
	
			// 変更前サービス番号
			svc_kei_info.put("svc_kei_no", chbf_svc_kei_no);
	
			// 変更前サービス契約の一意照会を呼び出す。
			condMap.clear();
			condMap.put(JKKAdchgMapperCC.COND_KEY_SVC_KEI_NO, chbf_svc_kei_no);
			condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE , JCCBPCommon.getOpeDate(null));
			reqMap = mapper.setEKK0081A010(param, fixedText, condMap);
			resMap = scCall.run(reqMap, keepSesHandle.get());
			HashMap<String, Object> kk0081_a010_map = mapper.getEKK0081A010(param, fixedText, resMap);
			mapper.scResultCheck(param);
			
			String chbfGeneAddDtm = (String)kk0081_a010_map.get(EKK0081A010CBSMsg1List.GENE_ADD_DTM);
			
			// 変更前サービス契約世代登録年月日
			svc_kei_info.put("chbf_svc_kei_gene_add_dtm", chbfGeneAddDtm);
	
			// 変更後サービス番号
			svc_kei_info.put("saki_svc_kei_no", chaf_svc_kei_no);
			
			// 変更後サービス契約の一意照会を呼び出す。
			condMap.clear();
			condMap.put(JKKAdchgMapperCC.COND_KEY_SVC_KEI_NO, chaf_svc_kei_no);
			condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE , JCCBPCommon.getOpeDate(null));
			reqMap = mapper.setEKK0081A010(param, fixedText, condMap);
			resMap = scCall.run(reqMap, keepSesHandle.get());
			kk0081_a010_map = mapper.getEKK0081A010(param, fixedText, resMap);
			mapper.scResultCheck(param);
	
			String chafGeneAddDtm = (String)kk0081_a010_map.get(EKK0081A010CBSMsg1List.GENE_ADD_DTM);
			// 変更前サービス契約世代登録年月日
			svc_kei_info.put("chaf_svc_kei_gene_add_dtm", chafGeneAddDtm);
	
			// 変更後のサービス契約番号で、サービス契約内訳の一覧照会を行う。
			condMap.clear();
			condMap.put(JKKAdchgMapperCC.COND_KEY_SVC_KEI_NO, chaf_svc_kei_no);
			reqMap = mapper.setEKK0161B004(param, fixedText, condMap);
			resMap = scCall.run(reqMap, keepSesHandle.get());
			ArrayList<HashMap<String, Object>> kk0161_b004_map_list = mapper.getEKK0161B004(param, fixedText, resMap);
			mapper.scResultCheck(param);
	
			
			// 更新前サービス契約内訳番号
			String svc_kei_uwck_bf = "";
			// 更新前サービス契約内訳番号世代登録年月日
			String svc_kei_uwck_bf_gen = "";
			// 更新後サービス契約内訳番号
			String svc_kei_uwck_af = "";
			// 更新後サービス契約内訳番号世代登録年月日
			String svc_kei_uwck_af_gen = "";
			
// OM-2013-0005099対応 20131211 星野 ADD START
			boolean ucwk_chg_flg = false;
// OM-2013-0005099対応 20131211 星野 ADD END
			// 住所変更区分が1（変更）の場合、サービス契約内訳が２件以上取得できているので、データを確認する。
			if(kk0161_b004_map_list != null && kk0161_b004_map_list.size() > 1)
			{
				for(int i = 0 ; i < kk0161_b004_map_list.size() ; i ++)
				{
					HashMap<String,Object> kk0161_b001_map = kk0161_b004_map_list.get(i);
					// サービス提供中のデータが住所変更サービス契約内訳番号
					String svkei_uwck_stat = (String)kk0161_b001_map.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT);
					// サービス提供中でないサービス契約内訳の番号（キャンセル済になっている）が転居先のサービス契約内訳番号
					if(!"100".equals(svkei_uwck_stat))
					{
						svc_kei_uwck_af = (String)kk0161_b001_map.get(EKK0161B001CBSMsg1List.SVC_KEI_UCWK_NO);
						svc_kei_uwck_af_gen = (String)kk0161_b001_map.get(EKK0161B001CBSMsg1List.GENE_ADD_DTM);
					}
					else
					{
						svc_kei_uwck_bf = (String)kk0161_b001_map.get(EKK0161B001CBSMsg1List.SVC_KEI_UCWK_NO);
						svc_kei_uwck_bf_gen = (String)kk0161_b001_map.get(EKK0161B001CBSMsg1List.GENE_ADD_DTM);
					}
				}
				
// OM-2013-0005099対応 20131211 星野 ADD START
				ucwk_chg_flg = true;
// OM-2013-0005099対応 20131211 星野 ADD END
			}
			else
			{
				if(kk0161_b004_map_list != null)
				{
					svc_kei_uwck_bf = (String)kk0161_b004_map_list.get(0).get(EKK0161B001CBSMsg1List.SVC_KEI_UCWK_NO);
					svc_kei_uwck_bf_gen = (String)kk0161_b004_map_list.get(0).get(EKK0161B001CBSMsg1List.GENE_ADD_DTM);
					svc_kei_uwck_af = (String)kk0161_b004_map_list.get(0).get(EKK0161B001CBSMsg1List.SVC_KEI_UCWK_NO);
					svc_kei_uwck_af_gen = (String)kk0161_b004_map_list.get(0).get(EKK0161B001CBSMsg1List.GENE_ADD_DTM);
				}
			}
	
			// サービス契約内訳情報
			HashMap<String, Object> svc_kei_ucwk_info = new HashMap<String, Object>();
			
			// ｅｏ光ネット＿変更前＿サービス契約内訳番号 → サービスオーダ発行ＣＣ（ネット）.サービス契約内訳情報.サービス契約内訳番号
			svc_kei_ucwk_info.put( "svc_kei_ucwk_no", svc_kei_uwck_bf);
			svc_kei_ucwk_info.put( "chbf_svc_kei_ucwk_gene_add_dtm", svc_kei_uwck_bf_gen);
			svc_kei_ucwk_info.put( "saki_svc_kei_ucwk_no", svc_kei_uwck_af);
			svc_kei_ucwk_info.put( "chaf_svc_kei_ucwk_gene_add_dtm", svc_kei_uwck_af_gen);
			
// OM-2013-0005099対応 20131211 星野 ADD START
			// SOD基本情報へルータ向け接続情報・変更ＳＯＤ発行の処理フラグを設定
			// 内訳が払い出されてた場合はtrue
			if (ucwk_chg_flg) {
				sod_kihon_info.put(JKKAdchgHakkoSODConstCC.INFO_KKSV0202_SYORI_DIV, JKKAdchgHakkoSODConstCC.SYORI_DIV_ODR_163);
			} else {
				sod_kihon_info.put(JKKAdchgHakkoSODConstCC.INFO_KKSV0202_SYORI_DIV, JKKAdchgHakkoSODConstCC.SYORI_DIV_NO_BBR_ODR);
			}
// OM-2013-0005099対応 20131211 星野 ADD END
	
	
			// オプションサービス契約取得
			//料金コースコードを取得
			String prcs_cd = (String)kk0081_a010_map.get(EKK0081A010CBSMsg1List.PCRS_CD);
			
			// 転居先がマンションの場合、ダイアルアップを取得。
			condMap = new HashMap<String, String>();
			condMap.put(JKKAdchgMapperCC.COND_KEY_SVC_KEI_NO, chaf_svc_kei_no);
	
			if ("4".equals(jdgChgDivNet))
			{
				//光ネット解約／新規の場合、ダイヤルアップ接続を取得
				condMap.put(JKKAdchgMapperCC.COND_KEY_OP_SVC_CD, "B020");
			}
			else
			{
				//マルチセッションを取得
				condMap.put(JKKAdchgMapperCC.COND_KEY_OP_SVC_CD, "B015");
			}
			
			// 
			reqMap = mapper.setEKK0351B002(param, fixedText, condMap);
			resMap = scCall.run(reqMap, handle);
			opSvcKeiList = mapper.getEKK0351B002( param, fixedText, resMap );
			mapper.scResultCheck( param );
			
			if (opSvcKeiList.size() == 0) {
				opSvcKeiList = null;
			}
			
			HashMap<String, Object> opMap = null;
	
			if(opSvcKeiList != null)
			{
				opMap = opSvcKeiList.get(0);
			}
			HashMap<String, Object> opt_trgt_data_map = new HashMap<String, Object>();
	
			HashMap<String, Object> opsvkei_info = null;
			
			if (opMap != null) {
				opsvkei_info = new HashMap<String, Object>();
				
				String chaf_opsvkei_no = (String)opMap.get(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO);
				String chaf_opsvkei_gene_add_dtm = (String)opMap.get(EKK0351B002CBSMsg1List.GENE_ADD_DTM);
				String opSvcCd = (String)opMap.get(EKK0351B002CBSMsg1List.OP_SVC_CD);;
	
				opsvkei_info.put( "chaf_opsvkei_no", (String)opMap.get(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO));
				opsvkei_info.put( "chaf_opsvkei_gene_add_dtm", (String)opMap.get(EKK0351B002CBSMsg1List.GENE_ADD_DTM));
				opsvkei_info.put( "chaf_opsvkei_gene_add_dtm", (String)opMap.get(EKK0351B002CBSMsg1List.GENE_ADD_DTM));
	
				// オプションサービス契約情報.変更後オプションサービス契約番号
				opsvkei_info.put( "chaf_opsvkei_no", chaf_opsvkei_no );
				// オプションサービス契約情報.変更後オプションサービス契約世代登録年月日時分秒
				opsvkei_info.put( "chaf_opsvkei_gene_add_dtm", chaf_opsvkei_gene_add_dtm );
				// オプションサービス契約情報.オプションサービスコード
				opsvkei_info.put( "opsvkei_cd", opSvcCd );
			}
	
			HashMap<String, Object> sod_map_op = new HashMap<String, Object>();
			sod_map_op.put( "sod_kihon_info", sod_kihon_info );
			sod_map_op.put( "svc_kei_info", svc_kei_info);
			sod_map_op.put( "svc_kei_ucwk_info", svc_kei_ucwk_info);
			sod_map_op.put( "opsvkei_info", opsvkei_info );
	
			opt_trgt_data_list.add( sod_map_op );
	
	
			//機器提供サービス契約の取得
			// EKK2101B001 住所変更明細一覧照会
			condMap.clear();
			condMap.put(JKKAdchgMapperCC.COND_KEY_ADCHG_NO , (String)paramMap.get("adchg_no"));
			condMap.put(JKKAdchgMapperCC.COND_KEY_ADCHG_DTL_SBT_CD, "03");
			reqMap = mapper.setEKK2101B001(param, fixedText, condMap);
			resMap = scCall.run(reqMap, keepSesHandle.get());
			ArrayList<HashMap<String, Object>> kk2101_b001_map_list = mapper.getEKK2101B001(param, fixedText, resMap);
			mapper.scResultCheck(param);
			
			for(HashMap<String, Object>kk2101_b001_map : kk2101_b001_map_list)
			{
				//
				String chbfkikiSvcKeiNo = (String)kk2101_b001_map.get(EKK2101B001CBSMsg1List.CHG_TG_KEI_NO);
				String chafkikiSvcKeiNo = (String)kk2101_b001_map.get(EKK2101B001CBSMsg1List.CHG_TG_KEI_NO);
				
				// 機器提供サービス契約の一意照会を実行
				// EKK2101B001 住所変更明細一覧照会
				condMap.clear();
				condMap.put(JKKAdchgMapperCC.COND_KEY_KKTK_SVC_KEI_NO, chbfkikiSvcKeiNo);
				condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, JCCBPCommon.getOpeDate(null));
				reqMap = mapper.setEKK0341A010(param, fixedText, condMap);
				resMap = scCall.run(reqMap, keepSesHandle.get());
				HashMap<String, Object> kk0341_a001_map = mapper.getEKK0341A010(param, fixedText, resMap);
				mapper.scResultCheck(param);
				
// OM-2013-0005099対応 20131212 星野 ADD START
				String taknKikiSbtCd = (String)kk0341_a001_map.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD);
// IT1-2013-0001749 (ANK-1578-00-00) 2013.12.25 Y.Kanata MOD START
//				if(!"F0".equals(taknKikiSbtCd)){
				// ANK-4315-00-00 MOD START
				if(!"F0".equals(taknKikiSbtCd) && !"R0".equals(taknKikiSbtCd) && !"S0".equals(taknKikiSbtCd)){
				// ANK-4315-00-00 MOD END
// IT1-2013-0001749 (ANK-1578-00-00) 2013.12.25 Y.Kanata MOD END
					continue;
				}
// OM-2013-0005099対応 20131212 星野 ADD END
				
				String chbfKktkGeneAddDtm = (String)kk0341_a001_map .get(EKK0341A010CBSMsg1List.GENE_ADD_DTM);
				String chafKktkGeneAddDtm = (String)kk0341_a001_map .get(EKK0341A010CBSMsg1List.GENE_ADD_DTM);
				
				// 機器提供サービス情報
				HashMap<String, Object> kktsvkei_info = new HashMap<String, Object>();
				
				// 利用中機器＿変更前＿機器提供サービス契約番号 → サービスオーダ発行ＣＣ（ネット）.機器提供サービス契約情報.変更前機器提供サービス契約番号
				kktsvkei_info.put("chbf_kktsvkei_no", chbfkikiSvcKeiNo);
				// 利用中機器＿変更後＿機器提供サービス契約番号 → サービスオーダ発行ＣＣ（ネット）.機器提供サービス契約情報.変更前機器提供サービス契約番号
				kktsvkei_info.put("chaf_kktsvkei_no", chafkikiSvcKeiNo);
// OM-2013-0005099対応 20131212 星野 ADD START
				kktsvkei_info.put("chbf_kktsvkei_gene_add_dtm", chbfKktkGeneAddDtm);
				kktsvkei_info.put("chaf_kktsvkei_gene_add_dtm", chafKktkGeneAddDtm);
// OM-2013-0005099対応 20131212 星野 ADD END
				
				HashMap<String, Object> sod_map_kiki = new HashMap<String, Object>();
				sod_map_kiki.put( "sod_kihon_info", sod_kihon_info );
				sod_map_kiki.put( "svc_kei_info", svc_kei_info);
				sod_map_kiki.put( "svc_kei_ucwk_info", svc_kei_ucwk_info);
				sod_map_kiki.put( "kktsvkei_info", kktsvkei_info );
				
				kiki_trgt_data_list.add( sod_map_kiki );
			}
			
			return param;
			
// OM-2013-0004303対応 20131120 星野 ADD START
		} finally {

			// ・セッションハンドル保持域
			if(keepSesHandle.get() != null){
				keepSesHandle.remove();
			}
		}

// OM-2013-0004303対応 20131120 星野 ADD END
	}

	// ANK-2765-00-00 ADD START
	/**
	 * サービスオーダ発行マッピング処理(hakkoCourseChgSODメソッド用)
	 * <br>
	 * JKKAdchgCancelHakkoSODCC.hakkoCourseChgSODメソッド用のパラメータをマッピングします。<br>
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得・書込用I/F
	 * @throws Throwable 異常が発生した場合
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite mappingCourseChg(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);
		if (null == paramMap)
		{
			paramMap = new HashMap<String, Object>();
		}

		// 住所変更キャンセルSOD発行のマッピング情報を取得
		HashMap kksv072942cc = (HashMap)param.getData("KKSV072942CC");

		// サービス契約番号（変更前）
		String svcKeiNo = (String)kksv072942cc.get("svc_kei_no");

		// 住所変更キャンセルSOD発行(hakkoCourseChgSODメソッド用)にマッピング
		paramMap.put("svc_kei_no", svcKeiNo);

		param.setData(fixedText, paramMap);

		return param;
	}
	// ANK-2765-00-00 ADD END

	/**
	 * サービス種類判定処理(料金コースコード)
	 * <br>
	 * 料金コースコードよりサービス種類を判定します。<br>
	 * <br>
	 * @return サービス種類コード
	 */
	private String jdgSvcKind_PcrsCd(String pcrs_cd)
	{
		String svc_kind = JKKHakkoSODConstCC.SVC_KIND_ELSE;
		
		// ネットの場合
		if (JKKHakkoSODConstCC.PCRS_CD_100M.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_100M_PRM.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_1G.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_100M_VPN.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_200M.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_MEZON_100M.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_MEZON_100M_PRM.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_MEZON_1G.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_MEZON_200M.equals(pcrs_cd))
		{
			svc_kind = JKKHakkoSODConstCC.SVC_KIND_NET;	// eo光ネット
		}
		// モバイルの場合
		else if (JKKHakkoSODConstCC.PCRS_CD_EMOBILE_7M.equals(pcrs_cd) ||
					JKKHakkoSODConstCC.PCRS_CD_EMOBILE_21M.equals(pcrs_cd) ||
					JKKHakkoSODConstCC.PCRS_CD_UQWIMAX_B.equals(pcrs_cd) ||
					JKKHakkoSODConstCC.PCRS_CD_UQWIMAX_W.equals(pcrs_cd) ||
					JKKHakkoSODConstCC.PCRS_CD_WIFISPOT.equals(pcrs_cd) ||
					// ANK-0099-00-00 2012/05/25 kitatani start
					JKKHakkoSODConstCC.PCRS_CD_MAILADDRESS.equals(pcrs_cd))
					// ANK-0099-00-00 2012/05/25 kitatani end
		{
			svc_kind = JKKHakkoSODConstCC.SVC_KIND_MOB;	// eo光モバイル
		}
		// ｅｏ光電話
		else if (JKKHakkoSODConstCC.PCRS_CD_TEL_1BAN.equals(pcrs_cd) ||
					JKKHakkoSODConstCC.PCRS_CD_TEL_2BAN.equals(pcrs_cd))
		{
			svc_kind = JKKHakkoSODConstCC.SVC_KIND_TEL;	// eo光電話
		}
		// ｅｏＡＤＳＬ
		else if (JKKHakkoSODConstCC.PCRS_CD_ADSL_EACCESS12M1.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_EACCESS12M2.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_EACCESS24M1.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_EACCESS24M2.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_EACCESS1M1.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_EACCESS1M2.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_EACCESS40M1.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_EACCESS40M2.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_EACCESS50M1.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_EACCESS50M2.equals(pcrs_cd) ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_FURETTSU.equals(pcrs_cd))
		{
			svc_kind = JKKHakkoSODConstCC.SVC_KIND_ADSL;	// eoADSL
		}
		//ネット マンションタイプ
		else if	(JKKHakkoSODConstCC.PCRS_CD_MANS_PRI_VDSL1.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_PRI_VDSL2.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_PRI_ETHER.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_VDSL2.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_VDSL3.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_VDSL4.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_VDSL5.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_METHER.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_GETHER.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_MHIKARI.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_GHIKARI.equals(pcrs_cd))
		{
			svc_kind = JKKHakkoSODConstCC.SVC_KIND_NET;	// eo光ネット
		}

		return svc_kind;
	}

	/**
	 * サービス種類判定処理(料金コースコード)
	 * <br>
	 * 料金コースコードよりサービス種類を判定します。<br>
	 * <br>
	 * @return サービス種類コード
	 */
	private boolean isSvcKind_Mans(String pcrs_cd)
	{
		if	(JKKHakkoSODConstCC.PCRS_CD_MANS_PRI_VDSL1.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_PRI_VDSL2.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_PRI_ETHER.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_VDSL2.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_VDSL3.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_VDSL4.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_VDSL5.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_METHER.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_GETHER.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_MHIKARI.equals(pcrs_cd) || 
				JKKHakkoSODConstCC.PCRS_CD_MANS_GLB_GHIKARI.equals(pcrs_cd))
		{
			return true;
		}

		return false;
	}

	
}
