/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：SCW00701SFLogic
*   ソースファイル名：SCW00701SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年08月10日
*＜機能概要＞
*   モバイルオーダ発行画面を処理するロジッククラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*
**********************************************************************/
package eo.web.webview.SCW00701SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;
import static eo.web.webview.common.JSCWebCommon.*;
import static eo.web.webview.common.JSCScreenConst.*;

import java.util.HashMap;

import static eo.common.constant.JPCOnlineMessageConstant.*;
import static eo.common.constant.JPCModelConstant.*;
import static eo.web.webview.SCW00701SF.SCW00701SFConst.*;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.model.common.check.DatetimeCheck;

import eo.common.util.JSCCommonUtil;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.constant.JSCStrConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.mapping.SCSV0015_SCSV0015OPDBMapper;
import eo.web.webview.mapping.SCSV0017_SCSV0017OPDBMapper;

/**
 * モバイルオーダ発行画面を処理するロジッククラスです。
 * @author 富士通
 */
public class SCW00701SFLogic extends JCCWebBusinessLogic
{
	/** メッセージ */
	private static final String MSG_REG_MOBILE_ORDER = "モバイルオーダ発行登録";
	
	/**
	 * 初期化処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean init() throws Exception
	{
		HashMap paramMap = new HashMap();
		HashMap inputMap = new HashMap();
		HashMap outputMap = new HashMap();
		
		X31SDataBeanAccess[] paramBean = {getServiceFormBean()};
		
		//ドロップダウンリストの値を取得
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "SCSV0017");
		SCSV0017_SCSV0017OPDBMapper mapper = new SCSV0017_SCSV0017OPDBMapper();

		mapper.setSCSV001701SC(paramBean, inputMap, FUNC_CD_1);	//オーダ種別
		mapper.setSCSV001702SC(paramBean, inputMap, FUNC_CD_1);	//要求元アプリ種別
		mapper.setSCSV001703SC(paramBean, inputMap, FUNC_CD_1);	//要求種別
		mapper.setSCSV001704SC(paramBean, inputMap, FUNC_CD_1);	//ＲＯＭ種別
		mapper.setSCSV001705SC(paramBean, inputMap, FUNC_CD_1);	//ＳＯＤ項目変更有無
		
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		mapper.getSCSV001701SC(paramBean, outputMap);//オーダ種別
		mapper.getSCSV001702SC(paramBean, outputMap);//要求元アプリ種別
		mapper.getSCSV001703SC(paramBean, outputMap);//要求種別
		mapper.getSCSV001704SC(paramBean, outputMap);//ＲＯＭ種別
		mapper.getSCSV001705SC(paramBean, outputMap);//ＳＯＤ項目変更有無

		pushEmptyToTopOfPulldown(I_ROM_SBT_CD_LIST, I_ROM_SBT_CD_CD_LIST_04, I_ROM_SBT_CD_NM_LIST_04, I_ROM_SBT_CD_DSP_LIST_04);

		//各項目の初期値を設定
		X31SDataBeanAccess subbean = null;
		String sCode = null;
		String sName = null;
		
		subbean = getListBean(paramBean[0], I_ORDER_SBT_LIST);
		sCode = getValueArray(subbean, I_ORDER_SBT_CD_LIST_01, 0);
		sName = getValueArray(subbean, I_ORDER_SBT_NM_LIST_01, 0);
		setValue(subbean, I_ORDER_SBT_SEL_CD_01, sCode);
		setValue(subbean, I_ORDER_SBT_SEL_NM_01, getName(sName, "."));
		setValue(subbean, I_ORDER_SBT_INDEX_01, "0");
		setValue(paramBean[0], ORDER_SBT, sCode);
		setValue(paramBean[0], MOBILE_ORDER_CD, sCode);
		setValue(subbean, I_ORDER_SBT_DSP_01, getValueArray(subbean, I_ORDER_SBT_DSP_LIST_01, 0));
		setValue(paramBean[0], ORD_SBT_CD_HOJI, "0");

		//ＳＯＤ変更有無
		subbean = getListBean(paramBean[0], I_SPOT_SESSION_CNT_CHGUM);
		sCode = getValueArray(subbean, I_SPOT_SESSION_CNT_CHGUM_CD_LIST_06, 0);
		sName = getValueArray(subbean, I_SPOT_SESSION_CNT_CHGUM_NM_LIST_06, 0);
		setValue(subbean, I_SPOT_SESSION_CNT_CHGUM_SEL_CD_06, sCode);
		setValue(subbean, I_SPOT_SESSION_CNT_CHGUM_SEL_NM_06, getName(sName, "."));
		setValue(subbean, I_SPOT_SESSION_CNT_CHGUM_INDEX_06, "1");
		setValue(paramBean[0], I_SOD_CHG_FLG, "1");

		//次画面へ遷移
		setNextScreen(SCREEN_ID_SCW00701, SCREEN_NAME_SCW00701);
		return true;
	}
	
	/**
	 * 切替ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean change() throws Exception
	{
		//データビーンをクリア
		clearDatabean();
		
		X31SDataBeanAccess[] parentBean = {getServiceFormBean()};

		//各項目の値を設定
		X31SDataBeanAccess subbean = null;
		String sCode = null;
		String sName = null;
		int idx = 0;
		
		//オーダ種別
		subbean = getListBean(parentBean[0], I_ORDER_SBT_LIST);
		idx = Integer.valueOf(getValue(subbean, I_ORDER_SBT_INDEX_01));
		sCode = getValueArray(subbean, I_ORDER_SBT_CD_LIST_01, idx);
		sName = getValueArray(subbean, I_ORDER_SBT_NM_LIST_01, idx);
		setValue(subbean, I_ORDER_SBT_SEL_CD_01, sCode);
		setValue(subbean, I_ORDER_SBT_SEL_NM_01, getName(sName, "."));
		setValue(parentBean[0], ORDER_SBT, sCode);
		setValue(parentBean[0], MOBILE_ORDER_CD, sCode);
		setValue(subbean, I_ORDER_SBT_DSP_01, getValueArray(subbean, I_ORDER_SBT_DSP_LIST_01, idx));
		setValue(parentBean[0], ORD_SBT_CD_HOJI, String.valueOf(idx));
		
		if(sCode.equals(JSCStrConstant.MOBILE_ODER_CD_SPOT))
		{
			//UQ情報
			clearValue(parentBean[0], UQ_ROM_SBT_CD);
			clearValue(parentBean[0], UQ_MACAD);
			clearValue(parentBean[0], UQ_NINSHO_ID);
			clearValue(parentBean[0], UQ_NINSHO_ID_PWD);
			clearValue(parentBean[0], UQ_PPLAN_CD);
			clearListIndex(parentBean[0], I_ROM_SBT_CD_LIST);
		}
		if(sCode.equals(JSCStrConstant.MOBILE_ODER_CD_DEV))
		{
			//SPOT情報
			clearValue(parentBean[0], OLD_SPOT_SESSION_CNT);
			clearValue(parentBean[0], SPOT_SESSION_CNT);
			clearValue(parentBean[0], SYSID);
		} 

		//次画面へ遷移
		setNextScreen(SCREEN_ID_SCW00701, SCREEN_NAME_SCW00701);
		return true;
	}
	
	/**
	 * クリアボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean clear() throws Exception
	{
		//データビーンをクリア
		clearDatabean();
		
		//次画面へ遷移
		//setNextScreen(SCREEN_ID_SCW00701, SCREEN_NAME_SCW00701);
		
		// 表示切替処理を呼ぶ
		change();
		return true;
	}

	/**
	 * 登録確認ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean confirmCreate() throws Exception
	{
		HashMap paramMap = new HashMap();
		HashMap inputMap = new HashMap();
		HashMap outputMap = new HashMap();

		X31SDataBeanAccess[] paramBean = {getServiceFormBean()};

		//画面入力値をデータビーンに取得
		getScreenValue(paramBean[0]);

		//画面入力値をチェック
		if(!chkItemValue(paramBean[0]))
		{
			return false;
		}

		//機能コード取得
		String funcCode = getValue(paramBean[0], MOBILE_ORDER_CD).equals(JSCStrConstant.MOBILE_ODER_CD_SPOT)?FUNC_CD_6:FUNC_CD_4;

		//サービス呼び出し
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "SCSV0015");
		SCSV0015_SCSV0015OPDBMapper mapper = new SCSV0015_SCSV0015OPDBMapper();

		setValue(paramBean[0], EM_RNKI_STP_FLG, "0");	//ＥＭ連携抑止フラグ
		
		mapper.setSCSV001501SC(paramBean, inputMap, funcCode); 
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}

		//次画面に表示する確認メッセージを設定
		JCCWebCommon.setMessageInfo(this, EKB0370__I, new String [] {MSG_REG_MOBILE_ORDER});
		
		//次画面へ遷移
		setNextScreen(SCREEN_ID_SCW00702, SCREEN_NAME_SCW00702);
		return true;
	}
	
	/**
	 * 確定ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean fix() throws Exception
	{
		HashMap paramMap = new HashMap();
		HashMap inputMap = new HashMap();
		HashMap outputMap = new HashMap();

		X31SDataBeanAccess[] paramBean = {getServiceFormBean()};
		
		//機能コード取得
		String funcCode = getValue(paramBean[0], MOBILE_ORDER_CD).equals(JSCStrConstant.MOBILE_ODER_CD_SPOT)?FUNC_CD_5:FUNC_CD_3;

		//サービス呼び出し
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "SCSV0015");
		SCSV0015_SCSV0015OPDBMapper mapper = new SCSV0015_SCSV0015OPDBMapper();
		
		setValue(paramBean[0], EM_RNKI_STP_FLG, "0");	//ＥＭ連携抑止フラグ
		
		mapper.setSCSV001501SC(paramBean, inputMap, funcCode); 
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}

		mapper.getSCSV001501SC(paramBean, outputMap);
		
		//次画面に表示する確認メッセージを設定
		JCCWebCommon.setMessageInfo(this, EKB0380__I, new String [] { MSG_REG_MOBILE_ORDER});

		//次画面へ遷移
		setNextScreen(SCREEN_ID_SCW00703, SCREEN_NAME_SCW00703);
		return true;
	}
	
	/**
	 * 修正ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean modify() throws Exception
	{
		//前画面へ遷移
		setNextScreen(SCREEN_ID_SCW00701, SCREEN_NAME_SCW00701);
		return true;
	}
	
	/**
	 * 完了ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean complete() throws Exception
	{
		//データビーンをクリア
		clearDatabean();

		//初期画面へ遷移
		setNextScreen(SCREEN_ID_SCW00701, SCREEN_NAME_SCW00701);
		return true;
	}

	/**
	 * リスト項目の値を取得
	 * @param bean リスト項目ビーン
	 * @param item 項目名
	 * @param index 配列番号
	 * @return String 値
	 */
	private static String getValueArray(X31SDataBeanAccess bean, String item, int index)
	{
		return bean.sendMessageString(item, X31CWebConst.DATABEAN_GET_VALUE, index);
	}

	/**
	 * 項目の値を取得
	 * @param bean データビーン
	 * @param item 項目名
	 * @return String 値
	 */
	private static String getValue(X31SDataBeanAccess bean, String item)
	{
		return bean.sendMessageString(item, X31CWebConst.DATABEAN_GET_VALUE);
	}
	
	/**
	 * 項目に値を設定
	 * @param bean データビーン
	 * @param item 項目名
	 * @param value 値
	 */
	private static void setValue(X31SDataBeanAccess bean, String item, String value)
	{
		bean.sendMessageString(item, X31CWebConst.DATABEAN_SET_VALUE, value);
	}

	/**
	 * 項目の値をクリア
	 * @param bean データビーン
	 * @param item 項目名
	 */
	private static void clearValue(X31SDataBeanAccess bean, String item)
	{
//		bean.sendMessageString(item, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessageString(item, X31CWebConst.DATABEAN_SET_VALUE, "");
	}

	/**
	 * リスト項目のインデックスの値をクリア
	 * @param bean データビーン
	 * @param item 項目名
	 */
	private static void clearListIndex(X31SDataBeanAccess bean, String item)
	{
		String sSelCd	= null;
		String sSelNm	= null;
		String sIndex	= null;
		
		if(item.equals(I_YOKYU_MT_APL_SBT_CD_LIST))
		{
			sSelCd	= I_YOKYU_MT_APL_SBT_CD_SEL_CD_02;
			sSelNm	= I_YOKYU_MT_APL_SBT_CD_SEL_NM_02;
			sIndex	= I_YOKYU_MT_APL_SBT_CD_INDEX_02;
		}
		else if(item.equals(I_YOKYU_SBT_CD_LIST))
		{
			sSelCd	= I_YOKYU_SBT_CD_SEL_CD_03;
			sSelNm	= I_YOKYU_SBT_CD_SEL_NM_03;
			sIndex	= I_YOKYU_SBT_CD_INDEX_03;
		}
		else if(item.equals(I_ROM_SBT_CD_LIST))
		{
			sSelCd	= I_ROM_SBT_CD_SEL_CD_04;
			sSelNm	= I_ROM_SBT_CD_SEL_NM_04;
			sIndex	= I_ROM_SBT_CD_INDEX_04;
		}
		else if(item.equals(I_SPOT_SESSION_CNT_CHGUM))
		{
			sSelCd	= I_SPOT_SESSION_CNT_CHGUM_SEL_CD_06;
			sSelNm	= I_SPOT_SESSION_CNT_CHGUM_SEL_NM_06;
			sIndex	= I_SPOT_SESSION_CNT_CHGUM_INDEX_06;
		}
		
		X31SDataBeanAccess subbean = bean.getDataBeanArray(item).getDataBean(0);

		if(item.equals(I_SCHEDULE_YMD))
		{
			setValue(subbean, YEAR_05, "");
			setValue(subbean, MONTH_05, "");
			setValue(subbean, DAY_05, "");
		}
		else
		{
			if(item.equals(I_SPOT_SESSION_CNT_CHGUM))
			{
				setValue(subbean, sIndex, "1");
				setValue(subbean, sSelCd, "1");
				setValue(subbean, sSelNm, "登録");
			}
			else
			{
				setValue(subbean, sIndex, "0");
				setValue(subbean, sSelCd, "");
				setValue(subbean, sSelNm, "");
			}
		}
	}

	
	/**
	 * リスト項目データビーンを取得
	 * @param bean サービスフォームビーン
	 * @param name リスト項目名
	 * @return X31SDataBeanAccess リスト項目ビーン
	 */
	private X31SDataBeanAccess getListBean(X31SDataBeanAccess bean , String name)
	{
		return bean.getDataBeanArray(name).getDataBean(0);
	}

	/**
	 * データビーンをクリアします。
	 * @throws Exception  例外発生時
	 */
	private void clearDatabean() throws Exception
	{
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		//基本情報
		clearValue(bean, ORDER_SBT);
		clearValue(bean, YOKYU_MT_APL_SBT_CD);
		clearValue(bean, YOKYU_SBT_CD);
		clearValue(bean, SCHEDULE_YMD);
		clearValue(bean, EM_KEISHA_CD);
		clearValue(bean, EM_SIJGSHA_SET_CHRG_STAYMD);
		clearValue(bean, HJIN_EO_YKAE_SVKEI_NO);
		clearValue(bean, MOBILE_ORDER_CD);
		clearValue(bean, MOBILE_ORDER_NO);
		clearValue(bean, MOBILE_ORDER_UK_DTM);
		clearValue(bean, SVC_KEI_NO);
		clearValue(bean, SVC_KEI_UCWK_NO);
		clearListIndex(bean, I_YOKYU_MT_APL_SBT_CD_LIST);
		clearListIndex(bean, I_YOKYU_SBT_CD_LIST);
		clearListIndex(bean, I_SCHEDULE_YMD);
		
		//UQ情報
		clearValue(bean, UQ_ROM_SBT_CD);
		clearValue(bean, UQ_MACAD);
		clearValue(bean, UQ_NINSHO_ID);
		clearValue(bean, UQ_NINSHO_ID_PWD);
		clearValue(bean, UQ_PPLAN_CD);
		clearListIndex(bean, I_ROM_SBT_CD_LIST);
		
		//SPOT情報
		clearValue(bean, OLD_SPOT_SESSION_CNT);
		clearValue(bean, SPOT_SESSION_CNT);
		clearValue(bean, SYSID);
		clearListIndex(bean, I_SPOT_SESSION_CNT_CHGUM);
	}
	
	/**
	 * 画面遷移先を設定します。
	 * @author 富士通
	 * @param nextScreenId 遷移先画面ＩＤ
	 * @param nextScreenName 遷移先画面名
	 */
	private void setNextScreen(String nextScreenId, String nextScreenName)
	{
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
	
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);

		DEBUG_LOG.debug(String.format("遷移先 CD：%s NM：%s", nextScreenId, nextScreenName));
	}

	/**
	 * データビーンの値をチェックする
	 * @param bean サービスフォームビーン
	 * @return boolean true:OK,false:NG
	 * @throws Exception
	 */
	private boolean chkItemValue(X31SDataBeanAccess bean) throws Exception
	{
		X31SDataBeanAccess subbean = null;
		String sYear = null;
		String sMonth = null;
		String sDay = null;
		String sCode = null;
		String sValue = null;
		String sOrderSbt = null;

		//オーダ種別を取得
		sOrderSbt = getValue(bean, ORDER_SBT);
		
		//サービス契約番号
		sValue = getValue(bean, SVC_KEI_NO);
		if(!JSCCommonUtil.isValidParameter(sValue))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0010_TW, new String[]{SVC_KEI_NO});
			return false;
		}
		
		//スケジュール年月日
		subbean = getListBean(bean, SCW00701SFConst.I_SCHEDULE_YMD);
		sYear = getValue(subbean, SCW00701SFConst.YEAR_05);
		sMonth = getValue(subbean, SCW00701SFConst.MONTH_05);
		sDay = getValue(subbean, SCW00701SFConst.DAY_05);
		if (JSCCommonUtil.isValidParameter(sYear) || JSCCommonUtil.isValidParameter(sMonth) || JSCCommonUtil.isValidParameter(sDay))
		{
			if (!DatetimeCheck.isDateCheck(sYear + sMonth + sDay))
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1050_TW, new String[]{"スケジュール年月日"});
				return false;
			}
		}

		if (sOrderSbt.equals(JSCStrConstant.MOBILE_ODER_CD_DEV))
		{
			//UQ認証ID
			sValue = getValue(bean, UQ_NINSHO_ID);
			if(!JSCCommonUtil.isValidParameter(sValue))
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0010_TW, new String[]{UQ_NINSHO_ID});
				return false;
			}
		}
		if (sOrderSbt.equals(JSCStrConstant.MOBILE_ODER_CD_SPOT))
		{
			//ＳＹＳＩＤ
			sValue = getValue(bean, SYSID);
			if (!JSCCommonUtil.isValidParameter(sValue))
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0010_TW, new String[]{SYSID});
				return false;
			}
		}

		if (sOrderSbt.equals(JSCStrConstant.MOBILE_ODER_CD_SPOT))
		{
			//SPOTセッション数
			subbean = getListBean(bean, SCW00701SFConst.I_SPOT_SESSION_CNT_CHGUM);
			sCode = getValue(subbean, SCW00701SFConst.I_SPOT_SESSION_CNT_CHGUM_SEL_CD_06);
			sValue = getValue(bean, SCW00701SFConst.SPOT_SESSION_CNT);
			if("0".equals(sCode) || "3".equals(sCode))
			{
				if(!("".equals(sValue)))
				{
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0660_NW, new String[]{"変更なし又は削除", "SPOTセッション数"});
					return false;
				}
			}
			else
			{
				if (("".equals(sValue)))
				{
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0710_NW, new String[]{"登録又は更新", "SPOTセッション数"});
					return false;
				}
			}
		}
		
		return true;
	}

	/**
	 * プルダウンの０番目の項目に空白を挿入します。
	 * @param pulldown プルダウンを指す項目ID
	 * @param cdList  プルダウン中でコード一覧をさす項目ID
	 * @param nmList  プルダウン中で名称一覧をさす項目ID
	 * @param dspList プルダウン中で表示用一覧をさす項目ID
	 */
	private void pushEmptyToTopOfPulldown(String pulldown, String cdList, String nmList, String dspList)
	{
		X31SDataBeanAccess pulldownBean = 
			super.getServiceFormBean().getDataBeanArray(pulldown).getDataBean(0);

		appendPrefix(getBean(this, pulldown), nmList);

		slideArrayOnDatabean(pulldownBean, cdList);
		slideArrayOnDatabean(pulldownBean, nmList);
		slideArrayOnDatabean(pulldownBean, dspList);
	}

	/**
	 * データビーンの配列要素をインデックスが増加する方向に１つずらす
	 * @param bean データビーン
	 * @param listName 対象項目ID
	 */
	private void slideArrayOnDatabean(X31SDataBeanAccess bean, String listName)
	{
		int size = (Integer)(bean.sendMessage(listName, X31CWebConst.DATABEAN_GET_COUNT));

		bean.sendMessageString(listName, X31CWebConst.DATABEAN_ADD_VALUE, "");

		for (int i = size ; i > 0 ; i--)
		{
			String target = 
				bean.sendMessageString(listName, X31CWebConst.DATABEAN_GET_VALUE, i - 1);
			bean.sendMessageString(listName, X31CWebConst.DATABEAN_SET_VALUE, i, target);
		}

		bean.sendMessageString(listName, X31CWebConst.DATABEAN_SET_VALUE, 0, "");
	}

	/**
	 * 画面入力値を取得しデータビーンに設定
	 * @param bean サービスフォームビーン
	 */
	private void getScreenValue(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccess subbean = null;
		int idx = 0;
		String sCode = null;
		String sName = null;
		String sYear = null;
		String sMonth = null;
		String sDay = null;
		String sMobileOrderCode = null;
		
		//オーダ種別
		subbean = getListBean(bean, I_ORDER_SBT_LIST);
		idx = Integer.valueOf(getValue(subbean, I_ORDER_SBT_INDEX_01));
		sCode = getValueArray(subbean, I_ORDER_SBT_CD_LIST_01, idx);
		sName = getValueArray(subbean, I_ORDER_SBT_NM_LIST_01, idx);
		setValue(subbean, I_ORDER_SBT_SEL_CD_01, sCode);
		setValue(subbean, I_ORDER_SBT_SEL_NM_01, getName(sName, "."));
		setValue(subbean, I_ORDER_SBT_DSP_01, getValueArray(subbean, I_ORDER_SBT_DSP_LIST_01, idx));
		setValue(bean, ORDER_SBT, sCode);
		setValue(bean, MOBILE_ORDER_CD, sCode);
		sMobileOrderCode = sCode;
		
		// 要求元アプリ種別を設定
		subbean = getListBean(bean, I_YOKYU_MT_APL_SBT_CD_LIST);
		idx = Integer.valueOf(getValue(subbean, I_YOKYU_MT_APL_SBT_CD_INDEX_02));
		sCode = getValueArray(subbean, I_YOKYU_MT_APL_SBT_CD_CD_LIST_02, idx);
		sName = getValueArray(subbean, I_YOKYU_MT_APL_SBT_CD_NM_LIST_02, idx);
		setValue(subbean, I_YOKYU_MT_APL_SBT_CD_SEL_CD_02, sCode);
		setValue(subbean, I_YOKYU_MT_APL_SBT_CD_SEL_NM_02, getName(sName, "."));
		setValue(subbean, I_YOKYU_MT_APL_SBT_CD_DSP_02, getValueArray(subbean, I_YOKYU_MT_APL_SBT_CD_DSP_LIST_02, idx));
		setValue(bean, YOKYU_MT_APL_SBT_CD, sCode);

		// 要求種別を設定
		subbean = getListBean(bean, I_YOKYU_SBT_CD_LIST);
		idx = Integer.valueOf(getValue(subbean, I_YOKYU_SBT_CD_INDEX_03));
		sCode = getValueArray(subbean, I_YOKYU_SBT_CD_CD_LIST_03, idx);
		sName = getValueArray(subbean, I_YOKYU_SBT_CD_NM_LIST_03, idx);
		setValue(subbean, I_YOKYU_SBT_CD_SEL_CD_03, sCode);
		setValue(subbean, I_YOKYU_SBT_CD_SEL_NM_03, getName(sName, "."));
		setValue(subbean, I_YOKYU_SBT_CD_DSP_03, getValueArray(subbean, I_YOKYU_SBT_CD_DSP_LIST_03, idx));
		setValue(bean, YOKYU_SBT_CD, sCode);

		// ＲＯＭ種別を設定
		if (sMobileOrderCode.equals(JSCStrConstant.MOBILE_ODER_CD_DEV))
		{
			subbean = getListBean(bean, I_ROM_SBT_CD_LIST);
			idx = Integer.valueOf(getValue(subbean, I_ROM_SBT_CD_INDEX_04));
			sCode = getValueArray(subbean, I_ROM_SBT_CD_CD_LIST_04, idx);
			sName = getValueArray(subbean, I_ROM_SBT_CD_NM_LIST_04, idx);
			setValue(subbean, I_ROM_SBT_CD_SEL_CD_04, sCode);
			setValue(subbean, I_ROM_SBT_CD_SEL_NM_04, getName(sName, "."));
			setValue(subbean, I_ROM_SBT_CD_DSP_04, getValueArray(subbean, I_ROM_SBT_CD_DSP_LIST_04, idx));
			setValue(bean, UQ_ROM_SBT_CD, sCode);
		}
			
		// ＳＯＤ項目変更有無を設定
		if (sMobileOrderCode.equals(JSCStrConstant.MOBILE_ODER_CD_SPOT))
		{
			subbean = getListBean(bean, I_SPOT_SESSION_CNT_CHGUM);
			idx = Integer.valueOf(getValue(subbean, I_SPOT_SESSION_CNT_CHGUM_INDEX_06));
			sCode = getValueArray(subbean, I_SPOT_SESSION_CNT_CHGUM_CD_LIST_06, idx);
			sName = getValueArray(subbean, I_SPOT_SESSION_CNT_CHGUM_NM_LIST_06, idx);
			setValue(subbean, I_SPOT_SESSION_CNT_CHGUM_SEL_CD_06, sCode);
			setValue(subbean, I_SPOT_SESSION_CNT_CHGUM_SEL_NM_06, sName);
			setValue(subbean, I_SPOT_SESSION_CNT_CHGUM_DSP_06, getValueArray(subbean, I_SPOT_SESSION_CNT_CHGUM_DSP_LIST_06, idx));
			setValue(bean, I_SOD_CHG_FLG, sCode);
		}

		// スケジュール年月日を設定
		subbean = getListBean(bean, I_SCHEDULE_YMD);
		sYear = getValue(subbean, YEAR_05);
		sMonth = getValue(subbean, MONTH_05);
		sDay = getValue(subbean, DAY_05);
		setValue(bean, SCHEDULE_YMD, sYear + sMonth + sDay);

	}
	
	/**
	 * リストの名称から番号を除去する
	 * @param sValue 名称
	 * @param sep 区切文字
	 * @return 名称
	 */
	private String getName(String sValue, String sep)
	{
		
		StringBuffer sb = new StringBuffer();
		String sRet = null;
		int len = 0;
		int pos = 0;
		
		sb.append(sValue);
		len = sb.length();
		pos = sb.indexOf(sep);
		
		if ((len > 0) && (pos > 0))
		{
			sRet = sb.substring(pos + 1, len).toString();
		}
		else
		{
			sRet = sb.toString();
		}
		return sRet;
	}
}
