/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW14701SFLogic
*   ソースファイル名：KKW14701SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年06月01日
*＜機能概要＞
*   請求契約登録画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/06/01   FJ）赤穂    新規作成
*   v4.00.01    2012/10/09   FJ）赤穂   【IT1-2012-0001208】対応
*   v4.01.00    2012/12/06   FJ）間瀬   【IT1-2012-0002318】対応
*   v4.02.00    2013/02/18   FJ）野口   【ST3-2013-0000040】対応
*   v4.03.00    2013/03/06   FJ）藤原   【IT1-2013-0000382】対応
*
**********************************************************************/
package eo.web.webview.KKW14701SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CModelCommon;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.ZMW10601SF.ZMW10601SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.KKSV0580_KKSV0580OPDBMapper;
import eo.web.webview.mapping.KKSV0581_KKSV0581OPDBMapper;
import eo.web.webview.mapping.KKSV0582_KKSV0582OPDBMapper;

/**
 * KKW14701のビューロジック
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW14701SFLogic extends JCCWebBusinessLogic
{
	
	/** 処理区分(登録) */
	private static final String TRAN_DIV_ADD = "登録";
	
	/** 処理区分(更新) */
	private static final String TRAN_DIV_UPD = "更新";
	
	/** メッセージID EKB0370--I */
	private static final String MSG_ID_EKB0370_I = JPCOnlineMessageConstant.EKB0370__I;
	
	/** メッセージID EKB9360--I */
	private static final String MSG_ID_EKB9360_I = JPCOnlineMessageConstant.EKB9360__I;
	
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
	/** 住所チェック警告値 */
	private static final String STATUS_WARNING = "WA";
	
	/** 住所チェック対象リスト */
	private static final String[] AD_CHK_LV_ERR = {"sohus_ad_chk_lv_err"};
	
	/** 住所チェック置き換え文字リスト */
	private static final String[] AD_CHK_LV_ERR_CHG = {"送付先住所"};
/* ++++++++++ v4.02.00 追加終了 ++++++++++ */
	
	/**
	 * 初期表示処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	public boolean init() throws Exception
	{

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		if (commoninfoBean == null)
		{
			return true;
		}

		// サービスフォームBeanの取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// オンライン運用日付の取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// 運用日付(YYYYMMDD形式)格納
		serviceBean.sendMessageString(KKW14701SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, opeDate);
		
		//****************************************
		// ■サービス呼出処理前準備
		//****************************************
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// 検索処理のユースケースID格納
		HashMap<String, String> paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0580");
		
		// 上りマッピング
		KKSV0580_KKSV0580OPDBMapper mapper = new KKSV0580_KKSV0580OPDBMapper();
		mapper.setKKSV058001SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);		// 法人格種別(前後指定)
		mapper.setKKSV058002SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);		// 法人格種別
		mapper.setKKSV058003SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);		// 支払方法
		
		//****************************************
		// ■サービス呼出
		//****************************************
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		//****************************************
		// ■サービス結果の転記
		//****************************************
		mapper.getKKSV058001SC(paramBean, outputMap);
		mapper.getKKSV058002SC(paramBean, outputMap);
		mapper.getKKSV058003SC(paramBean, outputMap);
		
// ++++++++++ v4.03.00 修正開始 ++++++++++
//		// 権限取得
//		getAuthorityStatus();
// ++++++++++ v4.03.00 修正終了 ++++++++++
		
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
		// 遷移先の指定
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14701);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW14701);
		/* ++++++++++ v4.01.00 修正終了 ++++++++++ */

		return true;
	}
	
	/**
	 * 検索ボタン押下時の処理を行います。
	 * <br>
	 * @return 成否
	 * @throws Exception
	 */
	public boolean search() throws Exception
	{

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		if (commoninfoBean == null)
		{
			return true;
		}
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		clearDataBeanButSeikyKeiNo(serviceBean);
		
		// オンライン運用日付の取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// 運用日付(YYYYMMDD形式)格納
		serviceBean.sendMessageString(KKW14701SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, opeDate);
		
		//****************************************
		// ■サービス呼出処理前準備
		//****************************************
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// 検索処理のユースケースID格納
		HashMap<String, String> paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0581");
		
		// 上りマッピング
		KKSV0581_KKSV0581OPDBMapper mapper = new KKSV0581_KKSV0581OPDBMapper();
		mapper.setKKSV0581CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);		// 請求契約情報取得CC
		
		//****************************************
		// ■サービス呼出
		//****************************************
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		HashMap<String, Object> parentMap = (HashMap)outputMap.get("KKSV0581CC");
		// エラーフラグ取得
		String errFlg = (String)parentMap.get("err_flg");
		if("E".equals(errFlg))
		{
			
			// エラー情報セット
			setMessageInfo(parentMap);
			
			// 検索結果フラグ「0」を設定
			serviceBean.sendMessageString(KKW14701SFConst.HDN_SEARCH_RESULT_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
			
			// 動作モードを設定
			serviceBean.sendMessageString(KKW14701SFConst.MODEFLG, X31CWebConst.DATABEAN_SET_VALUE, "3");
			
			return true;
			
		}
		
		//****************************************
		// ■サービス結果の転記
		//****************************************
		mapper.getKKSV0581CC(paramBean, outputMap);
		
		// 法人格前後の選択値を設定
		setCodeValueToComboBox(serviceBean, 
								KKW14701SFConst.SHS_HOJIN_ZENGO, 
								serviceBean.sendMessageString("法人格前後コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 法人格前後の選択値を設定
		setCodeValueToComboBox(serviceBean, KKW14701SFConst.SHS_HOJIN, serviceBean.sendMessageString("法人格コード", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 検索結果フラグ「1」を設定
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SEARCH_RESULT_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		
		// モードフラグ(「2：検索ボタン押下後」)
		serviceBean.sendMessageString(KKW14701SFConst.MODEFLG, X31CWebConst.DATABEAN_SET_VALUE, "2");
		
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
		// 遷移先の指定
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14701);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW14701);
		/* ++++++++++ v4.01.00 修正終了 ++++++++++ */

		return true;
	}

	/**
	 * 住所検索ボタン押下時の処理を行います。
	 * <br>
	 * @return 成否
	 * @throws Exception
	 */
	public boolean openAdSch() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		//サービスフォームBean
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// プロテクト項目の値を転記します。
		setHiddenFromItem();
		
		// パラメータの設定
		// 郵便番号
		paramMap.put(ZMW10601SFConst.SESSION_KEY_PCD_1, srvBean.sendMessageString(KKW14701SFConst.SHS_PCD_KAMI3, X31CWebConst.DATABEAN_GET_VALUE));
		paramMap.put(ZMW10601SFConst.SESSION_KEY_PCD_2, srvBean.sendMessageString(KKW14701SFConst.SHS_PCD_SHIMO4, X31CWebConst.DATABEAN_GET_VALUE));
		
		// セッションへセット
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10601, paramMap);
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW10601, "KKW14701");
		
		// 遷移先の指定
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10601);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW10601);
		
		return true;
	}
	
	/**
	 * 住所検索戻りの処理を行います。
	 * <br>
	 * @return 成否
	 * @throws Exception
	 */
	public boolean closeAdSch() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		//サービスフォームBean
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		HashMap<String, Object> resultMap = JCCWebCommon.getScreenInfo(this);
		
		String adCd1 = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_1);
		String adCd2 = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_2);
		String adCd3 = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_3);
		String adCd4 = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_4);
		String pcdU = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_PCD_1);
		String pcdL = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_PCD_2);
		String state = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_STATE_NM);
		String city = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_CITY_NM);
		String oaztsu = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_OAZTSU_NM);
		String azcho = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AZCHO_NM);
		
		srvBean.sendMessageString(KKW14701SFConst.SHS_AD_CD1, X31CWebConst.DATABEAN_SET_VALUE, adCd1);
		srvBean.sendMessageString(KKW14701SFConst.SHS_AD_CD2, X31CWebConst.DATABEAN_SET_VALUE, adCd2);
		srvBean.sendMessageString(KKW14701SFConst.SHS_AD_CD3, X31CWebConst.DATABEAN_SET_VALUE, adCd3);
		srvBean.sendMessageString(KKW14701SFConst.SHS_AD_CD4, X31CWebConst.DATABEAN_SET_VALUE, adCd4);
		srvBean.sendMessageString(KKW14701SFConst.SHS_PCD_KAMI3, X31CWebConst.DATABEAN_SET_VALUE, pcdU);
		srvBean.sendMessageString(KKW14701SFConst.SHS_PCD_SHIMO4, X31CWebConst.DATABEAN_SET_VALUE, pcdL);
		
		if("00".equals(adCd1))
		{
			srvBean.sendMessageString(KKW14701SFConst.SHS_STATE, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(KKW14701SFConst.SHS_CITY, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(KKW14701SFConst.SHS_OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(KKW14701SFConst.SHS_AZCHO, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(KKW14701SFConst.SHS_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, state + city + oaztsu + azcho);
		}
		else if("000".equals(adCd2))
		{
			srvBean.sendMessageString(KKW14701SFConst.SHS_STATE, X31CWebConst.DATABEAN_SET_VALUE, state);
			srvBean.sendMessageString(KKW14701SFConst.SHS_CITY, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(KKW14701SFConst.SHS_OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(KKW14701SFConst.SHS_AZCHO, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(KKW14701SFConst.SHS_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, city + oaztsu + azcho);
		}
		else if("000".equals(adCd3))
		{
			srvBean.sendMessageString(KKW14701SFConst.SHS_STATE, X31CWebConst.DATABEAN_SET_VALUE, state);
			srvBean.sendMessageString(KKW14701SFConst.SHS_CITY, X31CWebConst.DATABEAN_SET_VALUE, city);
			srvBean.sendMessageString(KKW14701SFConst.SHS_OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(KKW14701SFConst.SHS_AZCHO, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(KKW14701SFConst.SHS_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, oaztsu + azcho);
		}
		else if("000".equals(adCd4))
		{
			srvBean.sendMessageString(KKW14701SFConst.SHS_STATE, X31CWebConst.DATABEAN_SET_VALUE, state);
			srvBean.sendMessageString(KKW14701SFConst.SHS_CITY, X31CWebConst.DATABEAN_SET_VALUE, city);
			srvBean.sendMessageString(KKW14701SFConst.SHS_OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, oaztsu);
			srvBean.sendMessageString(KKW14701SFConst.SHS_AZCHO, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(KKW14701SFConst.SHS_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, azcho);
		}
		else
		{
			srvBean.sendMessageString(KKW14701SFConst.SHS_STATE, X31CWebConst.DATABEAN_SET_VALUE, state);
			srvBean.sendMessageString(KKW14701SFConst.SHS_CITY, X31CWebConst.DATABEAN_SET_VALUE, city);
			srvBean.sendMessageString(KKW14701SFConst.SHS_OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, oaztsu);
			srvBean.sendMessageString(KKW14701SFConst.SHS_AZCHO, X31CWebConst.DATABEAN_SET_VALUE, azcho);
		}
		
		// 手動入力
		srvBean.sendMessage(KKW14701SFConst.SHS_AD_MAN_INPUT_CHKBOX, X31CWebConst.DATABEAN_CLEAR);
		
		// モードフラグ(「1：住所検索戻り」)
		srvBean.sendMessageString(KKW14701SFConst.MODEFLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
		// 遷移先の指定
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14701);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW14701);
		/* ++++++++++ v4.01.00 修正終了 ++++++++++ */
		
		return true;
	}
	
	/**
	 * 登録確認ボタン押下時の処理を行います。
	 * <br>
	 * @return 成否
	 * @throws Exception
	 */
	public boolean forwardUpdCfm() throws Exception
	{

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		if (commoninfoBean == null)
		{
			return true;
		}

		// サービスフォームBeanの取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// プロテクト項目の値を転記します。
		setHiddenFromItem();
		
		// オンライン運用日付の取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// 運用日付(YYYYMMDD形式)格納
		serviceBean.sendMessageString(KKW14701SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, opeDate);
		
		//****************************************
		// ■サービス呼出処理前準備
		//****************************************
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// 検索処理のユースケースID格納
		HashMap<String, String> paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0582");
		
		// お客様名
		serviceBean.sendMessageString(KKW14701SFConst.CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 法人格種別（前後指定）
		setComboSelectValue(serviceBean, KKW14701SFConst.SHS_HOJIN_ZENGO, KKW14701SFConst.SHS_HOJIN_ZENGO_CD);
		
		// 法人格種別
		setComboSelectValue(serviceBean, KKW14701SFConst.SHS_HOJIN, KKW14701SFConst.SHS_HOJIN_CD);
		
		// 上りマッピング
		KKSV0582_KKSV0582OPDBMapper mapper = new KKSV0582_KKSV0582OPDBMapper();
		mapper.setKKSV0582CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);		// 請求契約情報登録CC
		
		//****************************************
		// ■サービス呼出
		//****************************************
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		HashMap<String, Object> parentMap = (HashMap)outputMap.get("KKSV0582CC");
		// エラーフラグ取得
		String errFlg = (String)parentMap.get("err_flg");
		if("E".equals(errFlg))
		{
			
			// エラー情報セット
			setMessageInfo(parentMap);
			
			// 動作モードを設定
			serviceBean.sendMessageString(KKW14701SFConst.MODEFLG, X31CWebConst.DATABEAN_SET_VALUE, "2");
			
			/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
			// 遷移先の指定
			// 遷移先画面IDを設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14701);
			// 遷移先画面名を設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW14701);
			/* ++++++++++ v4.01.00 修正終了 ++++++++++ */
			
			return true;
			
		}
		
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
		//ワーニング判定
		warningChk(outputMap);
		
/* ++++++++++ v4.02.00 追加終了 ++++++++++ */
		
		//****************************************
		// ■サービス結果の転記
		//****************************************
		mapper.getKKSV0582CC(paramBean, outputMap);
		
		// 処理区分名の設定
		String tran_div = serviceBean.sendMessageString(KKW14701SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		if("1".equals(tran_div))
		{
			setValue(serviceBean, KKW14701SFConst.TRAN_DIV_NM, TRAN_DIV_ADD);
		}
		else if("2".equals(tran_div))
		{
			setValue(serviceBean, KKW14701SFConst.TRAN_DIV_NM, TRAN_DIV_UPD);
		}
		
		// 参照表示＿法人格種別（前後指定）
		setSelectedName(serviceBean, KKW14701SFConst.SHS_HOJIN_ZENGO);
		
		X31SDataBeanAccess hBean = serviceBean.getDataBeanArray(KKW14701SFConst.SHS_HOJIN_ZENGO).getDataBean(0);
		String hIndex = hBean.sendMessageString(KKW14701SFConst.SELECT_INDEX_01, X31CModelCommon.GET_VALUE);
		if (hIndex != null && !"3".equals(hIndex))
		{
			// 参照表示＿法人格種別
			setSelectedName(serviceBean, KKW14701SFConst.SHS_HOJIN);
		}
		
		// メッセージエリアにインフォメーションを表示する。
		// EKB0370--I：＜＜　以下の内容で登録を行います。よろしいですか？　＞＞ 
		JCCWebCommon.setMessageInfo(this, MSG_ID_EKB0370_I, new String[]{"登録"});
		
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
		// 遷移先の指定
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14702);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW14702);
		/* ++++++++++ v4.01.00 修正終了 ++++++++++ */

		return true;
	}
	
	/**
	 * リセットボタン押下時の処理を行います。
	 * <br>
	 * @return 成否
	 * @throws Exception
	 */
	public boolean execReset() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		//サービスフォームBean
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		claerDataBean();
		
		// 検索結果フラグ「0」を設定
		srvBean.sendMessageString(KKW14701SFConst.HDN_SEARCH_RESULT_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		// モードフラグ(「0：初期表示」)
		srvBean.sendMessageString(KKW14701SFConst.MODEFLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
		// 画面遷移
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14701);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW14701);
		/* ++++++++++ v4.01.00 修正終了 ++++++++++ */
		
		return true;
	}
	
	/**
	 * 修正ボタン押下時の処理を行います。
	 * <br>
	 * @return 成否
	 * @throws Exception
	 */
	public boolean forwardShusei() throws Exception
	{
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// プロテクト項目の値を転記します。
		setHiddenFromItemKKW14702();
		
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
		// 画面遷移
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14701);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW14701);
		/* ++++++++++ v4.01.00 修正終了 ++++++++++ */
		
		return true;
	}
	
	/**
	 * 確定ボタン押下時の処理を行います。
	 * <br>
	 * @return 成否
	 * @throws Exception
	 */
	public boolean forwardFix() throws Exception
	{
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		if (commoninfoBean == null)
		{
			return true;
		}

		// サービスフォームBeanの取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// プロテクト項目の値を転記します。
		setHiddenFromItemKKW14702();
		
		// オンライン運用日付の取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// 運用日付(YYYYMMDD形式)格納
		serviceBean.sendMessageString(KKW14701SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, opeDate);
		
		//****************************************
		// ■サービス呼出処理前準備
		//****************************************
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// 検索処理のユースケースID格納
		HashMap<String, String> paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0582");
		
		// 上りマッピング
		KKSV0582_KKSV0582OPDBMapper mapper = new KKSV0582_KKSV0582OPDBMapper();
		mapper.setKKSV0582CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);		// 請求契約情報登録CC
		
		//****************************************
		// ■サービス呼出
		//****************************************
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		HashMap<String, Object> parentMap = (HashMap)outputMap.get("KKSV0582CC");
		// エラーフラグ取得
		String errFlg = (String)parentMap.get("err_flg");
		if("E".equals(errFlg))
		{
			
			// エラー情報セット
			setMessageInfo(parentMap);
			
			// 動作モードを設定
			serviceBean.sendMessageString(KKW14701SFConst.MODEFLG, X31CWebConst.DATABEAN_SET_VALUE, "2");
			
			/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
			// 遷移先の指定
			// 遷移先画面IDを設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14702);
			// 遷移先画面名を設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,  JKKScreenConst.SCREEN_NAME_KKW14702);
			/* ++++++++++ v4.01.00 修正終了 ++++++++++ */
			
			return true;
			
		}
		
		//****************************************
		// ■サービス結果の転記
		//****************************************
		mapper.getKKSV0582CC(paramBean, outputMap);
		
		// メッセージエリアにインフォメーションを表示する。
		// EKB9360--I：＜＜　請求契約登録が完了しました。　＞＞ 
		JCCWebCommon.setMessageInfo(this, MSG_ID_EKB9360_I, new String[]{"請求契約登録"});
		
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
		// 画面遷移
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14703);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW14703);
		/* ++++++++++ v4.01.00 修正終了 ++++++++++ */
		
		return true;
	}
	
	/**
	 * 請求契約登録へボタン押下時の処理を行います。
	 * <br>
	 * @return 成否
	 * @throws Exception
	 */
	public boolean forwardSeiKeiAdd() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		//サービスフォームBean
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		claerDataBean();
		
		// 検索結果フラグ「0」を設定
		srvBean.sendMessageString(KKW14701SFConst.HDN_SEARCH_RESULT_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		// モードフラグ(「4：完了画面からの戻り」)
		srvBean.sendMessageString(KKW14701SFConst.MODEFLG, X31CWebConst.DATABEAN_SET_VALUE, "4");
		
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
		// 画面遷移
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW14701);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW14701);
		/* ++++++++++ v4.01.00 修正終了 ++++++++++ */
		
		return true;
	}
	
// ++++++++++ v4.03.00 修正開始 ++++++++++
//	/**
//	 * 権限の状態を取得します。。
//	 * <br>
//	 */
//	private void getAuthorityStatus()
//	{
//		
//		JCCAuthorityCtrlStatus.setAuthorityCtrl(this);
//		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
//		X31SDataBeanAccessArray restrictionList = commonBean.getDataBeanArray(CommonInfoCFConst.REQUEST_AUTHORITY_LIST);
//		
//		//サービスフォームBean
//		X31SDataBeanAccess srvBean = super.getServiceFormBean();
//		
//		boolean authKojin1 = false;
//		boolean authKojin2 = false;
//		boolean authShiharai = false;
//		boolean authSearch = false;
//		boolean authAdSearch = false;
//		boolean authUpdCfm = false;
//		boolean authReset = false;
//		boolean authClose = false;
//		
//		if(restrictionList.getCount() > 0)
//		{
//			for (int i = 0; i < restrictionList.getCount(); i++)
//			{
//				X31SDataBeanAccess bean = restrictionList.getDataBean(i);
//				String value = getValue(bean, CommonInfoCFConst.REQUEST_AUTHORITY_03);
//				String flg = getValue(bean, CommonInfoCFConst.REQUEST_AUTHORITY_FLG_03);
//				
//				// 通常個人情報(処理区分)の場合
//				if("TSUJOKOJINJOUHOU_1".equals(value) && "0".equals(flg))
//				{
//					authKojin1 = true;
//				}
//				// 通常個人情報(送付先名、送付先住所)の場合
//				else if("TSUJOKOJINJOUHOU_2".equals(value) && "1".equals(flg))
//				{
//					authKojin2 = true;
//				}
//				// 支払い関連個人情報1の場合
//				else if("SHIHARAIJOUHOU1_1".equals(value) && "2".equals(flg))
//				{
//					authShiharai = true;
//				}
//				/* ++++++++++ v4.00.01 変更開始 IT1-2012-0001208 ++++++++++ */
//				// 検索ボタンの場合
//				else if("SEARCH".equals(value) && "3".equals(flg))
//				{
//					authSearch = true;
//				}
//				// 住所検索ボタンの場合
//				else if("AD_SEARCH".equals(value) && "4".equals(flg))
//				{
//					authAdSearch = true;
//				}
//				/* ++++++++++ v4.00.01 変更終了 IT1-2012-0001208 ++++++++++ */
//				// 登録確認ボタンの場合
//				else if("UPD_CFM".equals(value) && "5".equals(flg))
//				{
//					authUpdCfm = true;
//				}
//				// リセットボタンの場合
//				else if("RESET".equals(value) && "6".equals(flg))
//				{
//					authReset = true;
//				}
//				// 閉じるボタンの場合
//				else if("CLOSE".equals(value) && "7".equals(flg))
//				{
//					authClose = true;
//				}
//			}
//			
//		}
//		
//		srvBean.sendMessageBoolean(KKW14701SFConst.AUTH_KOJIN1, X31CWebConst.DATABEAN_SET_VALUE, authKojin1);
//		srvBean.sendMessageBoolean(KKW14701SFConst.AUTH_KOJIN2, X31CWebConst.DATABEAN_SET_VALUE, authKojin2);
//		srvBean.sendMessageBoolean(KKW14701SFConst.AUTH_SHIHARAI1, X31CWebConst.DATABEAN_SET_VALUE, authShiharai);
//		srvBean.sendMessageBoolean(KKW14701SFConst.AUTH_BTN_SEARCH, X31CWebConst.DATABEAN_SET_VALUE, authSearch);
//		srvBean.sendMessageBoolean(KKW14701SFConst.AUTH_BTN_AD_SEARCH, X31CWebConst.DATABEAN_SET_VALUE, authAdSearch);
//		srvBean.sendMessageBoolean(KKW14701SFConst.AUTH_BTN_UPD_CFM, X31CWebConst.DATABEAN_SET_VALUE, authUpdCfm);
//		srvBean.sendMessageBoolean(KKW14701SFConst.AUTH_BTN_RESET, X31CWebConst.DATABEAN_SET_VALUE, authReset);
//		srvBean.sendMessageBoolean(KKW14701SFConst.AUTH_BTN_CLOSE, X31CWebConst.DATABEAN_SET_VALUE, authClose);
//
//	}
// ++++++++++ v4.03.00 修正終了 ++++++++++

	/**
	 * 請求契約番号以外のデータビーンの値をクリアします。
	 * <br>
	 * @param serviceBean
	 * <br>
	 */
	private void clearDataBeanButSeikyKeiNo(X31SDataBeanAccess serviceBean)
	{
		// 請求契約番号を退避
		String tmpSeikyKeiNo = serviceBean.sendMessageString(KKW14701SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		
		// DataBeanのクリア
		claerDataBean();
		
		// 退避しておいた請求契約番号を設定
		serviceBean.sendMessageString(KKW14701SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, tmpSeikyKeiNo);
	}

	/**
	 * データビーンの値をクリアします。
	 * <br>
	 * <br>
	 */
	private void claerDataBean()
	{
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 請求契約番号
		serviceBean.sendMessageString(KKW14701SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		// SYSID
		serviceBean.sendMessageString(KKW14701SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, "");
		// お客様名
		serviceBean.sendMessageString(KKW14701SFConst.CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 法人格前後コード
		serviceBean.sendMessageString(KKW14701SFConst.SHS_HOJIN_ZENGO_CD, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 法人格コード
		serviceBean.sendMessageString(KKW14701SFConst.SHS_HOJIN_CD, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 送付先カナ名
		serviceBean.sendMessageString(KKW14701SFConst.SHS_SOHUS_KANA, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 送付先名
		serviceBean.sendMessageString(KKW14701SFConst.SHS_SOHUS_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 部課名
		serviceBean.sendMessageString(KKW14701SFConst.SHS_BKM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 担当者名
		serviceBean.sendMessageString(KKW14701SFConst.SHS_TNTSHA_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 電話番号
		serviceBean.sendMessageString(KKW14701SFConst.SHS_TELNO, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 郵便番号
		serviceBean.sendMessageString(KKW14701SFConst.SHS_PCD, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 郵便番号(上3桁)
		serviceBean.sendMessageString(KKW14701SFConst.SHS_PCD_KAMI3, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 郵便番号(下4桁)
		serviceBean.sendMessageString(KKW14701SFConst.SHS_PCD_SHIMO4, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 送付先住所手動入力フラグ
		serviceBean.sendMessageBoolean(KKW14701SFConst.SHS_AD_MAN_INPUT_CHKBOX, X31CWebConst.DATABEAN_SET_VALUE, false);
		// 住所コード
		serviceBean.sendMessageString(KKW14701SFConst.SHS_AD, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 住所コード1
		serviceBean.sendMessageString(KKW14701SFConst.SHS_AD_CD1, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 住所コード2
		serviceBean.sendMessageString(KKW14701SFConst.SHS_AD_CD2, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 住所コード3
		serviceBean.sendMessageString(KKW14701SFConst.SHS_AD_CD3, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 住所コード4
		serviceBean.sendMessageString(KKW14701SFConst.SHS_AD_CD4, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 都道府県
		serviceBean.sendMessageString(KKW14701SFConst.SHS_STATE, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 市区町村
		serviceBean.sendMessageString(KKW14701SFConst.SHS_CITY, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 大字通称
		serviceBean.sendMessageString(KKW14701SFConst.SHS_OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 字丁目
		serviceBean.sendMessageString(KKW14701SFConst.SHS_AZCHO, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 番地号
		serviceBean.sendMessageString(KKW14701SFConst.SHS_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 建物名
		serviceBean.sendMessageString(KKW14701SFConst.SHS_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 部屋番号
		serviceBean.sendMessageString(KKW14701SFConst.SHS_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 支払方法コード(1)
		serviceBean.sendMessageString(KKW14701SFConst.PAYWAY_CD, X31CWebConst.DATABEAN_SET_VALUE, "1" );
		// 支払方法名(窓口払い)
		serviceBean.sendMessageString(KKW14701SFConst.PAYWAY_NM, X31CWebConst.DATABEAN_SET_VALUE, "窓口払い" );
		// 申込明細番号
		serviceBean.sendMessageString(KKW14701SFConst.MSKM_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 異動区分
		serviceBean.sendMessageString(KKW14701SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 更新年月日＿請求契約
		serviceBean.sendMessageString(KKW14701SFConst.UPD_DTM_SEIKY_KEI, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 処理区分名
		serviceBean.sendMessageString(KKW14701SFConst.TRAN_DIV_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 法人格前後
		serviceBean.sendMessageString(KKW14701SFConst.SHS_HOJIN_ZENGO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 法人格
		serviceBean.sendMessageString(KKW14701SFConst.SHS_HOJIN, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿郵便番号（上３桁）
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_PCD_KAMI3, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿郵便番号（下４桁）
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_PCD_SHIMO4, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿送付先住所手動入力フラグ
		serviceBean.sendMessageBoolean(KKW14701SFConst.HDN_SHS_AD_MAN_INPUT_CHKBOX, X31CWebConst.DATABEAN_SET_VALUE, false);
		
		// 保持＿住所コード１
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_AD_CD1, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿住所コード２
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_AD_CD2, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿住所コード３
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_AD_CD3, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿住所コード４
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_AD_CD4, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿都道府県
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_STATE, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿市区町村
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_CITY, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿大字通称
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿字丁目
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_AZCHO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿番地号
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿建物名
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 保持＿部屋番号
		serviceBean.sendMessageString(KKW14701SFConst.HDN_SHS_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 運用年月日
		serviceBean.sendMessageString(KKW14701SFConst.OPE_DATE, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 法人格前後選択INDEX
		X31SDataBeanAccess subBean = serviceBean.getDataBeanArray(KKW14701SFConst.SHS_HOJIN_ZENGO).getDataBean(0);
		subBean.sendMessageString(KKW14701SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		// 法人格選択INDEX
		subBean = serviceBean.getDataBeanArray(KKW14701SFConst.SHS_HOJIN).getDataBean(0);
		subBean.sendMessageString(KKW14701SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
	}

	/**
	 * 隠し項目に設定されている値を画面表示項目に設定します。
	 * 
	 */
	private void setHiddenFromItem()
	{
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		setValue(serviceBean, KKW14701SFConst.SHS_PCD_KAMI3, getValue(serviceBean, KKW14701SFConst.HDN_SHS_PCD_KAMI3));
		setValue(serviceBean, KKW14701SFConst.SHS_PCD_SHIMO4, getValue(serviceBean, KKW14701SFConst.HDN_SHS_PCD_SHIMO4));
		setValue(serviceBean, KKW14701SFConst.SHS_AD_CD1, getValue(serviceBean, KKW14701SFConst.HDN_SHS_AD_CD1));
		setValue(serviceBean, KKW14701SFConst.SHS_AD_CD2, getValue(serviceBean, KKW14701SFConst.HDN_SHS_AD_CD2));
		setValue(serviceBean, KKW14701SFConst.SHS_AD_CD3, getValue(serviceBean, KKW14701SFConst.HDN_SHS_AD_CD3));
		setValue(serviceBean, KKW14701SFConst.SHS_AD_CD4, getValue(serviceBean, KKW14701SFConst.HDN_SHS_AD_CD4));
		setValue(serviceBean, KKW14701SFConst.SHS_STATE, getValue(serviceBean, KKW14701SFConst.HDN_SHS_STATE));
		setValue(serviceBean, KKW14701SFConst.SHS_CITY, getValue(serviceBean, KKW14701SFConst.HDN_SHS_CITY));
		setValue(serviceBean, KKW14701SFConst.SHS_OAZTSU, getValue(serviceBean, KKW14701SFConst.HDN_SHS_OAZTSU));
		setValue(serviceBean, KKW14701SFConst.SHS_AZCHO, getValue(serviceBean, KKW14701SFConst.HDN_SHS_AZCHO));
		setValue(serviceBean, KKW14701SFConst.SHS_BNCHIGO, getValue(serviceBean, KKW14701SFConst.HDN_SHS_BNCHIGO));
		setValue(serviceBean, KKW14701SFConst.SHS_ADRTTM, getValue(serviceBean, KKW14701SFConst.HDN_SHS_ADRTTM));
		setValue(serviceBean, KKW14701SFConst.SHS_ADRRM, getValue(serviceBean, KKW14701SFConst.HDN_SHS_ADRRM));
		
		boolean flg = serviceBean.sendMessageBoolean(KKW14701SFConst.HDN_SHS_AD_MAN_INPUT_CHKBOX, X31CWebConst.DATABEAN_GET_VALUE);
		serviceBean.sendMessageBoolean(KKW14701SFConst.SHS_AD_MAN_INPUT_CHKBOX, X31CWebConst.DATABEAN_SET_VALUE, flg);
		
	}
	
	/**
	 * 隠し項目に設定されている値を画面表示項目に設定します。
	 * 
	 */
	private void setHiddenFromItemKKW14702()
	{
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		boolean flg = serviceBean.sendMessageBoolean(KKW14701SFConst.HDN_SHS_AD_MAN_INPUT_CHKBOX, X31CWebConst.DATABEAN_GET_VALUE);
		serviceBean.sendMessageBoolean(KKW14701SFConst.SHS_AD_MAN_INPUT_CHKBOX, X31CWebConst.DATABEAN_SET_VALUE, flg);
		
	}
	
	/**
	 * コード値を元にコンボボックスの選択インデックスを設定します。
	 * <br>
	 * @param bean 画面情報
	 * @param comboName コンボボックス名称
	 * @param codeValue コード値
	 * 
	 * <br>
	 */
	private void setCodeValueToComboBox(X31SDataBeanAccess bean, String comboName, String codeValue)
	{
		X31SDataBeanAccess subBean = bean.getDataBeanArray(comboName).getDataBean(0);
		String temp = null;
		int count = (Integer)subBean.sendMessage(KKW14701SFConst.CD_DIV_CD_LIST_01, X31CModelCommon.GET_COUNT);
		
		for (int i = 0; i < count; i++)
		{
			temp = subBean.sendMessageString(KKW14701SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			
			if (temp.equals(codeValue))
			{
				subBean.sendMessageString(KKW14701SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				break;
			}
		}
	}
	
	/**
	 * コンボボックスから選択された名称を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param comboName コンボボックス名称
	 * 
	 * @return String 選択されている名称
	 * <br>
	 */
	private String getNameValueForComboBox(X31SDataBeanAccess bean, String comboName)
	{
		X31SDataBeanAccess subBean = bean.getDataBeanArray(comboName).getDataBean(0);
		String selectIndex = subBean.sendMessageString(KKW14701SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (selectIndex == null || "".equals(selectIndex))
		{
			return "";
		}
		
		return subBean.sendMessageString(KKW14701SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectIndex));
	}
	
	/**
	 * コンボの選択された名称を設定します。
	 * <br>
	 * @param bean 画面情報
	 * @param comboName コンボボックス名称
	 */
	private void setSelectedName(X31SDataBeanAccess bean, String comboName)
	{
		
		X31SDataBeanAccess subBean = bean.getDataBeanArray(comboName).getDataBean(0);
		
		setValue(subBean, KKW14701SFConst.CD_DIV_NM_01, getNameValueForComboBox(bean, comboName));
		
	}

	/**
	 * コンボボックスで選択されている値を退避領域に格納します。
	 * <br>
	 * @param bean 画面情報
	 * @param comboItemName コンボボックスアイテム名
	 * @param itemName アイテム名
	 * <br>
	 */
	private void setComboSelectValue(X31SDataBeanAccess bean, String comboItemName, String itemName)
	{
		String selectCd = "";
		
		if("法人格".equals(comboItemName))
		{
			X31SDataBeanAccess hBean = bean.getDataBeanArray(KKW14701SFConst.SHS_HOJIN_ZENGO).getDataBean(0);
			String hIndex = hBean.sendMessageString(KKW14701SFConst.SELECT_INDEX_01, X31CModelCommon.GET_VALUE);
			if (hIndex != null && !"".equals(hIndex) && "3".equals(hIndex))
			{
				X31SDataBeanAccess kBean = bean.getDataBeanArray(comboItemName).getDataBean(0);
				selectCd = kBean.sendMessageString(KKW14701SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, 1);
				kBean.sendMessageString(KKW14701SFConst.CD_DIV_CD_01, X31CWebConst.DATABEAN_SET_VALUE, selectCd);
				kBean.sendMessageString(KKW14701SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, 1);
				String nm = kBean.sendMessageString(KKW14701SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, 1);
				kBean.sendMessageString(KKW14701SFConst.CD_DIV_NM_01, X31CWebConst.DATABEAN_SET_VALUE, nm);
				bean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, selectCd);
			}
		}
		
		if("".equals(selectCd))
		{
			X31SDataBeanAccess subBean = bean.getDataBeanArray(comboItemName).getDataBean(0);
			String index = subBean.sendMessageString(KKW14701SFConst.SELECT_INDEX_01, X31CModelCommon.GET_VALUE);
			
			if (index != null && !"".equals(index))
			{
				selectCd = subBean.sendMessageString(KKW14701SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(index));
			}
			
			subBean.sendMessageString(KKW14701SFConst.CD_DIV_CD_01, X31CWebConst.DATABEAN_SET_VALUE, selectCd);
			bean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, selectCd);
		}
	}
	
	/**
	 * データBeanに指定された項目の値を設定します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName コンボボックス名称
	 * @param value 設定値
	 */
	private void setValue(X31SDataBeanAccess bean, String itemName, String value)
	{
		bean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, value);
	}
	
	/**
	 * データBeanから指定された項目の値を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName 項目名称
	 * <br>
	 * @return String 値
	 */
	private String getValue(X31SDataBeanAccess bean, String itemName)
	{
		return bean.sendMessageString(itemName, X31CWebConst.DATABEAN_GET_VALUE);
	}

	/**	
	 * <dd>メソッド名：エラー情報設定
	 * <dd>メソッド説明：
	 * <dd>備考：
	 * @param parentMap
	 */
	@SuppressWarnings("unchecked")
	private void setMessageInfo(HashMap<String, Object> parentMap)
	{
		
		ArrayList messageList = (ArrayList)parentMap.get("message_list");
		
		String replaceChar = "";
		String errItem = "";
		
		if(messageList.size() > 0)
		{
			for (int i = 0; i < messageList.size(); i++)
			{
				HashMap messageMap = (HashMap)messageList.get(i);
				String message = (String)messageMap.get("messageId");
				replaceChar = (String)messageMap.get("replaceCha");
				errItem = (String)messageMap.get("errItem");

				if(!"".equals(replaceChar) && !"".equals(errItem))
				{
					JCCWebCommon.setMessageInfo(this, message, replaceChar.split(","), errItem);
				}
				else if(!"".equals(replaceChar))
				{
					JCCWebCommon.setMessageInfo(this, message, replaceChar.split(","));
				}
				else if(!"".equals(errItem))
				{
					JCCWebCommon.setMessageInfo(this, message, errItem);
				}
				else
				{
					JCCWebCommon.setMessageInfo(this, message);
				}
			}
		}
		
	}
	
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
	/**
	 * ワーニングチェック
	 * 
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private void warningChk(HashMap outputMap)
	{
		// 戻り値
		HashMap parentMap = null;
		
		if(outputMap.containsKey("KKSV0582CC")){
			parentMap = (HashMap)outputMap.get("KKSV0582CC");
		}
		
		if (null != parentMap)
		{
			for (int i=0;i<AD_CHK_LV_ERR.length;i++) {
			
				if (parentMap.containsKey(AD_CHK_LV_ERR[i]))
				{
					String warningStatus = (String)parentMap.get(AD_CHK_LV_ERR[i]);
					if (STATUS_WARNING.equals(warningStatus))
					{
						JCCWebCommon.setMessageInfo(this, "EKBD290--Q",new String[]{AD_CHK_LV_ERR_CHG[i]});
					}
				}
			}
		}
	}
/* ++++++++++ v4.02.00 追加終了 ++++++++++ */
}
