/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：クエリ削除確認ビューロジック
 *   ソースファイル名：CRW04505SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2012年01月12日
 *＜機能概要＞
 *   クエリ削除確認画面のビューロジックです。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v1.00.00    2012/01/12   FJ）伊藤    新規作成
 *
 **********************************************************************/

package eo.web.webview.CRW04505SF;

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.JCRStrConst;
import eo.common.constant.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;
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.CRSV0145_CRSV0145OPDBMapper;
import eo.web.webview.mapping.CRSV0146_CRSV0146OPDBMapper;

/**
 * クエリ削除確認ビューロジック.<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CRW04505SFLogic 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 initDlt() 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)を使用し、引継情報を取得する。
		HashMap<String, Object> inMap = JCRWebCommon.getScreenInfo(this);

		// (b)クエリ番号を取得する
		String queryNo = (String)inMap.get(JCRStrConst.KEY_QUERY_NO);

		// (2)サービスフォームBeanの設定
		// (a)システム日付の取得
		String sysDate = JCRWebCommon.getSysDate();

		// (b)サービスフォームBean項目の設定
		bean.sendMessageString(CRW04505SFConst.KEY_BASE_YMD, X31CWebConst.DATABEAN_SET_VALUE, sysDate);
		bean.sendMessageString(CRW04505SFConst.KEY_QUERY_NO, X31CWebConst.DATABEAN_SET_VALUE, queryNo);

		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0145");

		// マッピングクラス
		CRSV0145_CRSV0145OPDBMapper mapper = new CRSV0145_CRSV0145OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV014501SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETQUERYKMK1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// (a)サービスの処理結果を取得する。
		// マッピング処理（下り）
		mapper.getCRSV014501SC(paramBean, outputMap);
		mapper.getGETQUERYKMK1RCC(paramBean, outputMap);

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04505);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04505);

		return true;
	}

	/**
	 * 確定ボタン押下.<br>
	 * クエリ、クエリ項目、クエリ項目内訳を登録する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean fix() 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};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0146");

		// マッピングクラス
		CRSV0146_CRSV0146OPDBMapper mapper = new CRSV0146_CRSV0146OPDBMapper();

		// マッピング処理（上り）
		mapper.setDELQUERYINFOCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// (a)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW04401, JCRScreenConst.SCREEN_ID_CRW04505);

		// (b)次画面への引継情報(dataMap)を作成する。
		paramMap.put(JCRStrConst.KEY_REFRESH_TYPE, JCRStrConst.QUERY_ALL_REFRESH);

		// (c)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW04401, paramMap);

		// (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;
	}

}
