/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：契約管理システム
*   モジュール名    ：Ｍｙホームページ情報登録
*   ソースファイル名：KKW00804SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年03月30日
*＜機能概要＞
*   ホームページアドレスを指定することにより、ホームページアドレスの登録を行う。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00	    2011/03/30   FJ）中川    新規作成
*   v3.00	    2012/03/15   FJ) 森本    日付項目の初期表示対応
*   v4.00		2012/10/16   FJ) 清崎    [ANK-1223-00-00]進捗補足事項編集対応
*   v4.01       2013/01/11   FJ) 鷲塚    [IT1-2013-0000035] 異動年月日へのシステム日付設定対応
*	v4.02       2013/01/28   FJ）清崎   【IT1-2013-0000167】キャンセルSOD発行対応
*   v5.00       2013/06/18   FJ) 清崎   【LT-2013-0000012】進捗スキーマ異動年月日時分秒対応
**********************************************************************/
package eo.web.webview.KKW00804SF;

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.common.util.JPCDateUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.mapping.KKSV0005_KKSV0005OPDBMapper;
import eo.web.webview.mapping.KKSV0006_KKSV0006OPDBMapper;


/**
 * ホームページアドレスを指定することにより、ホームページアドレスの登録を行う。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW00804SFLogic extends JCCWebBusinessLogic 
{
	/** オプションサービスコード:Myホームページ */
	private static final String OP_SVC_CD_MYHP = JKKCommonConst.OP_SVC_CD_VALUE_0020;
	
	/** サブオプションサービスコード:ホームページ容量 */
	private static final String SBOP_SVC_CD_HPCAPA = JKKCommonConst.SBOP_SVC_CD_HP;

	/** 申込種別コード:新規申込 */
	private static final String MSKM_SBT_CD_NEW = JKKCommonConst.MSKM_SBT_CD_VALUE_00001;

	/** 申込種別コード:オプション申込 */
	private static final String MSKM_SBT_CD_OP = JKKCommonConst.MSKM_SBT_CD_VALUE_00026;
	
	/** 異動区分:オプション設定 */
	private static final String IDO_DIV_OP = JKKCommonConst.IDO_DIV_VALUE_00031;
	
	/** エイジング種別コード:URL */
	private static final String AGING_SBT_CD_URL = JKKCommonConst.AGING_SBT_CD_URL;
	
	/** 進捗ステータス:新規登録 */
	private static final String PRG_STAT_NEW = JKKCommonConst.PRG_STAT_CD_0200;
	
	/** 進捗ステータス:オプション申請中 */
	private static final String PRG_STAT_OP_REQEST = JKKCommonConst.PRG_STAT_CD_5101;
	
	/** 進捗ステータス:オプション設定完了 */
	private static final String PRG_STAT_OP_END = JKKCommonConst.PRG_STAT_CD_5102;
	
	/** サービス契約ステータス:受付済 */
	private static final String SVC_KEI_STAT_UKE = JKKCommonConst.SVC_KEI_STAT_010;
	
	/** 親契約識別コード:サービス契約番号 */
	private static final String OYA_KEI_SKBT_CD_SVC = JKKCommonConst.OYA_KEI_SKBT_CD_SVC;
	
	/** 料金コースコード:Ｍｙホームページ */
	private static final String PCRS_CD_MYHP = JKKCommonConst.PCRS_CD_MYHP;
	
	/** 料金コースコード:ホームページ容量用 */
	private static final String PCRS_CD_HP = JKKCommonConst.PCRS_CD_HP;
	
	/** 料金プランコード:Ｍｙホームページ */
	private static final String PPLAN_CD_MYHP = JKKCommonConst.PPLAN_CD_MYHP;

	/** 料金プランコード:ホームページ容量用 */
	private static final String PPLAN_CD_HP = JKKCommonConst.PPLAN_CD_HP;

	/** オーダ種別コード:ネット */
	private static final String ORDER_SBT_CD_NET = JKKCommonConst.ORDER_SBT_CD_NET;
	
	/** サービスオーダコード:WEB */
	private static final String SVC_ORDER_CD_WEB = JKKCommonConst.SVC_ORDER_CD_WEB;
	
	/** 要求種別コード:新規 */
	private static final String YOKYU_SBT_CD_NEW = JKKCommonConst.YOKYU_SBT_CD_02;
	
	/** 要求種別コード:変更 */
	private static final String YOKYU_SBT_CD_CHG = JKKCommonConst.YOKYU_SBT_CD_04;
	
	/** オーダ内容コード:WEB・登録 */
	private static final String ODR_NAIYO_CD_WEB_INS = JKKCommonConst.ODR_NAIYO_CD_121;
	
	/** オーダ内容コード:WEB・ホームページ容量変更 */
	private static final String ODR_NAIYO_CD_WEB_CHG = JKKCommonConst.ODR_NAIYO_CD_123;
	
	/** オーダ発行条件コード:即時発行 */
	private static final String ODR_HAKKO_JOKEN_CD_SOKU = JKKCommonConst.ODR_HAKKO_JOKEN_CD_SOKU;
	
	/** 事務手数料自動適用要否:要 */
	private static final String AUTO_APLY_YOU = JKKCommonConst.KH_PSG;
	
	// 2012/10/16 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
	/** 進捗特記事項1：Ｍｙホームページ情報登録 */
	private static final String PRG_TKJK_1_VAL_MYHP_INFO_ADD = "Ｍｙホームページ情報登録";
	// 2012/10/16 [ANK-1223-00-00]進捗補足事項編集対応 ADD END
	
// 2013/06/18 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD START
	/** 異動区分：新規契約 */
	private static final String IDO_DIV_SINKI = JKKCommonConst.IDO_DIV_VALUE_00001;

	/** 異動区分：サービス追加 */
	private static final String IDO_DIV_TSUIKA = JKKCommonConst.IDO_DIV_VALUE_00002;

// 2013/06/18 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD END
	
	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionInit() throws Exception
	{
	
		// 引き継ぎの情報MAPを取得する。 
		JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 顧客契約引継リストの取得
		setHktgiBean(paramBean);
		
		// 初期表示サービス呼出処理
		executeInitSvc(paramBean);
		
		// サービスフォームBean設定
		setInitBean(paramBean);
		
		return true;
	}

	/**
	 * 登録確認ボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionAddMyHPInfo() throws Exception
	{
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// サービスフォームBean設定
		setHPInfoBean(paramBean);
		
		// 登録確認サービス呼出処理
		executeAddCfmSvc(paramBean, JPCModelConstant.FUNC_CD_2);
		
		// 確認メッセージの設定
		String[] str = {"Myホームページ情報の登録"};
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, str);
		
		// 遷移先情報の設定　確認画面
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKScreenConst.SCREEN_ID_KKW00805);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKScreenConst.SCREEN_NAME_KKW00805);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
			
		return true;
	}
	
	/**
	 * 戻るボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionBack() throws Exception
	{
		
		// 遷移先情報の設定　オプション選択(KKW00837)
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.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;
		
	}

	/**
	 * 確定ボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionFixMyHPInfo() throws Exception
	{
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 登録確認サービス呼出処理
		executeAddCfmSvc(paramBean, JPCModelConstant.FUNC_CD_1);

		// 確認メッセージの設定
		String[] str = {"Myホームページ情報の登録"};
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, str);
		
		// 遷移先情報の設定　完了画面
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKScreenConst.SCREEN_ID_KKW00806);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKScreenConst.SCREEN_NAME_KKW00806);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}

	
	/**
	 * 修正ボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionShusei() throws Exception
	{
		
		// 遷移先情報の設定　登録画面
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKScreenConst.SCREEN_ID_KKW00804);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKScreenConst.SCREEN_NAME_KKW00804);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true; 
	}

	/**
	 * 完了ボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionFin() throws Exception
	{
		
		// 遷移先情報の設定　オプションサービス契約一覧照会(KKW02301)
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.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;
	}

	
	/**
	 * Ｍｙホームページ情報登録初期表示サービス実行処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @exception Exceptionがスローされます。
	 */
	private void executeInitSvc(X31SDataBeanAccess[] paramBean) throws Exception
	{
		
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// Ｍｙホームページ情報登録初期表示サービス
		paramMap = new HashMap<String, Object>();		// パラメタ設定用マップ
		inputMap = new HashMap<String, Object>();		// 入力用マップ
		outputMap = new HashMap<String, Object>();		// 結果格納用マップ
		
		
		// オプションサービスコード
		paramBean[0].sendMessageString(KKW00804SFConst.OP_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, OP_SVC_CD_MYHP);
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0005");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0005_KKSV0005OPDBMapper mapper = new KKSV0005_KKSV0005OPDBMapper();
		
		// オプションサービス契約一覧照会SC
		mapper.setKKSV000504SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// オプションサービス契約<ISP>一意照会SC
		mapper.setKKSV000501SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		
		// ホームページ容量情報取得SC
		mapper.setKKSV000502SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// アクセス分析情報取得SC
		mapper.setKKSV000503SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// 業務パラメータ管理一意照会SC
		mapper.setKKSV000505SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// 運用年月日の設定
		paramBean[0].sendMessageString(KKW00804SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, 
				JCCWebCommon.getOpeDate(this, null));
		
		// お客様一意照会SC
		mapper.setKKSV000506SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);

		// サービス契約一意照会SC
		mapper.setKKSV000507SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);

		// 料金コース_サブオプションサービス一覧照会SC
		mapper.setKKSV000508SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// Ｍｙホームページ情報登録初期表示サービス
		invokeService(paramMap, inputMap, outputMap);
		
		// 取得情報の下りマッピング
		mapper.getKKSV000504SC(paramBean, outputMap);
		mapper.getKKSV000501SC(paramBean, outputMap);
		
		// プルダウン情報の下りマッピング
		mapper.getKKSV000502SC(paramBean, outputMap);
		mapper.getKKSV000503SC(paramBean, outputMap);
		
		// 業務パラメタ取得下りマッピング
		mapper.getKKSV000505SC(paramBean, outputMap);
		
		// お客様一意照会取得下りマッピング
		mapper.getKKSV000506SC(paramBean, outputMap);
		
		// サービス契約一意照会取得下りマッピング
		mapper.getKKSV000507SC(paramBean, outputMap);
		
		// 料金コース_サブオプションサービス一覧照会取得下りマッピング
		mapper.getKKSV000508SC(paramBean, outputMap);
		
		// 容量プルダウン初期値
		String hp_capa_shk = paramBean[0].sendMessageString(KKW00804SFConst.SVCTK_BUT_SHK_VALUE, X31CWebConst.DATABEAN_GET_VALUE);
		int hp_capa_shk_val = -1;
		if (hp_capa_shk != null && !"".equals(hp_capa_shk))
		{
			hp_capa_shk_val = Integer.parseInt(hp_capa_shk);
		}

		// 容量プルダウン最大値
		String hp_capa_max = paramBean[0].sendMessageString(KKW00804SFConst.SVCTK_BUT_MAX_VALUE, X31CWebConst.DATABEAN_GET_VALUE);
		int hp_capa_max_val = -1;
		if (hp_capa_max != null && !"".equals(hp_capa_max))
		{
			hp_capa_max_val = Integer.parseInt(hp_capa_max);
		}

		// 容量プルダウン増減値
		String hp_capa_zougen = paramBean[0].sendMessageString(KKW00804SFConst.SVCTK_BUT_ZOUGEN_VALUE, X31CWebConst.DATABEAN_GET_VALUE);
		int hp_capa_zougen_val = -1;
		if (hp_capa_zougen != null && !"".equals(hp_capa_zougen))
		{
			hp_capa_zougen_val = Integer.parseInt(hp_capa_zougen);
		}

		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW00804SFConst.HP_CAPA_INFO, "KKSV000502SC", false,
				hp_capa_shk_val, hp_capa_max_val, hp_capa_zougen_val);
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW00804SFConst.ACCSS_BNSK_INFO, "KKSV000503SC", false);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
	}
	
	/**
	 * Ｍｙホームページ情報登録確認サービス実行処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @param func_code  機能コード
	 * @exception Exceptionがスローされます。
	 */
	private void executeAddCfmSvc(X31SDataBeanAccess[] paramBean, String func_code) throws Exception
	{
		
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// Ｍｙホームページ情報登録確認サービス
		paramMap = new HashMap<String, Object>();		// パラメタ設定用マップ
		inputMap = new HashMap<String, Object>();		// 入力用マップ
		outputMap = new HashMap<String, Object>();		// 結果格納用マップ
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0006");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0006_KKSV0006OPDBMapper mapper = new KKSV0006_KKSV0006OPDBMapper();
		
		// 申込内容承認登録SC
		mapper.setKKSV000601SC(paramBean, inputMap, func_code);	
		
		// オプションサービス契約＜ISP＞情報変更SC
		mapper.setKKSV000603SC(paramBean, inputMap, func_code);	
		
		// オプションサービス契約＜ISP＞登録SC
		mapper.setKKSV000604SC(paramBean, inputMap, func_code);	
		
		// サブオプションサービス契約＜ISP＞登録SC
		mapper.setKKSV000605SC(paramBean, inputMap, func_code);	

		// オプションサービス契約＜ISP＞照査SC
		mapper.setKKSV000618SC(paramBean, inputMap, func_code);	

		// オプションサービス契約＜ISP＞照査締結SC
		mapper.setKKSV000611SC(paramBean, inputMap, func_code);	

		// オプションサービス契約＜ISP＞開始SC
		mapper.setKKSV000612SC(paramBean, inputMap, func_code);	
		
		// サブオプションサービス契約＜ISP＞照査SC
		mapper.setKKSV000619SC(paramBean, inputMap, func_code);	

		// サブオプションサービス契約＜ISP＞照査締結SC
		mapper.setKKSV000606SC(paramBean, inputMap, func_code);	

		// サブオプションサービス契約＜ISP＞使用開始SC
		mapper.setKKSV000607SC(paramBean, inputMap, func_code);	

		// エイジング対象登録SC
		mapper.setKKSV000609SC(paramBean, inputMap, func_code);	
		
		// エイジング対象登録SC
		mapper.setKKSV000620SC(paramBean, inputMap, func_code);	
		
// 2013/06/18 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD START
		// 進捗一覧照会SC
		mapper.setKKSV000616SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);	
// 2013/06/18 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD END
		// 進捗情報登録SC
		mapper.setKKSV000610SC(paramBean, inputMap, func_code);	
		
		// 申込明細一意照会(機能コード:2 カレント検索 固定)
		mapper.setKKSV000608SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);	
		
		// 申込明細照査・後続業務依頼SC
		mapper.setKKSV000602SC(paramBean, inputMap, func_code);	
		
		// 課金先一覧照会（請求契約番号／サービス契約番号）SC
		mapper.setKKSV000613SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);	
		
		// SOD発行CC
		mapper.setJKKHakkoSODCC(paramBean, inputMap, func_code);	

		// Ｍｙホームページ情報登録確認作業項目
		mapper.setKKSV0006WORK(paramBean, inputMap, func_code);	
		
		// start FJ)森本 v3.00.00 申込画面入力支援ワーク情報更新CC対応
		// 申込画面入力支援ワーク情報更新CC
		mapper.setUpdMkmScinsprtWkCC(paramBean, inputMap, func_code);	
		// end FJ)森本 v3.00.00　申込画面入力支援ワーク情報更新CC対応
		
		// サービス実行
		invokeService(paramMap, inputMap, outputMap);
		
		mapper.getKKSV000618SC(paramBean, outputMap);
		mapper.getKKSV000611SC(paramBean, outputMap);
		
// 2013/06/18 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD START
		// 異動区分が契約新規またはサービス追加のとき場合、異動年月日のDataBeanを付け替え
		if (JPCModelConstant.FUNC_CD_2.equals(func_code)){
			String ido_div = paramBean[0].sendMessageString(KKW00804SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
			if (IDO_DIV_SINKI.equals(ido_div) || IDO_DIV_TSUIKA.equals(ido_div)){
				HashMap parentMap = null;
				parentMap = (HashMap)outputMap.get("KKSV000616SC");
				paramBean[0].sendMessageString(KKW00804SFConst.IDO_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("ido_dtm"));
			}
		}
// 2013/06/18 [LT-2013-0000012]進捗スキーマ異動年月日時分秒対応 ADD END
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
	}
			
	/**
	 * サービスフォームBean初期値設定処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @exception Exceptionがスローされます。
	 */
	private void setInitBean(X31SDataBeanAccess[] paramBean) throws Exception
	{
		// ホームページ容量の初期値設定
		X31SDataBeanAccessArray hp_capa_list = paramBean[0].getDataBeanArray(KKW00804SFConst.HP_CAPA_INFO);
		X31SDataBeanAccess hp_subbean = hp_capa_list.getDataBean(0);
		hp_subbean.sendMessageString(KKW00804SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// アクセス分析の初期値設定
		X31SDataBeanAccessArray accss_bnsk_list = paramBean[0].getDataBeanArray(KKW00804SFConst.ACCSS_BNSK_INFO);
		X31SDataBeanAccess bnsk_subbean = accss_bnsk_list.getDataBean(0);
		bnsk_subbean.sendMessageString(KKW00804SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		// ドメインを取得
		String hpad_domain = paramBean[0].sendMessageString(KKW00804SFConst.HPAD_DOMAIN, X31CWebConst.DATABEAN_GET_VALUE);
		if("".equals(hpad_domain)) 
		{
			// 固定ドメインを設定する（業務パラメータより）
			String url_domain = paramBean[0].sendMessageString(KKW00804SFConst.URL_DOMAIN, X31CWebConst.DATABEAN_GET_VALUE);
			paramBean[0].sendMessageString(KKW00804SFConst.HPAD_DOMAIN, X31CWebConst.DATABEAN_SET_VALUE, url_domain);
		}
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		//add Start FJ)森本 v3.00.00 日付項目初期値対応
		// 運用日付取得してDataBeanにセットする
		String use_ymd = JCCWebCommon.getOpeDate(this, null);
		// 運用年月日→利用終了日（年）
		paramBean[0].sendMessageString(KKW00804SFConst.USE_STAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, use_ymd.substring(0, 4));
		// 運用年月日→利用終了日（月）
		paramBean[0].sendMessageString(KKW00804SFConst.USE_STAYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, use_ymd.substring(4, 6));
		// 運用年月日→利用終了日（日）
		paramBean[0].sendMessageString(KKW00804SFConst.USE_STAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, use_ymd.substring(6, 8));
		//add End FJ)森本 v3.00.00 日付項目初期値対応
		
	}
	
	/**
	 * サービスコンポーネント設定情報の格納処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @exception Exceptionがスローされます。
	 */
	private void setHPInfoBean(X31SDataBeanAccess[] paramBean) throws Exception
	{
		
		// ホームページ容量情報の選択値を取得
		X31SDataBeanAccessArray hp_capa_list = paramBean[0].getDataBeanArray(KKW00804SFConst.HP_CAPA_INFO);
		X31SDataBeanAccess hp_subbean = hp_capa_list.getDataBean(0);
		String hp_capa_index = hp_subbean.sendMessageString(KKW00804SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ホームページ容量コード
		String hp_capa_value = hp_subbean.sendMessageString(KKW00804SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, 
				Integer.parseInt(hp_capa_index));

		// 数値変換
		Integer capa = Integer.parseInt(hp_capa_value);
		paramBean[0].sendMessageString(KKW00804SFConst.HP_CAPA_VALUE, X31CWebConst.DATABEAN_SET_VALUE, capa+"");	
		paramBean[0].sendMessageString(KKW00804SFConst.CAPA, X31CWebConst.DATABEAN_SET_VALUE, capa+"");	
		
		// ホームページ容量名
		String hp_capa_nm = hp_subbean.sendMessageString(KKW00804SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, 
				Integer.parseInt(hp_capa_index));
		
		paramBean[0].sendMessageString(KKW00804SFConst.HP_CAPA_NM, X31CWebConst.DATABEAN_SET_VALUE, hp_capa_nm);

		// アクセス分析名（「0:無」固定）
		X31SDataBeanAccessArray accss_bnsk_list = paramBean[0].getDataBeanArray(KKW00804SFConst.ACCSS_BNSK_INFO);
		X31SDataBeanAccess bnsk_subbean = accss_bnsk_list.getDataBean(0);
		String bnsk_nm = bnsk_subbean.sendMessageString(KKW00804SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, 0);
		
		paramBean[0].sendMessageString(KKW00804SFConst.ACCSS_BNSK_NM, X31CWebConst.DATABEAN_SET_VALUE, bnsk_nm);

		// 利用開始日を結合
		String use_staymd_year = paramBean[0].sendMessageString(KKW00804SFConst.USE_STAYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd_mon = paramBean[0].sendMessageString(KKW00804SFConst.USE_STAYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd_day = paramBean[0].sendMessageString(KKW00804SFConst.USE_STAYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd = use_staymd_year + use_staymd_mon + use_staymd_day;
			
		paramBean[0].sendMessageString(KKW00804SFConst.USE_STAYMD, X31CWebConst.DATABEAN_SET_VALUE, use_staymd);

		// 利用開始日の当月１日
		String use_sta_mon = use_staymd_year + use_staymd_mon + "01";
		
		// IT1-2013-0000167 2013/01/28 MOD START
		String svc_chrg_staymd = "";
		if (!"".equals(use_staymd))
		{
			// 利用開始日の翌月１日
			svc_chrg_staymd = JPCDateUtil.addMonth(use_sta_mon, 1);
		}
		// IT1-2013-0000167 2013/01/28 MOD END
		// サービス課金開始年月日
		paramBean[0].sendMessageString(KKW00804SFConst.SVC_CHRG_STAYMD, X31CWebConst.DATABEAN_SET_VALUE, svc_chrg_staymd);
		
		// オプションサービスコード
		paramBean[0].sendMessageString(KKW00804SFConst.OP_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, OP_SVC_CD_MYHP);
		
		// 異動区分判定
		String ido_div = paramBean[0].sendMessageString(KKW00804SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 進捗ステータス判定用に運用日付を取得
		String unyo_ymd = paramBean[0].sendMessageString(KKW00804SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 00031:オプション設定の時
		if (IDO_DIV_OP.equals(ido_div))
		{
			// 申込種別コード:00026
			paramBean[0].sendMessageString(KKW00804SFConst.MSKM_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, MSKM_SBT_CD_OP);
			
//			// 進捗ステータス:5102
//			paramBean[0].sendMessageString(KKW00804SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_OP_END);
			
			if(unyo_ymd.equals(use_staymd))
			{
				// 進捗ステータス:5102
				paramBean[0].sendMessageString(KKW00804SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_OP_END);
				
			}
			else
			{
				// ここでは、nullポインタ例外を避けるために運用日かそれ以外か判断し、過去日であるかどうかは別の個所で判断している
				// 進捗ステータス:5101
				paramBean[0].sendMessageString(KKW00804SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_OP_REQEST);
			}
		}
		// 以外（新規申込）
		else 
		{
			// 申込種別コード:00001
			paramBean[0].sendMessageString(KKW00804SFConst.MSKM_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, MSKM_SBT_CD_NEW);
			
//			// 進捗ステータス:0200
//			paramBean[0].sendMessageString(KKW00804SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_NEW);
			
			if(unyo_ymd.equals(use_staymd))
			{
				// 進捗ステータス:5102
				paramBean[0].sendMessageString(KKW00804SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_OP_END);
				
			}
			else
			{
				// 進捗ステータス:5101
				paramBean[0].sendMessageString(KKW00804SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_OP_REQEST);
			}
		}
		
		// 2012/10/16 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
		// 進捗特記事項１
		paramBean[0].sendMessageString(KKW00804SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, PRG_TKJK_1_VAL_MYHP_INFO_ADD);
		// 2012/10/16 [ANK-1223-00-00]進捗補足事項編集対応 ADD END
		
		// エイジング種別コード:005
		paramBean[0].sendMessageString(KKW00804SFConst.AGING_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, AGING_SBT_CD_URL);
		
		// URLを結合
		String hpad_domain = paramBean[0].sendMessageString(KKW00804SFConst.HPAD_DOMAIN, X31CWebConst.DATABEAN_GET_VALUE);
		String hpad_account = paramBean[0].sendMessageString(KKW00804SFConst.HPAD_ACCOUNT, X31CWebConst.DATABEAN_GET_VALUE);
		String aging_url = hpad_domain + hpad_account;
		
		// エイジングURL
		paramBean[0].sendMessageString(KKW00804SFConst.AGING_URL, X31CWebConst.DATABEAN_SET_VALUE, aging_url);
		
		// 運用年月日
		paramBean[0].sendMessageString(KKW00804SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, 
				JCCWebCommon.getOpeDate(this, null));
		
		// 運用年月日時分秒
		paramBean[0].sendMessageString(KKW00804SFConst.UNYO_DTM, X31CWebConst.DATABEAN_SET_VALUE, 
				JCCWebCommon.getOpeDate(this, null) + "000000000");
		
		// 最小以外の選択の場合
		if (!"0".equals(hp_capa_index)) 
		{
			// 無料値を取得
			String hp_capa_value_min = paramBean[0].sendMessageString(KKW00804SFConst.SVCTK_BUT_MRYO_VALUE, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 追加容量を算出
			Integer add_capa = Integer.parseInt(hp_capa_value) - Integer.parseInt(hp_capa_value_min);
			
			// 容量が無料値を超えている場合
			if(add_capa > 0)
			{
			// 追加容量(選択容量 - 最小容量) 数値を登録
				paramBean[0].sendMessageString(KKW00804SFConst.ADD_CAPA, X31CWebConst.DATABEAN_SET_VALUE, add_capa.toString());
			}
			else
			{
				// 追加容量
				paramBean[0].sendMessageString(KKW00804SFConst.ADD_CAPA, X31CWebConst.DATABEAN_SET_VALUE, "0");
			}
			
		}
		// 最小の場合は"0"を設定
		else
		{
			// 追加容量
			paramBean[0].sendMessageString(KKW00804SFConst.ADD_CAPA, X31CWebConst.DATABEAN_SET_VALUE, "0");
			
		}
			
		// サービス契約ステータス（受付済）
		paramBean[0].sendMessageString(KKW00804SFConst.SVC_KEI_STAT_UKE, X31CWebConst.DATABEAN_SET_VALUE, SVC_KEI_STAT_UKE);

		// 親契約識別コード
		paramBean[0].sendMessageString(KKW00804SFConst.OYA_KEI_SKBT_CD, X31CWebConst.DATABEAN_SET_VALUE, OYA_KEI_SKBT_CD_SVC);
		
		// オプション料金コースコード
		paramBean[0].sendMessageString(KKW00804SFConst.OP_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, PCRS_CD_MYHP);
		// オプション料金プランコード
		paramBean[0].sendMessageString(KKW00804SFConst.OP_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, PPLAN_CD_MYHP);
		
		// サブオプション料金コースコード
		paramBean[0].sendMessageString(KKW00804SFConst.SBOP_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, PCRS_CD_HP);
		// サブオプション料金プランコード
		paramBean[0].sendMessageString(KKW00804SFConst.SBOP_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, PPLAN_CD_HP);
		
		// オーダ種別コード
		paramBean[0].sendMessageString(KKW00804SFConst.ORDER_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, ORDER_SBT_CD_NET);
		// サービスオーダコード
		paramBean[0].sendMessageString(KKW00804SFConst.SVC_ORDER_CD, X31CWebConst.DATABEAN_SET_VALUE, SVC_ORDER_CD_WEB);
		// オーダ発行条件コード
		paramBean[0].sendMessageString(KKW00804SFConst.ODR_HAKKO_JOKEN_CD, X31CWebConst.DATABEAN_SET_VALUE, ODR_HAKKO_JOKEN_CD_SOKU);
		
		// 要求種別コード（ＵＲＬ）
		paramBean[0].sendMessageString(KKW00804SFConst.YOKYU_SBT_CD_URL, X31CWebConst.DATABEAN_SET_VALUE, YOKYU_SBT_CD_NEW);
		// オーダ内容コード（ＵＲＬ）
		paramBean[0].sendMessageString(KKW00804SFConst.ODR_NAIYO_CD_URL, X31CWebConst.DATABEAN_SET_VALUE, ODR_NAIYO_CD_WEB_INS);
		
		// 要求種別コード（容量）
		paramBean[0].sendMessageString(KKW00804SFConst.YOKYU_SBT_CD_CAPA, X31CWebConst.DATABEAN_SET_VALUE, YOKYU_SBT_CD_CHG);
		// オーダ内容コード（容量）
		paramBean[0].sendMessageString(KKW00804SFConst.ODR_NAIYO_CD_CAPA, X31CWebConst.DATABEAN_SET_VALUE, ODR_NAIYO_CD_WEB_CHG);
		
		// 事務手数料自動適用要否
		paramBean[0].sendMessageString(KKW00804SFConst.RULE0059_AUTO_APLY, X31CWebConst.DATABEAN_SET_VALUE, AUTO_APLY_YOU);
		
		// start FJ)森本 v3.00.00 申込画面入力支援ワーク情報更新CC対応
		// ネットタブオプション情報制御コードに"1"を設定
		paramBean[0].sendMessageString(KKW00804SFConst.NET_TAB_OP_IF_CTL_CD, X31CWebConst.DATABEAN_SET_VALUE, "1");
		// end FJ)森本 v3.00.00　申込画面入力支援ワーク情報更新CC対応
		
		// IT1-2013-0000035 2013/01/11 ADD START
		// 異動年月日時分秒にシステム日付を設定
		String sysDateDtms = JCCWebCommon.getSysDateTimeStamp();
		paramBean[0].sendMessageString(KKW00804SFConst.IDO_DTM, X31CWebConst.DATABEAN_SET_VALUE, sysDateDtms);
		// IT1-2013-0000035 2013/01/11 ADD END
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

	}
	
	/**
	 * 顧客契約引継リスト設定処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @exception Exceptionがスローされます。
	 */
	private void setHktgiBean(X31SDataBeanAccess[] paramBean) throws Exception
	{
		
		// 顧客契約引継リストの取得
		X31SDataBeanAccessArray cust_kei_hktgi_list = paramBean[0].getDataBeanArray(KKW00804SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess subbean = cust_kei_hktgi_list.getDataBean(0);
		
		String sysid = subbean.sendMessageString(KKW00804SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE);
		String svc_kei_no = subbean.sendMessageString(KKW00804SFConst.SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		String ido_div = subbean.sendMessageString(KKW00804SFConst.IDO_DIV_02, X31CWebConst.DATABEAN_GET_VALUE);

		// 個別引継ぎ情報に格納
		paramBean[0].sendMessageString(KKW00804SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, sysid);
		paramBean[0].sendMessageString(KKW00804SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_no);
		paramBean[0].sendMessageString(KKW00804SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, ido_div);

		// サブオプションサービスコード
		paramBean[0].sendMessageString(KKW00804SFConst.SBOP_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, SBOP_SVC_CD_HPCAPA);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

	}
	
}
