/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW15801SFLogic
*   ソースファイル名：KKW15801SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年8月11日
*＜機能概要＞
*   契約内容変更WEB受付データ一覧を表示します。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v4.00.00    2012/8/13   FJ）辛        新規作成
*
**********************************************************************/

package eo.web.webview.KKW15801SF;

import java.util.HashMap;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CModelCommon;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0640_KKSV0640OPDBMapper;
import eo.web.webview.mapping.KKSV0641_KKSV0641OPDBMapper;

/**
 * 契約内容変更WEB受付データ一覧を表示します。
 * @version  4.0 2012/8/13
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW15801SFLogic extends JCCWebBusinessLogic
{
	
	/** 空文字 */
	private static final String STR_EMPTY = "";
	/** 再検索フラグ：初期表示 */
	private static final String RESEARCHFLG_INIT = "0";
	/** 再検索フラグ：再検索 */
	private static final String RESEARCHFLG_RESEARCH = "1";	
	/** ソート項目ＮＯ_初期値 */
	private static final String SORT_ITEM_NO_INIT_VALUE = "1";	
	/** ソート_初期値 降順*/
	private static final String SORT_KBN_INIT_VALUE = "2";
	/** 検索区分："1"(検索) */
	private static final String SEARCH_KBN_1 = "1";
	/** 検索区分："2"(ページ制御) */
	private static final String SEARCH_KBN_2 = "2";
	/** 検索区分："3"(ソート) */
	private static final String SEARCH_KBN_3 = "3";
	/** 検索区分："4"(「戻る」押下時) */
	private static final String SEARCH_KBN_4 = "4";
	/** 機能コード："1" */
	private static final String FUNC_CODE_1 = "1"; 
	/** サービスID(サービスユースケースID）: KKSV0640 */
	private static final String SVC_USECASE_ID_KKSV0640 = "KKSV0640";
	/** サービスID(サービスユースケースID）: KKSV0641 */
	private static final String SVC_USECASE_ID_KKSV0641 = "KKSV0641";
	/** ユーザ定義文字列: KKSV064101CC */
	private static final String USER_DEF_STR_KKSV064101CC = "KKSV064101CC";
	/** 定数:0 */
	private static final String STR_VALUE_ZERO = "0";
	/** 定数:1 */
	private static final String STR_VALUE_ONE = "1";
	/** フラグ OFF */
	private static final String STR_FLAG_OFF = "off";
	/** フラグ ON */
	private static final String STR_FLAG_ON = "on";

	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean init() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		//画面情報の取得
		HashMap<String, Object> screenInfoMap = JCCWebCommon.getScreenInfo(this);
		
		// 再検索フラグの設定
		String researchFlg = RESEARCHFLG_INIT;
		if(!isNull(screenInfoMap))
		{
			if(srvBean.sendMessageBoolean(KKW15801SFConst.SEAARCHFLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				researchFlg = RESEARCHFLG_RESEARCH;
			}
		}
		
		// 運用日付の設定
		setValue(srvBean, KKW15801SFConst.STDARDYMD, JCCWebCommon.getOpeDate(this, null));
		
		// コンボ情報取得
		X31SDataBeanAccess[] paramBean = { srvBean };
		
		// ■ サービス呼び出し準備
		HashMap< String, String > paramMap = new HashMap< String, String >();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID_KKSV0640);
		
		HashMap< String, Object > inputMap = new HashMap< String, Object >();
		HashMap< String, Object > outputMap = new HashMap< String, Object >();
		
		// コンボ情報取得
		KKSV0640_KKSV0640OPDBMapper mapper = new KKSV0640_KKSV0640OPDBMapper();
		mapper.setKKSV064001SC(paramBean, inputMap, FUNC_CODE_1);

		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(!isNull(msgResult))
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// ■ サービス結果の転記
		mapper.getKKSV064001SC(paramBean, outputMap);
		
		//■再検索チェック
		if(RESEARCHFLG_RESEARCH.equals(researchFlg))
		{
			return exeSearch(SEARCH_KBN_4);
		}
		
		//■コンボボックス(データ反映済フラグ) 初期値設定
		X31SDataBeanAccessArray list = srvBean.getDataBeanArray(KKW15801SFConst.SEARCH_DATA_HANEI_TRN_ZM_FLG);
		X31SDataBeanAccess subBean = list.getDataBean(0);
		subBean.sendMessageString(KKW15801SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, STR_VALUE_ONE);
		
		//■受付年月日(至) 初期値設定
		setUkYmdTo(srvBean);
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW15801);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW15801);
		
		return true;
	}
	
	/**
	 * 契約内容変更WEB受付データ一覧検索を行います。
	 * <br>
	 * @return boolean お客様情報一覧検索結果
	 * @throws Exception エラーが発生した場合
	 */
	public boolean search() throws Exception
	{
		return exeSearch(SEARCH_KBN_1);
	}
	
	/**
	 * ページ制御を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合。
	 */
	public boolean changePage() throws Exception
	{
		return exeSearch(SEARCH_KBN_2);
	}
	
	/**
	 * 受付データ一覧のソート処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合。
	 */
	public boolean sortUkData() throws Exception
	{	
		return exeSearch(SEARCH_KBN_3);
	}
	
	/**
	 *  受付データ一覧検索を行います。
	 * <br>
	 * @param kbn:検索区分
	 *         "1" : 検索
	 *         "2" : ページ制御
	 *         "3" : ソート
	 *         "4" : 戻る
	 * <br>
	 * @return boolean 処理結果
	 */
	private boolean exeSearch(String kbn)
	{
		//■ 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		//■ サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		//■ 検索条件を作成する。
		X31SDataBeanAccess[] paramBean = { bean };
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		//■ 一覧の初期化
		this.setDetailInit(bean);
		
		//■検索フラグの設定
		bean.sendMessageBoolean(KKW15801SFConst.SEAARCHFLG, X31CWebConst.DATABEAN_SET_VALUE, true); 
		
		//■ 検索の場合、選択された行のキー項目クリア
		if(kbn.equals(SEARCH_KBN_1))
		{
			bean.sendMessage(KKW15801SFConst.PMP_CHG_REQ_SKBT_NO, X31CWebConst.DATABEAN_CLEAR);
		}
		
		//■ページ情報クリア
		if(kbn.equals(SEARCH_KBN_1) || kbn.equals(SEARCH_KBN_3))
		{
			JCCWebCommon.clearPageLinkInfo(this, JKKScreenConst.SCREEN_ID_KKW15801);
		}
		//■「ページ制御」以外
		if(!kbn.equals(SEARCH_KBN_2))
		{
			//■「検索」ボタン押下：ソート項目のクリア
			if(kbn.equals(SEARCH_KBN_1))
			{
				bean.sendMessageString(KKW15801SFConst.SORTITEMNO, X31CWebConst.DATABEAN_SET_VALUE, SORT_ITEM_NO_INIT_VALUE); //受付年月日
				bean.sendMessageString(KKW15801SFConst.SORTKBN, X31CWebConst.DATABEAN_SET_VALUE, SORT_KBN_INIT_VALUE); //降順
			}
			else if(kbn.equals(SEARCH_KBN_3) || kbn.equals(SEARCH_KBN_4)) //■「ソート」キー押下
			{
				bean.sendMessageString(KKW15801SFConst.SORTITEMNO, X31CWebConst.DATABEAN_SET_VALUE, getValue(bean, KKW15801SFConst.SORTITEMNO)); 
				bean.sendMessageString(KKW15801SFConst.SORTKBN, X31CWebConst.DATABEAN_SET_VALUE, getValue(bean, KKW15801SFConst.SORTKBN)); 
			}
			
			if(kbn.equals(SEARCH_KBN_1))
			{
				
				//■検索条件退避
				setBackupParam();
				
				//コンボボックスの選択状態を設定
				setSelectIndexToComboBox(bean);
				
			}
			if(kbn.equals(SEARCH_KBN_4))
			{
				//コンボボックスの選択状態を設定
				setSelectIndexToComboBox(bean);
			}
		}
		
		//■ パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID_KKSV0641);
		KKSV0641_KKSV0641OPDBMapper mapper = new KKSV0641_KKSV0641OPDBMapper();
		mapper.setKKSV064101SC(paramBean, inputMap, FUNC_CODE_1);

		//■ ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, STR_VALUE_ZERO, USER_DEF_STR_KKSV064101CC, inputMap);
		
		//■ サービスの呼び出し
		X31CMessageResult result = invokeService(paramMap, inputMap, outputMap);
		
		//■ エラー処理 
		if(!isNull(result))
		{
			JCCWebCommon.setMessageInfo(this, result);
		}
		
		//■ 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(USER_DEF_STR_KKSV064101CC, outputMap);

		//■ "1" 取得総件数が0件の場合
		if("1".equals(searchErrFlg))
		{
			JCCWebCommon.setMessageInfo(this, "EKB0330--I");
			
			//一覧の初期化
			this.setDetailInit(bean);
			//受付データ一覧の表示→非表示
			bean.sendMessageString(KKW15801SFConst.UKLISTFLG, X31CWebConst.DATABEAN_SET_VALUE,  STR_FLAG_OFF);
			
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW15801);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW15801);
			
			return true;
		}
		//■ "2" 取得総件数が最大検索件数以上の場合
		else if("2".equals(searchErrFlg))
		{
			String[] msg = {JCCWebCommon.getSearchConst("KKW15801_MAX_SHOW_CNT")};
			JCCWebCommon.setMessageInfo(this, "EKB0340--I", msg);
			
			//一覧の初期化
			this.setDetailInit(bean);
			
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW15801);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW15801);
			
			return true;
			
		}
		//■ "3" ページング時の取得結果0件の場合
		else if("3".equals(searchErrFlg))
		{
			JCCWebCommon.setMessageInfo(this, "EKB0350--I");
		}

		//■サービス結果の転記
		mapper.getKKSV064101CC(paramBean, outputMap);
		
		// 受付データ一覧の表示
		bean.sendMessageString(KKW15801SFConst.UKLISTFLG, X31CWebConst.DATABEAN_SET_VALUE,  STR_FLAG_ON);
		
		// ページリンク情報の表示
		bean.sendMessageString(KKW15801SFConst.PAGELINKFLG, X31CWebConst.DATABEAN_SET_VALUE,  STR_FLAG_ON);
		
		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, STR_VALUE_ZERO, "KKSV064101CC", outputMap);
		
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "L_CHANGE_PAGE");
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW15801);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW15801);
		
		return true;

	}
	
	/**
	 * 画面をクリアします。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean clear() throws Exception
	{
		//■ 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		//初期値設定
		this.setInitValue();
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW15801);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW15801);
		
		return true;
		
	}
	
	/**
	 * 「データ反映済削除」ボタン処理
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean forwardDelCfm() throws Exception
	{
		//■ 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		// 戻る際に必要な情報を設定する。
		HashMap<String, Object> returnMap = new HashMap<String, Object>();
		setReturnMap(returnMap);
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		if(srvBean.sendMessageBoolean(KKW15801SFConst.SEAARCHFLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			String strPmpSkbtNo="";
			if(srvBean.sendMessageString(KKW15801SFConst.SELECT_ROW, X31CWebConst.DATABEAN_GET_VALUE) != null &&
					!"".equals(srvBean.sendMessageString(KKW15801SFConst.SELECT_ROW, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 選択された明細行番号を取得
				int row = Integer.parseInt(srvBean.sendMessageString(KKW15801SFConst.SELECT_ROW, X31CWebConst.DATABEAN_GET_VALUE));
				// 選択された明細行の「PMP変更依頼識別番号」、「PMP変更依頼処理コード」を取得
				X31SDataBeanAccessArray beanArray = srvBean.getDataBeanArray(KKW15801SFConst.UK_LIST);
				//PMP変更依頼識別番号
				strPmpSkbtNo = beanArray.getDataBean(row).sendMessageString(KKW15801SFConst.PMP_CHG_REQ_SKBT_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
			}
			returnMap.put(KKW15801SFConst.PMP_CHG_REQ_SKBT_NO, strPmpSkbtNo);
		}

		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW15801, returnMap);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW15802, JKKScreenConst.SCREEN_ID_KKW15801);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW15803, JKKScreenConst.SCREEN_ID_KKW15801);
		
		// 遷移先の画面ＩＤを共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW15802);
		
		return true;
	}
	
	
	/**
	 * 「更新」ボタン処理
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合。
	 */
	public boolean forwardUpdCfm() throws Exception
	{
		//■ 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 選択された明細行番号を取得
		int row = Integer.parseInt(srvBean.sendMessageString(KKW15801SFConst.SELECT_ROW, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 選択された明細行の「PMP変更依頼識別番号」、「PMP変更依頼処理コード」を取得
		X31SDataBeanAccessArray beanArray = srvBean.getDataBeanArray(KKW15801SFConst.UK_LIST);
		//SYSID
		//String strSysId = beanArray.getDataBean(row).sendMessageString(KKW15801SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE);
		//PMP変更依頼識別番号
		String strPmpSkbtNo = beanArray.getDataBean(row).sendMessageString(KKW15801SFConst.PMP_CHG_REQ_SKBT_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		//PMP変更依頼処理コード
		//String strTrnCd = beanArray.getDataBean(row).sendMessageString(KKW15801SFConst.PMP_CHG_REQ_TRN_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 戻る際に必要な情報を設定する。
		HashMap<String, Object> returnMap = new HashMap<String, Object>();
		setReturnMap(returnMap);
		
		// 選択された明細行の「PMP変更依頼識別番号」、「PMP変更依頼処理コード」（次画面から戻った際にラジオの選択状態を復帰するため）
		//returnMap.put(KKW15801SFConst.SYSID_02, strSysId);
		returnMap.put(KKW15801SFConst.PMP_CHG_REQ_SKBT_NO_02, strPmpSkbtNo);
		//returnMap.put(KKW15801SFConst.PMP_CHG_REQ_TRN_NO_02, strTrnCd);
		
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW15801, returnMap);
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW15901, returnMap);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW15901, JKKScreenConst.SCREEN_ID_KKW15801);
		
		// 遷移先の画面ＩＤを共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW15901);
		
		return true;
		
	}


	/**
	 * 検索条件入力項目を退避領域に格納
	 * <br>
	 */
	private void setBackupParam()
	{
		X31SDataBeanAccessArray list = null;
		String temp = null;
		StringBuilder sbF = null;
		StringBuilder sbT = null;
		
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 退避情報の初期化
		clearBackupParam();
		
		// 退避＿データ反映処理済フラグ
		list = bean.getDataBeanArray(KKW15801SFConst.SEARCH_DATA_HANEI_TRN_ZM_FLG);
		if(!"".equals(list.getDataBean(0).sendMessageString(KKW15801SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE)) && 
				list.getDataBean(0).sendMessageString(KKW15801SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE) != null)
		{
			int selectIndex = Integer.parseInt(list.getDataBean(0).sendMessageString(
					KKW15801SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));
			
			temp = list.getDataBean(0).sendMessageString(
					KKW15801SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, selectIndex);
			setValue(bean, KKW15801SFConst.BK_SEARCH_DATA_HANEI_TRN_ZM_FLG, temp);
		}
		
		//退避＿受付年月日（自）
		temp = getValue(bean, KKW15801SFConst.SEARCH_UK_YEAR_FROM);
		if(!STR_EMPTY.equals(temp))
		{
			// 受付年月日（年）
			sbF = new StringBuilder();
			//受付年月日（年)
			sbF.append(getValue(bean, KKW15801SFConst.SEARCH_UK_YEAR_FROM));
			//受付年月日（月)
			sbF.append(getValue(bean, KKW15801SFConst.SEARCH_UK_MON_FROM));
			//受付年月日（日)
			sbF.append(getValue(bean, KKW15801SFConst.SEARCH_UK_DAY_FROM));
			
			setValue(bean, KKW15801SFConst.BK_SEARCH_UK_YMD_FROM, sbF.toString());
			
		}
		//退避＿受付年月日（至）
		temp = getValue(bean, KKW15801SFConst.SEARCH_UK_YEAR_TO);
		if(!STR_EMPTY.equals(temp))
		{
			// 受付年月日（年）
			sbT = new StringBuilder();
			//受付年月日（年)
			sbT.append(getValue(bean, KKW15801SFConst.SEARCH_UK_YEAR_TO));
			//受付年月日（月)
			sbT.append(getValue(bean, KKW15801SFConst.SEARCH_UK_MON_TO));
			//受付年月日（日)
			sbT.append(getValue(bean, KKW15801SFConst.SEARCH_UK_DAY_TO));
			
			setValue(bean, KKW15801SFConst.BK_SEARCH_UK_YMD_TO, sbT.toString());
			
		}
		
		// SYSID
		setValue(bean, KKW15801SFConst.BK_SEARCH_SYSID, getValue(bean, KKW15801SFConst.SEARCH_SYSID));
		// お客さまID
		setValue(bean, KKW15801SFConst.BK_SEARCH_SVC_KEI_NO, getValue(bean, KKW15801SFConst.SEARCH_SVC_KEI_NO));
		// お客様名
		setValue(bean, KKW15801SFConst.BK_SEARCH_CUST_NM, getValue(bean, KKW15801SFConst.SEARCH_CUST_NM));
	}
	
	/**
	 * 退避領域を初期化します。
	 * <br>
	 */
	private void clearBackupParam()
	{
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 退避項目の初期化
		bean.sendMessage(KKW15801SFConst.BK_SEARCH_CUST_NM, X31CWebConst.DATABEAN_CLEAR);					// 退避＿お客様名
		bean.sendMessage(KKW15801SFConst.BK_SEARCH_DATA_HANEI_TRN_ZM_FLG, X31CWebConst.DATABEAN_CLEAR);		// 退避＿データ反映処理済フラグ
		bean.sendMessage(KKW15801SFConst.BK_SEARCH_SVC_KEI_NO, X31CWebConst.DATABEAN_CLEAR);				// 退避＿お客さまID
		bean.sendMessage(KKW15801SFConst.BK_SEARCH_SYSID, X31CWebConst.DATABEAN_CLEAR);						// 退避＿SYSID
		bean.sendMessage(KKW15801SFConst.BK_SEARCH_UK_YMD_FROM, X31CWebConst.DATABEAN_CLEAR);				// 退避＿受付年月日（自）
		bean.sendMessage(KKW15801SFConst.BK_SEARCH_UK_YMD_TO, X31CWebConst.DATABEAN_CLEAR);					// 退避＿受付年月日（至）
	
	}
	
	/**
	 * <dd>メソッド説明：戻る際に必要な情報を設定する。
	 * @return 無し
	 */
	private void setInitValue()
	{
		//■ サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		//受付年月日(自)
		bean.sendMessageString(KKW15801SFConst.SEARCH_UK_YEAR_FROM, X31CWebConst.DATABEAN_SET_VALUE, STR_EMPTY);
		bean.sendMessageString(KKW15801SFConst.SEARCH_UK_MON_FROM, X31CWebConst.DATABEAN_SET_VALUE, STR_EMPTY);
		bean.sendMessageString(KKW15801SFConst.SEARCH_UK_DAY_FROM, X31CWebConst.DATABEAN_SET_VALUE, STR_EMPTY);
		//受付年月日(至)
		setUkYmdTo(bean);
		//SYSID
		bean.sendMessageString(KKW15801SFConst.SEARCH_SYSID, X31CWebConst.DATABEAN_SET_VALUE, STR_EMPTY);
		//お客さまID
		bean.sendMessageString(KKW15801SFConst.SEARCH_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, STR_EMPTY);
		//お客様名
		bean.sendMessageString(KKW15801SFConst.SEARCH_CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, STR_EMPTY);
		
	
		//明細(一覧)クリア
		this.setDetailInit(bean);
		
		//コンボボックス(データ反映済フラグ) 初期値設定
		X31SDataBeanAccessArray list = bean.getDataBeanArray(KKW15801SFConst.SEARCH_DATA_HANEI_TRN_ZM_FLG);
		X31SDataBeanAccess subBean = list.getDataBean(0);
		setValue(subBean, KKW15801SFConst.SELECT_INDEX_01, STR_VALUE_ONE);
		
		//検索フラグ設定
		bean.sendMessageBoolean(KKW15801SFConst.SEAARCHFLG, X31CWebConst.DATABEAN_SET_VALUE, false); 
		
	}
	
	/**
	 * 画面戻り遷移時に必要な情報をHashMapに設定します。
	 * <br>
	 * @param returnMap 画面戻り遷移時に必要な情報
	 */
	private void setReturnMap(HashMap<String, Object> returnMap)
	{
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 画面項目の設定
		//受付年月日（自）
		String dateF = getValue(bean, KKW15801SFConst.BK_SEARCH_UK_YMD_FROM);
		if(!STR_EMPTY.equals(dateF))
		
		{
			returnMap.put(KKW15801SFConst.SEARCH_UK_YEAR_FROM, dateF.substring(0, 4));
			returnMap.put(KKW15801SFConst.SEARCH_UK_MON_FROM, dateF.substring(4, 6));
			returnMap.put(KKW15801SFConst.SEARCH_UK_DAY_FROM, dateF.substring(6));
		}
		else
		{
			returnMap.put(KKW15801SFConst.SEARCH_UK_YEAR_FROM, "");
			returnMap.put(KKW15801SFConst.SEARCH_UK_MON_FROM, "");
			returnMap.put(KKW15801SFConst.SEARCH_UK_DAY_FROM, "");
		}
		//受付年月日（至）
		String dateT = getValue(bean, KKW15801SFConst.BK_SEARCH_UK_YMD_TO);
		if(!STR_EMPTY.equals(dateT))
		
		{
			returnMap.put(KKW15801SFConst.SEARCH_UK_YEAR_TO, dateT.substring(0, 4));
			returnMap.put(KKW15801SFConst.SEARCH_UK_MON_TO, dateT.substring(4, 6));
			returnMap.put(KKW15801SFConst.SEARCH_UK_DAY_TO, dateT.substring(6));
		}
		else
		{
			returnMap.put(KKW15801SFConst.SEARCH_UK_YEAR_TO, "");
			returnMap.put(KKW15801SFConst.SEARCH_UK_MON_TO, "");
			returnMap.put(KKW15801SFConst.SEARCH_UK_DAY_TO, "");
		}
		//データ反映済フラグ
		returnMap.put(KKW15801SFConst.SEARCH_DATA_HANEI_TRN_ZM_FLG, getValue(bean, KKW15801SFConst.BK_SEARCH_DATA_HANEI_TRN_ZM_FLG));
		//SYSID
		returnMap.put(KKW15801SFConst.SEARCH_SYSID, getValue(bean, KKW15801SFConst.BK_SEARCH_SYSID));
		//お客さまID
		returnMap.put(KKW15801SFConst.SEARCH_SVC_KEI_NO, getValue(bean, KKW15801SFConst.BK_SEARCH_SVC_KEI_NO));
		//お客様名
		returnMap.put(KKW15801SFConst.SEARCH_SVC_KEI_NO, getValue(bean, KKW15801SFConst.BK_SEARCH_SVC_KEI_NO));
		//ソート
		returnMap.put(KKW15801SFConst.SORTITEMNO, getValue(bean, KKW15801SFConst.SORTITEMNO));
		returnMap.put(KKW15801SFConst.SORTKBN, getValue(bean, KKW15801SFConst.SORTKBN));
		
		//■退避項目の設定
		returnMap.put(KKW15801SFConst.BK_SEARCH_UK_YMD_FROM, getValue(bean, KKW15801SFConst.BK_SEARCH_UK_YMD_FROM));
		returnMap.put(KKW15801SFConst.BK_SEARCH_UK_YMD_TO, getValue(bean, KKW15801SFConst.BK_SEARCH_UK_YMD_TO));
		returnMap.put(KKW15801SFConst.BK_SEARCH_DATA_HANEI_TRN_ZM_FLG, getValue(bean, KKW15801SFConst.BK_SEARCH_DATA_HANEI_TRN_ZM_FLG));
		returnMap.put(KKW15801SFConst.BK_SEARCH_SYSID, getValue(bean, KKW15801SFConst.BK_SEARCH_SYSID));
		returnMap.put(KKW15801SFConst.BK_SEARCH_SVC_KEI_NO, getValue(bean, KKW15801SFConst.BK_SEARCH_SVC_KEI_NO));
		returnMap.put(KKW15801SFConst.BK_SEARCH_CUST_NM, getValue(bean, KKW15801SFConst.BK_SEARCH_CUST_NM));
		
		//■検索フラグの設定
		returnMap.put(KKW15801SFConst.SEAARCHFLG, bean.sendMessageBoolean(KKW15801SFConst.SEAARCHFLG, X31CWebConst.DATABEAN_GET_VALUE));
		
		//
		returnMap.put(KKW15801SFConst.SELECT_ROW, getValue(bean, KKW15801SFConst.SELECT_ROW));
	}
	
	/**
	 * コンボボックスの選択肢を設定します。
	 * <br>
	 * @param  srvBean
	 */
	private void setSelectIndexToComboBox(X31SDataBeanAccess srvBean)
	{
		String temp = null;
		
		X31SDataBeanAccess datahaneiFlg = srvBean.getDataBeanArray(KKW15801SFConst.SEARCH_DATA_HANEI_TRN_ZM_FLG).getDataBean(0);
		int datahaneiFlgCount = (Integer)datahaneiFlg.sendMessage(KKW15801SFConst.CD_DIV_CD_LIST_01, X31CModelCommon.GET_COUNT);
		String bkdatahaneiFlg = srvBean.sendMessageString(KKW15801SFConst.BK_SEARCH_DATA_HANEI_TRN_ZM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		for (int i = 0; i < datahaneiFlgCount; i++)
		{
			temp = datahaneiFlg.sendMessageString(KKW15801SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			
			if(temp.equals(bkdatahaneiFlg))
			{
				datahaneiFlg.sendMessageString(KKW15801SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				break;
			}
			
			// バックアップと一致するコードがリストになかった場合、先頭を選択状態にする
			if(i + 1 >= datahaneiFlgCount)
			{
				datahaneiFlg.sendMessageString(KKW15801SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
			}
		}
	}
	
	/**
	 * 一覧（明細）初期化する。
	 * <br>
	 * @param  bean
	 * <br>
	 * @return 
	 */
	private void setDetailInit(X31SDataBeanAccess bean)
	{
		
		//受付データリスト
		X31SDataBeanAccessArray custList = bean.getDataBeanArray(KKW15801SFConst.UK_LIST);
		custList.clearArray();
		bean.sendMessageString(KKW15801SFConst.UKLISTFLG, X31CWebConst.DATABEAN_SET_VALUE,  STR_FLAG_OFF);
		bean.sendMessageString(KKW15801SFConst.PAGELINKFLG, X31CWebConst.DATABEAN_SET_VALUE,  STR_FLAG_OFF);
		bean.sendMessageString(KKW15801SFConst.SELECT_ROW, X31CWebConst.DATABEAN_SET_VALUE, STR_EMPTY);
		
	}
	
	/**
	 * 受付年月日設定
	 * <br>
	 * @param srvBean
	 * <br>
	 * @return 
	 */
	private void setUkYmdTo(X31SDataBeanAccess srvBean)
	{
		setValue(srvBean, KKW15801SFConst.SEARCH_UK_YEAR_TO, JCCWebCommon.getOpeDate(this, null).substring(0, 4));
		setValue(srvBean, KKW15801SFConst.SEARCH_UK_MON_TO, JCCWebCommon.getOpeDate(this, null).substring(4, 6));
		setValue(srvBean, KKW15801SFConst.SEARCH_UK_DAY_TO, JCCWebCommon.getOpeDate(this, null).substring(6));
	}
	
	/**
	 * NULL判定処理です。
	 * <br>
	 * @param obj 判定するオブジェクト
	 * <br>
	 * @return 判定結果
	 */
	private boolean isNull(Object obj)
	{
		if(null == obj)
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * データBeanから指定された項目の値を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName 項目名
	 * <br>
	 * @return String 選択されているコード値
	 */
	private String getValue(X31SDataBeanAccess bean, String itemName)
	{
		return bean.sendMessageString(itemName, X31CWebConst.DATABEAN_GET_VALUE);
	}
	
	/**
	 * データBeanに指定された項目の値を設定します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName 項目名
	 * @param value 設定値
	 */
	private void setValue(X31SDataBeanAccess bean, String itemName, String value)
	{
		bean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, value);
	}
	

}
