/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：KKW00197SFLogic
 *	ソースファイル名：KKW00197SFLogic.java
 *	作成者			：FJ)三原
 *	日付			：2018年06月04日
 *＜機能概要＞
 *	OPMSシステム起動(仮キャンセル申請)画面ビューロジッククラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v31.0.0		2016/06/04	FJ)三原 	【ANK-3136-00-00】OPMSハードウエア保守切れ対応(STEP2-2)
 **********************************************************************/
package eo.web.webview.KKW00197SF;


import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.util.JCCNumberEncode;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.KKW00145SF.KKW00145SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKWebCommon;

/**
 * <dd>クラス名：TRANKシステム起動画面ビューロジック <dd>クラス説明：画面上のボタン押下時の各処理を記述します。 <dd>備考：
 * 
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW00197SFLogic extends JCCWebBusinessLogic
{
	/** プロパティファイルのキー名（仮キャンセル申請画面のURL） */
	public static final String KK_KARICNCL_URL = "KK_KARICNCL_URL";
	
	/** システムID */
	private static final String SYSTEM_ID_EXCHANGE_WORD = "%SYSTEM_ID%";
	
	/** タイムスタンプ */
	private static final String TIME_STAMP_EXCHANGE_WORD = "%TIME_STAMP%";
	
	/** サービス契約番号 */
	private static final String SVC_KEI_NO_EXCHANGE_WORD = "%SVC_KEI_NO%";
	
	/**クエリ文字URLエンコーディング用の文字コード取得用キー*/
	private static final String URLENCODE_ENCTYPE_KEY = "KK_URLENCODE_ENCTYPE";
	
	/** プロパティファイルのキー名（仮キャンセル申請画面のURL） */
	private static final String PROP_KARICNCL_URL = "KK_KARICNCL_URL";
	
	/** プロパティファイルのキー名（仮キャンセル申請画面のシステムID） */
	private static final String KK_SYS_ID_KARICNCL = "KK_SYS_ID_KARICNCL";

	/**
	 * 初期表示処理
	 * 
	 * <dd>備考：なし。
	 * 
	 * @return true/false
	 * @throws Exception 
	 */
	public boolean actionInit() throws Exception 
	{
		
		X31SDataBeanAccess dataBean = getServiceFormBean();
		
		// 運用年月日時分秒(YYYYMMDDhhmmss)を取得し、暗号化する
		String timeStamp = JCCNumberEncode.numberEncode((JKKWebCommon.getOpeDateTimeStamp(this, null)).substring(0, 14));
		
		// 顧客契約引継リスト取得
		JCCWebCommon.getScreenInfo(this);
		X31SDataBeanAccessArray custKeiHktgiList = dataBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
		
		// サービス契約番号を取得
		String svcKeiNo = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		
		// プロパティファイルより仮キャンセル申請画面のURLを取得
		String kariCnclUrl = JCMAPLConstMgr.getString(PROP_KARICNCL_URL);
		
		// プロパティファイルより仮キャンセル申請画面のシステムIDを取得
		String kariCnclSystemId = JCMAPLConstMgr.getString(KK_SYS_ID_KARICNCL);
		
		// 特定項目置換用の文字コード取得
		String encType = JCCWebCommon.getApplicationConst(URLENCODE_ENCTYPE_KEY);
		// 特定項目置換処理
		kariCnclUrl = kariCnclUrl.replaceAll(SYSTEM_ID_EXCHANGE_WORD, encode(kariCnclSystemId, encType))	// システムID
								 .replaceAll(TIME_STAMP_EXCHANGE_WORD, encode(timeStamp, encType))			// タイムスタンプ
								 .replaceAll(SVC_KEI_NO_EXCHANGE_WORD, encode(svcKeiNo, encType));			// サービス契約番号
		
		dataBean.sendMessageString(KKW00145SFConst.KARI_CNCL_URL, X31CWebConst.DATABEAN_SET_VALUE, kariCnclUrl);
		
		// 共有フォームBean設定
		JKKWebCommon.setSelfScreenID(this);
		
		return true;
	}
	// URLエンコーダ
	private String encode(String endVal, String encType) throws UnsupportedEncodingException
	{
		return URLEncoder.encode(endVal, encType);
	}
}
