/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：DKW05902SFLogic
*	ソースファイル名：DKW05902SFLogic.java
*	作成者			：FJ
*	日付			：2012年07月25日
*＜機能概要＞
*	VIEWロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/07/25	FJ)高川		新規作成
**********************************************************************/

package eo.web.webview.DKW05902SF;

import static eo.web.webview.common.JDKWebCommon.setData;

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.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.constant.JZMStrConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JDKScreenConst;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.DKSV0141_DKSV0141OPDBMapper;


/**
 * DKW05902のビューロジック
 * @author FJ
 *
 */
public class DKW05902SFLogic extends JCCWebBusinessLogic
{
	/**
	 * 登録ユースケースID
	 */
	private static final String ADD_USECASE_ID = "DKSV0141";
	
	/** メッセージ置換文字列  */
	private static final 	String[] MESSAGE_VALUE = {"建物情報登録処理"};
	
	/**
	 * 戻るボタン表示フラグ
	 */
	private static final String BACK_BTN_DSP_FLG_TRUE = "1";
	/**
	 * 戻るボタン非表示フラグ
	 */
	private static final String BACK_BTN_DSP_FLG_FALSE = "2";
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		return dkw05902_init();
	}
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean dkw05902_init() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
								, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW05902);

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		//遷移元画面ＩＤ取得
		String screenId = JCCWebCommon.getScreenId(this,JDKScreenConst.SCREEN_ID_DKW05902);
		bean.sendMessageString(DKW05902SFConst.REFERID, X31CWebConst.DATABEAN_SET_VALUE, screenId);
		
		/**
		 * DataBean設定処理
		 */
		// 戻るボタンの表示要否判定
		if ("".equals(screenId) || JDKScreenConst.SCREEN_ID_DKW05904.equals(screenId))
		{
			bean.sendMessageString(DKW05902SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, 
					BACK_BTN_DSP_FLG_FALSE);
			bean.sendMessageString(DKW05902SFConst.REFERID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW05902);
			
		}else
		{
			bean.sendMessageString(DKW05902SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE,
					BACK_BTN_DSP_FLG_TRUE);
		}

		return true;
	}
	
	/**
	 * 登録確認遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean confirmCreate()  throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		setBeanUpdateInfo(bean);
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		
		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, ADD_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		DKSV0141_DKSV0141OPDBMapper mapper = new DKSV0141_DKSV0141OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 上りマッピングクラスの呼び出し
		mapper.setDKSV014101SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		/**
		 * DataBean設定処理
		 */
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, MESSAGE_VALUE);
		JCCWebCommon.setMessageAreaBackColor(this, "1");

		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW05903);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW05903);
		
		return true;
		
	}
	
	/**
	 * 入力内容を設定
	 * @param bean
	 */
	private void setBeanUpdateInfo(X31SDataBeanAccess bean)
	{
		
		/**
		 * DataBean設定処理
		 */
		// 倉庫郵便番号
		String pcd = 
			bean.sendMessageString(DKW05902SFConst.SOKO_PCD_1, X31CWebConst.DATABEAN_GET_VALUE) + 
			bean.sendMessageString(DKW05902SFConst.SOKO_PCD_2, X31CWebConst.DATABEAN_GET_VALUE);
		
		bean.sendMessageString(DKW05902SFConst.SOKO_PCD , X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessageString(DKW05902SFConst.SOKO_PCD , X31CWebConst.DATABEAN_SET_VALUE, pcd);

		// 倉庫適用開始年月日
		String tStaYmd = 
			bean.sendMessageString(DKW05902SFConst.SOKO_TSTAYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE) + 
			bean.sendMessageString(DKW05902SFConst.SOKO_TSTAYMD_MONTH, X31CWebConst.DATABEAN_GET_VALUE) + 
			bean.sendMessageString(DKW05902SFConst.SOKO_TSTAYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		
		bean.sendMessageString(DKW05902SFConst.SOKO_TSTAYMD , X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessageString(DKW05902SFConst.SOKO_TSTAYMD , X31CWebConst.DATABEAN_SET_VALUE, tStaYmd);
		
		// 倉庫適用終了年月日
		String tEndYmd = 
			bean.sendMessageString(DKW05902SFConst.SOKO_TENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE) + 
			bean.sendMessageString(DKW05902SFConst.SOKO_TENDYMD_MONTH, X31CWebConst.DATABEAN_GET_VALUE) + 
			bean.sendMessageString(DKW05902SFConst.SOKO_TENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);

		bean.sendMessageString(DKW05902SFConst.SOKO_TENDYMD , X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessageString(DKW05902SFConst.SOKO_TENDYMD , X31CWebConst.DATABEAN_SET_VALUE, tEndYmd);
		
	}
	
	/**
	 * 戻る遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean returnList() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 遷移元画面ID
		String referId = bean.sendMessageString(DKW05902SFConst.REFERID, X31CWebConst.DATABEAN_GET_VALUE);
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, referId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW05903);

		/**
		 * 引継情報の設定
		 */
		// 引継ぎ情報（遷移元画面ID）を設定する。
		JCCWebCommon.setScreenId(this, 
				bean.sendMessageString(DKW05902SFConst.REFERID, X31CWebConst.DATABEAN_GET_VALUE),
				JDKScreenConst.SCREEN_ID_DKW05902);
		
		return true;
	}
	
	
	/**
	 * 確定遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean fix() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		setBeanUpdateInfo(bean);
		
		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, ADD_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		DKSV0141_DKSV0141OPDBMapper mapper = new DKSV0141_DKSV0141OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 上りマッピングクラスの呼び出し
		mapper.setDKSV014101SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		/**
		 * DataBean設定処理
		 */
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, MESSAGE_VALUE);
		
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW05904);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW05904);
		
		return true;
		
	}
	
	/**
	 * 修正遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean modify() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW05902);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW05902);
		
		return true;
	}
	
	/**
	 * 完了遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean complete() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		//サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 遷移元画面ID
		String referId = bean.sendMessageString(DKW05902SFConst.REFERID, X31CWebConst.DATABEAN_GET_VALUE);

		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, referId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW05901);

		/**
		 * セッション設定処理
		 */
		// 引き継ぎ情報を格納するMAP
		HashMap<String, Object> hktgiMap = JCCWebCommon.getScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW05901);

		hktgiMap.put("soko_cd_save"
				, bean.sendMessageString(DKW05902SFConst.SOKO_CD, X31CWebConst.DATABEAN_GET_VALUE));

		/**
		 * 引継情報の設定
		 */
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW05901, hktgiMap);

		// 引継ぎ情報（遷移元画面ID）を設定する。
		JCCWebCommon.setScreenId(this, 
				bean.sendMessageString(DKW05902SFConst.REFERID, X31CWebConst.DATABEAN_GET_VALUE),
				JDKScreenConst.SCREEN_ID_DKW05902);
		
		if (!JDKScreenConst.SCREEN_ID_DKW05901.equals(referId))
		{
			bean.sendMessageString(DKW05902SFConst.REFERID, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_CD, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.COMP_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_PCD, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_PCD_1, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_PCD_2, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_TSTAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_TSTAYMD_MONTH, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_TSTAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_TSTAYMD, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_TENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_TENDYMD_MONTH, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_TENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_TENDYMD, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_TELNO, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean.sendMessageString(DKW05902SFConst.SOKO_FAX_NO, X31CWebConst.DATABEAN_SET_VALUE, new String());
		}

		return true;
	}
	
	/**
	 * 住所検索ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	@SuppressWarnings("unchecked")
	public boolean parent_search_1() throws Exception
	{
		//サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		HashMap paramMap = new HashMap();

		paramMap.put(JZMStrConst.key_pcd_1, bean.sendMessageString(DKW05902SFConst.SOKO_PCD_1, X31CWebConst.DATABEAN_GET_VALUE));
		paramMap.put(JZMStrConst.key_pcd_2, bean.sendMessageString(DKW05902SFConst.SOKO_PCD_2, X31CWebConst.DATABEAN_GET_VALUE));
		
		String ad_cd = bean.sendMessageString(DKW05902SFConst.SOKO_AD_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if (null != ad_cd && !"".equals(ad_cd))
		{
			paramMap.put(JZMStrConst.key_ad_cd_1, ad_cd.substring(0, 2));
			paramMap.put(JZMStrConst.key_ad_cd_2, ad_cd.substring(2, 5));
			paramMap.put(JZMStrConst.key_ad_cd_3, ad_cd.substring(5, 8));
			paramMap.put(JZMStrConst.key_ad_cd_4, ad_cd.substring(8));
		}
		
		paramMap.put(JZMStrConst.key_state_nm, bean.sendMessageString(DKW05902SFConst.SOKO_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
		paramMap.put(JZMStrConst.key_city_nm, bean.sendMessageString(DKW05902SFConst.SOKO_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
		paramMap.put(JZMStrConst.key_oaztsu_nm, bean.sendMessageString(DKW05902SFConst.SOKO_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
		paramMap.put(JZMStrConst.key_azcho_nm, bean.sendMessageString(DKW05902SFConst.SOKO_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
		
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10601 + "0PJP", paramMap);
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW10601 + "0PJP", getGamenId());
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10601);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW10601);

		return true;
	}

	/**
	 * 子画面の情報を反映します。
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean parent_reflesh_1() throws Exception
	{
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
		setData(this, (String)map.get(JZMStrConst.ret_pcd_1), DKW05902SFConst.SOKO_PCD_1);
		setData(this, (String)map.get(JZMStrConst.ret_pcd_2), DKW05902SFConst.SOKO_PCD_2);
		String ret_ad_cd = (String)map.get(JZMStrConst.ret_ad_cd_1) + 
							(String)map.get(JZMStrConst.ret_ad_cd_2) + 
							(String)map.get(JZMStrConst.ret_ad_cd_3) + 
							(String)map.get(JZMStrConst.ret_ad_cd_4);
		setData(this, ret_ad_cd, DKW05902SFConst.SOKO_AD_CD);
		setData(this, (String)map.get(JZMStrConst.ret_state_nm), DKW05902SFConst.SOKO_STATE_NM);
		setData(this, (String)map.get(JZMStrConst.ret_city_nm), DKW05902SFConst.SOKO_CITY_NM);
		setData(this, (String)map.get(JZMStrConst.ret_oaztsu_nm), DKW05902SFConst.SOKO_OAZTSU_NM);
		setData(this, (String)map.get(JZMStrConst.ret_azcho_nm), DKW05902SFConst.SOKO_AZCHO_NM);
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW05902);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW05902);

		return true;
	}

}

