/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：DKW04601SFLogic
*   ソースファイル名：DKW04601SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年05月10日
*＜機能概要＞
*   入荷基本設定画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/05/10   FJ）植木    新規作成
*
**********************************************************************/
package eo.web.webview.DKW04601SF;

import static eo.web.webview.common.JDKWebCommon.appendPrefix;
import static eo.web.webview.common.JDKWebCommon.getBean;

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 com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31SWebLog;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JDKCommonUtil;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.DKW04602SF.DKW04602SFConst;
import eo.web.webview.common.JCCMessageCache;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JDKScreenConst;
import eo.web.webview.common.JDKWebCommon;
import eo.web.webview.mapping.DKSV0028_DKSV0028OPDBMapper;
import eo.web.webview.mapping.DKSV0058_DKSV0058OPDBMapper;

/**
 * DKW04601のビューロジック
 * <BR>
 * @author 富士通
 */
public class DKW04601SFLogic extends JCCWebBusinessLogic
{
	/** 生成シリアルバージョン */
	private static final long serialVersionUID = -623668099302834112L;

	/**
	 * サービスID（入荷基本設定初期表示）
	 */
	private static final String DKSV0028 = "DKSV0028";

	/**
	 * サービスID（倉庫棚チェック）
	 */
	private static final String DKSV0058 = "DKSV0058";

	/**
	 * SCタイトル（倉庫棚取得）
	 */
	private static final String DKSV005801SC = "DKSV005801SC";

	/**
	 * 入荷種別フラグ（入荷）
	 */
	private static final String NYUKA_SBT_FLG_NYUKA = "0";

	/**
	 * 入荷種別フラグ（発注外入荷）
	 */
	private static final String NYUKA_SBT_FLG_HATTCHU_GAI = "1";

	/**
	 * 項目活性制御（活性）
	 */
	private static final String KMK_ENABLE_CTRL_ENABLE = "false";

	/**
	 * 項目活性制御（非活性）
	 */
	private static final String KMK_ENABLE_CTRL_DISABLE = "true";

	/**
	 * 画面項目ID（入荷日（年））
	 */
	private static final String KMK_ID_NYUKA_YMD_YEAR = "I_NYUKA_YMD_YEAR";
	/**
	 * 画面項目ID（入荷先（棚））
	 */
	private static final String KMK_ID_SHELF_INFO = "I_NYUKA_SAKI_SHELF_INFO";

	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean init() throws Exception
	{
		JCCWebCommon.getScreenInfo(this);

		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		String screenId = JCCWebCommon.getScreenId(this);

		serviceFormBean.sendMessageString(DKW04601SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));

		// 活性制御
		String nyukaSbtFlg = serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_SBT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if (NYUKA_SBT_FLG_NYUKA.equals(nyukaSbtFlg))
		{
			serviceFormBean.sendMessageString(DKW04601SFConst.KMK_ENABLE_CTRL, X31CWebConst.DATABEAN_SET_VALUE, KMK_ENABLE_CTRL_DISABLE);
		}
		else
		{
			serviceFormBean.sendMessageString(DKW04601SFConst.KMK_ENABLE_CTRL, X31CWebConst.DATABEAN_SET_VALUE, KMK_ENABLE_CTRL_ENABLE);
		}

		X31SDataBeanAccess[] paramBean = {serviceFormBean};
		
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, DKSV0028);

		// マッピングクラスのインスタンスを生成
		DKSV0028_DKSV0028OPDBMapper mapper = new DKSV0028_DKSV0028OPDBMapper();
		HashMap dataMap = new HashMap();

		mapper.setDKSV002801SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDKSV002802SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDKSV002803SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// 検索結果格納用マップ
		HashMap outputMap = new HashMap();

		// 検索処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);

		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			setNextScreen(JDKScreenConst.SCREEN_ID_DKW04601, JDKScreenConst.SCREEN_NAME_DKW04601);
			return true;
		}

		JCCMessageCache.setMessageCache();

		mapper.getDKSV002801SC(paramBean, outputMap);
		mapper.getDKSV002802SC(paramBean, outputMap);
		mapper.getDKSV002803SC(paramBean, outputMap);
		mapper.getDKSV002804SC(paramBean, outputMap);
		
		// メーカー
		X31SDataBeanAccess makerPulldownBean = serviceFormBean.getDataBeanArray(DKW04601SFConst.MAKER_INFO).getDataBean(0);
		int size = (Integer)(makerPulldownBean.sendMessage(DKW04601SFConst.MAKER_CD_CD_LIST_02, X31CWebConst.DATABEAN_GET_COUNT));
		if (size <= 0)
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0720_KW, new String[] {"メーカーマスタ", "データ"});
			setNextScreen(JDKScreenConst.SCREEN_ID_DKW04601, JDKScreenConst.SCREEN_NAME_DKW04601);
			return true;
		}
		appendPrefix(getBean(this, DKW04601SFConst.MAKER_INFO), DKW04601SFConst.MAKER_CD_NM_LIST_02);

		// 倉庫
		X31SDataBeanAccess sokoPulldownBean = serviceFormBean.getDataBeanArray(DKW04601SFConst.SOKO_INFO).getDataBean(0);
		size = (Integer)(sokoPulldownBean.sendMessage(DKW04601SFConst.SOKO_CD_CD_LIST_03, X31CWebConst.DATABEAN_GET_COUNT));
		if (size <= 0)
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0720_KW, new String[] {"倉庫マスタ", "データ"});
			setNextScreen(JDKScreenConst.SCREEN_ID_DKW04601, JDKScreenConst.SCREEN_NAME_DKW04601);
			return true;
		}
		pushEmptyToTopOfPulldown(DKW04601SFConst.SOKO_INFO, DKW04601SFConst.SOKO_CD_CD_LIST_03, DKW04601SFConst.SOKO_CD_NM_LIST_03);

		// 倉庫棚
		X31SDataBeanAccess shelfPulldownBean = serviceFormBean.getDataBeanArray(DKW04601SFConst.SOKODNA_INFO).getDataBean(0);
		size = (Integer)(shelfPulldownBean.sendMessage(DKW04601SFConst.SHELF_CD_CD_LIST_04, X31CWebConst.DATABEAN_GET_COUNT));
		if (size <= 0)
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0720_KW, new String[] {"倉庫棚マスタ", "データ"});
			setNextScreen(JDKScreenConst.SCREEN_ID_DKW04601, JDKScreenConst.SCREEN_NAME_DKW04601);
			return true;
		}
		pushEmptyToTopOfPulldown(DKW04601SFConst.SOKODNA_INFO, DKW04601SFConst.SHELF_CD_CD_LIST_04, DKW04601SFConst.SHELF_CD_NM_LIST_04);

		// 入荷種別フラグ
		X31SDataBeanAccess nyukaSbtPulldownBean = serviceFormBean.getDataBeanArray(DKW04601SFConst.NYUKA_SBT_INFO).getDataBean(0);
		size = (Integer)(nyukaSbtPulldownBean.sendMessage(DKW04601SFConst.NYUKA_SBT_FLG_CD_LIST_01, X31CWebConst.DATABEAN_GET_COUNT));
		if (size <= 0)
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0720_KW, new String[] {"コード名称管理（入荷種別）", "データ"});
			setNextScreen(JDKScreenConst.SCREEN_ID_DKW04601, JDKScreenConst.SCREEN_NAME_DKW04601);
			return true;
		}

		// 入荷登録画面からの遷移
		if (JDKScreenConst.SCREEN_ID_DKW04602.equals(screenId))
		{
			String makerCd = serviceFormBean.sendMessageString(DKW04601SFConst.MAKER_CD, X31CWebConst.DATABEAN_GET_VALUE);
			int makerIndex = this.getIndexFromCode(makerCd, serviceFormBean, DKW04601SFConst.MAKER_INFO, DKW04601SFConst.MAKER_CD_CD_LIST_02);
			makerPulldownBean.sendMessageString(DKW04601SFConst.MAKER_CD_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(makerIndex));

			String sokoCd = serviceFormBean.sendMessageString(DKW04601SFConst.SOKO_CD, X31CWebConst.DATABEAN_GET_VALUE);
			int sokoIndex = this.getIndexFromCode(sokoCd, serviceFormBean, DKW04601SFConst.SOKO_INFO, DKW04601SFConst.SOKO_CD_CD_LIST_03);
			sokoPulldownBean.sendMessageString(DKW04601SFConst.SOKO_CD_03, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(sokoIndex));

			String shelfCd = serviceFormBean.sendMessageString(DKW04601SFConst.SHELF_CD, X31CWebConst.DATABEAN_GET_VALUE);
			int shelfIndex = this.getIndexFromCode(shelfCd, serviceFormBean, DKW04601SFConst.SOKODNA_INFO, DKW04601SFConst.SHELF_CD_CD_LIST_04);
			shelfPulldownBean.sendMessageString(DKW04601SFConst.SHELF_CD_04, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(shelfIndex));
		}
		else
		{
			clearDataBean(serviceFormBean);
		}

		// 画面遷移処理
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW04601, JDKScreenConst.SCREEN_NAME_DKW04601);

		return true;
	}

	/**
	 * 設定ボタン押下処理を行います。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean setUp() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		X31SDataBeanAccess[] paramBean = {serviceFormBean};

		// 運用日付
		String opeDate = JCCWebCommon.getOpeDate(this, null);

		// 入荷日の未来日チェック
		String nyukaYmdYear = serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_YMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String nyukaYmdMonth = serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_YMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String nyukaYmdDay = serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_YMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		String nyukaYmd = nyukaYmdYear + nyukaYmdMonth + nyukaYmdDay;
		if (JPCUtilCommon.isFutureDate(nyukaYmd, opeDate, "0"))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0690_NW, new String[] {"入荷日", "未来"}, KMK_ID_NYUKA_YMD_YEAR);
			return true;
		}

		// 入荷種別
		String sNyukaSbtIndex = serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_SBT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		String nyukaSbtFlg = this.getCodeFromIndex(Integer.parseInt(sNyukaSbtIndex, 10), 
				serviceFormBean, DKW04601SFConst.NYUKA_SBT_INFO, DKW04601SFConst.NYUKA_SBT_FLG_CD_LIST_01);

		String makerCd = "";
		String makerNm = "";
		String sokoCd = "";
		String sokoNm = "";
		String shelfCd = "";
		String shelfNm = "";
		String biko = "";

		// メーカーコードを取得
		X31SDataBeanAccess makerPulldownBean = serviceFormBean.getDataBeanArray(DKW04601SFConst.MAKER_INFO).getDataBean(0);
		String sMakerIndex = makerPulldownBean.sendMessageString(DKW04601SFConst.MAKER_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JDKCommonUtil.isNull(sMakerIndex))
		{
			int makerIndex = Integer.parseInt(sMakerIndex, 10);
			makerCd = this.getCodeFromIndex(makerIndex, serviceFormBean, DKW04601SFConst.MAKER_INFO, DKW04601SFConst.MAKER_CD_CD_LIST_02);
			makerNm = this.getNameFromIndex(makerIndex, serviceFormBean, DKW04601SFConst.MAKER_INFO, DKW04601SFConst.MAKER_CD_NM_LIST_02);
		}

		if (NYUKA_SBT_FLG_HATTCHU_GAI.equals(nyukaSbtFlg))
		{
			// 倉庫コードを取得
			X31SDataBeanAccess sokoPulldownBean = serviceFormBean.getDataBeanArray(DKW04601SFConst.SOKO_INFO).getDataBean(0);
			String sSokoIndex = sokoPulldownBean.sendMessageString(DKW04601SFConst.SOKO_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JDKCommonUtil.isNull(sSokoIndex))
			{
				int sokoIndex = Integer.parseInt(sSokoIndex, 10);
				sokoCd = this.getCodeFromIndex(sokoIndex, serviceFormBean, DKW04601SFConst.SOKO_INFO, DKW04601SFConst.SOKO_CD_CD_LIST_03);
				sokoNm = this.getNameFromIndex(sokoIndex, serviceFormBean, DKW04601SFConst.SOKO_INFO, DKW04601SFConst.SOKO_CD_NM_LIST_03);
			}
			
			// 棚コードを取得
			X31SDataBeanAccess shelfPulldownBean = serviceFormBean.getDataBeanArray(DKW04601SFConst.SOKODNA_INFO).getDataBean(0);
			String sShelfIndex = shelfPulldownBean.sendMessageString(DKW04601SFConst.SHELF_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JDKCommonUtil.isNull(sShelfIndex))
			{
				int shelfIndex = Integer.parseInt(sShelfIndex, 10);
				shelfCd = this.getCodeFromIndex(shelfIndex, serviceFormBean, DKW04601SFConst.SOKODNA_INFO, DKW04601SFConst.SHELF_CD_CD_LIST_04);
				shelfNm = this.getNameFromIndex(shelfIndex, serviceFormBean, DKW04601SFConst.SOKODNA_INFO, DKW04601SFConst.SHELF_CD_NM_LIST_04);
			}

			// 備考を取得
			biko = serviceFormBean.sendMessageString(DKW04601SFConst.BIKO, X31CWebConst.DATABEAN_GET_VALUE);
		}

		// メーカーコードを設定
		serviceFormBean.sendMessageString(DKW04601SFConst.MAKER_CD, X31CWebConst.DATABEAN_SET_VALUE, makerCd);
		serviceFormBean.sendMessageString(DKW04601SFConst.MAKER_NM, X31CWebConst.DATABEAN_SET_VALUE, makerNm);

		// 倉庫コードを設定
		serviceFormBean.sendMessageString(DKW04601SFConst.SOKO_CD, X31CWebConst.DATABEAN_SET_VALUE, sokoCd);
		serviceFormBean.sendMessageString(DKW04601SFConst.SOKO_NM, X31CWebConst.DATABEAN_SET_VALUE, sokoNm);

		// 棚コードを設定
		serviceFormBean.sendMessageString(DKW04601SFConst.SHELF_CD, X31CWebConst.DATABEAN_SET_VALUE, shelfCd);
		serviceFormBean.sendMessageString(DKW04601SFConst.SHELF_NM, X31CWebConst.DATABEAN_SET_VALUE, shelfNm);

		// 備考を設定
		serviceFormBean.sendMessageString(DKW04601SFConst.BIKO, X31CWebConst.DATABEAN_SET_VALUE, biko);

		if (NYUKA_SBT_FLG_HATTCHU_GAI.equals(nyukaSbtFlg))
		{
			// ユースケースID格納用マップを生成。
			HashMap paramMap = new HashMap();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, DKSV0058);

			// マッピングクラスのインスタンスを生成
			DKSV0058_DKSV0058OPDBMapper mapper = new DKSV0058_DKSV0058OPDBMapper();
			HashMap dataMap = new HashMap();

			mapper.setDKSV005801SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);

			// 検索結果格納用マップ
			HashMap outputMap = new HashMap();

			// 検索処理呼出
			X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);

			if (msgResult != null)
			{
				JCCWebCommon.setMessageInfo(this, msgResult);
				return true;
			}

			JCCMessageCache.setMessageCache();

			mapper.getDKSV005801SC(paramBean, outputMap);

			// 検索エラーフラグの取得
			String searchErrFlg = JCCWebCommon.getSearchErrFlg(DKSV005801SC, outputMap);

			if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
			{
				// 検索結果が0件の場合の処理
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, new String[] {"倉庫棚", "棚"}, KMK_ID_SHELF_INFO);
				return true;
			}
		}

		// 引き継ぎ情報を格納するMAP
		HashMap hikitsugiDataMap = new HashMap();

		hikitsugiDataMap.put(DKW04602SFConst.REFERID, JDKScreenConst.SCREEN_ID_DKW04601);
		hikitsugiDataMap.put(DKW04602SFConst.SCREENID, JDKScreenConst.SCREEN_ID_DKW04602);
		hikitsugiDataMap.put(DKW04602SFConst.NYUKA_YMD, nyukaYmd);
		hikitsugiDataMap.put(DKW04602SFConst.NYUKA_ADD_YMD, opeDate);
		hikitsugiDataMap.put(DKW04602SFConst.NYUKA_SBT_FLG, nyukaSbtFlg);
		String nyukaSbtNm = this.getNameFromIndex(Integer.parseInt(sNyukaSbtIndex, 10), 
				serviceFormBean, DKW04601SFConst.NYUKA_SBT_INFO, DKW04601SFConst.NYUKA_SBT_FLG_NM_LIST_01);
		hikitsugiDataMap.put(DKW04602SFConst.NYUKA_SBT_NM, nyukaSbtNm);
		hikitsugiDataMap.put(DKW04602SFConst.MAKER_CD, makerCd);
		hikitsugiDataMap.put(DKW04602SFConst.MAKER_NM, JDKWebCommon.getFollowOf(makerNm, "."));
		hikitsugiDataMap.put(DKW04602SFConst.SOKO_CD, sokoCd);
		hikitsugiDataMap.put(DKW04602SFConst.SOKO_NM, JDKWebCommon.getFollowOf(sokoNm, "."));
		hikitsugiDataMap.put(DKW04602SFConst.SHELF_CD, shelfCd);
		hikitsugiDataMap.put(DKW04602SFConst.SHELF_NM, JDKWebCommon.getFollowOf(shelfNm, "."));
		hikitsugiDataMap.put(DKW04602SFConst.BIKO, serviceFormBean.sendMessageString(DKW04601SFConst.BIKO, X31CWebConst.DATABEAN_GET_VALUE));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW04602, hikitsugiDataMap);

		X31SWebLog.DEBUG_LOG.debug("引き継ぎ情報Mapの内容：");
		X31SWebLog.DEBUG_LOG.debug(hikitsugiDataMap);

		// 戻る際に必要な情報を格納するMAP
		HashMap returnMap = new HashMap();

		returnMap.put(DKW04601SFConst.UNYO_YMD, serviceFormBean.sendMessageString(DKW04601SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.NYUKA_YMD_YEAR, serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_YMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.NYUKA_YMD_MON, serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_YMD_MON, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.NYUKA_YMD_DAY, serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_YMD_DAY, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.NYUKA_SBT_FLG, serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_SBT_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.MAKER_CD, serviceFormBean.sendMessageString(DKW04601SFConst.MAKER_CD, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.MAKER_NM, serviceFormBean.sendMessageString(DKW04601SFConst.MAKER_NM, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.SOKO_CD, serviceFormBean.sendMessageString(DKW04601SFConst.SOKO_CD, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.SOKO_NM, serviceFormBean.sendMessageString(DKW04601SFConst.SOKO_NM, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.SHELF_CD, serviceFormBean.sendMessageString(DKW04601SFConst.SHELF_CD, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.SHELF_NM, serviceFormBean.sendMessageString(DKW04601SFConst.SHELF_NM, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW04601SFConst.BIKO, serviceFormBean.sendMessageString(DKW04601SFConst.BIKO, X31CWebConst.DATABEAN_GET_VALUE));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW04601, returnMap);
		JCCWebCommon.setScreenId(this, JDKScreenConst.SCREEN_ID_DKW04602, JDKScreenConst.SCREEN_ID_DKW04601);

		// 画面遷移処理
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW04602, JDKScreenConst.SCREEN_NAME_DKW04602);

		return true;
	}

	/**
	 * プルダウンの０番目の項目に空白を挿入します。
	 * @param pulldown プルダウンを指す項目ID
	 * @param cdList プルダウン中でコード一覧をさす項目ID
	 * @param nmList プルダウン中で名称一覧をさす項目ID
	 */
	private void pushEmptyToTopOfPulldown(String pulldown, String cdList, String nmList)
	{
		X31SDataBeanAccess pulldownBean = super.getServiceFormBean().getDataBeanArray(pulldown).getDataBean(0);

		appendPrefix(getBean(this, pulldown), nmList);
		
		slideArrayOnDatabean(pulldownBean, cdList);
		slideArrayOnDatabean(pulldownBean, nmList);
	}
	
	/**
	 * データビーンの配列要素をインデックスが増加する方向に１つずらす
	 * @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 index インデックス
	 * @param serviceFormBean サービスフォームビーン
	 * @param listNm リスト項目名
	 * @param cdValueListNm コード値リスト項目名
	 * @return 取得したコード
	 */
	private String getCodeFromIndex(int index, X31SDataBeanAccess serviceFormBean, String listNm, String cdValueListNm)
	{
		// リストを取得
		X31SDataBeanAccessArray beanArray = serviceFormBean.getDataBeanArray(listNm);
		X31SDataBeanAccess bean = beanArray.getDataBean(0);
		String retCode = bean.sendMessageString(cdValueListNm, X31CWebConst.DATABEAN_GET_VALUE, index);

		return retCode;
	}

	/**
	 * インデックスを引数にプルダウンから名称を取得します。
	 * @param index インデックス
	 * @param serviceFormBean サービスフォームビーン
	 * @param listNm リスト項目名
	 * @param cdNameListNm コード名リスト項目名
	 * @return 取得した名称
	 */
	private String getNameFromIndex(int index, X31SDataBeanAccess serviceFormBean, String listNm, String cdNameListNm)
	{
		// 料金グループコードリストを取得
		X31SDataBeanAccessArray beanArray = serviceFormBean.getDataBeanArray(listNm);
		X31SDataBeanAccess bean = beanArray.getDataBean(0);
		String retName = bean.sendMessageString(cdNameListNm, X31CWebConst.DATABEAN_GET_VALUE, index);

		return retName;
	}

	/**
	 * コードを引数にプルダウンからインデックスを取得します。
	 * @param code コード
	 * @param serviceFormBean サービスフォームビーン
	 * @param listNm リスト項目名
	 * @param cdValueListNm コード値リスト項目名
	 * @return 取得したインデックス
	 */
	private int getIndexFromCode(String code, X31SDataBeanAccess serviceFormBean, String listNm, String cdValueListNm)
	{
		// 状態コードリストを取得
		X31SDataBeanAccessArray beanArray = serviceFormBean.getDataBeanArray(listNm);
		X31SDataBeanAccess bean = beanArray.getDataBean(0);

		int retIndex = 0;

		for (int i = 0; i < Integer.valueOf(bean.sendMessage(cdValueListNm, X31CWebConst.DATABEAN_GET_COUNT).toString()); i++)
		{
			if (code.equals(bean.sendMessageString(cdValueListNm, X31CWebConst.DATABEAN_GET_VALUE, i)))
			{
				retIndex = i;
				break;
			}
		}

		return retIndex;
	}

	/**
	 * 画面遷移先を設定します。
	 * @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);
	}

	/**
	 * DataBeanをクリアする。
	 * @param serviceFormBean
	 */
	private void clearDataBean(X31SDataBeanAccess serviceFormBean)
	{
		String unyoYmd = JCCWebCommon.getOpeDate(this, null);
		serviceFormBean.sendMessageString(DKW04601SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyoYmd);
		String year = unyoYmd.substring(0, 4);
		String month = unyoYmd.substring(4, 6);
		String day = unyoYmd.substring(6, 8);
		serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_YMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, year);
		serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_YMD_MON, X31CWebConst.DATABEAN_SET_VALUE, month);
		serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_YMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, day);
		X31SDataBeanAccess makerPulldownBean = super.getServiceFormBean().getDataBeanArray(DKW04601SFConst.MAKER_INFO).getDataBean(0);
		makerPulldownBean.sendMessageString(DKW04601SFConst.MAKER_CD_02, X31CWebConst.DATABEAN_SET_VALUE, "0");
		X31SDataBeanAccess sokoPulldownBean = super.getServiceFormBean().getDataBeanArray(DKW04601SFConst.SOKO_INFO).getDataBean(0);
		sokoPulldownBean.sendMessageString(DKW04601SFConst.SOKO_CD_03, X31CWebConst.DATABEAN_SET_VALUE, "0");
		X31SDataBeanAccess shelfPulldownBean = super.getServiceFormBean().getDataBeanArray(DKW04601SFConst.SOKODNA_INFO).getDataBean(0);
		shelfPulldownBean.sendMessageString(DKW04601SFConst.SHELF_CD_04, X31CWebConst.DATABEAN_SET_VALUE, "0");
		serviceFormBean.sendMessageString(DKW04601SFConst.NYUKA_SBT_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		serviceFormBean.sendMessageString(DKW04601SFConst.KMK_ENABLE_CTRL, X31CWebConst.DATABEAN_SET_VALUE, KMK_ENABLE_CTRL_DISABLE);
		serviceFormBean.sendMessageString(DKW04601SFConst.BIKO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
	}
}
