/*******************************************************************************
* All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
* システム名        ：eo顧客基幹システム
* モジュール名      ：CRW05404SFLogic
* ソースファイル名  ：CRW05404SFLogic.java
* 作成者            ：富士通
* 日付              ：2011年08月06日
*＜機能概要＞
* 署名テンプレート情報更新ビューロジック
*＜修正履歴＞
* バージョン    修正日      修正者      修正内容
* ｖ1.00.00
*
********************************************************************************/

//***********************************************************************************************
//*  CRW05404SFLogic.java                 All Rights reserved,Copyright (c) K-Opticom   *
//***********************************************************************************************
/*
履歴：
	NO	日付			更新者								    内容
	01	2011.04.01		Webクライアント定義ツール 2.0.28		新規作成
*/


package eo.web.webview.CRW05404SF;

import java.util.EventObject;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CID;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x33.X33SException;

import eo.common.constant.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CRW05404SF.CRW05404SFConst;
import eo.web.webview.CRW05404SF.CRW05404SFConst;
import eo.web.webview.CRW05403SF.CRW05403SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCScreenConst;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.mapping.CRSV0191_CRSV0191OPDBMapper;
import eo.web.webview.mapping.CRSV0192_CRSV0192OPDBMapper;

/**
 * 署名テンプレート情報更新ビューロジック.<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CRW05404SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 親クラスX31BWebBusinessLogicのreceiveMessageWebを
	 * オーバーライドして自動生成されたメソッドです。
	 * @param arg0 (I) イベント情報
	 * @param arg1 (I) WebFWでは使用しません
	 * @param arg2 (I) WebFWでは使用しません
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws X33SException X33SException
	 */
	@Override
	protected boolean receiveMessageWeb(X31CID arg0, Object arg1,
			EventObject arg2) throws X33SException
	{
		return false;
	}

	/**
	 * 初期表示処理.<br>
	 * 初期表示を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean init() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// (a)画面情報設定部品（JCRWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		JCRWebCommon.getScreenInfo(this);
		
		// (2)サービスフォームBeanの設定
		// (a)システム日付の取得
		String sysDate = JCRWebCommon.getSysDate();
		
		// (b)基準日にシステム日付を設定
		bean.sendMessageString(CRW05404SFConst.STDARD_YMD, X31CWebConst.DATABEAN_SET_VALUE, sysDate);
		
		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0191");

		// マッピングクラス
		CRSV0191_CRSV0191OPDBMapper mapper = new CRSV0191_CRSV0191OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV019101SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// マッピング処理（上り）
		mapper.setCRSV019102SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// (a)サービスの処理結果を取得する。
		// マッピング処理（下り）
		mapper.getCRSV019102SC(paramBean, outputMap);
		mapper.getCRSV019101SC(paramBean, outputMap);

		// (b)サービスフォームBeanの設定
		// 適用開始年月日
		String tstaymd = bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTAYMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTYY, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toYearFromYmd(tstaymd));
		bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTMM, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toMonthFromYmd(tstaymd));
		bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTDD, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toDayFromYmd(tstaymd));
		// 適用終了年月日
		String tendymd = bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDYMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDYY, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toYearFromYmd(tendymd));
		bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDMM, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toMonthFromYmd(tendymd));
		bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDDD, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toDayFromYmd(tendymd));
	
		// (c)サービスフォームBeanの退避項目の設定
		// 署名テンプレートタイプコードインデックスの取得
		X31SDataBeanAccess comboSignTemplaTypeCd = bean.getDataBeanArray(CRW05404SFConst.SIGN_TEMPLA_TYPE).getDataBean(0);
		String signTemplaTypeCdIdx = comboSignTemplaTypeCd.sendMessageString(CRW05404SFConst.L0_SIGN_TEMPLA_TYPE_CD_IDX_01
				, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 初期表示時の内容の退避、クリアボタン、閉じるボタンの対応のため
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_TYPE_CD_IDX, X31CWebConst.DATABEAN_SET_VALUE, signTemplaTypeCdIdx);
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_TITLE, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TITLE, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_GAIYO, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_GAIYO, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_TEXT, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TEXT, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_FOOTER, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_FOOTER, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_TSTYY, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTYY, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_TSTMM, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTMM, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_TSTDD, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTDD, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_TENDYY, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDYY, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_TENDMM, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDMM, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW05404SFConst.BK_SIGN_TEMPLA_TENDDD, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDDD, X31CWebConst.DATABEAN_GET_VALUE));

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW05404);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW05404);
		
		return true;
		
	}
	

	/**
	 * 更新確認ボタン押下.<br>
	 * 入力チェックを行い、エラーがない場合は、署名テンプレート変更確認画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean confirmUpd() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		//(1)引継情報の取得
		//なし。
		
		// (2)サービスフォームBeanの設定
		// サービスフォームBeanの設定

		//署名テンプレートタイプ名称
		bean.sendMessageString(CRW05404SFConst.MLAD_SBT_NM, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownName(bean, CRW05404SFConst.SIGN_TEMPLA_TYPE, CRW05404SFConst.L0_SIGN_TEMPLA_TYPE_CD_IDX_01
				, CRW05404SFConst.L0_SIGN_TEMPLA_TYPE_CD_01, CRW05404SFConst.L0_SIGN_TEMPLA_TYPE_NM_01));
		
		//適用開始年月日
		bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTAYMD, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.concatYmd(bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTYY, X31CWebConst.DATABEAN_GET_VALUE), 
						bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTMM, X31CWebConst.DATABEAN_GET_VALUE), 
						bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TSTDD, X31CWebConst.DATABEAN_GET_VALUE)));

		//適用終了年月日
		bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDYMD, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.concatYmd(bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDYY, X31CWebConst.DATABEAN_GET_VALUE), 
						bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDMM, X31CWebConst.DATABEAN_GET_VALUE), 
						bean.sendMessageString(CRW05404SFConst.SIGN_TEMPLA_TENDDD, X31CWebConst.DATABEAN_GET_VALUE)));
		
		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0192");

		// マッピングクラス
		CRSV0192_CRSV0192OPDBMapper mapper = new CRSV0192_CRSV0192OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV019201SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW05405);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW05405);

		return true;
	}

	/**
	 * キャンセルボタン押下.<br>
	 * 署名テンプレート情報詳細照会画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean cancelUpd1() throws Exception
	{

		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// 詳細画面に渡す情報用HashMap
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// なし。

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// 署名テンプレート番号
		String signTemplaNo = bean.sendMessageString(CRW05404SFConst.KEY_SIGN_TEMPLA_NO
				, X31CWebConst.DATABEAN_GET_VALUE);

		// (a)次画面への引継情報(dataMap)を作成する。
		// 次画面に渡す情報をHashMapに設定する
		paramMap.put(CRW05403SFConst.KEY_SIGN_TEMPLA_NO, signTemplaNo);

		// (b)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、遷移元画面への引継情報を設定する。
		// 遷移元画面に渡す情報を設定
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW05403, paramMap);

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW05403);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW05403);

		return true;
	}

	/**
	 * 確定ボタン押下.<br>
	 * 署名テンプレート情報の更新を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean fixUpd() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// なし。

		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0192");

		// マッピングクラス
		CRSV0192_CRSV0192OPDBMapper mapper = new CRSV0192_CRSV0192OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV019201SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_ID_CCW00105);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_NAME_CCW00105);

		return true;
	}

	/**
	 * キャンセルボタン押下.<br>
	 * 署名テンプレート更新に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean cancelUpd2() throws Exception
	{

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// なし。

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW05404);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW05404);

		return true;
	}

}
