/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：顧客契約
 *	モジュール名	：KKW00807SFLogic
 *	ソースファイル名：KKW00807SFLogic.java
 *	作成者			：FJ
 *	日付			：2011年04月01日
 *＜機能概要＞
 *	メーリングリスト情報登録機能のビューロジッククラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00	    2011/04/01	FJ			新規作成
 *	v3.00	    2012/04/30	FJ）森本	異動理由メモ対応
 *	v4.00		2012/10/12	FJ）清崎	[ANK-1223-00-00]進捗補足事項編集対応
 *	v4.01       2013/01/28  FJ）清崎    【IT1-2013-0000167】キャンセルSOD発行対応
 *	v5.00       2013/06/13  FJ）近藤    【LT-2013-0000012】異動年月日時分秒対応
 **********************************************************************/
package eo.web.webview.KKW00807SF;

import java.text.DecimalFormat;
import java.util.HashMap;

import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JPCDateChecker;
import eo.common.util.JPCDateUtil;
import eo.web.webview.common.JKKPulldownUtil;
import eo.web.webview.mapping.KKSV0024_KKSV0024OPDBMapper;
import eo.web.webview.mapping.KKSV0025_KKSV0025OPDBMapper;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.common.JSYwebLog;

/**
 * <dd>クラス名：メーリングリスト情報登録ビューロジック <dd>クラス説明：画面上のボタン押下時の各処理を記述します。 <dd>備考：
 * 
 * @version 1.0 2011/04/01
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW00807SFLogic extends JCCWebBusinessLogic
{
	// IT2-2012-0000576 2012/06/06 ADD START

	/** 公開／非公開 1:公開 */
	private static final String KOKAI_YH_KOKAI_1 = "1";
	// IT2-2012-0000576 2012/06/06 ADD END
	
	// 2012/10/12 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
	/** 進捗特記事項1：メーリングリスト情報登録 */
	private static final String PRG_TKJK_1_VAL_MAIL_INFO_ADD = "メーリングリスト情報登録";
	// 2012/10/12 [ANK-1223-00-00]進捗補足事項編集対応 ADD END

	/**
	 * 登録画面初期表示処理
	 * 
	 * @return 画面ごとの処理結果
	 * @throws Exception
	 */
	public boolean actionInit() throws Exception
	{

		// 戻り値
		Boolean bRtn = true;
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 遷移先画面IDを取得
		String screenId = commonInfoBean.sendMessageString(
				CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_GET_VALUE);

		// 遷移先画面IDから、行う表示処理を決定する
		if (JKKScreenConst.SCREEN_ID_KKW00807.equals(screenId))
		{
			bRtn = actionInitKKW00807();
		}
		else if (JKKScreenConst.SCREEN_ID_KKW00808.equals(screenId))
		{
		}
		else if (JKKScreenConst.SCREEN_ID_KKW00809.equals(screenId))
		{
		}
		else if (JKKScreenConst.SCREEN_ID_KKW02301.equals(screenId))
		{
		}

		return bRtn;
	}

	/**
	 * 登録画面初期表示処理(画面ごと個別処理）
	 * 
	 * @return 常に真
	 * @throws Exception
	 */
	private boolean actionInitKKW00807() throws Exception
	{
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		// 引き継ぎ情報を取得し、メーリングリスト情報登録サービスフォームBeanに設定する
		if (!getSessionData(svcFormBean))
		{
			throw new Exception();
		}
		X31SDataBeanAccess[] paramBean = { svcFormBean };

		// サービスの呼び出し
		paramMap = new HashMap<String, Object>(); // パラメタマップ生成
		inputMap = new HashMap<String, Object>(); // インプットマップ生成
		outputMap = new HashMap<String, Object>(); // アウトプットマップ生成

		// 運用日の設定
		svcFormBean.sendMessageString(KKW00807SFConst.UNYO_YMD,
				X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this,
						null));

		svcFormBean.sendMessageString(KKW00807SFConst.KEY_RSV_APLY_YMD,
				X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this,
						null));

		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID,
				JKKCommonConst.UCID_KKSV0024);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID,
				JKKCommonConst.OPID_KKSV0024OP);

		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0024_KKSV0024OPDBMapper mapper = new KKSV0024_KKSV0024OPDBMapper();
		mapper.setKKSV002401SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV002402SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setKKSV002403SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV002404SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV002405SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);		//2012-02-20 ST2-2012-0000185対応
		mapper.setKKSV002406SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);		//2012-02-20 ST2-2012-0000185対応
		

		// サービス呼び出し
		invokeService(paramMap, inputMap, outputMap);

		// 取得情報の下りマッピング
		mapper.getKKSV002401SC(paramBean, outputMap);
		mapper.getKKSV002402SC(paramBean, outputMap);
		mapper.getKKSV002403SC(paramBean, outputMap);
		mapper.getKKSV002404SC(paramBean, outputMap);
		mapper.getKKSV002405SC(paramBean, outputMap);		//2012-02-20 ST2-2012-0000185対応
		mapper.getKKSV002406SC(paramBean, outputMap);		//2012-02-20 ST2-2012-0000185対応

		JKKPulldownUtil
				.setPulldownList(svcFormBean, outputMap,
						KKW00807SFConst.SHK_MLLIST_KOKAI_YH_LIST,
						"KKSV002401SC", false);
		// IT2-2012-0000576 2012/06/06 ADD START

		// 初期ＭＬ公開／非公開 初期値設定
		X31SDataBeanAccess pulldownInf = svcFormBean.getDataBeanArray(KKW00807SFConst.SHK_MLLIST_KOKAI_YH_LIST).getDataBean(0);
		int count = (Integer)pulldownInf.sendMessage(KKW00807SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_COUNT);
		String index = "0";
		for (int i = 0; i < count; i++)
		{
			String value = pulldownInf.sendMessageString(KKW00807SFConst.CD_DIV_LIST_01,
					X31CWebConst.DATABEAN_GET_VALUE, i);
			if (KOKAI_YH_KOKAI_1.equals(value)) {
				index = String.valueOf(i);
				break;
			}
		}
		pulldownInf.sendMessageString(KKW00807SFConst.INDEX_01,
				X31CWebConst.DATABEAN_SET_VALUE, index);
		// IT2-2012-0000576 2012/06/06 ADD END

		// 利用年月日 初期値設定
		String unyo_ymd = JCCWebCommon.getOpeDate(this, null);
		svcFormBean.sendMessageString(KKW00807SFConst.UNYO_YMD,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(0, 8));
		svcFormBean.sendMessageString(KKW00807SFConst.USE_STAYMD_YEAR,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(0, 4));
		svcFormBean.sendMessageString(KKW00807SFConst.USE_STAYMD_MON,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(4, 6));
		svcFormBean.sendMessageString(KKW00807SFConst.USE_STAYMD_DAY,
				X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd.substring(6, 8));

		// メーリングリストの取得をマッピング
		X31SDataBeanAccessArray gyomu_para_list = svcFormBean
				.getDataBeanArray(KKW00807SFConst.EZM0321A010CBSMSG1LIST);
		X31SDataBeanAccess domain_subbean = gyomu_para_list.getDataBean(0);
		String domain_str = domain_subbean.sendMessageString(
				KKW00807SFConst.WORK_PARAM_SETTE_VALUE_03,
				X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00807SFConst.SHK_MLLIST_FSTNM_DOMAIN,
				X31CWebConst.DATABEAN_SET_VALUE, domain_str);

		//世代登録年月日（サービス契約）の入れ替え
		X31SDataBeanAccessArray svcList = svcFormBean.getDataBeanArray(KKW00807SFConst.EKK0081A010CBSMSG1LIST);
		X31SDataBeanAccess svc_subbean = svcList.getDataBean(0);
		String geneAddDtm = svc_subbean.sendMessageString(KKW00807SFConst.GENE_ADD_DTM_04, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(
				KKW00807SFConst.SVC_KEI_GENE_ADD_DTM, 
				X31CWebConst.DATABEAN_SET_VALUE,
				geneAddDtm);
		
		// 請求契約番号の取得
		X31SDataBeanAccessArray seiky_kei_Info = svcFormBean.getDataBeanArray(KKW00807SFConst.KAKIN_LIST);
		X31SDataBeanAccess seiky_kei_subbean = seiky_kei_Info.getDataBean(0);

		String seiky_kei_no = seiky_kei_subbean.sendMessageString(KKW00807SFConst.SEIKY_KEI_NO_06, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00807SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, seiky_kei_no);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(),
				null, null, null);

		return true;

	}

	/**
	 * 登録画面「登録確認」ボタン押下時処理
	 * 
	 * @return 常に真
	 * @throws Exception
	 */
	public boolean actionAdd() throws Exception
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { bean };

		// 各種値の設定

		// -- 利用開始日
		// IT1-2013-0000167 2013/01/28 MOD START
		// 利用開始日が設定されていれば編集を行う
		if (!("").equals(bean.sendMessageString(
				KKW00807SFConst.USE_STAYMD_YEAR,
				X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 整形
			DecimalFormat decimal2 = new DecimalFormat("00");
			DecimalFormat decimal4 = new DecimalFormat("0000");

			String yearStr = decimal4.format(Integer.parseInt(bean.sendMessageString(
					KKW00807SFConst.USE_STAYMD_YEAR,
					X31CWebConst.DATABEAN_GET_VALUE)));
			String monthStr = decimal2.format(Integer.parseInt(bean
					.sendMessageString(KKW00807SFConst.USE_STAYMD_MON,
							X31CWebConst.DATABEAN_GET_VALUE)));
			String dayStr = decimal2.format(Integer.parseInt(bean
					.sendMessageString(KKW00807SFConst.USE_STAYMD_DAY,
							X31CWebConst.DATABEAN_GET_VALUE)));

			String fullYmd = yearStr + monthStr + dayStr;

			paramBean[0].sendMessageString(KKW00807SFConst.USE_STA_DAY,
					X31CWebConst.DATABEAN_SET_VALUE, fullYmd);
		}
		else
		{
			paramBean[0].sendMessageString(KKW00807SFConst.USE_STA_DAY,
					X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		// IT1-2013-0000167 2013/01/28 MOD END
		// -- 異動理由
		String ido_div = bean.sendMessageString(KKW00807SFConst.IDO_DIV,
				X31CWebConst.DATABEAN_GET_VALUE);
		// 00031:オプション設定の時
		if (JKKCommonConst.IDO_DIV_VALUE_00031.equals(ido_div))
		{
			// 申込種別コード:00026（オプション設定）
			paramBean[0].sendMessageString(KKW00807SFConst.MSKM_SBT_CD,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKCommonConst.MSKM_SBT_CD_VALUE_00026);

		}
		// 以外（新規申込）
		else
		{
			// 申込種別コード:00001（新規契約）
			paramBean[0].sendMessageString(KKW00807SFConst.MSKM_SBT_CD,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKCommonConst.MSKM_SBT_CD_VALUE_00001);

		}

		// IT1-2013-0000167 2013/01/28 MOD START
		// 利用開始日が設定されていれば編集を行う
		if (!("").equals(bean.sendMessageString(
				KKW00807SFConst.USE_STAYMD_YEAR,
				X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// -- 進捗ステータス
			String unyo_ymd = JCCWebCommon.getOpeDate(this, null);
			String use_staymd = bean.sendMessageString(KKW00807SFConst.USE_STA_DAY,
					X31CWebConst.DATABEAN_GET_VALUE);

			// 即時適用（利用開始日が当日）の場合のみ実行
			if (JPCDateChecker.isEqualDate(use_staymd, unyo_ymd))
			{
				// 進捗ステータス:5102
				paramBean[0].sendMessageString(KKW00807SFConst.PRG_STAT,
						X31CWebConst.DATABEAN_SET_VALUE,
						JKKCommonConst.PRG_STAT_CD_5102);
			}
			else
			{
				// 進捗ステータス:5101
				paramBean[0].sendMessageString(KKW00807SFConst.PRG_STAT,
						X31CWebConst.DATABEAN_SET_VALUE,
						JKKCommonConst.PRG_STAT_CD_5101);
			}
		}
		else
		{
			// 進捗ステータス:5101
			paramBean[0].sendMessageString(KKW00807SFConst.PRG_STAT,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKCommonConst.PRG_STAT_CD_5101);
		}
		// IT1-2013-0000167 2013/01/28 MOD END

		// 2012/10/12 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
		// 進捗特記事項1
		paramBean[0].sendMessageString(KKW00807SFConst.PRG_TKJK_1, 
				X31CWebConst.DATABEAN_SET_VALUE, 
				PRG_TKJK_1_VAL_MAIL_INFO_ADD);
		// 2012/10/12 [ANK-1223-00-00]進捗補足事項編集対応 ADD END
		
		// start FJ)森本 v3.00.00 申込画面入力支援ワーク情報更新CC対応
		// ネットタブオプション情報制御コードに"1"を設定
		paramBean[0].sendMessageString(KKW00807SFConst.NET_TAB_OP_IF_CTL_CD, X31CWebConst.DATABEAN_SET_VALUE, "1");
		// end FJ)森本 v3.00.00　申込画面入力支援ワーク情報更新CC対応

		// データ準備
		initDataKKW00807SFBean(bean);

		// 登録確認サービス実行
		boolean exeResult = createOpSvcKei(JPCModelConstant.FUNC_CD_2);

		if (exeResult) {
			// 共有フォームBean設定
			X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_ID_KKW00808);
			commonInfoBean.sendMessageString(
					CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW00808);

			// メッセージ表示処理
			String[] str = { "メーリングリスト情報の登録" };
			JCCWebCommon.setMessageInfo(this, "EKB0370--I", str);
		}
		return true;
	}

	/**
	 * 登録確認画面「確定」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionFix() throws Exception
	{
		// 登録確認サービス実行
		boolean exeResult = createOpSvcKei(JPCModelConstant.FUNC_CD_1);

		if (exeResult)
		{
			// 共有フォームBean設定
			X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_ID_KKW00809);
			commonInfoBean.sendMessageString(
					CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE,
					JKKScreenConst.SCREEN_NAME_KKW00809);

			// メッセージ表示処理
			String[] str = { "メーリングリスト情報の登録" };
			JCCWebCommon.setMessageInfo(this, "EKB4390--I", str);
		}
		return true;
	}

	/**
	 * メーリングリスト登録確認処理
	 * 
	 * @param funcCode
	 *            機能コード
	 * @return 正常終了:true 異常終了:false
	 */
	private boolean createOpSvcKei(String funcCode)
	{
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { bean };

		// サービスの呼び出し
		paramMap = new HashMap<String, Object>(); // パラメタマップ生成
		inputMap = new HashMap<String, Object>(); // インプットマップ生成
		outputMap = new HashMap<String, Object>(); // アウトプットマップ生成

		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID,
				JKKCommonConst.UCID_KKSV0025);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID,
				JKKCommonConst.OPID_KKSV0025OP);
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0025_KKSV0025OPDBMapper mapper = new KKSV0025_KKSV0025OPDBMapper();
		mapper.setKKSV002501SC(paramBean, inputMap, funcCode);
		mapper.setKKSV002501SC(paramBean, inputMap, funcCode);
		mapper.setKKSV002502SC(paramBean, inputMap, funcCode);
		mapper.setKKSV002503SC(paramBean, inputMap, funcCode);
		mapper.setKKSV002504SC(paramBean, inputMap, funcCode);
		mapper.setKKSV002505SC(paramBean, inputMap, funcCode);
		mapper.setKKSV002506SC(paramBean, inputMap, funcCode);
		mapper.setKKSV002507SC(paramBean, inputMap, funcCode);
		mapper.setKKSV002508SC(paramBean, inputMap, funcCode);
		mapper.setKKSV002509SC(paramBean, inputMap, funcCode);

		mapper.setKKSV002511SC(paramBean, inputMap, funcCode);
		
		mapper.setKKSV002512SC(paramBean, inputMap, funcCode);		//2012-02-20 ST2-2012-0000185対応

		// start FJ)森本 v3.00.00 申込画面入力支援ワーク情報更新CC対応
		// 申込画面入力支援ワーク情報更新CC
		mapper.setUpdMkmScinsprtWkCC(paramBean, inputMap, funcCode);	
		// end FJ)森本 v3.00.00　申込画面入力支援ワーク情報更新CC対応

		// 登録確認サービス実行
		invokeService(paramMap, inputMap, outputMap);

		// 取得情報の下りマッピング
		// mapper.getKKSV002501SC(paramBean, outputMap);

		// 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
	 */
	public boolean actionShusei()
	{
		// 共有フォームBean設定
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW00807);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW00807);

		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, JCCWebCommon
								.getScreenId(this));

		return true;
	}

	/**
	 * 引継情報を取得し、サービスフォームBeanに設定する
	 * 
	 * @param svcFormBean
	 *            DataBeanアクセスクラス
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean getSessionData(X31SDataBeanAccess svcFormBean) throws Exception
	{
		// 前画面からの引継情報を取得
		HashMap<String, Object> dataMap = JCCWebCommon.getScreenInfo(this);
		if (dataMap == null)
		{
			return false;
		}

		// 顧客契約引継リスト（第二階層）から第一階層の同名項目にセット

		X31SDataBeanAccessArray custList = svcFormBean
				.getDataBeanArray(KKW00807SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess subbean = custList.getDataBean(0);

		// SYSID
		svcFormBean.sendMessageString(KKW00807SFConst.SYSID,
				X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
						KKW00807SFConst.SYSID_02,
						X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号
		svcFormBean.sendMessageString(KKW00807SFConst.SVC_KEI_NO,
				X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
						KKW00807SFConst.SVC_KEI_NO_02,
						X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分
		svcFormBean.sendMessageString(KKW00807SFConst.IDO_DIV,
				X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
						KKW00807SFConst.IDO_DIV_02,
						X31CWebConst.DATABEAN_GET_VALUE));
		// 異動理由
		int count = (Integer)subbean.sendMessage(
				KKW00807SFConst.IDO_RSN_CD_02, X31CWebConst.DATABEAN_GET_COUNT);
		
		// ▼異動理由メモ対応 Start
		String ido_rsn_memo = subbean.sendMessageString(KKW00807SFConst.IDO_RSN_MEMO_02, X31CWebConst.DATABEAN_GET_VALUE);
		// ▲異動理由メモ対応 End

		X31SDataBeanAccessArray idoRsnList = 
			svcFormBean.getDataBeanArray(KKW00807SFConst.IDO_RSN_CD_LIST);
		
		for (int i = 0; i < count; i++)
		{
			svcFormBean.sendMessageString(KKW00807SFConst.IDO_RSN_CD,
					X31CWebConst.DATABEAN_ADD_VALUE, subbean.sendMessageString(
							KKW00807SFConst.IDO_RSN_CD_02,
							X31CWebConst.DATABEAN_GET_VALUE, i));
			// ▼異動理由メモ対応 Start
			svcFormBean.sendMessageString(KKW00807SFConst.IDO_RSN_MEMO_02, X31CWebConst.DATABEAN_ADD_VALUE, ido_rsn_memo);
			// ▲異動理由メモ対応 End
			
			X31SDataBeanAccess idoElement = idoRsnList.addDataBean();
			idoElement.sendMessageString(KKW00807SFConst.IDO_RSN_CD_05, X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
					KKW00807SFConst.IDO_RSN_CD_02,
					X31CWebConst.DATABEAN_GET_VALUE, i));
			// ▼異動理由メモ対応 Start
			idoElement.sendMessageString(KKW00807SFConst.IDO_RSN_MEMO_05, X31CWebConst.DATABEAN_SET_VALUE, ido_rsn_memo);
			// ▲異動理由メモ対応 End
			
		}

		return true;
	}

	/**
	 * メーリングリスト情報登録サービスのInput用項目の編集
	 * 
	 * @param bean
	 *            DataBeanアクセスクラス
	 * @throws Exception
	 * @return 正常終了:true 異常終了:false
	 */
	public boolean initDataKKW00807SFBean(X31SDataBeanAccess bean) throws Exception
	{
		// 表示用初期ＭＬ名
		bean.sendMessageString(KKW00807SFConst.MLLIST_NM,
				X31CWebConst.DATABEAN_SET_VALUE, bean.sendMessageString(
						KKW00807SFConst.SHK_MLLIST_FSTNM_ACCOUNT,
						X31CWebConst.DATABEAN_GET_VALUE)
						+ "@" + bean.sendMessageString(
								KKW00807SFConst.SHK_MLLIST_FSTNM_DOMAIN,
								X31CWebConst.DATABEAN_GET_VALUE));

		// 初期ML非公開/公開プルダウンの選択を取得
		X31SDataBeanAccessArray shk_mllist_kokai_yh_list = bean
				.getDataBeanArray(KKW00807SFConst.SHK_MLLIST_KOKAI_YH_LIST);
		X31SDataBeanAccess subbean = shk_mllist_kokai_yh_list.getDataBean(0);
		// 添え字の取得
		String index = subbean.sendMessageString(KKW00807SFConst.INDEX_01,
				X31CWebConst.DATABEAN_GET_VALUE);

		// 添え字からコードを取得
		String cd_div = subbean.sendMessageString(
				KKW00807SFConst.CD_DIV_LIST_01,
				X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(index));
		// コードをDataBeanに設定
		bean.sendMessageString(KKW00807SFConst.SHK_MLLIST_KOKAI_YH,
				X31CWebConst.DATABEAN_SET_VALUE, cd_div);

		// 添え字からコード名称を取得
		String cd_div_nm = subbean.sendMessageString(
				KKW00807SFConst.CD_DIV_NM_LIST_01,
				X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(index));
		// コードと名称に分割
//		String[] cd_div_nm_array = cd_div_nm.split(". ");
		// 名称をDataBeanに設定
		bean.sendMessageString(KKW00807SFConst.DSP_SHK_MLLIST_KOKAI,
				X31CWebConst.DATABEAN_SET_VALUE, cd_div_nm);

		// 利用開始日
		String use_staymd_year = bean.sendMessageString(
				KKW00807SFConst.USE_STAYMD_YEAR,
				X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd_mon = bean
				.sendMessageString(KKW00807SFConst.USE_STAYMD_MON,
						X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd_day = bean
				.sendMessageString(KKW00807SFConst.USE_STAYMD_DAY,
						X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd = use_staymd_year + use_staymd_mon + use_staymd_day;
		bean.sendMessageString(KKW00807SFConst.USE_STA_DAY,
				X31CWebConst.DATABEAN_SET_VALUE, use_staymd);

		// IT1-2013-0000167 2013/01/28 MOD START
		String svc_chrg_staymd = "";
		if (!"".equals(use_staymd))
		{
			// サービス課金開始年月日（利用開始日の翌月１日）
			svc_chrg_staymd = JPCDateUtil.addMonth(use_staymd_year
					+ use_staymd_mon + "01", 1);
		}
		// IT1-2013-0000167 2013/01/28 MOD END
		// サービス課金開始年月日
		bean.sendMessageString(KKW00807SFConst.SVC_CHRG_STAYMD,
				X31CWebConst.DATABEAN_SET_VALUE, svc_chrg_staymd);
		// 運用年月日時分秒
		bean.sendMessageString(KKW00807SFConst.UNYO_DTM,
				X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null)
				+ JCCWebCommon.getSysDateTimeStamp().substring(8));

		// // 申込種別コード（オプション申込）
		// bean.sendMessageString(KKW00807SFConst.MSKM_SBT_CD,
		// X31CWebConst.DATABEAN_SET_VALUE,
		// JKKCommonConst.MSKM_SBT_CD_VALUE_00026);

		// // オプションサービスコード（メーリングリスト）
		// bean.sendMessageString(KKW00807SFConst.OP_SVC_CD,
		// X31CWebConst.DATABEAN_SET_VALUE,
		// JKKCommonConst.OP_SVC_CD_VALUE_0030);
		//
		// // 異動区分（オプション設定）
		// bean.sendMessageString(KKW00807SFConst.IDO_DIV,
		// X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.IDO_DIV_VALUE_00031);
		
// v5.00 2013/06/13 LT-2013-0000012 add
		// 異動区分取得
		String ido_div = bean.sendMessageString(KKW00807SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 異動区分が新規契約（00001）、サービス追加（00002）以外の場合
		if (!JKKCommonConst.IDO_DIV_VALUE_00001.equals(ido_div) && !JKKCommonConst.IDO_DIV_VALUE_00002.equals(ido_div))
		{
			// 更新年月日時分秒にシステム年月日時分秒を設定
			bean.sendMessageString(KKW00807SFConst.UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getSysDateTimeStamp());
		}
		// 更新年月日時分秒を取得
		String upd_dtm = bean.sendMessageString(KKW00807SFConst.UPD_DTM, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 更新年月日時分秒が空の場合
		if (null == upd_dtm || "".equals(upd_dtm))
		{
			// 更新年月日時分秒にシステム年月日時分秒を設定
			bean.sendMessageString(KKW00807SFConst.UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getSysDateTimeStamp());
		}
		
// v5.00 2013/06/13 LT-2013-0000012 end

		return true;
	}

}

