/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム共通（共通（マスタ））
*   モジュール名    ：ZMW02101SFLogic
*   ソースファイル名：ZMW02101SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年06月29日
*＜機能概要＞
*   電話番号削除のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v2.00		2011/06/29   FJ）日野    新規作成
*   v3.00		2011/02/01   FJ）日野    【UIZ-0004-00-00】視認性向上No.4(メッセージ領域背景黄色)対応
*
**********************************************************************/

package eo.web.webview.ZMW02101SF;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.common.JZMWebCommon;
import eo.web.webview.common.JZMWebConst;
import eo.web.webview.mapping.ZMSV0034_ZMSV0034OPDBMapper;
import eo.web.webview.mapping.ZMSV0035_ZMSV0035OPDBMapper;

/**
 * 電話番号削除のビューロジックです。
 * @author FJ
 *
 */
@SuppressWarnings("serial")
public class ZMW02101SFLogic extends JCCWebBusinessLogic
{
	
	/** メッセージ置換文字列　削除  */
	private static final String[] MSG_VALUE_DEL = {"電話番号情報削除"};
	
	/** メッセージ置換文字列　マスタ未存在  */
	private static final String[] MSG_VALUE_NOTFOUND = {"電話番号", "情報"};
	
	/**
	 * 初期表示処理を行います。<br>
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean init() throws Exception
	{
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		if(JZMWebCommon.getScreenInfo(this) == null)
		{
			String screenId = JZMWebCommon.getScreenId(this);
			
			// 遷移先画面ID、名称の設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, screenId);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMWebConst.BLANK);
			
			// 強制画面遷移
			setTransferPageId(screenId + JZMWebConst.PJP);
			return true;
		}
		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケース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>();
		
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JZMWebConst.SV34);
		
		// マッピングクラスのインスタンスを生成
		ZMSV0034_ZMSV0034OPDBMapper mapper = new ZMSV0034_ZMSV0034OPDBMapper();
		mapper.setZMSV003401SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);
		mapper.setZMSV003402SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// サービスの呼び出し
		invokeService(paramMap, dataMap, outputMap);
		
		// マッピングクラスの呼び出し
		mapper.getZMSV003402SC(paramBean, outputMap);
		
		// 検索エラーフラグの取得
		String searchErrFlg = JZMWebCommon.getSearchErrFlg(JZMWebConst.SC3402, outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			String screenId = JZMWebCommon.getScreenId(this);
			
			// メッセージの表示
			JZMWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, MSG_VALUE_NOTFOUND);
			
			// 遷移先画面ID、名称の設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, screenId);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMWebConst.BLANK);
			
			// 強制画面遷移
			setTransferPageId(screenId + JZMWebConst.PJP);
			return true;
		}
		
		// メッセージの表示
		JZMWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, MSG_VALUE_DEL);
		JZMWebCommon.setMessageAreaBackColor(this, JZMWebConst.ONE);
		
		// 遷移先画面ID、名称を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW02101);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW02101);
		
		return true;
	}
	

	/**
	 * 戻るボタン押下処理を行います。<br>
	 * 
	 * @return boolean
	 * @exception Exception 予期せぬエラー
	 */
	public boolean back() throws Exception
	{
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		// 戻り先画面IDの取得
		String screenId = JZMWebCommon.getScreenId(this);
		
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, screenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMWebConst.BLANK);
		
		return true;
	}
	

	/**
	 * 確定ボタン押下処理.<br>
	 * 
	 * @return boolean 処理結果
	 * @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>();
		
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JZMWebConst.SV35);
		
		// マッピングクラス
		ZMSV0035_ZMSV0035OPDBMapper mapper = new ZMSV0035_ZMSV0035OPDBMapper();
		
		// マッピング処理（上り）
		mapper.setZMSV003501SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス実行
		invokeService(paramMap, dataMap, outputMap);
		
		// メッセージの表示
		JZMWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, MSG_VALUE_DEL);
		
		// 遷移先画面ID、名称を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW02102);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW02102);
		
		return true;
	}
	

	/**
	 * 完了ボタン押下処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean fin() throws Exception
	{
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		// HashMapを設定する
		JZMWebCommon.setScreenInfo(this, this.getGamenId(), new HashMap<String, Object>());
		
		// 戻り先画面IDの取得
		String screenId = JZMWebCommon.getScreenId(this);
		
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, screenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMWebConst.BLANK);
		
		return true;
	}
}
