/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：DKW01701SFLogic
 *   ソースファイル名：DKW01701SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2011年07月22日
 *＜機能概要＞
 *   修理品受取のビューロジックです。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v1.00.00    2011/07/22   FJ）        新規作成
 *   v3.00.00    2011/05/26   FJ）        変更
 *
 **********************************************************************/
package eo.web.webview.DKW01701SF;

import static eo.web.webview.common.JDKWebCommon.appendPrefix;
import static eo.web.webview.common.JDKWebCommon.getBean;
import static eo.web.webview.common.JDKWebCommon.getData;
import static eo.web.webview.common.JDKWebCommon.setData;
import static eo.web.webview.common.JDKWebCommon.storePullDown;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JDKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JDKCommonUtil;
import eo.common.util.JPCEditString;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
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.common.JZMWebConst;
import eo.web.webview.mapping.DKSV0011_DKSV0011OPDBMapper;
import eo.web.webview.mapping.DKSV0012_DKSV0012OPDBMapper;

/**
 * 修理品受取を処理するロジッククラスです。
 * <BR>
 * @author 富士通
 */
public class DKW01701SFLogic extends JCCWebBusinessLogic
{
	/** シリアルバージョン */
	private static final long serialVersionUID = 1L;
	
	/** メッセージ */
	private static final String MSG_SHURI_UKETORI = "修理品受取";

	/**
	 * サービスフォームBeanの初期化処理を行います。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean init() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		String screenId = JCCWebCommon.getScreenId(this);
		X31SDataBeanAccess[] paramBean = {serviceFormBean};
		
		// メニューからの遷移
		if (screenId != null)
		{
			HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
			String buturyHozenNo = (String)map.get(JDKStrConst.BUTSURYUHOZEN_NO);
			paramBean[0].sendMessageString(DKW01701SFConst.BTRYHOZN_NO, X31CWebConst.DATABEAN_SET_VALUE, buturyHozenNo);
			paramBean[0].sendMessageString(DKW01701SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
			serviceFormBean.sendMessageString(DKW01701SFConst.CALL_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		}
		else
		{
			return true;
		}

		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0011");

		// マッピングクラスのインスタンスを生成
		DKSV0011_DKSV0011OPDBMapper mapper = new DKSV0011_DKSV0011OPDBMapper();
		HashMap dataMap = new HashMap();
		
		mapper.setDKSV001101SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDKSV001102SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDKSV001103SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDKSV001104_7SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDKSV001108SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);
		mapper.setDKSV001109SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// 検索結果格納用マップ
		HashMap<String, String> outputMap = new HashMap<String, String>();

		// 検索処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);

		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		JCCMessageCache.setMessageCache();

		mapper.getDKSV001101SC(paramBean, outputMap);
		mapper.getDKSV001102SC(paramBean, outputMap);
		mapper.getDKSV001103SC(paramBean, outputMap);
		mapper.getDKSV001104SC(paramBean, outputMap);
		mapper.getDKSV001105SC(paramBean, outputMap);
		mapper.getDKSV001106SC(paramBean, outputMap);
		mapper.getDKSV001107SC(paramBean, outputMap);
		mapper.getDKSV001108SC(paramBean, outputMap);
		mapper.getDKSV001109SC(paramBean, outputMap);
		
		// 遷移可否判断処理
		// 修理状況情報.物流保全ステータスの取得
		String btryhoznStat = getData(this, DKW01701SFConst.SHURI_JOKYO_INFO, DKW01701SFConst.SHURI_JOKYO_CD_01);

		// 物流保全ステータス（修理状況コード）が
		// "001"（受付済み）
		// "002"（メーカー修理依頼済み）
		// "003"（メーカー修理完了済み）
		// "004"（完了済み）でない場合）
		if (!JDKStrConst.BTRYHOZN_STAT_UKETSUKE.equals(btryhoznStat) && !JDKStrConst.BTRYHOZN_STAT_SHURI_IRAI.equals(btryhoznStat) 
				&& !JDKStrConst.BTRYHOZN_STAT_SHURI_FIN.equals(btryhoznStat) && !JDKStrConst.BTRYHOZN_STAT_FIN.equals(btryhoznStat))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0810_NW, new String [] {"データ", "修理品受取は"});

			// 一覧画面に強制転送
			setNextScreen(JCCWebCommon.getScreenId(this), JZMWebConst.BLANK);
			setTransferPageId(JCCWebCommon.getScreenId(this) + JZMWebConst.PJP);

			return true;
		}
		
		// 交換の場合は修理受け取りできない
		if (JDKStrConst.KOKAN.equals(getData(this, DKW01701SFConst.SHURI_JOKYO_INFO, DKW01701SFConst.SYOTI_DEV_CD_01)))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0810_NW, new String [] {"データ", "修理品受取は"});

			// 一覧画面に強制転送
			setNextScreen(JCCWebCommon.getScreenId(this), JZMWebConst.BLANK);
			setTransferPageId(JCCWebCommon.getScreenId(this) + JZMWebConst.PJP);

			return true;
		}
		
		// 表示編集を行う
		setDispPram();
		
		pushEmptyToTopOfPulldown(DKW01701SFConst.TTM_INFO, DKW01701SFConst.TTM_CD_LIST_07, DKW01701SFConst.TTM_NM_LIST_07);
		pushEmptyToTopOfPulldown(DKW01701SFConst.SHURI_KH_INFO, DKW01701SFConst.SHURI_KH_CD_LIST_08, DKW01701SFConst.SHURI_KH_NM_LIST_08);
		pushEmptyToTopOfPulldown(DKW01701SFConst.DAITAI_KIKI_INFO, DKW01701SFConst.DAITAI_KIKI_CD_LIST_09, DKW01701SFConst.DAITAI_KIKI_NM_LIST_09);
		pushEmptyToTopOfPulldown(DKW01701SFConst.MAKER_INFO, DKW01701SFConst.MAKER_CD_LIST_10, DKW01701SFConst.MAKER_NM_LIST_10);
		pushEmptyToTopOfPulldown(DKW01701SFConst.SHURI_PAY_INFO, DKW01701SFConst.SHURI_PAY_CD_LIST_11, DKW01701SFConst.SHURI_PAY_NM_LIST_11);
		pushEmptyToTopOfPulldown(DKW01701SFConst.PAY_ISHI_INFO, DKW01701SFConst.PAY_ISHI_CD_LIST_12, DKW01701SFConst.PAY_ISHI_NM_LIST_12);
		slideArrayOnDatabean(super.getServiceFormBean().getDataBeanArray(DKW01701SFConst.TTM_INFO).getDataBean(0), DKW01701SFConst.TTM_DIV_LIST_07); 

		
		// 倉庫コードのデータ有無
		String sokoCd = getData(this, DKW01701SFConst.SHURI_UKETORI_INFO, DKW01701SFConst.SOKO_CD_06);
		if (!"".equals(sokoCd))
		{
			long index = getCdIndex(DKW01701SFConst.TTM_INFO, DKW01701SFConst.TTM_CD_LIST_07, sokoCd);
			X31SDataBeanAccess sokoInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.TTM_INFO).getDataBean(0);
			sokoInfoList.sendMessageString(DKW01701SFConst.TTM_07, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
		}
		
		// 修理可否コードのデータ有無
		String shuriKahiCd = getData(this, DKW01701SFConst.SHURI_UKETORI_INFO, DKW01701SFConst.SHURI_KH_CD_06);
		if (!"".equals(shuriKahiCd))
		{
			long index = getCdIndex(DKW01701SFConst.SHURI_KH_INFO, DKW01701SFConst.SHURI_KH_CD_LIST_08, shuriKahiCd);
			X31SDataBeanAccess shuriKhInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_KH_INFO).getDataBean(0);
			shuriKhInfoList.sendMessageString(DKW01701SFConst.SHURI_KH_08, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
		}
		
		// 代替機コードのデータ有無
		String daitaikiCd = getData(this, DKW01701SFConst.SHURI_UKETORI_INFO, DKW01701SFConst.DAITAI_KIKI_CD_06);
		if (!"".equals(daitaikiCd))
		{
			long index = getCdIndex(DKW01701SFConst.DAITAI_KIKI_INFO, DKW01701SFConst.DAITAI_KIKI_CD_LIST_09, daitaikiCd);
			X31SDataBeanAccess daitaiKikiInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.DAITAI_KIKI_INFO).getDataBean(0);
			daitaiKikiInfoList.sendMessageString(DKW01701SFConst.DAITAI_KIKI_09, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
		}
		
		// メーカーコードのデータ有無
		String makerCd = getData(this, DKW01701SFConst.SHURI_UKETORI_INFO, DKW01701SFConst.MAKER_CD_06);
		if (!"".equals(makerCd))
		{
			long index = getCdIndex(DKW01701SFConst.MAKER_INFO, DKW01701SFConst.MAKER_CD_LIST_10, makerCd);
			X31SDataBeanAccess makerInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.MAKER_INFO).getDataBean(0);
			makerInfoList.sendMessageString(DKW01701SFConst.MAKER_10, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
		}
		
		// 修理支払いコード作成
		if ("2".equals(shuriKahiCd))
		{
			// 修理不可能の場合は、表示データなし。
			X31SDataBeanAccess shuriShiharaiInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_PAY_INFO).getDataBean(0);
			shuriShiharaiInfoList.sendMessageString(DKW01701SFConst.SHURI_PAY_11, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(0));
		}
		else
		{
	
			// 修理支払コードのデータ有無
			String shuriShiharaiCd = getData(this, DKW01701SFConst.SHURI_UKETORI_INFO, DKW01701SFConst.SHURI_PAY_CD_06);
			if (!"".equals(shuriShiharaiCd))
			{
				long index = getCdIndex(DKW01701SFConst.SHURI_PAY_INFO, DKW01701SFConst.SHURI_PAY_CD_LIST_11, shuriShiharaiCd);
				X31SDataBeanAccess shuriShiharaiInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_PAY_INFO).getDataBean(0);
				shuriShiharaiInfoList.sendMessageString(DKW01701SFConst.SHURI_PAY_11, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
			}
			else
			{
				// 引渡商品コードを設定する
				String hoshoKbn = getData(this, DKW01701SFConst.SHURI_JOKYO_INFO, DKW01701SFConst.HOSHO_DIV_CD_01);
				if (!"".equals(hoshoKbn))
				{
					// 引渡商品コードが"1"（有償交換）の場合
					if ("1".equals(hoshoKbn))
					{
						// 修理支払インデックスに"2"（有償）を設定する
						X31SDataBeanAccess shuriPayInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_PAY_INFO).getDataBean(0);
						shuriPayInfoList.sendMessageString(DKW01701SFConst.SHURI_PAY_11, X31CWebConst.DATABEAN_SET_VALUE, "2");
					}
					// 引渡商品コードが"2"（無償交換）の場合
					if ("2".equals(hoshoKbn))
					{
						// 修理支払インデックスに"1"（無償）を設定する
						X31SDataBeanAccess shuriPayInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_PAY_INFO).getDataBean(0);
						shuriPayInfoList.sendMessageString(DKW01701SFConst.SHURI_PAY_11, X31CWebConst.DATABEAN_SET_VALUE, "1");
					}
				}
			}
		}

		// 意思コード作成
		if ("2".equals(shuriKahiCd))
		{
			// 修理不可能の場合は、表示データなし。
			X31SDataBeanAccess daitaiKikiInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.PAY_ISHI_INFO).getDataBean(0);
			daitaiKikiInfoList.sendMessageString(DKW01701SFConst.PAY_ISHI_12, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(0));
		}
		else
		{
			// 意思コードのデータ有無
			String ishiCd = getData(this, DKW01701SFConst.SHURI_UKETORI_INFO, DKW01701SFConst.CUST_SHURI_DKN_PAY_ISHI_CD_06);
			if (!"".equals(ishiCd))
			{
				long index = getCdIndex(DKW01701SFConst.PAY_ISHI_INFO, DKW01701SFConst.PAY_ISHI_CD_LIST_12, ishiCd);
				X31SDataBeanAccess daitaiKikiInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.PAY_ISHI_INFO).getDataBean(0);
				daitaiKikiInfoList.sendMessageString(DKW01701SFConst.PAY_ISHI_12, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
			}
		}

		// 既存データ存在有無
		String existsData = getData(this, DKW01701SFConst.BTRYHOZN_UK_YMD, DKW01701SFConst.BTRYHOZN_UK_YMD_03);
		if ("".equals(existsData))
		{
			// 既存データ未存在
			paramBean[0].sendMessageString(DKW01701SFConst.EXISTS_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
		else
		{
			// 既存データ存在
			paramBean[0].sendMessageString(DKW01701SFConst.EXISTS_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		}
		
		String unyouYmd = getData(this, DKW01701SFConst.UNYO_YMD);
		// 受取年月日 設定
		String shuritaikikiUketoriYmd = getData(this, DKW01701SFConst.BTRYHOZN_UK_YMD, DKW01701SFConst.BTRYHOZN_UK_YMD_03);
		if (!"".equals(shuritaikikiUketoriYmd))
		{
			X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.BTRYHOZN_UK_YMD).getDataBean(0);
			ymdBean.sendMessageString(DKW01701SFConst.BTRYHOZN_UK_YEAR_03,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(shuritaikikiUketoriYmd));
			ymdBean.sendMessageString(DKW01701SFConst.BTRYHOZN_UK_MON_03,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(shuritaikikiUketoriYmd));
			ymdBean.sendMessageString(DKW01701SFConst.BTRYHOZN_UK_DATE_03,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(shuritaikikiUketoriYmd));
		}
		else
		{
			X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.BTRYHOZN_UK_YMD).getDataBean(0);
			ymdBean.sendMessageString(DKW01701SFConst.BTRYHOZN_UK_YEAR_03,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(unyouYmd));
			ymdBean.sendMessageString(DKW01701SFConst.BTRYHOZN_UK_MON_03,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(unyouYmd));
			ymdBean.sendMessageString(DKW01701SFConst.BTRYHOZN_UK_DATE_03,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(unyouYmd));
		}
		
		if (!"2".equals(shuriKahiCd))
		{
			// メーカー修理依頼年月日 設定
			String makerShuriReqYmd = getData(this, DKW01701SFConst.MAKER_SHURI_REQ_YMD, DKW01701SFConst.MAKER_SHURI_REQ_YMD_04);
			if (!"".equals(makerShuriReqYmd))
			{
				X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.MAKER_SHURI_REQ_YMD).getDataBean(0);
				ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_YEAR_04,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(makerShuriReqYmd));
				ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_MON_04,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(makerShuriReqYmd));
				ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_DATE_04,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(makerShuriReqYmd));
			}
			else
			{
				X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.MAKER_SHURI_REQ_YMD).getDataBean(0);
				ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_YEAR_04,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(unyouYmd));
				ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_MON_04,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(unyouYmd));
				ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_DATE_04,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(unyouYmd));
			}
		}
		else
		{
			// 修理不可能の場合は、表示データなし。
			X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.MAKER_SHURI_REQ_YMD).getDataBean(0);
			ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_YEAR_04,
					X31CWebConst.DATABEAN_SET_VALUE, "");
			ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_MON_04,
					X31CWebConst.DATABEAN_SET_VALUE, "");
			ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_DATE_04,
					X31CWebConst.DATABEAN_SET_VALUE, "");
		}
			
		if (!"2".equals(shuriKahiCd))
		{
			// 確認日年 設定
			String kakuninYmd = getData(this, DKW01701SFConst.KAKUNIN_YMD, DKW01701SFConst.KAKUNIN_YMD_05);
			if (!"".equals(kakuninYmd))
			{
				X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.KAKUNIN_YMD).getDataBean(0);
				ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_YEAR_05,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(kakuninYmd));
				ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_MON_05,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(kakuninYmd));
				ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_DATE_05,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(kakuninYmd));
			}
			else
			{
				X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.KAKUNIN_YMD).getDataBean(0);
				ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_YEAR_05,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(unyouYmd));
				ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_MON_05,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(unyouYmd));
				ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_DATE_05,
						X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(unyouYmd));
			}
		}
		else
		{
			// 修理不可能の場合は、表示データなし。
			X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.KAKUNIN_YMD).getDataBean(0);
			ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_YEAR_05,
					X31CWebConst.DATABEAN_SET_VALUE, "");
			ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_MON_05,
					X31CWebConst.DATABEAN_SET_VALUE, "");
			ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_DATE_05,
					X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// メーカー依頼物流保全備考の入力可否設定
		setMakerReqBtryhoznBikoInKhFlg();
		
		
		// 画面遷移処理
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW01701);

		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW01701);

		return true;
	}

	/**
	 * 修理品受取画面の登録確認ボタンを処理します。
	 * @author 富士通
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean confirmCreate() throws Exception
	{
		
		// 建物
		storePullDown(this, DKW01701SFConst.TTM_INFO,
							DKW01701SFConst.TTM_07,
							DKW01701SFConst.TTM_CD_07,
							DKW01701SFConst.TTM_NM_07,
							DKW01701SFConst.TTM_CD_LIST_07,
							DKW01701SFConst.TTM_NM_LIST_07);

		// （建物区分）
		storePullDown(this, DKW01701SFConst.TTM_INFO,
							DKW01701SFConst.TTM_07,
							DKW01701SFConst.TTM_DIV_07,
							DKW01701SFConst.TTM_DIV_LIST_07);

		// 修理可否
		storePullDown(this, DKW01701SFConst.SHURI_KH_INFO,
							DKW01701SFConst.SHURI_KH_08,
							DKW01701SFConst.SHURI_KH_CD_08,
							DKW01701SFConst.SHURI_KH_NM_08,
							DKW01701SFConst.SHURI_KH_CD_LIST_08,
							DKW01701SFConst.SHURI_KH_NM_LIST_08);
		
		// 代替機
		storePullDown(this, DKW01701SFConst.DAITAI_KIKI_INFO,
							DKW01701SFConst.DAITAI_KIKI_09,
							DKW01701SFConst.DAITAI_KIKI_CD_09,
							DKW01701SFConst.DAITAI_KIKI_NM_09,
							DKW01701SFConst.DAITAI_KIKI_CD_LIST_09,
							DKW01701SFConst.DAITAI_KIKI_NM_LIST_09);
		
		// 受取年月日
		String shuritaikikiUketoriYmd = getData(this, DKW01701SFConst.BTRYHOZN_UK_YMD, DKW01701SFConst.BTRYHOZN_UK_YEAR_03)
		+ getData(this, DKW01701SFConst.BTRYHOZN_UK_YMD, DKW01701SFConst.BTRYHOZN_UK_MON_03)
		+ getData(this, DKW01701SFConst.BTRYHOZN_UK_YMD, DKW01701SFConst.BTRYHOZN_UK_DATE_03);
		setData(this, shuritaikikiUketoriYmd, DKW01701SFConst.BTRYHOZN_UK_YMD, DKW01701SFConst.BTRYHOZN_UK_YMD_03);
		
		// 受取年月日単項目チェック
		if(!checkDate(shuritaikikiUketoriYmd, 8))
		{
			JCCWebCommon.setMessageInfo(this, "EKB1050-TW", new String[] {"受取日"});
			return false;
		}
		
		String shuriKh = getData(this, DKW01701SFConst.SHURI_KH_INFO, DKW01701SFConst.SHURI_KH_CD_08);
		if ("1".equals(shuriKh))
		{
			// メーカー情報
			storePullDown(this, DKW01701SFConst.MAKER_INFO,
								DKW01701SFConst.MAKER_10,
								DKW01701SFConst.MAKER_CD_10,
								DKW01701SFConst.MAKER_NM_10,
								DKW01701SFConst.MAKER_CD_LIST_10,
								DKW01701SFConst.MAKER_NM_LIST_10);
			
			// 支払区分情報
			storePullDown(this, DKW01701SFConst.SHURI_PAY_INFO,
								DKW01701SFConst.SHURI_PAY_11,
								DKW01701SFConst.SHURI_PAY_CD_11,
								DKW01701SFConst.SHURI_PAY_NM_11,
								DKW01701SFConst.SHURI_PAY_CD_LIST_11,
								DKW01701SFConst.SHURI_PAY_NM_LIST_11);
			
			// 意思情報
			storePullDown(this, DKW01701SFConst.PAY_ISHI_INFO,
								DKW01701SFConst.PAY_ISHI_12,
								DKW01701SFConst.PAY_ISHI_CD_12,
								DKW01701SFConst.PAY_ISHI_NM_12,
								DKW01701SFConst.PAY_ISHI_CD_LIST_12,
								DKW01701SFConst.PAY_ISHI_NM_LIST_12);
			
			// メーカー修理依頼年月日
			String makerShuriReqYmd = getData(this, DKW01701SFConst.MAKER_SHURI_REQ_YMD, DKW01701SFConst.MAKER_SHURI_REQ_YEAR_04)
			+ getData(this, DKW01701SFConst.MAKER_SHURI_REQ_YMD, DKW01701SFConst.MAKER_SHURI_REQ_MON_04)
			+ getData(this, DKW01701SFConst.MAKER_SHURI_REQ_YMD, DKW01701SFConst.MAKER_SHURI_REQ_DATE_04);
			setData(this, makerShuriReqYmd, DKW01701SFConst.MAKER_SHURI_REQ_YMD, DKW01701SFConst.MAKER_SHURI_REQ_YMD_04);
			
			// メーカー修理依頼年月日単項目チェック
			if(!checkDate(makerShuriReqYmd, 8))
			{
				JCCWebCommon.setMessageInfo(this, "EKB1050-TW", new String[] {"修理依頼日"});
				return false;
			}
			
			// 確認日
			String kakuninYmd = getData(this, DKW01701SFConst.KAKUNIN_YMD, DKW01701SFConst.KAKUNIN_YEAR_05)
			+ getData(this, DKW01701SFConst.KAKUNIN_YMD, DKW01701SFConst.KAKUNIN_MON_05)
			+ getData(this, DKW01701SFConst.KAKUNIN_YMD, DKW01701SFConst.KAKUNIN_DATE_05);
			setData(this, kakuninYmd, DKW01701SFConst.KAKUNIN_YMD, DKW01701SFConst.KAKUNIN_YMD_05);
			
			// 確認日単項目チェック
			if (!"".equals(kakuninYmd))
			{
				if(!checkDate(kakuninYmd, 8))
				{
					JCCWebCommon.setMessageInfo(this, "EKB1050-TW", new String[] {"確認日"});
					return false;
				}
			}
		}
		else
		{
			// メーカー選択初期化
			long index = getCdIndex(DKW01701SFConst.MAKER_INFO, DKW01701SFConst.MAKER_CD_LIST_10, "");
			X31SDataBeanAccess makerInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.MAKER_INFO).getDataBean(0);
			makerInfoList.sendMessageString(DKW01701SFConst.MAKER_10, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
			makerInfoList.sendMessageString(DKW01701SFConst.MAKER_CD_10, X31CWebConst.DATABEAN_SET_VALUE, "");
			makerInfoList.sendMessageString(DKW01701SFConst.MAKER_NM_10, X31CWebConst.DATABEAN_SET_VALUE, "");
			
			// 修理支払選択初期化
			index = getCdIndex(DKW01701SFConst.SHURI_PAY_INFO, DKW01701SFConst.SHURI_PAY_CD_LIST_11, "");
			X31SDataBeanAccess shuriShiharaiInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_PAY_INFO).getDataBean(0);
			shuriShiharaiInfoList.sendMessageString(DKW01701SFConst.SHURI_PAY_11, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
			shuriShiharaiInfoList.sendMessageString(DKW01701SFConst.SHURI_PAY_CD_11, X31CWebConst.DATABEAN_SET_VALUE, "");
			shuriShiharaiInfoList.sendMessageString(DKW01701SFConst.SHURI_PAY_NM_11, X31CWebConst.DATABEAN_SET_VALUE, "");
			
			// 意思選択初期化
			index = getCdIndex(DKW01701SFConst.PAY_ISHI_INFO, DKW01701SFConst.PAY_ISHI_CD_LIST_12, "");
			X31SDataBeanAccess ishiInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.PAY_ISHI_INFO).getDataBean(0);
			ishiInfoList.sendMessageString(DKW01701SFConst.PAY_ISHI_12, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
			ishiInfoList.sendMessageString(DKW01701SFConst.PAY_ISHI_CD_12, X31CWebConst.DATABEAN_SET_VALUE, "");
			ishiInfoList.sendMessageString(DKW01701SFConst.PAY_ISHI_NM_12, X31CWebConst.DATABEAN_SET_VALUE, "");
			
			// メーカー修理依頼年月日初期化
			setData(this, "", DKW01701SFConst.MAKER_SHURI_REQ_YMD, DKW01701SFConst.MAKER_SHURI_REQ_YMD_04);
			setData(this, "", DKW01701SFConst.MAKER_SHURI_REQ_YMD, DKW01701SFConst.MAKER_SHURI_REQ_YEAR_04);
			setData(this, "", DKW01701SFConst.MAKER_SHURI_REQ_YMD, DKW01701SFConst.MAKER_SHURI_REQ_MON_04);
			setData(this, "", DKW01701SFConst.MAKER_SHURI_REQ_YMD, DKW01701SFConst.MAKER_SHURI_REQ_DATE_04);
			
			// 確認日初期化
			setData(this, "", DKW01701SFConst.KAKUNIN_YMD, DKW01701SFConst.KAKUNIN_YMD_05);
			setData(this, "", DKW01701SFConst.KAKUNIN_YMD, DKW01701SFConst.KAKUNIN_YEAR_05);
			setData(this, "", DKW01701SFConst.KAKUNIN_YMD, DKW01701SFConst.KAKUNIN_MON_05);
			setData(this, "", DKW01701SFConst.KAKUNIN_YMD, DKW01701SFConst.KAKUNIN_DATE_05);
			
			// 修理品受取 メーカー依頼物流保全備考 初期化
			setData(this, "", DKW01701SFConst.SHURI_UKETORI_INFO, DKW01701SFConst.MAKER_REQ_BTRYHOZN_BIKO_06);
		}
		
		// サービスインターフェイス機能呼び出し
		String  func_code = JPCModelConstant.FUNC_CD_2;
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {serviceFormBean};
		
		// 受取物流保全対応コード初期値設定
		paramBean[0].sendMessageString(DKW01701SFConst.UKETORI_BTRYHOZN_TAIO_CD, X31CWebConst.DATABEAN_SET_VALUE, "05");
		
		// メーカー依頼物流保全対応コード初期値設定
		paramBean[0].sendMessageString(DKW01701SFConst.MAKER_REQ_BTRYHOZN_TAIO_CD, X31CWebConst.DATABEAN_SET_VALUE, "06");
		
		// 返品受入コード初期値設定
		paramBean[0].sendMessageString(DKW01701SFConst.HMPIN_UKEIRE_CD, X31CWebConst.DATABEAN_SET_VALUE, "1");
		
		// サービスの呼び出しを行う
		if (!putServiceDKSV0012(paramBean, func_code))
		{
			return false;
		}
		
		// 倉庫コードのデータ有無
		String sokoCd = getData(this, DKW01701SFConst.TTM_INFO, DKW01701SFConst.TTM_CD_07);
		if (!"".equals(sokoCd))
		{
			long index = getCdIndex(DKW01701SFConst.TTM_INFO, DKW01701SFConst.TTM_CD_LIST_07, sokoCd);
			X31SDataBeanAccess sokoInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.TTM_INFO).getDataBean(0);
			sokoInfoList.sendMessageString(DKW01701SFConst.TTM_07, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
		}
		
		// 修理可否コードのデータ有無
		String shuriKahiCd = getData(this, DKW01701SFConst.SHURI_KH_INFO, DKW01701SFConst.SHURI_KH_CD_08);
		if (!"".equals(shuriKahiCd))
		{
			long index = getCdIndex(DKW01701SFConst.SHURI_KH_INFO, DKW01701SFConst.SHURI_KH_CD_LIST_08, shuriKahiCd);
			X31SDataBeanAccess shuriKhInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_KH_INFO).getDataBean(0);
			shuriKhInfoList.sendMessageString(DKW01701SFConst.SHURI_KH_08, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
		}
		
		// 代替機コードのデータ有無
		String daitaikiCd = getData(this, DKW01701SFConst.DAITAI_KIKI_INFO, DKW01701SFConst.DAITAI_KIKI_CD_09);
		if (!"".equals(daitaikiCd))
		{
			long index = getCdIndex(DKW01701SFConst.DAITAI_KIKI_INFO, DKW01701SFConst.DAITAI_KIKI_CD_LIST_09, daitaikiCd);
			X31SDataBeanAccess daitaiKikiInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.DAITAI_KIKI_INFO).getDataBean(0);
			daitaiKikiInfoList.sendMessageString(DKW01701SFConst.DAITAI_KIKI_09, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
		}
		
		// メーカーコードのデータ有無
		String makerCd = getData(this, DKW01701SFConst.MAKER_INFO, DKW01701SFConst.MAKER_CD_10);
		if (!"".equals(makerCd))
		{
			long index = getCdIndex(DKW01701SFConst.MAKER_INFO, DKW01701SFConst.MAKER_CD_LIST_10, makerCd);
			X31SDataBeanAccess makerInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.MAKER_INFO).getDataBean(0);
			makerInfoList.sendMessageString(DKW01701SFConst.MAKER_10, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
		}
		
		// 修理支払コードのデータ有無
		String shuriShiharaiCd = getData(this, DKW01701SFConst.SHURI_PAY_INFO, DKW01701SFConst.SHURI_PAY_CD_11);
		if (!"".equals(shuriShiharaiCd))
		{
			long index = getCdIndex(DKW01701SFConst.SHURI_PAY_INFO, DKW01701SFConst.SHURI_PAY_CD_LIST_11, shuriShiharaiCd);
			X31SDataBeanAccess shuriShiharaiInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_PAY_INFO).getDataBean(0);
			shuriShiharaiInfoList.sendMessageString(DKW01701SFConst.SHURI_PAY_11, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
		}
		
		// 意思コードのデータ有無
		String ishiCd = getData(this, DKW01701SFConst.PAY_ISHI_INFO, DKW01701SFConst.PAY_ISHI_CD_12);
		if (!"".equals(ishiCd))
		{
			long index = getCdIndex(DKW01701SFConst.PAY_ISHI_INFO, DKW01701SFConst.PAY_ISHI_CD_LIST_12, ishiCd);
			X31SDataBeanAccess ishiInfoList = getServiceFormBean().getDataBeanArray(DKW01701SFConst.PAY_ISHI_INFO).getDataBean(0);
			ishiInfoList.sendMessageString(DKW01701SFConst.PAY_ISHI_12, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
		}
		
		// 受取年月日 設定
		String shuritaikikiUketoriYmd1 = getData(this, DKW01701SFConst.BTRYHOZN_UK_YMD, DKW01701SFConst.BTRYHOZN_UK_YMD_03);
		if (!"".equals(shuritaikikiUketoriYmd1))
		{
			X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.BTRYHOZN_UK_YMD).getDataBean(0);
			ymdBean.sendMessageString(DKW01701SFConst.BTRYHOZN_UK_YEAR_03,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(shuritaikikiUketoriYmd1));
			ymdBean.sendMessageString(DKW01701SFConst.BTRYHOZN_UK_MON_03,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(shuritaikikiUketoriYmd1));
			ymdBean.sendMessageString(DKW01701SFConst.BTRYHOZN_UK_DATE_03,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(shuritaikikiUketoriYmd1));
		}
		
		// メーカー修理依頼年月日 設定
		String makerShuriReqYmd = getData(this, DKW01701SFConst.MAKER_SHURI_REQ_YMD, DKW01701SFConst.MAKER_SHURI_REQ_YMD_04);
		if (!"".equals(makerShuriReqYmd))
		{
			X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.MAKER_SHURI_REQ_YMD).getDataBean(0);
			ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_YEAR_04,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(makerShuriReqYmd));
			ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_MON_04,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(makerShuriReqYmd));
			ymdBean.sendMessageString(DKW01701SFConst.MAKER_SHURI_REQ_DATE_04,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(makerShuriReqYmd));
		}
		
		// 確認日年 設定
		String kakuninYmd = getData(this, DKW01701SFConst.KAKUNIN_YMD, DKW01701SFConst.KAKUNIN_YMD_05);
		if (!"".equals(kakuninYmd))
		{
			X31SDataBeanAccess ymdBean = getServiceFormBean().getDataBeanArray(DKW01701SFConst.KAKUNIN_YMD).getDataBean(0);
			ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_YEAR_05,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(kakuninYmd));
			ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_MON_05,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(kakuninYmd));
			ymdBean.sendMessageString(DKW01701SFConst.KAKUNIN_DATE_05,
					X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(kakuninYmd));
		}
		
		// 修理不可の場合は代替機を出させない
		if (JDKStrConst.DAITAIKI_HITUYO.equals(daitaikiCd) && JDKStrConst.SHURI_FUKA.equals(shuriKahiCd))
		{
			JCCWebCommon.setMessageInfo(this, "EKB0660-NW", new String[] {"修理不可能", "代替機必要"});
			return false;
		}
		
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, new String [] { MSG_SHURI_UKETORI});
		// 遷移先画面IDの設定
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW01702, JDKScreenConst.SCREEN_NAME_DKW01702);
		
		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, "");
	}
	
	/**
	 * サービス（DKSV0012）の呼び出しを行います。
	 * <br>
	 * @param paramBean パラメータとなるBean情報
	 * @param func_code 機能コード
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	private boolean putServiceDKSV0012(X31SDataBeanAccess[] paramBean, String func_code) throws Exception
	{
		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0012");
		
		// マッピングクラスのインスタンスを生成
		DKSV0012_DKSV0012OPDBMapper mapper = new DKSV0012_DKSV0012OPDBMapper();
		HashMap<String, String> dataMap = new HashMap<String, String>();
		
		mapper.setDKSV001201SC(paramBean, dataMap, func_code);
		mapper.setDKSV001202SC(paramBean, dataMap, func_code);
		mapper.setDKSV001203SC(paramBean, dataMap, func_code);
		mapper.setDKSV001204SC(paramBean, dataMap, func_code);
		mapper.setDKSV001205SC(paramBean, dataMap, func_code);
		mapper.setDKSV001206SC(paramBean, dataMap, func_code);
		mapper.setDKSV001207SC(paramBean, dataMap, func_code);
		mapper.setDKSV001208SC(paramBean, dataMap, func_code);
		mapper.setDKSV001209SC(paramBean, dataMap, func_code);
		mapper.setDKSV001210SC(paramBean, dataMap, func_code);
		mapper.setDKSV001210CC(paramBean, dataMap, func_code);
		
		// 検索結果格納用マップ
		HashMap<String, String> outputMap = new HashMap<String, String>();
		
		// 検索処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}
		
		return true;
	}
	
	/**
	 * 修理品受取確認画面の戻るボタンを処理します。
	 * @author 富士通
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean action_Bback() throws Exception
	{
		// 遷移先画面IDの設定
		setNextScreen(JCCWebCommon.getScreenId(this), JZMWebConst.BLANK);
		return true;
	}
	
	/**
	 * 画面遷移先を設定します。
	 * <br>
	 * @param nextScreenId 遷移先画面ID
	 * @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);
	}
	
	/**
	 * 確定ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean fix() throws Exception
	{
		
		// サービスインターフェイス機能呼び出し
		String  func_code = JPCModelConstant.FUNC_CD_1;
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {serviceFormBean};
		
		// サービスの呼び出しを行う
		if (!putServiceDKSV0012(paramBean, func_code))
		{
			return false;
		}
		
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, new String [] { MSG_SHURI_UKETORI});
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW01703, JDKScreenConst.SCREEN_NAME_DKW01703);
		return true;
	}
	
	/**
	 * 修正ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean modify() throws Exception
	{
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW01701, JDKScreenConst.SCREEN_NAME_DKW01701);
		return true;
	}
	
	/**
	 * 指定されたドロップダウンリストのコードにてインデックス値を取得します。
	 * @param info ドロップダウンリスト情報
	 * @param cdList ドロップダウンリスト情報内のコードリスト
	 * @param cd コード
	 * @return コードに対するインデックス値
	 */
	private long getCdIndex(String info, String cdList, String cd)
	{
		X31SDataBeanAccess list = getBean(this, info);
		int count = (Integer)list.sendMessage(cdList, X31CWebConst.DATABEAN_GET_COUNT);
		for (int i = 0 ; i < count ; i++)
		{
			if (list.sendMessageString(cdList, X31CWebConst.DATABEAN_GET_VALUE, i).equals(cd))
			{
				return i;
			}
		}
		return -1;
	}
	
	/**
	 * 完了ボタン押下処理
	 * @return 成否
	 * @throws Exception 例外発生時
	 */
	public boolean complete() throws Exception
	{
		// 遷移先画面IDの設定
		setNextScreen(JCCWebCommon.getScreenId(this, JDKScreenConst.SCREEN_ID_DKW01701), JZMWebConst.BLANK);
		return true;
	}
	
	/**
	 * 入力された日付のチェックを行います。
	 * @param ymd 年月日
	 * @param ketaNum 桁数
	 * @return 日付整合性
	 */
	private boolean checkDate(String ymd, int ketaNum) 
	{
		// 引数チェック
		if (JDKCommonUtil.isNull(ymd)) 
		{
			return false;
		}

		try 
		{
			int yyyy = Integer.parseInt(ymd.substring(0, 4));

			int mm = Integer.parseInt(ymd.substring(4, 6));

			int dd = 1;

			if (ketaNum == 8) 
			{
				dd = Integer.parseInt(ymd.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 (StringIndexOutOfBoundsException e) 
		{
			return false;
		}
	}
	
	/**
	 * 表示項目編集を行います。
	 * @throws Exception 例外発生時
	 */
	private void setDispPram() throws Exception
	{
		int count1 = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_JOKYO_INFO).getCount();
		for (int i = 0 ; i < count1 ; i++)
		{
			X31SDataBeanAccess list1 = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_JOKYO_INFO).getDataBean(i);
			// 契約者名
			String keishaNm = JDKWebCommon.substr(list1.sendMessageString(DKW01701SFConst.KEISHA_NM_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 33);
			list1.sendMessageString(DKW01701SFConst.KEISHA_DISP_NM_01, X31CWebConst.DATABEAN_SET_VALUE, keishaNm);
			// 受付者名
			String ukNm = JDKWebCommon.substr(list1.sendMessageString(DKW01701SFConst.UK_NM_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 17);
			list1.sendMessageString(DKW01701SFConst.UK_DISP_NM_01, X31CWebConst.DATABEAN_SET_VALUE, ukNm);
			// メーカー名
			String mekaNm = JDKWebCommon.substr(list1.sendMessageString(DKW01701SFConst.MEKA_NM_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 10);
			list1.sendMessageString(DKW01701SFConst.MEKA_DISP_NM_01, X31CWebConst.DATABEAN_SET_VALUE, mekaNm);
			// 故障区分
			String troubleDivNm = JDKWebCommon.substr(list1.sendMessageString(DKW01701SFConst.TROUBLE_DIV_NM_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 17);
			list1.sendMessageString(DKW01701SFConst.TROUBLE_DIV_DISP_NM_01, X31CWebConst.DATABEAN_SET_VALUE, troubleDivNm);
			// 機器契約区分
			String kikiKeiDevNm = JDKWebCommon.substr(list1.sendMessageString(DKW01701SFConst.KIKI_KEI_DEV_NM_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 10);
			list1.sendMessageString(DKW01701SFConst.KIKI_KEI_DEV_DISP_NM_01, X31CWebConst.DATABEAN_SET_VALUE, kikiKeiDevNm);
			// 保証区分
			String hoshoDivNm = JDKWebCommon.substr(list1.sendMessageString(DKW01701SFConst.HOSHO_DIV_NM_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 10);
			list1.sendMessageString(DKW01701SFConst.HOSHO_DIV_DISP_NM_01, X31CWebConst.DATABEAN_SET_VALUE, hoshoDivNm);
			// 製造番号
			String seizoNo = JDKWebCommon.substr(list1.sendMessageString(DKW01701SFConst.SEIZO_NO_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 20);
			list1.sendMessageString(DKW01701SFConst.SEIZO_NO_DISP_NM_01, X31CWebConst.DATABEAN_SET_VALUE, seizoNo);
			// 処置区分
			String syotiDevNm = JDKWebCommon.substr(list1.sendMessageString(DKW01701SFConst.SYOTI_DEV_NM_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 10);
			list1.sendMessageString(DKW01701SFConst.SYOTI_DEV_DISP_NM_01, X31CWebConst.DATABEAN_SET_VALUE, syotiDevNm);
		}
		
		int count2 = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_RIREKI_LIST).getCount();
		for (int i = 0 ; i < count2 ; i++)
		{
			X31SDataBeanAccess list2 = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_RIREKI_LIST).getDataBean(i);
			// 対応区分
			String taioDivNm = JDKWebCommon.substr(list2.sendMessageString(DKW01701SFConst.TAIO_DIV_NM_02, X31CWebConst.DATABEAN_GET_VALUE), 0, 11);
			list2.sendMessageString(DKW01701SFConst.TAIO_DIV_DISP_NM_02, X31CWebConst.DATABEAN_SET_VALUE, taioDivNm);
			// 社員名
			String syainNm = JDKWebCommon.substr(list2.sendMessageString(DKW01701SFConst.SYAIN_NM_02, X31CWebConst.DATABEAN_GET_VALUE), 0, 14);
			list2.sendMessageString(DKW01701SFConst.SYAIN_DISP_NM_02, X31CWebConst.DATABEAN_SET_VALUE, syainNm);
			// 特記事項
			String tkjk = JDKWebCommon.substr(list2.sendMessageString(DKW01701SFConst.TKJK_02, X31CWebConst.DATABEAN_GET_VALUE), 0, 20);
			list2.sendMessageString(DKW01701SFConst.TKJK_DISP_NM_02, X31CWebConst.DATABEAN_SET_VALUE, tkjk);
			
			if (i % 2 == 1)
			{
				list2.sendMessageString(DKW01701SFConst.L_COLOR_02, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
			else
			{
				list2.sendMessageString(DKW01701SFConst.L_COLOR_02, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}
		}
	}
	
	/**
	 * 修理対応履歴内容（対応区分="06"(機器メーカー修理依頼済)）にもとづいてメーカー依頼物流保全備考の入力可否を判定しBeanに設定します。
	 * @throws Exception 例外発生時
	 */
	private void setMakerReqBtryhoznBikoInKhFlg() throws Exception
	{
		int countUketori = 0; // 修理品受取済 数
		int countIrai = 0; // 機器メーカー修理依頼済 数

		int count2 = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_RIREKI_LIST).getCount();

		for (int i = 0 ; i < count2 ; i++)
		{
			X31SDataBeanAccess list2 = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_RIREKI_LIST).getDataBean(i);
			// 対応区分
			String taioDivCd = JDKWebCommon.substr(list2.sendMessageString(DKW01701SFConst.TAIO_DIV_CD_02, X31CWebConst.DATABEAN_GET_VALUE), 0, 11);
			if ("05".equals(taioDivCd))
			{
				countUketori++;
			}
			else if ("06".equals(taioDivCd))
			{
				countIrai++;
			}
		}

		// メーカー依頼物流保全備考欄の入力可否フラグをBeanに設定します。
		X31SDataBeanAccess list1 = getServiceFormBean().getDataBeanArray(DKW01701SFConst.SHURI_UKETORI_INFO).getDataBean(0);

		if ((countUketori == 0 && countIrai == 0) || countIrai > 0)
		{
			// メーカー依頼物流保全備考欄の入力可否フラグ＝可能(true)
			list1.sendMessageBoolean(DKW01701SFConst.MAKER_REQ_BTRYHOZN_BIKO_IN_KH_FLG_06, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		else
		{
			// メーカー依頼物流保全備考欄の入力可否フラグ＝不可(false)
			list1.sendMessageBoolean(DKW01701SFConst.MAKER_REQ_BTRYHOZN_BIKO_IN_KH_FLG_06, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
	}

}
