/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：顧客契約
*	モジュール名	：KKW02412SFLogic
*	ソースファイル名：KKW02412SFLogic.java
*	作成者			：近藤
*	日付			：2012年08月22日
*＜機能概要＞
*	スマートリンクプレミアム変更機能のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00		2012/08/22	FJ) 近藤	新規作成
*   v4.01		2012/11/05	FJ) 清崎	【ANK-1223-00-00】進捗補足事項編集対応
*   v5.00		2013/01/10	FJ）近藤	【ANK-1173-00-00】スマートリンクプレミアムパックOPの非課金解約対応
*   v5.01		2013/03/31	FJ) 近藤	【OT-2013-0000583】予約取消処理追加
*   v5.02		2013/09/10	FJ) 砂川	【OM-2013-0001096】スマートリンク解約時に割賦契約の請求状態を反映する対応
*   v10.00		2014/08/04	FJ) 山裾	【ANK-1918-00-00】【ＮＯ．２１】ＵＳ管理Ｓ向けｅｏ顧客ＳのＩ／Ｆ改修
*   v10.01		2014/09/13	FJ) 福岡	【IT2-2014-0000308】工事案件CC呼び出し対応
*	v32.00.00   2017/04/28  FJ) 三宅    【ANK-3149-00-00】セキュリティーパック
*	v32.00.01   2017/05/11  FJ) 澤田    【IT1-2017-0000039】予約取消処理追加
*	v32.00.02   2017/06/16  FJ) 藤本    【IT1-2017-0000083】オプションサービス契約解約CCの申込明細番号(入力項目)が上書きされる
*   
**********************************************************************/
package eo.web.webview.KKW02412SF;

import java.util.HashMap;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW02412SF.KKW02412SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0654_KKSV0654OPDBMapper;
import eo.web.webview.mapping.KKSV0655_KKSV0655OPDBMapper;
import eo.web.webview.mapping.KKSV0750_KKSV0750OPDBMapper;
import eo.common.util.JPCDateUtil;

/**
 * <dd>クラス名：スマートリンクプレミアム変更確認ビューロジック
 * <dd>クラス説明：画面上のボタン押下時の各処理を記述します。
 * <dd>備考：
 * @version  4.00 2012/08/22
 * @author   富士通)近藤
 */
@SuppressWarnings("serial")
public class KKW02412SFLogic extends JCCWebBusinessLogic 
{
	/** メッセージ表示用置換文字列 */
	public static final String MSG_INFO_1 = "スマートリンクプレミアム情報の解約";
	public static final String MSG_INFO_2 = "スマートリンクプレミアム情報";
	public static final String MSG_INFO_3 = "解約";
// v5.01 2013/03/31 OT-2013-0000583 ADD START
	public static final String MSG_INFO_4 = "スマートリンクプレミアム情報の予約取消";
	public static final String MSG_INFO_5 = "予約取消";
// v5.01 2013/03/31 OT-2013-0000583 ADD START
	// v5.00 2013/01/10 ANK-1173-00-00 ADD START
	/** 課金有無フラグ */
	public static final String CHRG_M = "0";	// 非課金
	public static final String CHRG_U = "1";	// 課金
	/** 表示形式区分 */
	public static final String DSP_LABEL = "1"; // ラベル表示
	public static final String DSP_RADIO = "0"; // ラジオボタン表示
	// v5.00 2013/01/10 ANK-1173-00-00 ADD END
	// 2013/9/10 OM-2013-0001096 Add Strat
	/** 割賦請求状態フラグ */
	public static final String NON_KAP = "0";		// 割賦なし
	public static final String MI_SEIKY = "1";	// 割賦未請求
	public static final String SEIKY_ZM = "2";	// 割賦請求済
	// 2013/9/10 OM-2013-0001096 Add End
	
	/**
	 * 変更画面初期表示処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionInit() throws Exception
	{
		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 前画面からの引継情報を取得します
		// 画面情報を取得し、サービスフォームBeanに設定。
		JCCWebCommon.getScreenInfo(this);
		
		// v5.00 2013/01/10 ANK-1173-00-00 MOD START
		// 遷移先画面ID取得
		String nextScreenId = commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
// v5.01 2013/04/01 OT-2013-0000583 DELL START
		// 自画面名設定
//		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_NAME_KKW02416);
// v5.01 2013/04/01 OT-2013-0000583 DELL END
		
//		boolean rslt_flg = false;
		
		// DataBean設定処理
		setDataBean(paramBean, nextScreenId);
		
// v5.01 2013/04/01 OT-2013-0000583 ADD START
		String tran_div = bean.sendMessageString(KKW02412SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (JKKCommonConst.OP_TRAN_DIV_DSL.equals(tran_div))
		{
			// 自画面名設定
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW02416);
		}
		else if (JKKCommonConst.OP_TRAN_DIV_RSV_CL.equals(tran_div))
		{
			// 自画面名設定
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW02412);
			// メッセージ用置換文字列
			String[] strL1 = {MSG_INFO_4};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, strL1);
		}
// v5.01 2013/04/01 OT-2013-0000583 ADD END
		
//		rslt_flg = callKKSV0654(paramBean, JPCModelConstant.FUNC_CD_2);
		callKKSV0654(paramBean, JPCModelConstant.FUNC_CD_2);
		// v5.00 2013/01/10 ANK-1173-00-00 MOD END
		
		// v5.00 2013/01/10 ANK-1173-00-00 DEL START
//		// メッセージ表示
//		String[] msgInfo = {MSG_INFO_1};
//		
//		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, msgInfo);
		
		// ワーニングメッセージ表示
//		if (rslt_flg)
//		{
//			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBB400__Q);
//		}
		// v5.00 2013/01/10 ANK-1173-00-00 DEL END
		// v5.00 2013/01/10 ANK-1173-00-00 ADD START
		jdgChrgDsp(paramBean);
		// v5.00 2013/01/10 ANK-1173-00-00 ADD END
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 変更画面「戻る」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionBack() throws Exception
	{
		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを取得し共有フォームBeanの項目に設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	// v5.00 2013/01/10 ANK-1173-00-00 ADD START
	/**
	 * 更新確認画面「修正」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionMod() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 課金有無フラグが課金、かつ表示形式区分がラベルの場合
		if (CHRG_U.equals(paramBean[0].sendMessageString(KKW02412SFConst.CHRG_UM_FLG, X31CWebConst.DATABEAN_GET_VALUE))
				&& DSP_LABEL.equals(paramBean[0].sendMessageString(KKW02412SFConst.LABEL_DSP_KBN, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// メッセージ表示
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBD040__I);
		}
		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを取得し共有フォームBeanの項目に設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW02416);
		// 画面名を共有フォームBeanの項目に設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,JKKScreenConst.SCREEN_NAME_KKW02416);
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 更新確認ボタン押下時にデータの登録を行います。
	 * <br>
	 * @return true/false
	 * @exception Exception
	 */
	public boolean actionUpdCfm() throws Exception
	{
		boolean rslt_flg = false;
		
		rslt_flg = callKKSV0655(JPCModelConstant.FUNC_CD_2);
		
		// メッセージ用置換文字列
		String[] strL1 = {MSG_INFO_1};
		
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, strL1);
		
		// ワーニングメッセージ表示
		if (rslt_flg)
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBB400__Q);
		}
		
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// DataBean設定処理
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_ID_KKW02412);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW02412);
		
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	// v5.00 2013/01/10 ANK-1173-00-00 ADD END
	
	/**
	 * 確定ボタン押下時にデータの登録を行います。
	 * <br>
	 * @return true/false
	 * @exception Exception
	 */
	public boolean actionFix() throws Exception
	{
// v5.01 2013/03/31 OT-2013-0000583 ADD START
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBean
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// 処理区分
		String tran_div = bean.sendMessageString(KKW02412SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (JKKCommonConst.OP_TRAN_DIV_DSL.equals(tran_div))
		{
			// 処理区分：解約
// v5.01 2013/03/31 OT-2013-0000583 ADD END
			callKKSV0655(JPCModelConstant.FUNC_CD_1);
			
			// v5.00 2013/01/10 ANK-1173-00-00 ADD START
			// メッセージ用置換文字列
			String[] strL1 = {MSG_INFO_2 ,MSG_INFO_3};
// v5.01 2013/03/31 OT-2013-0000583 ADD START
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2960__I, strL1);
		}
		else if (JKKCommonConst.OP_TRAN_DIV_RSV_CL.equals(tran_div))
		{
			// 処理区分：予約取消
			callKKSV0750(JPCModelConstant.FUNC_CD_1);
			
			// メッセージ用置換文字列
			String[] strL1 = {MSG_INFO_2 ,MSG_INFO_5};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2960__I, strL1);
		}
// v5.01 2013/03/31 OT-2013-0000583 ADD END
// v5.01 2013/03/31 OT-2013-0000583 DEL START
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
//		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
// v5.01 2013/03/31 OT-2013-0000583 DEL END
		
		// DataBean設定処理
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_ID_KKW02413);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW02413);
// v5.01 2013/03/31 OT-2013-0000583 DEL START
//		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2960__I, strL1);
// v5.01 2013/03/31 OT-2013-0000583 DEL START
		
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		// v5.00 2013/01/10 ANK-1173-00-00 ADD END
		
		return true;
	}
	
	/**
	 * DataBean設定処理（初期表示）<br>
	 * <br>
	 * 画面DataBeanに必要な項目をセットします。<br>
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setDataBean(X31SDataBeanAccess[] paramBean, String nextScreenId)
	{
		// オンライン運用日付取得
		String unyo_ymd = JCCWebCommon.getOpeDate(this, null);
		// 利用終了日
		paramBean[0].sendMessageString(KKW02412SFConst.USE_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);
		// 運用日
		paramBean[0].sendMessageString(KKW02412SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);
		
		// 顧客契約引継リスト取得
		X31SDataBeanAccessArray custKeiHktgiList =  paramBean[0].getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
		// ＳＹＳＩＤ
		String sysid = custKeiHktgiInf.sendMessageString(KKW02412SFConst.SYSID_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW02412SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, sysid);
		// サービス契約番号
		String svc_kei_no = custKeiHktgiInf.sendMessageString(KKW02412SFConst.SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW02412SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_no);
		// 異動区分
		String ido_div = custKeiHktgiInf.sendMessageString(KKW02412SFConst.IDO_DIV_01, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW02412SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, ido_div);
		// オプションサービス契約番号
		String op_svc_kei_no = custKeiHktgiInf.sendMessageString(KKW02412SFConst.OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE, 0);
		paramBean[0].sendMessageString(KKW02412SFConst.OP_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, op_svc_kei_no);
// v5.01 2013/03/31 OT-2013-0000583 ADD START
		// 処理区分
		String tran_div = custKeiHktgiInf.sendMessageString(KKW02412SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW02412SFConst.TRAN_DIV, X31CWebConst.DATABEAN_SET_VALUE, tran_div);
// v5.01 2013/03/31 OT-2013-0000583 ADD END
		// 2012/11/05 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
		// 進捗特記事項１
		paramBean[0].sendMessageString(KKW02412SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, MSG_INFO_2 + MSG_INFO_3);
		// 2012/11/05 [ANK-1223-00-00]進捗補足事項編集対応 ADD END
		
		// v5.00 2013/01/10 ANK-1173-00-00 ADD START
		// サービス課金終了年月日
		paramBean[0].sendMessageString(KKW02412SFConst.SVC_CHRG_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, JPCDateUtil.addDay(unyo_ymd, -1));
		// v5.00 2013/01/10 ANK-1173-00-00 ADD END
		// v5.01 2013/03/31 OT-2013-0000583 ADD START
		// 異動理由コードの設定
		X31SDataBeanAccessArray ido_rsn_list = paramBean[0].getDataBeanArray(KKW02412SFConst.IDO_RSN_LIST);
		
		String ido_rsn_memo = custKeiHktgiInf.sendMessageString(KKW02412SFConst.IDO_RSN_MEMO_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 異動理由コードの要素数を取得
		int cnt = (Integer)custKeiHktgiInf.sendMessage(KKW02412SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_GET_COUNT);
		
		// 異動理由コードの要素数分繰り返す
		for(int i = 0; i < cnt; i++)
		{
			X31SDataBeanAccess ido_rsn_bean = null;
			if(ido_rsn_list.getCount() - 1 >= i)
			{
				ido_rsn_bean = ido_rsn_list.getDataBean(i);
			}
			else
			{
				ido_rsn_bean = ido_rsn_list.addDataBean();
			}
			if (ido_rsn_bean == null) 
			{
				continue;
			}

			// 異動理由コードの取得
			String ido_rsn_cd = custKeiHktgiInf.sendMessageString(KKW02412SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			// 異動理由.異動理由コードの設定
			ido_rsn_bean.sendMessageString(KKW02412SFConst.IDO_RSN_CD_02, X31CWebConst.DATABEAN_SET_VALUE, ido_rsn_cd);
			// 異動理由.異動理由メモの設定
			ido_rsn_bean.sendMessageString(KKW02412SFConst.IDO_RSN_MEMO_02, X31CWebConst.DATABEAN_SET_VALUE, ido_rsn_memo);
			
		}
		// v5.01 2013/03/31 OT-2013-0000583 ADD END
		
	}
	
	/**
	 * スマートリンクプレミアム情報照会サービスをCALLします
	 * 
	 * @param funcCode
	 *            機能コード
	 */
	// v5.00 2013/01/10 ANK-1173-00-00 MOD START
//	private boolean callKKSV0654(X31SDataBeanAccess[] paramBean, String funcCode)
	private void callKKSV0654(X31SDataBeanAccess[] paramBean, String funcCode)
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// 戻り値
//		boolean rslt_flg = false;

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0654);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0654OP);

		// 上りマッピング処理開始
		KKSV0654_KKSV0654OPDBMapper mapper = new KKSV0654_KKSV0654OPDBMapper();

		// KKSV0638 スマートリンクプレミアム情報照会確認サービス
		mapper.setKKSV065401SC(paramBean, inputMap, funcCode);
		mapper.setKKSV065402SC(paramBean, inputMap, funcCode);
		mapper.setKKSV065403SC(paramBean, inputMap, funcCode);
		// 2013/9/10 OM-2013-0001096 Add Start
		mapper.setKKSV065401CC(paramBean, inputMap, funcCode);
		// 2013/9/10 OM-2013-0001096 Add End
		
		// サービス呼出処理
		invokeService(paramMap, inputMap, outputMap);
		
		// 下りマッピング処理
		mapper.getKKSV065401SC(paramBean, outputMap);
		mapper.getKKSV065402SC(paramBean, outputMap);
		mapper.getKKSV065403SC(paramBean, outputMap);
		// 2013/9/10 OM-2013-0001096 Add Start
		mapper.getKKSV065401CC(paramBean, outputMap);
		// 2013/9/10 OM-2013-0001096 Add End
//		// 割賦情報有効チェック
//		rslt_flg = kapInfYkChk(outputMap);
		
//		return rslt_flg;
	}
	// v5.00 2013/01/10 ANK-1173-00-00 MOD END
	
	/**
	 * 割賦情報有効チェック
	 * 
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private boolean kapInfYkChk(HashMap outputMap)
	{
		// 戻り値
		boolean rslt_flg = false;
		HashMap parentMap = null;
		
		// v5.00 2013/01/10 ANK-1173-00-00 MOD START
//		if(outputMap.containsKey("KKSV065402SC")){
//			parentMap = (HashMap)outputMap.get("KKSV065402SC");
//		}
		if (outputMap.containsKey("OpsvckeiDslCC"))
		{
			parentMap = (HashMap)outputMap.get("OpsvckeiDslCC");
		}
		// v5.00 2013/01/10 ANK-1173-00-00 MOD END
		
		if (null != parentMap )
		{
			if (parentMap.containsKey("op_svc_kei_no_err"))
			{
				String op_svc_kei_no_err = (String)parentMap.get("op_svc_kei_no_err");
				if ("WA" == op_svc_kei_no_err || "WA".equals(op_svc_kei_no_err))
				{
					rslt_flg = true;
				}
			}
		}
		return rslt_flg;
	}
	
	/**
	 * スマートリンクプレミアム解約確認サービスをCALLします
	 * 
	 * @param funcCode
	 *            機能コード
	 */
	private boolean callKKSV0655(String funcCode)
	{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean =
		{
			svcFormBean
		};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0655);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0655OP);

		// 上りマッピング処理開始
		KKSV0655_KKSV0655OPDBMapper mapper = new KKSV0655_KKSV0655OPDBMapper();

		// KKSV0655 スマートリンクプレミアム解約確認サービス
		mapper.setOpsvckeiDslCC(paramBean, inputMap, funcCode);
		
// ANK-3149-00-00 ADD START
		// KKSV0655 セキュリティパックCC
		mapper.setSecurityPackOperateCC(paramBean, inputMap, funcCode);
		
		// KKSV0655 オプションサービス契約一意照会
		// IT1-2017-0000083 MOD START
//		mapper.setKKSV065501SC(paramBean, inputMap, funcCode);
		mapper.setKKSV065501SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		// IT1-2017-0000083 MOD END
// ANK-3149-00-00 ADD END
		
		// 2014/08/04 ANK-1918-00-00 Add Start
		// KKSV0655 工事案件CC
		mapper.setKojiAnkenCC(paramBean, inputMap, funcCode);
		// 2014/08/04 ANK-1918-00-00 Add End
		
		
		// サービス呼出処理
		invokeService(paramMap, inputMap, outputMap);
		
		// v5.00 2013/01/10 ANK-1173-00-00 ADD START
		// 戻り値
		boolean rslt_flg = false;
		
		// 割賦情報有効チェック
		rslt_flg = kapInfYkChk(outputMap);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return rslt_flg;
		// v5.00 2013/01/10 ANK-1173-00-00 ADD END
		// v5.00 2013/01/10 ANK-1173-00-00 DEL START
//		// メッセージ用置換文字列
//		String[] strL1 = {MSG_INFO_2 ,MSG_INFO_3};
//		
//		// メッセージ
//		String msgid1 = "EKB2960--I";
//		
//		// 共有フォームBeanのデータBeanアクセスクラスを取得。
//		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
//		
//		// DataBean設定処理
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
//					JKKScreenConst.SCREEN_ID_KKW02413);
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
//					JKKScreenConst.SCREEN_NAME_KKW02413);
//
//		JCCWebCommon.setMessageInfo(this, msgid1, strL1);
//		
//		// DataBeanログ出力
//		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		// v5.00 2013/01/10 ANK-1173-00-00 DEL END
	}
	
// v5.01 2013/03/31 OT-2013-0000583 ADD START
	/**
	 * スマートリンクプレミアム予約取消サービスをCALLします
	 * 
	 * @param funcCode
	 *            機能コード
	 */
	private void callKKSV0750(String funcCode)
	{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean =
		{
			svcFormBean
		};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0750);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0750OP);

		// 上りマッピング処理開始
		KKSV0750_KKSV0750OPDBMapper mapper = new KKSV0750_KKSV0750OPDBMapper();

		// KKSV0750 スマートリンクプレミアム予約取消
		mapper.setOpsvckeiCnslCC(paramBean, inputMap, funcCode);
		// IT1-2017-0000039 ADD START
		// KKSV0750 セキュリティパックCC
		mapper.setSecurityPackOperateCC(paramBean, inputMap, funcCode);
		
		// KKSV0750 KKSV075004SC
		mapper.setKKSV075004SC(paramBean, inputMap, "2");
		// IT1-2017-0000039 ADD END
		// KKSV0750 申込画面入力支援ワーク情報更新
		mapper.setUpdMkmScinsprtWkCC(paramBean, inputMap, funcCode);
		
// v10.01 ADD START
		
		// EKK0081A010
		mapper.setKKSV075003SC(paramBean, inputMap, "2", JCCWebCommon.getOpeDate(this, null));
// v10.01 ADD END
		
		// 2014/08/04 ANK-1918-00-00 Add Start
		// EKK0351A010
		mapper.setKKSV075001SC(paramBean, inputMap, "2", JCCWebCommon.getOpeDate(this, null));
		// EKK0021A010
		mapper.setKKSV075002SC(paramBean, inputMap, "2", JCCWebCommon.getOpeDate(this, null));
		// 工事案件CC
		mapper.setKojiAnkenCC(paramBean, inputMap, funcCode);
		// 2014/08/04 ANK-1918-00-00 Add End
		
		// サービス呼出処理
		invokeService(paramMap, inputMap, outputMap);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
	}
// v5.01 2013/03/31 OT-2013-0000583 ADD END
	/**
	 * 完了画面「一覧照会へ」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionFin() throws Exception
	{
		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを取得し共有フォームBeanの項目に設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 課金有無表示判定処理
	 * @throws Exception 
	 */
	private boolean jdgChrgDsp(X31SDataBeanAccess[] paramBean)
	{
		// オプションサービス契約ステータス
		String opSvcKeiStat = paramBean[0].sendMessageString(KKW02412SFConst.OP_SVC_KEI_STAT, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス開始年月日
		String svcStaYmd = paramBean[0].sendMessageString(KKW02412SFConst.SVC_STAYMD, X31CWebConst.DATABEAN_GET_VALUE);
		// 利用終了日
		String useEndYmd = paramBean[0].sendMessageString(KKW02412SFConst.USE_ENDYMD, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス課金開始年月日（サービス契約）
		String svcChrgStaYmdEkk0081 = paramBean[0].sendMessageString(KKW02412SFConst.SVC_CHRG_STAYMD_EKK0081, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス開始後料金計算日
		String svcStaAfPrcCalcYmd = paramBean[0].sendMessageString(KKW02412SFConst.SVC_STA_AF_PRC_CALC_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 2013/9/10 OM-2013-0001096 Add Strat
		// 割賦請求状態
		String kapSeikyStat = paramBean[0].sendMessageString(KKW02412SFConst.KAP_SEIKY_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// 2013/9/10 OM-2013-0001096 Add End
		
		// オプションサービス契約ステータスが締結済みの場合
// v5.01 2013/03/31 OT-2013-0000583 MOD START
//		if (JKKCommonConst.SVC_KEI_STAT_030.equals(opSvcKeiStat))
		if (JKKCommonConst.SVC_KEI_STAT_030.equals(opSvcKeiStat) ||
				JKKCommonConst.SVC_KEI_STAT_020.equals(opSvcKeiStat) ||
				JKKCommonConst.SVC_KEI_STAT_010.equals(opSvcKeiStat))
// v5.01 2013/03/31 OT-2013-0000583 MOD END
		{
			// 非課金
			paramBean[0].sendMessageString(KKW02412SFConst.CHRG_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, CHRG_M);
			// ラベル表示
			paramBean[0].sendMessageString(KKW02412SFConst.LABEL_DSP_KBN, X31CWebConst.DATABEAN_SET_VALUE, DSP_LABEL);
			
			return true;
		}
		// 当日解約の場合
		if (svcStaYmd.equals(useEndYmd))
		{
			// 非課金
			paramBean[0].sendMessageString(KKW02412SFConst.CHRG_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, CHRG_M);
			// ラベル表示
			paramBean[0].sendMessageString(KKW02412SFConst.LABEL_DSP_KBN, X31CWebConst.DATABEAN_SET_VALUE, DSP_LABEL);
			
			return true;
		}
		// 2013/9/10 OM-2013-0001096 Mod Strat
		// 割賦契約がない場合
		if(NON_KAP.equals(kapSeikyStat))
		{
			// 利用終了日 < サービス課金開始年月日（サービス契約）
			if (0 < JPCDateUtil.subtractDay(svcChrgStaYmdEkk0081, useEndYmd))
			{
				// 非課金
				paramBean[0].sendMessageString(KKW02412SFConst.CHRG_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, CHRG_M);
				// ラベル表示
				paramBean[0].sendMessageString(KKW02412SFConst.LABEL_DSP_KBN, X31CWebConst.DATABEAN_SET_VALUE, DSP_LABEL);
				
				return true;
			}
		}
		// 割賦契約が未請求の場合
		if(MI_SEIKY.equals(kapSeikyStat))
		{
			// 非課金
			paramBean[0].sendMessageString(KKW02412SFConst.CHRG_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, CHRG_M);
			// ラベル表示
			paramBean[0].sendMessageString(KKW02412SFConst.LABEL_DSP_KBN, X31CWebConst.DATABEAN_SET_VALUE, DSP_LABEL);
			
			return true;
		}
		// 利用終了日 < サービス課金開始年月日（サービス契約）
//		if (0 < JPCDateUtil.subtractDay(svcChrgStaYmdEkk0081, useEndYmd))
//		{
//			// 非課金
//			paramBean[0].sendMessageString(KKW02412SFConst.CHRG_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, CHRG_M);
//			// ラベル表示
//			paramBean[0].sendMessageString(KKW02412SFConst.LABEL_DSP_KBN, X31CWebConst.DATABEAN_SET_VALUE, DSP_LABEL);
//			
//			return true;
//		}
		// 2013/9/10 OM-2013-0001096 Mod End
		// 利用終了日 ≦ サービス開始後料金計算日
		if (0 <= JPCDateUtil.subtractDay(svcStaAfPrcCalcYmd, useEndYmd))
		{
			// 課金
			paramBean[0].sendMessageString(KKW02412SFConst.CHRG_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, CHRG_U);
			// ラジオボタン表示
			paramBean[0].sendMessageString(KKW02412SFConst.LABEL_DSP_KBN, X31CWebConst.DATABEAN_SET_VALUE, DSP_RADIO);
			
			return true;
		}
		else
		{
			// 課金
			paramBean[0].sendMessageString(KKW02412SFConst.CHRG_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, CHRG_U);
			// ラベル表示
			paramBean[0].sendMessageString(KKW02412SFConst.LABEL_DSP_KBN, X31CWebConst.DATABEAN_SET_VALUE, DSP_LABEL);
			// メッセージ表示
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBD040__I);
			
			return true;
		}
	}
}
