/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：顧客契約
*	モジュール名	：KKW00813SFLogic
*	ソースファイル名：KKW00813SFLogic.java
*	作成者			：Fj
*	日付			：2011年05月13日
*＜機能概要＞
*	ダイヤルアップ接続登録機能のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00		2011/05/13	FJ)富士通 	新規作成
*	v3.00		2012/04/21	FJ)高田		割引変更メッセージ対応
*	v3.01		2012/04/28	FJ)森本		異動理由メモ対応
*	v3.02		2012/08/30	FJ)砂川		【ST1-2012-0000344】認証IDからVR識別コードを削除する対応
*	v4.00		2012/10/18	FJ)清崎		[ANK-1223-00-00]進捗補足事項編集対応
*	v4.01		2012/12/24	FJ)藤原		【ST4-2012-0000258】コード名称を適用日で判断するに伴いBeanの運用日をサービス呼出前に設定
**********************************************************************/
package eo.web.webview.KKW00813SF;

import java.util.ArrayList;
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.util.JPCDateChecker;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW00810SF.KKW00810SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKPulldownUtil;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKSetSessionMessage;
import eo.web.webview.mapping.KKSV0033_KKSV0033OPDBMapper;
import eo.web.webview.mapping.KKSV0034_KKSV0034OPDBMapper;


/**
 * <dd>クラス名：ダイヤルアップ接続登録ビューロジック
 * <dd>クラス説明：画面上のボタン押下時の各処理を記述します。
 * <dd>備考：
 * @version  1.0 2011/05/13
 * @author   富士通
 */
@SuppressWarnings("serial")
public class KKW00813SFLogic extends JCCWebBusinessLogic
{
	
	/** 
	 * 遷移先画面ID（オプションサービス契約一覧照会画面）
	 */
	public static final String SCREEN_ID_KKW02301 = "KKW02301";

	/** 
	 * 遷移先画面名（オプションサービス契約一覧照会画面）
	 */
	public static final String SCREEN_NM_KKW02301 = "オプションサービス契約一覧照会画面";
	
	/**
	 * マンションタイプ(グローバル・光配線）の料金コード
	 */
	private static final String[] MANSION_PRC_CDS = {
		"A50",
		"A51",
		"A52",
		"A53",
		"A54",
		"A55",
		"A56",
		"A56",
		"A57"
	};

	// 2012/10/18 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
	/** 進捗特記事項1：ダイヤルアップ接続情報登録 */
	private static final String PRG_TKJK_1_VAL_DIYLUP_INFO_ADD = "ダイヤルアップ接続情報登録";
	// 2012/10/18 [ANK-1223-00-00]進捗補足事項編集対応 ADD END

	/**
	 * 運用年月日
	 */
	private String unyo_ymd = null;
	/**
	 * 利用開始日（年）
	 */
	private String use_staymd_year = null;
	/**
	 * 利用開始日（月）
	 */
	private String use_staymd_mon = null;
	/**
	 * 利用開始日（日）
	 */
	private String use_staymd_day = null;
	/**
	 * 利用開始日
	 */
	private String use_staymd = null;
	
	/**
	 * 登録画面初期表示処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean actionInit() throws Exception
	{

		
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// 遷移先画面IDを取得 
		String screenId = commoninfoBean.sendMessageString( CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE );

		// 遷移先画面IDから、行う表示処理を決定する
		if (JKKScreenConst.SCREEN_ID_KKW00813.equals(screenId))
		{
			//登録画面
			actionInitKKW00813();
		}
		else if (JKKScreenConst.SCREEN_ID_KKW00814.equals(screenId))
		{
			//確認画面
		}
		else if (JKKScreenConst.SCREEN_ID_KKW00815.equals(screenId))
		{
			//完了画面
		}

		return true;
	}
	
	/**
	 * 登録画面初期表示処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean actionInitKKW00813() throws Exception{
		
		//ユースケースID格納用のHashMap
		HashMap<String, Object> paramMap = null;
		//マッピングクラスの結果を格納するHashMap
		HashMap<String, Object> inputMap = null;
		//サービス呼出結果を格納するHashMap
		HashMap<String, Object> outputMap = null;
			

		//サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		//前画面からのSesssion情報取得と、サービスフォームBeanへのマッピング
		JCCWebCommon.getScreenInfo(this);

		//引継ぎ情報のマージ
		getSessionKKW00813SFBean(svcFormBean);

// 2012/12/24 ST4-2012-0000258 add start
		// コード名称管理一覧照会の基準日(適用開始から終了で取得を判定)に運用年月日を設定している為、サービス呼出の前に運用年月日設定
		// 運用年月日取得
		unyo_ymd = JCCWebCommon.getOpeDate(this, null);
		svcFormBean.sendMessageString(KKW00813SFConst.USE_STAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(0, 4));
		svcFormBean.sendMessageString(KKW00813SFConst.USE_STAYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(4, 6));
		svcFormBean.sendMessageString(KKW00813SFConst.USE_STAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(6, 8));
		svcFormBean.sendMessageString(KKW00813SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);
// 2012/12/24 ST4-2012-0000258 add end
		
		//ダイヤルアップ接続情報登録初期表示サービスの呼び出し
		paramMap = new HashMap<String, Object>();		//パラメタマップ生成
		inputMap = new HashMap<String, Object>();		//インプットマップ生成
		outputMap = new HashMap<String, Object>();		//アウトプットマップ生成
		
		//サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0033);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0033OP);
		
		// マッピング用paramBeanセット
		X31SDataBeanAccess[] paramBean = {svcFormBean};
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0033_KKSV0033OPDBMapper mapper = new KKSV0033_KKSV0033OPDBMapper();
		
		// お客様一意照会SC
		mapper.setKKSV003301SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		
		// サービス契約一意照会SC
		mapper.setKKSV003302SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
	
		// サービス契約内訳一覧照会SC
		mapper.setKKSV003303SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// コード名称管理一覧照会SC
// 2012/12/24 ST4-2012-0000258 chg start
//		mapper.setKKSV003305SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		mapper.setKKSV003305SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
// 2012/12/24 ST4-2012-0000258 chg end

		// 業務パラメータ（マンションＶＡ識別コード）
		mapper.setKKSV003308SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// 課金先一覧照会SC
		mapper.setKKSV003307SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// ダイヤルアップ接続情報登録初期表示サービス実行
		invokeService(paramMap, inputMap, outputMap);

		// サービス契約一意照会
		mapper.getKKSV003302SC(paramBean, outputMap);
		
		// サービス契約内訳一覧照会リスト
		mapper.getKKSV003303SC(paramBean, outputMap);
		
		// サービス契約内訳＜eo光ネット＞一意照会マップ
		mapper.getKKSV003304SC(paramBean, outputMap);
		
		// 業務パラメータ管理一意照会
		mapper.getKKSV003306SC(paramBean, outputMap);
		
		// 課金先一覧照会
		mapper.getKKSV003307SC(paramBean, outputMap);
		
		// 業務パラメータ管理一意照会（マンションＶＡ種別コード）
		mapper.getKKSV003308SC(paramBean, outputMap);
		
		JKKPulldownUtil.setPulldownList(svcFormBean, outputMap,
				KKW00813SFConst.DUP_PLAN_LIST, "KKSV003305SC", false);
		
		//認証IDの取得
		X31SDataBeanAccessArray svc_kei_net = paramBean[0].getDataBeanArray(KKW00813SFConst.EKK0171A010CBSMSG1LIST);
		X31SDataBeanAccess svc_kei_net_subbean = svc_kei_net.getDataBean(0);
			
		String ninsho_id = (String) svc_kei_net_subbean.sendMessageString(KKW00813SFConst.NINSHO_ID_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		X31SDataBeanAccessArray svc_kei_list = paramBean[0].getDataBeanArray(KKW00813SFConst.EKK0081A010CBSMSG1LIST);
		X31SDataBeanAccess svc_kei_subbean = svc_kei_list.getDataBean(0);
		String upd_dtm = svc_kei_subbean.sendMessageString(KKW00813SFConst.UPD_DTM_05, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00813SFConst.SVC_KEI_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, upd_dtm);

		//ダイヤルアップ認証IDドメインの取得
		X31SDataBeanAccessArray dup_ninsho_id_dmin = paramBean[0].getDataBeanArray(KKW00813SFConst.DUP_NINSHO_ID_DMIN_LIST);
		X31SDataBeanAccess dup_ninsho_id_dmin_subbean = dup_ninsho_id_dmin.getDataBean(0);

		String ninsho_id_dmin = (String) dup_ninsho_id_dmin_subbean.sendMessageString(KKW00813SFConst.DUP_NINSHO_ID_DMIN_03, X31CWebConst.DATABEAN_GET_VALUE);
		
		//マンションタイプの場合はダイヤルアップ接続ドメインを切り替え
		String prc_cd = svc_kei_subbean.sendMessageString(KKW00813SFConst.PCRS_CD_05, X31CWebConst.DATABEAN_GET_VALUE);
		
		//マンションタイプ（グローバル）か？
		for(int i = 0 ; i < MANSION_PRC_CDS.length ; i++)
		{
			if(MANSION_PRC_CDS[i].equals(prc_cd))
			{
				//認証IDを加工
				X31SDataBeanAccessArray mansion_va_sbt_list = paramBean[0].getDataBeanArray(KKW00813SFConst.DUPCON_VASCD_LIST);
				X31SDataBeanAccess mansion_va_sbt = mansion_va_sbt_list.getDataBean(0);
				ninsho_id_dmin = mansion_va_sbt.sendMessageString(
												KKW00813SFConst.DUP_VASCD_09, 
												X31CWebConst.DATABEAN_GET_VALUE) + ninsho_id_dmin;
				break;
			}
		}
		// ST1-2012-0000344 ADD START
		int idx = 0;
		if(null != ninsho_id && !("".equals(ninsho_id)))
		{
			idx = ninsho_id.indexOf("@");
		}
		
		if(idx > 0)
		{
			ninsho_id = ninsho_id.substring(0, idx);
		}
		// ST1-2012-0000344 ADD END

		svcFormBean.sendMessageString(KKW00813SFConst.DUP_NINSHO_ID, X31CWebConst.DATABEAN_SET_VALUE, ninsho_id + ninsho_id_dmin);
		
// 2012/12/24 ST4-2012-0000258 del start
//		//運用年月日取得
//		unyo_ymd = JCCWebCommon.getOpeDate(this, null);
//		svcFormBean.sendMessageString(KKW00813SFConst.USE_STAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(0, 4));
//		svcFormBean.sendMessageString(KKW00813SFConst.USE_STAYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(4, 6));
//		svcFormBean.sendMessageString(KKW00813SFConst.USE_STAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(6, 8));
//		svcFormBean.sendMessageString(KKW00813SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);
// 2012/12/24 ST4-2012-0000258 del end
		
		// 請求契約番号の取得
		X31SDataBeanAccessArray seiky_kei_Info = svcFormBean.getDataBeanArray(KKW00813SFConst.KAKIN_LIST);
		X31SDataBeanAccess seiky_kei_subbean = seiky_kei_Info.getDataBean(0);

		String seiky_kei_no = seiky_kei_subbean.sendMessageString(KKW00813SFConst.SEIKY_KEI_NO_08, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00813SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, seiky_kei_no);

		//1階層のDatabeanにListの2階層目の情報をコピー
		setDataBeanFromList(svcFormBean);
		
		//↓↓↓2012-02-09追加　IT障害950対応↓↓↓
		String svc_kei_stat = svc_kei_subbean.sendMessageString(KKW00813SFConst.SVC_KEI_STAT_05, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00813SFConst.SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_stat);
		//↑↑↑2012-02-09追加　IT障害950対応↑↑↑

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
		
	}
	
	
	
	
	/**
	 * 1階層のDatabeanにListの2階層目の情報をコピー
	 * <br>
	 * @param svcFormBean
	 */
	public void setDataBeanFromList(X31SDataBeanAccess svcFormBean)
	{
		//サービス契約一意照会情報取得
		X31SDataBeanAccessArray svc_kei_list = svcFormBean.getDataBeanArray(KKW00813SFConst.EKK0081A010CBSMSG1LIST);
		X31SDataBeanAccess svc_kei_subbean = svc_kei_list.getDataBean(0);
		//サービス契約世代登録年月日時分秒情報
		String svc_kei_gene_add_dtm = svc_kei_subbean.sendMessageString(KKW00813SFConst.GENE_ADD_DTM_05, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00813SFConst.SVC_KEI_GENE_ADD_DTM, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_gene_add_dtm);

		//サービス契約内訳一意照会情報取得
		X31SDataBeanAccessArray svc_kei_uw_list = svcFormBean.getDataBeanArray(KKW00813SFConst.EKK0161B004CBSMSG1LIST);
		X31SDataBeanAccess svc_kei_uw_subbean = svc_kei_uw_list.getDataBean(0);
		//サービス契約内訳世代登録年月日時分秒情報
		String svc_kei_uw_gene_add_dtm = svc_kei_uw_subbean.sendMessageString(KKW00813SFConst.GENE_ADD_DTM_06, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00813SFConst.SVC_KEI_UCHK_GENE_ADD_DTM, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_uw_gene_add_dtm);
		//サービス契約内訳番号情報
		String svc_kei_uw_no = svc_kei_uw_subbean.sendMessageString(KKW00813SFConst.SVC_KEI_UCWK_NO_06, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00813SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_uw_no);
	}
	
	/**
	 * 登録画面「登録確認」ボタン押下時処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean actionCfm() throws Exception
	{
		//ユースケースID格納用のHashMap
		HashMap<String, Object> paramMap = null;
		//マッピングクラスの結果を格納するHashMap
		HashMap<String, Object> inputMap = null;
		//サービス呼出結果を格納するHashMap
		HashMap<String, Object> outputMap = null;	

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		paramMap = new HashMap<String, Object>();		//パラメタマップ生成
		inputMap = new HashMap<String, Object>();		//インプットマップ生成
		outputMap = new HashMap<String, Object>();		//アウトプットマップ生成
		
		//サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0034);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0034OP);
		
		//登録確認用DataBean設定処理
		//ダイヤルアップ接続登録サービスフォームBeanの登録確認用値を設定する
		setDataKKW00813SFBean(svcFormBean);
		
		//マッピング用Bean作成
		X31SDataBeanAccess[] paramBean = {svcFormBean};

		//	登録確認ボタン押下時はすべて機能コード"2"（チェックのみ）を設定
		mappingForDB_BP(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);

		//サービス呼出処理
		invokeService(paramMap, inputMap, outputMap);

		//共有フォームBean設定(ダイヤルアップ登録→ダイヤルアップ登録確認)
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00814);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00814);
		
		//メッセージ表示処理
		String[] str = { "ダイヤルアップ接続情報の登録" };
		JCCWebCommon.setMessageInfo(this, "EKB0370--I", str);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}
	
	/**
	 * 登録画面「戻る」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionBack() throws Exception
	{
		
		//共有フォームBean設定(ダイヤルアップ登録→オプション一覧照会)
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		return true;
	}
	
	/**
	 * 登録確認画面「確定」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionFix() throws Exception
	{
		//ユースケースID格納用のHashMap
		HashMap<String, Object> paramMap = null;
		//マッピングクラスの結果を格納するHashMap
		HashMap<String, Object> inputMap = null;
		//サービス呼出結果を格納するHashMap
		HashMap<String, Object> outputMap = null;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		paramMap = new HashMap<String, Object>();		//パラメタマップ生成
		inputMap = new HashMap<String, Object>();		//インプットマップ生成
		outputMap = new HashMap<String, Object>();		//アウトプットマップ生成
		
		//サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0034);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0034OP);

		//マッピング用Bean作成
		X31SDataBeanAccess[] paramBean = {svcFormBean};
		
		//確定ボタン押下時はすべて機能コード"1"（チェック＆登録）を設定
		mappingForDB_BP(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		
		//サービス呼出処理
		invokeService(paramMap, inputMap, outputMap);
		
		// 2012.05.15 割引自動適応CC設定部分コメントアウト
		/*-- 【START】割引変更メッセージ対応 --*/
		/*ArrayList<HashMap<String, Object>> msgList = null;
		HashMap<String, Object> warisvcMap = null;
		
		if(outputMap.containsKey("WrisvcAutoAplyCC")){
			warisvcMap = (HashMap<String, Object>)outputMap.get("WrisvcAutoAplyCC");
		}
		
		if(warisvcMap != null) {
			msgList = (ArrayList<HashMap<String, Object>>)warisvcMap.get("msg_list");
		}
		// メッセージ登録部品呼び出し
		JKKSetSessionMessage.setSessionMessage(this, msgList);*/
		/*-- 【END】割引変更メッセージ対応 --*/
		// 割引自動適応CC設定部分コメントアウト
		
		//共有フォームBean設定(ダイヤルアップ登録確認→ダイヤルアップ登録)
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00815);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00815);
		
		//メッセージ表示処理
		String[] str = { "ダイヤルアップ接続情報の登録" };
		JCCWebCommon.setMessageInfo(this, "EKB4390--I", str);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}
	
	/**
	 * 登録確認画面「修正」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionSyusei() throws Exception
	{
		
		//共有フォームBean設定(ダイヤルアップ登録)
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00813);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00813);
		
		return true;
	}	
	
	/**
	 * 登録完了画面「完了」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionFin() throws Exception
	{	
		//共有フォームBean設定(オプション一覧照会)
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,SCREEN_ID_KKW02301 );
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,SCREEN_NM_KKW02301 );

		return true;
	}
	
	/**
	 * 引き継ぎ情報を取得し、ダイヤルアップ接続登録サービスフォームBeanに設定する
	 * @param  svcFormBean  DataBeanアクセスクラス
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public void initDataKKW00813SFBean(X31SDataBeanAccess svcFormBean) throws Exception
	{
		
		//引継ぎデータ
		JCCWebCommon.getScreenInfo(this);
		
	}
	
	/**
	 * ダイヤルアップ接続登録サービスフォームBeanの初期値を設定する
	 * @param paramBean 
	 * @param  svcFormBean  DataBeanアクセスクラス
	 * @throws Exception
	 * @return 正常終了:true 異常終了:false
	 */
	public void setDataKKW00813SFBean(X31SDataBeanAccess svcFormBean) throws Exception
	{
		
		//料金プランのセット（リストボックスからの選択値の取得）
		X31SDataBeanAccessArray pcrs_Info = svcFormBean.getDataBeanArray(KKW00813SFConst.DUP_PLAN_LIST);
		X31SDataBeanAccess pcrs_subbean = pcrs_Info.getDataBean(0);
		String idx = pcrs_subbean.sendMessageString(KKW00813SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrs_div = pcrs_subbean.sendMessageString(KKW00813SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));
		String pcrs_div_name = pcrs_subbean.sendMessageString(KKW00813SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));
		
		//料金コース・プランの設定
		if(pcrs_div.equals("01"))
		{
			svcFormBean.sendMessageString(KKW00813SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, "B20");
			svcFormBean.sendMessageString(KKW00813SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, "PB2001");
		}
		else if(pcrs_div.equals("02"))
		
		{
			svcFormBean.sendMessageString(KKW00813SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, "B21");
			svcFormBean.sendMessageString(KKW00813SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, "PB2101");
		}
		else if(pcrs_div.equals("03"))			
		{
			svcFormBean.sendMessageString(KKW00813SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, "B22");
			svcFormBean.sendMessageString(KKW00813SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, "PB2201");
		}
		else if(pcrs_div.equals("04"))
		{	
			svcFormBean.sendMessageString(KKW00813SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, "B23");
			svcFormBean.sendMessageString(KKW00813SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, "PB2301");
		}
		else if(pcrs_div.equals("05"))
		{
			svcFormBean.sendMessageString(KKW00813SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, "B24");
			svcFormBean.sendMessageString(KKW00813SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, "PB2401");
		}	
		
		//料金プラン名称
		svcFormBean.sendMessageString(KKW00813SFConst.DSP_DUP_PLAN, X31CWebConst.DATABEAN_SET_VALUE, pcrs_div_name);
		
		//利用開始年月日 = 利用開始日（年） + 利用開始日（月） + 利用開始日（日）
		use_staymd_year = svcFormBean.sendMessageString(KKW00813SFConst.USE_STAYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		use_staymd_mon  = svcFormBean.sendMessageString(KKW00813SFConst.USE_STAYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		use_staymd_day  = svcFormBean.sendMessageString(KKW00813SFConst.USE_STAYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		use_staymd = use_staymd_year + "/" + use_staymd_mon + "/" + use_staymd_day;
		String upd_use_staymd = use_staymd_year + use_staymd_mon + use_staymd_day;
		
		// 利用開始年月日を設定
//		svcFormBean.sendMessageString(KKW00813SFConst.DSP_USE_STA_DAY, X31CWebConst.DATABEAN_SET_VALUE, use_staymd);
		svcFormBean.sendMessageString(KKW00813SFConst.DSP_USE_STA_DAY, X31CWebConst.DATABEAN_SET_VALUE, use_staymd);
		
		//申込種別コード
		svcFormBean.sendMessageString(KKW00813SFConst.MSKM_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, "001");
		
		//申込年月日（運用年月日）
		svcFormBean.sendMessageString(KKW00813SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
	
		//申込年月日時分秒（運用年月日時分秒）
		svcFormBean.sendMessageString(KKW00813SFConst.UNYO_DTM, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null) + "000000000");

		//親契約識別
		svcFormBean.sendMessageString(KKW00813SFConst.OYA_KEI_SKBT_CD, X31CWebConst.DATABEAN_SET_VALUE, "03");
		
		//異動区分判定
		String ido_div = svcFormBean.sendMessageString(KKW00813SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		
		
		// 00031:オプション設定の時
		if (JKKCommonConst.IDO_DIV_VALUE_00031.equals(ido_div))
		{
			// 申込種別コード:00026（オプション設定）
			svcFormBean.sendMessageString(KKW00813SFConst.MSKM_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.MSKM_SBT_CD_VALUE_00026);
			
		}
		// 以外（新規申込）
		else 
		{
			// 申込種別コード:00001（新規契約）
			svcFormBean.sendMessageString(KKW00813SFConst.MSKM_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.MSKM_SBT_CD_VALUE_00001);
			
		}
		
		// 即時適用（利用開始日が当日）の場合のみ実行
		if  (JPCDateChecker.isEqualDate(upd_use_staymd, JCCWebCommon.getOpeDate(this,null)))
		{
			// 進捗ステータス:5102
			svcFormBean.sendMessageString(KKW00813SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.PRG_STAT_CD_5102);
		}
		else
		{
			// 進捗ステータス:0200
			svcFormBean.sendMessageString(KKW00813SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.PRG_STAT_CD_5101);
		}
		
		// 即時／翌月を判定する（利用開始年月日と運用日が同じ場合のみ）
		if  (JPCDateChecker.isEqualDate(upd_use_staymd, JCCWebCommon.getOpeDate(this,null)))
		{
			// 即時
			svcFormBean.sendMessageString(KKW00813SFConst.SKJ_YKGT, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.SKJ_YKGT_SKJ);
		}
		else
		{
			// 翌月
			svcFormBean.sendMessageString(KKW00813SFConst.SKJ_YKGT, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.SKJ_YKGT_YKGT);
		}
		
		// 2012/10/16 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
		// 進捗特記事項１
		svcFormBean.sendMessageString(KKW00813SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, PRG_TKJK_1_VAL_DIYLUP_INFO_ADD);
		// 2012/10/16 [ANK-1223-00-00]進捗補足事項編集対応 ADD END

	}
	
	/**
	 * ダイヤルアップ接続登録サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	public void mappingForDB_BP(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{

		// DataBean-BPマッピングクラス生成
		KKSV0034_KKSV0034OPDBMapper mapper = new KKSV0034_KKSV0034OPDBMapper();
		
		// 申込内容承認登録マップ
		mapper.setKKSV003401SC(paramBean, inputMap, func_code);
		
		// 申込明細照査・後続業務依頼マップ
		mapper.setKKSV003402SC(paramBean, inputMap, func_code);
		
		// オプションサービス契約<ISP>登録
		mapper.setKKSV003403SC(paramBean, inputMap, func_code);

		// オプションサービス契約＜ISP＞照査締結マップ
		mapper.setKKSV003404SC(paramBean, inputMap, func_code);
			
		// オプションサービス契約＜ISP＞開始マップ
		mapper.setKKSV003405SC(paramBean, inputMap, func_code);
		
		// 進捗登録マップ
		mapper.setKKSV003406SC(paramBean, inputMap, func_code);
		
		// オーダ発行条件登録
		mapper.setKKSV003407SC(paramBean, inputMap, func_code);
		
		// オーダ情報作成ワーク
		mapper.setKKSV003408SC(paramBean, inputMap, func_code);
		
		// 2012.05.15 割引自動適応CC設定部分コメントアウト
		/*-- 【START】割引変更メッセージ対応 --*/
		// 割引サービス自動適用CC
		//mapper.setWrisvcAutoAplyCC(paramBean, inputMap, func_code);
		/*-- 【END】割引変更メッセージ対応 --*/
		// 割引自動適応CC設定部分コメントアウト
	}
	
	/**
	 * 引き継ぎ情報を取得し、サービス契約情報更新(eo光ネット)サービスフォームBeanに設定する
	 * @param  svcFormBean  DataBeanアクセスクラス
	 * @throws Exception 
	 */
	public void getSessionKKW00813SFBean(X31SDataBeanAccess svcFormBean) throws Exception
	{

		///サービスフォームBeanから顧客契約引継リストを取得
		X31SDataBeanAccessArray obj = svcFormBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		
		//上記のリストから１要素を設定
		X31SDataBeanAccess bean = obj.getDataBean(0);
				
		String str = null;
		Integer maxIndex = null;

		//SYSIDの移し変え
		str = bean.sendMessageString(JKKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00813SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, str);
				
		//サービス契約番号の移し変え
		str = bean.sendMessageString(JKKCommonConst.HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00813SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, str);
		
		//異動区分の移し変え
		str = bean.sendMessageString(JKKCommonConst.HKTGI_IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00813SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, str);
		
		// ▼異動理由メモ対応 Start
		String ido_rsn_memo = bean.sendMessageString(KKW00813SFConst.IDO_RSN_MEMO_04, X31CWebConst.DATABEAN_GET_VALUE);
		// ▲異動理由メモ対応 End
		
		//異動理由コードを第一階層の異動理由コードへと移し変え
		X31SDataBeanAccessArray idoRsnList = 
			svcFormBean.getDataBeanArray(KKW00813SFConst.IDO_RSN_CD_LIST);
		
		maxIndex = (Integer)bean.sendMessage(JKKCommonConst.HKTGI_IDO_RSN_CD, X31CWebConst.DATABEAN_GET_COUNT);
		for(int i = 0 ; i < maxIndex.intValue(); i ++){

			X31SDataBeanAccess idoElement;
			
			str = bean.sendMessageString(JKKCommonConst.HKTGI_IDO_RSN_CD, X31CWebConst.DATABEAN_GET_VALUE, i);
			bean.sendMessageString(
					KKW00813SFConst.IDO_RSN_CD,
					X31CWebConst.DATABEAN_ADD_VALUE, 
					i, 
					str
					);
			
			idoElement = idoRsnList.addDataBean();
			idoElement.sendMessageString(
					KKW00813SFConst.IDO_RSN_CD_07, X31CWebConst.DATABEAN_SET_VALUE, str);
			
			// ▼異動理由メモ対応 Start
			idoElement.sendMessageString(KKW00813SFConst.IDO_RSN_MEMO_07, X31CWebConst.DATABEAN_SET_VALUE, ido_rsn_memo);
			// ▲異動理由メモ対応 End
		}
		

		// 運用年月日を設定
		svcFormBean.sendMessageString(KKW00813SFConst.UNYO_YMD,
				X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this,
						null));
		
		
	}

}
