/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKW16701SFLogic
*	ソースファイル名：KKW16701SFLogic.java
*	作成者			：FJ
*	日付			：2012年10月11日
*＜機能概要＞
*	KKW16701のビューロジック
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/10/11	FJ)藤原		新規作成
*
********************************************************************************/
package eo.web.webview.KKW16701SF;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JKKStrConst;
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.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.mapping.KKSV0722_KKSV0722OPDBMapper;
import eo.web.webview.mapping.KKSV0723_KKSV0723OPDBMapper;

/**
 * KKW16701のビューロジック
 * @author FJ
 *
 */
public class KKW16701SFLogic extends JCCWebBusinessLogic
{
	
	/** メッセージ置換文字列  */
	private static final 	String[] MESSAGE_VALUE = {"紹介票管理番号の更新"};
	
	/**
	 * 検索処理最大検索件数
	 */
	private static final String SEARCH_MAX_SHOW_CNT = "KKW16701_MAX_SHOW_CNT";
	/**
	 * 照会処理ユースケースID
	 */
	private static final String SHOKAI_USECASE_ID = "KKSV0722";
	/**
	 * 更新処理ユースケースID
	 */
	private static final String UPD_USECASE_ID = "KKSV0723";
	
	/**
	 * 照会処理SCタイトル01
	 */
	private static final String SHOKAI_SC_TITLE01 = "KKSV072201SC";
	
	/**
	 * 初期表示処理
	 * @return boolean
	 */
	public boolean action_init()
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 遷移元画面IDの存在チェック
		String backScreenId = JKKWebCommon.getScreenId(this);
		
		// 戻るボタンの表示要否判定
		if(backScreenId != null)
		{
			bean.sendMessageString(KKW16701SFConst.BACK_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE,
					JKKStrConst.KDDI_BACK_BTN_DSP_FLG_TRUE);
		}
		else
		{
			bean.sendMessageString(KKW16701SFConst.BACK_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE,
					JKKStrConst.KDDI_BACK_BTN_DSP_FLG_FALSE);
		}
		// 遷移元画面IDの再設定
		JKKWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW16701, backScreenId);
		
		/**
		 * DataBean設定処理
		 */
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW16701);
		
		
		return true;
	}
	
	/**
	 * 検索ボタン押下
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_search() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * サービス呼出処理
		 */
		//  ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SHOKAI_USECASE_ID);

		// マッピングクラスのインスタンスを生成
		KKSV0722_KKSV0722OPDBMapper mapper = new KKSV0722_KKSV0722OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/**
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setKKSV072201SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		/**
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JKKWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		/**
		 * サービス処理結果の取得
		 */

		/**
		 * 下りマッピング
		 */ 
		// マッピングクラスの呼び出し
		mapper.getKKSV072201SC(paramBean, outputMap);

		/**
		 * 取得データ件数チェック
		 */
		// 検索エラー取得
		String searchErrFlg = JKKWebCommon.getSearchErrFlg(SHOKAI_SC_TITLE01, outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			//0件の場合
			JKKWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			//最大検索件数超え
			String[] msgRpl = new String[]{JKKWebCommon.getSearchConst(SEARCH_MAX_SHOW_CNT)};
			JKKWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msgRpl);

		}
		else
		{
			//エラーなし
			JKKWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I , MESSAGE_VALUE);
			// メッセージエリアの背景色設定
			JKKWebCommon.setMessageAreaBackColor(this, "1");
		
		}
		/**
		 * DataBean設定処理
		 */
		// 明細の表示要否判定
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg) ||
				JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			bean.sendMessageString(KKW16701SFConst.DTL_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE,
					JKKStrConst.KDDI_DTL_DSP_FLG_FALSE);
		}
		else
		{
			bean.sendMessageString(KKW16701SFConst.DTL_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE,
					JKKStrConst.KDDI_DTL_DSP_FLG_TRUE);
		}

		// 変更前紹介票管理番号を初期化する。
		bean.sendMessageString(KKW16701SFConst.INTR_HYO_KANRI_NO_AFTER, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW16701);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW16701);
		
		
		return true;
	}

	/**
	 * 確定ボタン押下
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_fix() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * サービス呼出処理
		 */
		//  ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, UPD_USECASE_ID);

		// マッピングクラスのインスタンスを生成
		KKSV0723_KKSV0723OPDBMapper mapper = new KKSV0723_KKSV0723OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/**
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setKKSV072301SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		/**
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JKKWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		//エラーなし
		JKKWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, MESSAGE_VALUE);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW16701);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW16701);
		
		return true;
	}
	
	/**
	 * 戻るボタン押下
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_back() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKWebCommon.getScreenId(this));

		return true;
	}
}
	
