/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：DKW04101SFLogic
*   ソースファイル名：DKW04101SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年05月19日
*＜機能概要＞
*   発注登録画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/05/19   FJ）河野(拓)    新規作成
*
**********************************************************************/
package eo.web.webview.DKW04101SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;
import static eo.common.constant.JPCOnlineMessageConstant.EKB0380__I;

import static eo.web.webview.DKW04101SF.DKW04101SFConst.HATTCHU_CNT_05;
import static eo.web.webview.DKW04101SF.DKW04101SFConst.HATTCHU_IFO;
import static eo.web.webview.DKW04101SF.DKW04101SFConst.SOKO_CD_NM_LIST_02;
import static eo.web.webview.DKW04101SF.DKW04101SFConst.SOKO_INFO;
import static eo.web.webview.DKW04101SF.DKW04101SFConst.*;
import static eo.web.webview.common.JDKScreenConst.SCREEN_ID_DKW04103;
import static eo.web.webview.common.JDKScreenConst.SCREEN_NAME_DKW04103;
import static eo.web.webview.common.JDKWebCommon.appendPrefix;
import static eo.web.webview.common.JDKWebCommon.getBean;
import static eo.web.webview.common.JDKWebCommon.setData;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JDKStrConst;
import eo.common.util.JCCFrameworkException;
import eo.common.util.JDKCommonUtil;
import eo.common.util.JPCDateChecker;
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.JDKWebCommon;
import eo.web.webview.mapping.DKSV0027_DKSV0027OPDBMapper;
import eo.web.webview.mapping.DKSV0029_DKSV0029OPDBMapper;
import eo.web.webview.mapping.DKSV0057_DKSV0057OPDBMapper;


/**
 * DKW04101のビューロジック
 * <BR>
 * @author 富士通
 */
public class DKW04101SFLogic extends JCCWebBusinessLogic
{
	private static final long serialVersionUID = 1L;

	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		JCCWebCommon.getScreenInfo(this);

		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean(); 
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW04101, JDKScreenConst.SCREEN_NAME_DKW04101);

		String referId = serviceFormBean.sendMessageString(DKW04101SFConst.REFERID, X31CWebConst.DATABEAN_GET_VALUE);
		if (referId == null || "".equals(referId))
		{
			serviceFormBean.sendMessageString(DKW04101SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, "1");
			serviceFormBean.sendMessageString(DKW04101SFConst.REFERID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04101);
			try
			{
				serviceFormBean.sendMessageString(DKW04101SFConst.HATTCHU_ADD_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
				serviceFormBean.sendMessageString(DKW04101SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
			}
			catch (Exception e1) 
			{
				return false;
			}

			X31SDataBeanAccess[] paramBean = {serviceFormBean};

			// ユースケースID格納用マップを生成。
			HashMap paramMap = new HashMap();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0027");

			// マッピングクラスのインスタンスを生成
			DKSV0027_DKSV0027OPDBMapper mapper = new DKSV0027_DKSV0027OPDBMapper();
			HashMap dataMap = new HashMap();
			mapper.setDKSV002701SC(paramBean, dataMap, "1");

			// 検索結果格納用マップ
			HashMap outputMap = new HashMap();

			// 検索処理呼出

			invokeService(paramMap, dataMap, outputMap);

			mapper.getDKSV002701SC(paramBean, outputMap);
			mapper.getDKSV002702SC(paramBean, outputMap);
			
			appendPrefix(getBean(this, SOKO_INFO), SOKO_CD_NM_LIST_02);
			appendPrefix(getBean(this, MAKER_INFO), MAKER_CD_NM_LIST_01);
			
			// 検索エラーフラグの取得
			String searchErrFlg = "";
			try 
			{
				searchErrFlg = JCCWebCommon.getSearchErrFlg("DKSV002701SC", outputMap);
			} 
			catch (Exception e) 
			{
				return false;
			}
			if("1".equals(searchErrFlg))
			{
				// 検索結果が0件の場合の処理
				try 
				{
					JCCWebCommon.setMessageInfo(this, "EKB0720-KW");
				} 
				catch (JCCFrameworkException e1) 
				{
					return false;
				}	
			}
			
		}
		
		
		
		return true;
	}	
		
	
	/**
	 * 基本確定ボタン押下時にサービスを呼び出します。
	 * <br>
	 * @return 処理の成否
	 */
		
	public boolean fixBase()
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		setData(this, "1", HATTCHU_IFO, HATTCHU_CNT_05);
		X31SDataBeanAccess[] paramBean = {serviceFormBean};
		
		
		// メーカーコード
		String makerCd = this.getCodePullDown(serviceFormBean, DKW04101SFConst.MAKER_INFO,
				DKW04101SFConst.MAKER_CD_01, DKW04101SFConst.MAKER_CD_CD_LIST_01);
		serviceFormBean.sendMessageString(DKW04101SFConst.MAKER_CD, X31CWebConst.DATABEAN_SET_VALUE, makerCd);
		
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0029");

		// マッピングクラスのインスタンスを生成
		DKSV0029_DKSV0029OPDBMapper mapper = new DKSV0029_DKSV0029OPDBMapper();
		HashMap dataMap = new HashMap();
		mapper.setDKSV002901SC(paramBean, dataMap, "1");
	
		HashMap outputMap = new HashMap();
		invokeService(paramMap, dataMap, outputMap);

		mapper.getDKSV002901SC(paramBean, outputMap);
	
		serviceFormBean.sendMessageString(DKW04101SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, "2");
			
			
			//遷移先の画面IDを共有フォームBeanの項目に設定する。
			X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
			X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04101);

			//遷移先の画面名を共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
			X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW04101);
			return true;
	}

	/**
	 * 発注登録画面の商品確定ボタンを処理する。
	 * @return 成否
	 * @throws Exception
	 */
	public boolean fixGoods() throws Exception
	{
		X31SDataBeanAccess bean = super.getServiceFormBean();
		String modelCd = this.getCodePullDown(bean, DKW04101SFConst.MDDEL_IFO, DKW04101SFConst.MDL_04, DKW04101SFConst.MDL_LIST_04);
		modelCd = JDKWebCommon.getFollowOf(modelCd, ".");
		JDKWebCommon.setData(bean, modelCd, DKW04101SFConst.MDDEL);
		String goodsNm = this.getNamePullDown(bean, DKW04101SFConst.MDDEL_IFO, DKW04101SFConst.MDL_04, DKW04101SFConst.GOODS_NAME_04);
		JDKWebCommon.setData(bean, goodsNm, DKW04101SFConst.GOODS_NAME);

		setNextScreen(JDKScreenConst.SCREEN_ID_DKW04101, JDKScreenConst.SCREEN_NAME_DKW04101);

		return true;
	}

	/**
	 * 発注登録画面の確認ボタンを処理する。
	 * @return 成否
	 * @throws Exception 例外
	 */

	public boolean addconfirm() throws Exception 
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		X31SDataBeanAccessArray hattchuInfoList = serviceFormBean.getDataBeanArray(DKW04101SFConst.HATTCHU_IFO);
		X31SDataBeanAccess subbean = hattchuInfoList.getDataBean(0);
		String yokyu_noki_ymd_year = subbean.sendMessageString(DKW04101SFConst.YOKYU_NOKI_YMD_YEAR_05, X31CWebConst.DATABEAN_GET_VALUE);
		String yokyu_noki_ymd_mon = subbean.sendMessageString(DKW04101SFConst.YOKYU_NOKI_YMD_MON_05, X31CWebConst.DATABEAN_GET_VALUE);
		String yokyu_noki_ymd_day = subbean.sendMessageString(DKW04101SFConst.YOKYU_NOKI_YMD_DAY_05, X31CWebConst.DATABEAN_GET_VALUE);
		String yokyu_noki = yokyu_noki_ymd_year+yokyu_noki_ymd_mon+yokyu_noki_ymd_day;
		String unyo_ymd = serviceFormBean.sendMessageString(DKW04101SFConst.UNYO_YMD,X31CWebConst.DATABEAN_GET_VALUE);
		subbean.sendMessageString(DKW04101SFConst.YOKYU_NOKI_YMD_05, X31CWebConst.DATABEAN_SET_VALUE, yokyu_noki);
		
		boolean flag = JPCDateChecker.isPastDate(yokyu_noki, unyo_ymd, "0");
	
		if (flag)
		{
			JCCWebCommon.setMessageInfo(this, "EKB0690-NW", new String[] {"要求納期", "過去"}, "I_YOKYU_NOKI_YMD_YEAR");
		}
	
		
		
		boolean flag2 = checkDate(yokyu_noki, 8);
	
		 if(flag2 == false)
		{
			JCCWebCommon.setMessageInfo(this, "EKB1050-TW", new String[] {"要求納期"}, "I_YOKYU_NOKI_YMD_YEAR");
		
		}
		
		if(flag  || flag2 == false)
		{
				
			return true;
		}
		
		
		X31SDataBeanAccessArray SokoInfoList = serviceFormBean.getDataBeanArray(DKW04101SFConst.SOKO_INFO);
		X31SDataBeanAccess subbean1 = SokoInfoList.getDataBean(0);
		String sokoIndex = subbean1.sendMessageString(DKW04101SFConst.SOKO_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		String sokoNm = "";
		if (!JDKCommonUtil.isNull(sokoIndex))
		{
			int index = Integer.parseInt(sokoIndex, 10);
			sokoNm = getNameFromIndexForSoko(index, serviceFormBean);
			sokoNm = JDKWebCommon.getFollowOf(sokoNm, ".");
		}
		
		serviceFormBean.sendMessageString(DKW04101SFConst.SOKO_NM, X31CWebConst.DATABEAN_SET_VALUE, sokoNm);

		// 型番号
		String modelCd = this.getCodePullDown(serviceFormBean, DKW04101SFConst.MDDEL_IFO, DKW04101SFConst.MDL_04, DKW04101SFConst.MDL_LIST_04);
		modelCd = JDKWebCommon.getFollowOf(modelCd, ".");
		serviceFormBean.sendMessageString(DKW04101SFConst.MDDEL, X31CWebConst.DATABEAN_SET_VALUE, modelCd);
		// 機器区分（宅内機器、付属品、セット品を識別する値）
		String kikiDiv = this.getCodePullDown(serviceFormBean, DKW04101SFConst.MDDEL_IFO, DKW04101SFConst.MDL_04, DKW04101SFConst.KIKI_SBT_CD_LIST_04);
		if (JDKStrConst.TAKNKIKI_SBT_CD_TAKNKIKI.equals(kikiDiv))
		{
			subbean.sendMessageString(DKW04101SFConst.TAKNKIKI_MODEL_CD_05, X31CWebConst.DATABEAN_SET_VALUE, modelCd);
			subbean.sendMessageString(DKW04101SFConst.HUZOKUHIN_MODEL_CD_05, X31CWebConst.DATABEAN_SET_VALUE, "");
			subbean.sendMessageString(DKW04101SFConst.TAKNKIKI_SETHIN_MODEL_CD_05, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		else if (JDKStrConst.TAKNKIKI_SBT_CD_TAKNKIKI.equals(kikiDiv))
		{
			subbean.sendMessageString(DKW04101SFConst.TAKNKIKI_MODEL_CD_05, X31CWebConst.DATABEAN_SET_VALUE, "");
			subbean.sendMessageString(DKW04101SFConst.HUZOKUHIN_MODEL_CD_05, X31CWebConst.DATABEAN_SET_VALUE, modelCd);
			subbean.sendMessageString(DKW04101SFConst.TAKNKIKI_SETHIN_MODEL_CD_05, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		else
		{
			subbean.sendMessageString(DKW04101SFConst.TAKNKIKI_MODEL_CD_05, X31CWebConst.DATABEAN_SET_VALUE, "");
			subbean.sendMessageString(DKW04101SFConst.HUZOKUHIN_MODEL_CD_05, X31CWebConst.DATABEAN_SET_VALUE, "");
			subbean.sendMessageString(DKW04101SFConst.TAKNKIKI_SETHIN_MODEL_CD_05, X31CWebConst.DATABEAN_SET_VALUE, modelCd);
		}
		// 商品名
		String gdsNm = this.getNamePullDown(serviceFormBean, DKW04101SFConst.MDDEL_IFO, DKW04101SFConst.MDL_04, DKW04101SFConst.GOODS_NAME_04);
		serviceFormBean.sendMessageString(DKW04101SFConst.GOODS_NAME, X31CWebConst.DATABEAN_SET_VALUE, gdsNm);

		// 倉庫コード
		String sokoCd = this.getCodePullDown(serviceFormBean, DKW04101SFConst.SOKO_INFO,
				DKW04101SFConst.SOKO_CD_02, DKW04101SFConst.SOKO_CD_CD_LIST_02);
		serviceFormBean.sendMessageString(DKW04101SFConst.SOKO_CD, X31CWebConst.DATABEAN_SET_VALUE, sokoCd);

		// 棚コード
		serviceFormBean.sendMessageString(DKW04101SFConst.SHELF_CD, X31CWebConst.DATABEAN_SET_VALUE, JDKStrConst.TUJYO_TANA);

		// メーカーコード
		String makerCd = this.getCodePullDown(serviceFormBean, DKW04101SFConst.MAKER_INFO,
				DKW04101SFConst.MAKER_CD_01, DKW04101SFConst.MAKER_CD_CD_LIST_01);
		serviceFormBean.sendMessageString(DKW04101SFConst.MAKER_CD, X31CWebConst.DATABEAN_SET_VALUE, makerCd);

		// メーカー名
		String makerNm = this.getNamePullDown(serviceFormBean, DKW04101SFConst.MAKER_INFO,
				DKW04101SFConst.MAKER_CD_01, DKW04101SFConst.MAKER_CD_NM_LIST_01);
		makerNm = JDKWebCommon.getFollowOf(makerNm, ".");
		serviceFormBean.sendMessageString(DKW04101SFConst.MAKER_NAME, X31CWebConst.DATABEAN_SET_VALUE, makerNm);
	
		// 次画面で表示するメッセージを設定する
		JCCWebCommon.setMessageInfo(this, "EKB0370--I", new String[] {"発注登録"}); 
		
		//遷移先の画面IDを共有フォームBeanの項目に設定する。	
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
			
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
		X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04102);
				
		//遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
		X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW04102);
		
		return true;
		
	}

	 /**
	  * 発注登録画面のクリアボタンを処理する。
	  * @return 成否
	  * @throws Exception 例外
	  */
			
	public boolean clear() throws Exception 
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		X31SDataBeanAccessArray sokoInfoArray = serviceFormBean.getDataBeanArray(DKW04101SFConst.SOKO_INFO);
		X31SDataBeanAccess sokoInfo = sokoInfoArray.getDataBean(0);
		sokoInfo.sendMessage(DKW04101SFConst.SOKO_CD_02, X31CWebConst.DATABEAN_CLEAR);
		X31SDataBeanAccessArray hattchuInfoList = serviceFormBean.getDataBeanArray(DKW04101SFConst.HATTCHU_IFO);
		X31SDataBeanAccess subbean = hattchuInfoList.getDataBean(0);
		subbean.sendMessage(DKW04101SFConst.YOKYU_NOKI_YMD_YEAR_05, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(DKW04101SFConst.YOKYU_NOKI_YMD_MON_05, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(DKW04101SFConst.YOKYU_NOKI_YMD_DAY_05, X31CWebConst.DATABEAN_CLEAR);
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.SOKO_CD);
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.SOKO_NM);
		this.setDataToArray(serviceFormBean, DKW04101SFConst.MAKER_INFO, 0, DKW04101SFConst.MAKER_CD_01, "0");
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.MAKER_CD);
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.MAKER_NAME);
		this.setDataToArray(serviceFormBean, DKW04101SFConst.MDDEL_IFO, 0, DKW04101SFConst.MDL_04, "0");
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.MDDEL);
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.GOODS_NAME);
		
		serviceFormBean.sendMessageString(DKW04101SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, "1");

		setNextScreen(JDKScreenConst.SCREEN_ID_DKW04101, JDKScreenConst.SCREEN_NAME_DKW04101);
			
		
		
		return true;
	}

		/**
		 * 画面遷移先を設定します。
		 * @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);
	}

	
	/**
	 * 確定ボタン押下時にサービスを呼び出します。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean fix() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		X31SDataBeanAccess[] paramBean = {serviceFormBean};
		X31SDataBeanAccessArray sokodanaInfoList = serviceFormBean.getDataBeanArray(DKW04101SFConst.SOKODNA_INFO);
		X31SDataBeanAccess subbean = sokodanaInfoList.getDataBean(0);
		String sokodanacd = subbean.sendMessageString(DKW04101SFConst.SHELF_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
		subbean.sendMessageString(JDKStrConst.TUJYO_TANA, X31CWebConst.DATABEAN_SET_VALUE, sokodanacd);
		setData(this, "000", SOKODNA_INFO,SHELF_CD_03 );
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0057");

		// マッピングクラスのインスタンスを生成
		DKSV0057_DKSV0057OPDBMapper mapper = new DKSV0057_DKSV0057OPDBMapper();

		HashMap dataMap = new HashMap();
		mapper.setDKSV005701SC(paramBean, dataMap, "1");
		
		// 実行結果格納用マップ
		HashMap outputMap = new HashMap();

		// サービス呼出
		invokeService(paramMap, dataMap, outputMap);
		
		JCCWebCommon.setMessageInfo(this, EKB0380__I, new String [] {"発注登録"});
		setNextScreen(SCREEN_ID_DKW04103, SCREEN_NAME_DKW04103);
		
		return true;
	}
	
	
	
	/**
	 * 修正ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean modify() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		serviceFormBean.sendMessageString(DKW04101SFConst.REFERID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04102);

		setNextScreen(JDKScreenConst.SCREEN_ID_DKW04101, JDKScreenConst.SCREEN_NAME_DKW04101);
		
		return true;
	}
	
	
	
	/**
	 * 完了ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean complete() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		X31SDataBeanAccessArray sokoInfoArray = serviceFormBean.getDataBeanArray(DKW04101SFConst.SOKO_INFO);
		X31SDataBeanAccess sokoInfo = sokoInfoArray.getDataBean(0);
		sokoInfo.sendMessage(DKW04101SFConst.SOKO_CD_02, X31CWebConst.DATABEAN_CLEAR);
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.SOKO_CD);
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.SOKO_NM);
		this.setDataToArray(serviceFormBean, DKW04101SFConst.MAKER_INFO, 0, DKW04101SFConst.MAKER_CD_01, "0");
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.MAKER_CD);
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.MAKER_NAME);
		this.setDataToArray(serviceFormBean, DKW04101SFConst.MDDEL_IFO, 0, DKW04101SFConst.MDL_04, "0");
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.MDDEL);
		JDKWebCommon.setData(serviceFormBean, "", DKW04101SFConst.GOODS_NAME);
		X31SDataBeanAccessArray hattchuInfoList = serviceFormBean.getDataBeanArray(DKW04101SFConst.HATTCHU_IFO);
		X31SDataBeanAccess subbean = hattchuInfoList.getDataBean(0);
		subbean.sendMessage(DKW04101SFConst.YOKYU_NOKI_YMD_YEAR_05, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(DKW04101SFConst.YOKYU_NOKI_YMD_MON_05, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(DKW04101SFConst.YOKYU_NOKI_YMD_DAY_05, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessageString(DKW04101SFConst.TAKNKIKI_MODEL_CD_05, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessageString(DKW04101SFConst.HUZOKUHIN_MODEL_CD_05, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessageString(DKW04101SFConst.TAKNKIKI_SETHIN_MODEL_CD_05, X31CWebConst.DATABEAN_CLEAR);
		
		serviceFormBean.sendMessageString(DKW04101SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, "1");
			
		serviceFormBean.sendMessageString(DKW04101SFConst.REFERID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04103);

		setNextScreen(JDKScreenConst.SCREEN_ID_DKW04101, JDKScreenConst.SCREEN_NAME_DKW04101);
		
		return true;
	}
	
	
	/**
	 * 日付の妥当性チェックを行う.
	 * @param arg0 チェックする日付
	 * @param arg1 日付の桁数
	 * @return true: 正常、false: エラー
	 */
	private boolean checkDate(String arg0, int arg1) 
	{
		// 引数チェック
		if (JDKCommonUtil.isNull(arg0)) 
		{
			return false;
		}

		try 
		{
			int yyyy = Integer.parseInt(arg0.substring(0, 4));

			int mm = Integer.parseInt(arg0.substring(4, 6));

			int dd = 1;

			if (arg1 == 8) 
			{
				dd = Integer.parseInt(arg0.substring(6, 8));
			}

			// 月は 0 から始まる。（0:１月 となる。）
			Calendar cl = new GregorianCalendar(yyyy, mm - 1, dd);

			// カレンダークラスにより、日付が調整されてしまっている場合は、エラーである。
			if ((cl.get(Calendar.YEAR) != yyyy) 
					|| ((cl.get(Calendar.MONTH) + 1) != mm) 
					|| (cl.get(Calendar.DATE) != dd)) 
			{
				return false;
			}
			else 
			{
				return true;
			}
		}
		catch (Exception e) 
		{
			return false;
		}
	}

	/**
	 * インデックスを引数に入荷先プルダウンから名称を取得します。
	 * @param index インデックス
	 * @param serviceFormBean サービスフォームビーン
	 * @return 取得した名称
	 */
	private String getNameFromIndexForSoko(int index, X31SDataBeanAccess serviceFormBean)
	{
		// 倉庫コードリストを取得
		X31SDataBeanAccessArray prcGrpCdArray = serviceFormBean.getDataBeanArray(DKW04101SFConst.SOKO_INFO);
		X31SDataBeanAccess prcGrpCd = prcGrpCdArray.getDataBean(0);
		String retName = prcGrpCd.sendMessageString(DKW04101SFConst.SOKO_CD_NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);

		return retName;
	}

	/**
	 * インデックスを引数にプルダウンからコードを取得します。
	 * @param serviceFormBean サービスフォームビーン
	 * @param listNm リスト項目名
	 * @param indexNm インデックス項目名
	 * @param cdValueListNm コード値リスト項目名
	 * @return 取得したコード
	 */
	private String getCodePullDown(X31SDataBeanAccess serviceFormBean, String listNm, String indexNm, String cdValueListNm)
	{
		String retCode ="";
		// リストを取得
		X31SDataBeanAccessArray beanArray = serviceFormBean.getDataBeanArray(listNm);
		X31SDataBeanAccess bean = beanArray.getDataBean(0);
		String indexStr = bean.sendMessageString(indexNm, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JDKCommonUtil.isNull(indexStr))
		{
			int index = Integer.parseInt(indexStr, 10);
			retCode = bean.sendMessageString(cdValueListNm, X31CWebConst.DATABEAN_GET_VALUE, index);
		}

		return retCode;
	}

	/**
	 * インデックスを引数にメーカープルダウンから名称を取得します。
	 * @param serviceFormBean サービスフォームビーン
	 * @param listNm リスト項目名
	 * @param indexNm インデックス項目名
	 * @param cdNameListNm コード名リスト項目名
	 * @return 取得した名称
	 */
	private String getNamePullDown(X31SDataBeanAccess serviceFormBean, String listNm, String indexNm, String cdNameListNm)
	{
		String retName = "";
		// リストを取得
		X31SDataBeanAccessArray beanArray = serviceFormBean.getDataBeanArray(listNm);
		X31SDataBeanAccess bean = beanArray.getDataBean(0);
		String indexStr = bean.sendMessageString(indexNm, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JDKCommonUtil.isNull(indexStr))
		{
			int index = Integer.parseInt(indexStr, 10);
			retName = bean.sendMessageString(cdNameListNm, X31CWebConst.DATABEAN_GET_VALUE, index);
		}

		return retName;
	}

	/**
	 * リストにデータをセットします。
	 * @param list リストオブジェクト
	 * @param index インデックス
	 * @param key 項目ID
	 * @param value 値
	 */
	private void setDataToArray(X31SDataBeanAccess serviceFormBean, String listNm, int index, String key, String value)
	{
		// リストを取得
		X31SDataBeanAccessArray list = serviceFormBean.getDataBeanArray(listNm);
		int cnt = list.getCount();
		X31SDataBeanAccess subbean = null;
		if (cnt > index)
		{
			subbean = list.getDataBean(index);
		}
		else
		{
			subbean = list.addDataBean();
		}
		subbean.sendMessageString(key, X31CWebConst.DATABEAN_SET_VALUE, value);
	}

}

