/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：キューBOX情報詳細照会ビューロジック
*   ソースファイル名：CRW06403SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年11月01日
*＜機能概要＞
*   キューBOX情報詳細照会画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/11/01   FJ）垣内    新規作成
*
**********************************************************************/

package eo.web.webview.CRW06403SF;

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.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x33.X33SException;

import eo.common.constant.JCRStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JCRUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CRW06301SF.CRW06301SFConst;
import eo.web.webview.CRW06403SF.CRW06403SFConst;
import eo.web.webview.CRW06404SF.CRW06404SFConst;
import eo.web.webview.CRW06406SF.CRW06406SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.mapping.CRSV0234_CRSV0234OPDBMapper;

/**
 * キューBOX情報詳細照会ビューロジック.<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CRW06403SFLogic 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 initEdit() 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)引継情報の取得
		// 画面情報設定部品（JCRWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		JCRWebCommon.getScreenInfo(this);

		// (2)サービスフォームBeanの設定
		// ログインユーザーの機能権限と現在格納数により削除ボタンを制御する。
		boolean blnRtn = false;
		if(JCRWebCommon.checkAuthority(this, this.getGamenId() + ";" + JCRStrConst.AUTHORITY_KEY_CRW06403_DSP_DEL_FLG))
		{
			blnRtn = true;
		}

		// 見出し表示フラグ
		bean.sendMessageBoolean(CRW06301SFConst.SEARCH_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		
		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0234");

		// マッピングクラス
		CRSV0234_CRSV0234OPDBMapper mapper = new CRSV0234_CRSV0234OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV023401SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCRSV023402SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// (a)キューメンバー情報一覧明細リストをクリアする。
		bean.getDataBeanArray(CRW06403SFConst.ECR0121B010CBSMSG1LIST).clearArray();

		// (b)サービスの処理結果を取得する。
		// マッピング処理（下り）
		mapper.getCRSV023401SC(paramBean, outputMap);
		mapper.getCRSV023402SC(paramBean, outputMap);

		// (c)サービスフォームBean項目の設定
		// 検索結果フラグに"TRUE"設定する
		bean.sendMessageBoolean(CRW06301SFConst.SEARCH_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);	

		// 削除ボタン表示フラグ判定
		if(blnRtn &&  "0".equals(bean.sendMessageString(CRW06403SFConst.NOW_KAKNO_CNT, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageBoolean(CRW06403SFConst.DELBTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
		}
		else 
		{
			bean.sendMessageBoolean(CRW06403SFConst.DELBTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		}

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW06403);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW06403);
		
		return true;
		
	}
	
	/**
	 * 編集ボタン押下.<br>
	 * キューBOX情報更新画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean edit() 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)引継情報の設定
		// キューBOX番号
		String queBoxNo = bean.sendMessageString(CRW06403SFConst.QUE_BOX_NO
				, X31CWebConst.DATABEAN_GET_VALUE);
		// キューBOX名
		String que_box_nm = bean.sendMessageString(CRW06403SFConst.QUE_BOX_NM
				, X31CWebConst.DATABEAN_GET_VALUE);
		// キュータイプ名称
		String que_type_cd_nm = bean.sendMessageString(CRW06403SFConst.QUE_TYPE_CD_NM
				, X31CWebConst.DATABEAN_GET_VALUE);
		// キューBOX説明
		String que_box_setmei = bean.sendMessageString(CRW06403SFConst.QUE_BOX_SETMEI
				, X31CWebConst.DATABEAN_GET_VALUE);
		// 対応履歴メールアドレス帳番号
		String taio_mlad = bean.sendMessageString(CRW06403SFConst.TAIORRK_ML_ADBK_NO
				, X31CWebConst.DATABEAN_GET_VALUE);
		// ワークグループコード
		String wkkbt_org_cd = bean.sendMessageString(CRW06403SFConst.WKKBT_ORG_CD
				, X31CWebConst.DATABEAN_GET_VALUE);
		// 更新前更新年月日時分秒
		String updDtmBf = bean.sendMessageString(CRW06403SFConst.UPD_DTM_BF
				, X31CWebConst.DATABEAN_GET_VALUE);

		// (a)次画面への引継情報(dataMap)を作成する。
		// 子画面に渡す情報をHashMapに設定する
		paramMap.put(CRW06404SFConst.QUE_BOX_NO, queBoxNo);
		paramMap.put(CRW06404SFConst.UPD_DTM_BF, updDtmBf);
		paramMap.put(CRW06404SFConst.QUE_BOX_NM, que_box_nm);
		paramMap.put(CRW06404SFConst.QUE_TYPE_CD_NM, que_type_cd_nm);
		paramMap.put(CRW06404SFConst.QUE_BOX_SETMEI, que_box_setmei);
		paramMap.put(CRW06404SFConst.INIT_TAIORRK_MLAD_NO, taio_mlad);
		paramMap.put(CRW06404SFConst.WKKBT_ORG_CD, wkkbt_org_cd);
		paramMap.put(CRW06404SFConst.ECR0121C010CBSMSG1LIST
				, JCRWebCommon.getArrayList(bean.getDataBeanArray(CRW06403SFConst.ECR0121B010CBSMSG1LIST)));
		paramMap.put(CRW06404SFConst.ECR0121B010CBSMSG1LIST
				, JCRWebCommon.getArrayList(bean.getDataBeanArray(CRW06403SFConst.ECR0121B010CBSMSG1LIST)));

		// (b)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		// 子画面に渡す情報を設定
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW06404, paramMap);

		// (c)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		// 子画面に親画面の画面IDを設定
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW06404
				, JCRScreenConst.SCREEN_ID_CRW06403);

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW06404);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW06404);

		return true;
	}

	/**
	 * 削除ボタン押下.<br>
	 * キューBOX情報削除確認画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean delete() 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)引継情報の設定
		// キューBOX番号
		String que_box_no = bean.sendMessageString(CRW06403SFConst.QUE_BOX_NO
				, X31CWebConst.DATABEAN_GET_VALUE);
		// キューBOX名
		String que_box_nm = bean.sendMessageString(CRW06403SFConst.QUE_BOX_NM
				, X31CWebConst.DATABEAN_GET_VALUE);
		// キュータイプ名称
		String que_type_cd_nm = bean.sendMessageString(CRW06403SFConst.QUE_TYPE_CD_NM
				, X31CWebConst.DATABEAN_GET_VALUE);
		// キューBOX説明
		String que_box_setmei = bean.sendMessageString(CRW06403SFConst.QUE_BOX_SETMEI
				, X31CWebConst.DATABEAN_GET_VALUE);
		// メールアドレス
		String mlad = bean.sendMessageString(CRW06403SFConst.MLAD
				, X31CWebConst.DATABEAN_GET_VALUE);
		// メールアドレス名称
		String mlad_nm = bean.sendMessageString(CRW06403SFConst.MLAD_NM
				, X31CWebConst.DATABEAN_GET_VALUE);
		// ワークグループ名称
		String wkkbt_org_nm = bean.sendMessageString(CRW06403SFConst.WKKBT_ORG_NM
				, X31CWebConst.DATABEAN_GET_VALUE);
		// 更新前更新年月日時分秒
		String upd_dtm_bf = bean.sendMessageString(CRW06403SFConst.UPD_DTM_BF
				, X31CWebConst.DATABEAN_GET_VALUE);

		// (a)次画面への引継情報(dataMap)を作成する。
		// 子画面に渡す情報をHashMapに設定する
		paramMap.put(CRW06406SFConst.QUE_BOX_NO, que_box_no);
		paramMap.put(CRW06406SFConst.QUE_BOX_NM, que_box_nm);
		paramMap.put(CRW06406SFConst.QUE_TYPE_CD_NM, que_type_cd_nm);
		paramMap.put(CRW06406SFConst.QUE_BOX_SETMEI, que_box_setmei);
		paramMap.put(CRW06406SFConst.MLAD, mlad);
		paramMap.put(CRW06406SFConst.MLAD_NM, mlad_nm);
		paramMap.put(CRW06406SFConst.WKKBT_ORG_NM, wkkbt_org_nm);
		paramMap.put(CRW06406SFConst.UPD_DTM_BF, upd_dtm_bf);
		paramMap.put(CRW06406SFConst.ECR0121B010CBSMSG1LIST
				, JCRWebCommon.getArrayList(bean.getDataBeanArray(CRW06403SFConst.ECR0121B010CBSMSG1LIST)));

		// (b)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		// 子画面に渡す情報を設定
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW06406, paramMap);

		// (c)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		// 子画面に親画面の画面IDを設定
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW06406
				, JCRScreenConst.SCREEN_ID_CRW06403);

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW06406);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW06406);

		return true;
	}

}
