/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CHW01104SFLogic
 *	ソースファイル名：CHW01104SFLogic.java
 *	作成者			：富士通
 *	日付			：2011年08月18日
 *＜機能概要＞
 *	金庫移動登録のビューロジック部品です。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/08/18	富士通		新規作成
 *	v1.01.00	2013/05/08	FJ)大塚     メッセージ領域の背景色の設定対応
 *	v5.00.00	2013/07/11	FJ)文元		【LT-2013-0000365】登録確認画面遷移しない不具合対応
 *
 **********************************************************************/
package eo.web.webview.CHW01104SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JACStrConst;
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.common.JACScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCHCommonServiceUtil;
import eo.web.webview.common.JCHPageTransferUtil;
import eo.web.webview.common.JCHWebCommon;
import eo.web.webview.mapping.CHSV0016_CHSV0016OPDBMapper;
import eo.web.webview.mapping.CHSV0017_CHSV0017OPDBMapper;

/**
 * 金庫移動登録のビューロジックを提供します。
 * <p>
 * <BR>
 * 
 * @author 富士通
 */
public class CHW01104SFLogic extends JCCWebBusinessLogic
{

	/** ユースケースID(金庫移動登録画面情報取得) */
	private static final String USECASE_ID_CHSV0016 = "CHSV0016";

	/** ユースケースID(金庫移動登録) */
	private static final String USECASE_ID_CHSV0017 = "CHSV0017";

	/** メッセージＩＤ(ＮＧワード) */
	private static final String MESSAGE_ID_NG_WORD = "EKB8580-KW";

	/**
	 * 金庫移動登録の初期表示処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean init() throws Exception
	{

		// 共有フォームBeanのアクセサを取得する
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 遷移先画面IDを判定して画面IDに対応する初期表示処理を呼び出す
		String screenId = commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);
		if (screenId.equals(JACScreenConst.SCREEN_ID_CHW01104))
		{
			// 遷移元の画面情報を取得し、戻り遷移用に保持
			String beforeScreenId = JCCWebCommon.getScreenId(this);
			bean.sendMessageString(CHW01104SFConst.BEFORE_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, beforeScreenId);

			initAddScreen();
		}

		return true;
	}

	/**
	 * 金庫移動登録確認画面に遷移します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	public boolean addCfm() throws Exception
	{

		// 共有フォームBeanのアクセサを取得する
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean, commoninfoBean };

		// 選択された移動先料金項目コード・コード名称
		String prcKmkCd1 = this.convSelIndexToTarget(paramBeans, 
				CHW01104SFConst.IDO_SK_KNK_INFO_1, CHW01104SFConst.KNK_PRC_KMK_CD_LIST_1_02, CHW01104SFConst.KNK_PRC_KMK_CD_SEL_1_02);
		String prcKmkNm1 = this.convSelIndexToTarget(paramBeans, 
				CHW01104SFConst.IDO_SK_KNK_INFO_1, CHW01104SFConst.KNK_PRC_KMK_NM_LIST_1_02, CHW01104SFConst.KNK_PRC_KMK_CD_SEL_1_02);
		String prcKmkCd2 = this.convSelIndexToTarget(paramBeans, 
				CHW01104SFConst.IDO_SK_KNK_INFO_2, CHW01104SFConst.KNK_PRC_KMK_CD_LIST_2_02, CHW01104SFConst.KNK_PRC_KMK_CD_SEL_2_02);
		String prcKmkNm2 = this.convSelIndexToTarget(paramBeans, 
				CHW01104SFConst.IDO_SK_KNK_INFO_2, CHW01104SFConst.KNK_PRC_KMK_NM_LIST_2_02, CHW01104SFConst.KNK_PRC_KMK_CD_SEL_2_02);
		String prcKmkCd3 = this.convSelIndexToTarget(paramBeans, 
				CHW01104SFConst.IDO_SK_KNK_INFO_3, CHW01104SFConst.KNK_PRC_KMK_CD_LIST_3_02, CHW01104SFConst.KNK_PRC_KMK_CD_SEL_3_02);
		String prcKmkNm3 = this.convSelIndexToTarget(paramBeans, 
				CHW01104SFConst.IDO_SK_KNK_INFO_3, CHW01104SFConst.KNK_PRC_KMK_NM_LIST_3_02, CHW01104SFConst.KNK_PRC_KMK_CD_SEL_3_02);
		String prcKmkCd4 = this.convSelIndexToTarget(paramBeans, 
				CHW01104SFConst.IDO_SK_KNK_INFO_4, CHW01104SFConst.KNK_PRC_KMK_CD_LIST_4_02, CHW01104SFConst.KNK_PRC_KMK_CD_SEL_4_02);
		String prcKmkNm4 = this.convSelIndexToTarget(paramBeans, 
				CHW01104SFConst.IDO_SK_KNK_INFO_4, CHW01104SFConst.KNK_PRC_KMK_NM_LIST_4_02, CHW01104SFConst.KNK_PRC_KMK_CD_SEL_4_02);
		String prcKmkCd5 = this.convSelIndexToTarget(paramBeans, 
				CHW01104SFConst.IDO_SK_KNK_INFO_5, CHW01104SFConst.KNK_PRC_KMK_CD_LIST_5_02, CHW01104SFConst.KNK_PRC_KMK_CD_SEL_5_02);
		String prcKmkNm5 = this.convSelIndexToTarget(paramBeans, 
				CHW01104SFConst.IDO_SK_KNK_INFO_5, CHW01104SFConst.KNK_PRC_KMK_NM_LIST_5_02, CHW01104SFConst.KNK_PRC_KMK_CD_SEL_5_02);

		// 選択されているリスト位置のコード・名称を設定する
		bean.sendMessageString(CHW01104SFConst.KNK_PRC_KMK_CD_1, X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd1);
		bean.sendMessageString(CHW01104SFConst.KNK_PRC_KMK_NM_1, X31CWebConst.DATABEAN_SET_VALUE, prcKmkNm1);
		bean.sendMessageString(CHW01104SFConst.KNK_PRC_KMK_CD_2, X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd2);
		bean.sendMessageString(CHW01104SFConst.KNK_PRC_KMK_NM_2, X31CWebConst.DATABEAN_SET_VALUE, prcKmkNm2);
		bean.sendMessageString(CHW01104SFConst.KNK_PRC_KMK_CD_3, X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd3);
		bean.sendMessageString(CHW01104SFConst.KNK_PRC_KMK_NM_3, X31CWebConst.DATABEAN_SET_VALUE, prcKmkNm3);
		bean.sendMessageString(CHW01104SFConst.KNK_PRC_KMK_CD_4, X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd4);
		bean.sendMessageString(CHW01104SFConst.KNK_PRC_KMK_NM_4, X31CWebConst.DATABEAN_SET_VALUE, prcKmkNm4);
		bean.sendMessageString(CHW01104SFConst.KNK_PRC_KMK_CD_5, X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd5);
		bean.sendMessageString(CHW01104SFConst.KNK_PRC_KMK_NM_5, X31CWebConst.DATABEAN_SET_VALUE, prcKmkNm5);

		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0017);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		CHSV0017_CHSV0017OPDBMapper mapper = new CHSV0017_CHSV0017OPDBMapper();

		mapper.setCHSV001701SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); 				// ECH0191D020 : 金庫移動登録
		mapper.setHURYOCUSTDELCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); 			// HURYOCUSTDELCC : 不良顧客論理削除CC
		mapper.setPRCTAIOKIROKADDCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2, this); 	// PRCTAIOKIROKADDCC : 料金対応記録登録CC
		mapper.setTAIOKIROKADDCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2, this); 		// TAIOKIROKADDCC : 顧客対応記録登録CC
		mapper.setADDHOTVOICCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2, this); 		// ADDHOTVOICCC : ホットボイスCC
		mapper.setSEIKYKEISEARCHCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); 			// SEIKYKEISEARCHCC : 請求契約取得

		// NGワードチェックフラグを設定
		((HashMap)inDataMap.get(JACStrConst.PRCTAIOKIROKADDCC_MAP_ID)).put(JACStrConst.KEY_NGWORD_CHECK_FLG, "1");

		// 結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し（チェックのみ）
		invokeService(paramMap, inDataMap, outputMap);

		// ＮＧワードチェック
		ArrayList<String> ngWordList = JCHCommonServiceUtil.getNgWordList(outputMap);

		// NGワードが存在する場合、警告メッセージ表示
		if (!ngWordList.isEmpty())
		{
			for (int i = 0; i < ngWordList.size(); i++)
			{
				JCCWebCommon.setMessageInfo(this, MESSAGE_ID_NG_WORD, new String[]{ CHW01104SFConst.KIJI, ngWordList.get(i)});
			}
			return true;
		}

		// 下りマッピング
		mapper.getSEIKYKEISEARCHCC(paramBeans, outputMap);

		// 検索結果判定
		if (isGetSeikyKei(paramBeans))
		{
			String[] messageStr = { "請求契約" };
			JCCWebCommon.setMessageInfo(this, "EKB0740-KW", messageStr, null);

			return false;
		}

//		// ユースケースID格納用マップを生成。
//		HashMap<String, Object> paramMap2 = new HashMap<String, Object>();
//		paramMap2.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0018);
//
//		// サービスに渡すMapを生成する
//		HashMap<String, Object> inDataMap2 = new HashMap<String, Object>();
//		CHSV0018_CHSV0018OPDBMapper mapper2 = new CHSV0018_CHSV0018OPDBMapper();
//
//		mapper2.setSEIKYKEISEARCHCC(paramBeans, inDataMap2, JPCModelConstant.FUNC_CD_2); // SEIKYKEISEARCHCC : 請求契約取得
//
//		// 結果格納用マップを生成。
//		HashMap<String, Object> outputMap2 = new HashMap<String, Object>();
//
//		// サービスの呼び出し（送付先名取得）
//		invokeService(paramMap2, inDataMap2, outputMap2);
//
//		// 下りマッピング
//		mapper2.getSEIKYKEISEARCHCC(paramBeans, outputMap2);
//
//		// 検索結果判定
//		if (isGetSeikyKei(paramBeans))
//		{
//			String[] messageStr = { "請求契約" };
//			JCCWebCommon.setMessageInfo(this, "EKB0740-KW", messageStr, null);
//
//			return false;
//		}
		
		// メッセージ領域の背景色の設定
		JCCWebCommon.setMessageAreaBackColor(this, "1");

		// メッセージの設定
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, new String[] {"登録"});

		// 遷移先画面を設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_ID_CHW01105);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_NAME_CHW01105);

		return true;
	}

	/**
	 * 確定完了を処理します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean fixFin() throws Exception
	{

		// 共有フォームBeanのアクセサを取得する
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean, commoninfoBean };

		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0017);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		CHSV0017_CHSV0017OPDBMapper mapper = new CHSV0017_CHSV0017OPDBMapper();

		mapper.setCHSV001701SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); 				// ECH0191D020 : 金庫移動登録
		mapper.setHURYOCUSTDELCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); 			// HURYOCUSTDELCC : 不良顧客論理削除CC
		mapper.setPRCTAIOKIROKADDCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1, this); 	// PRCTAIOKIROKADDCC : 料金対応記録登録CC
		mapper.setTAIOKIROKADDCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1, this); 		// TAIOKIROKADDCC : 顧客対応記録登録CC
		mapper.setADDHOTVOICCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1, this); 		// ADDHOTVOICCC : ホットボイスCC
		mapper.setSEIKYKEISEARCHCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); 			// SEIKYKEISEARCHCC : 請求契約取得

		// 結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// 閉じる処理の呼出し
		this.close();

		return true;
	}

	/**
	 * モーダル反映画面に遷移して画面を閉じます。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean close() throws Exception
	{

		// 遷移先画面IDを取得し、子画面を閉じる共通処理を呼出す
		return JCHPageTransferUtil.closeTransfer(this, JCCWebCommon.getScreenId(this));
	}

	/**
	 * 修正を処理します。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean shusei() throws Exception
	{
		// 共有フォームBeanのアクセサを取得する
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		// 遷移先画面を設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_ID_CHW01104);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JACScreenConst.SCREEN_NAME_CHW01104);

		return true;
	}

	/**
	 * 金庫移動登録画面の初期表示処理を行います。 <br>
	 * 
	 * @throws Exception 例外が発生した場合
	 */
	private void initAddScreen() throws Exception
	{

		// 画面間引継情報を設定する
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBeans = { bean };

		// 金庫移動登録サービス実行
		this.execCHSV0016(paramBeans);
	}

	/**
	 * 金庫移動登録サービスを実行します。 <br>
	 * 
	 * @param paramBeans 金庫移動登録サービスフォームBean
	 */
	private void execCHSV0016(X31SDataBeanAccess[] paramBeans) throws Exception
	{

		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0016);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();
		CHSV0016_CHSV0016OPDBMapper mapper = new CHSV0016_CHSV0016OPDBMapper();

		mapper.setCHSV001601SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); // ECH0191A010 : 金庫一意照会
		mapper.setCHSV001602SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // ECH0671B010 : 金庫ステータス移動条件一覧照会
		mapper.setCHSV001603SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); // ECH0231A010 : 督促一意照会
		mapper.setCHSV001604SC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_2); // EKK0491A010 : 請求契約一意照会
		mapper.setPRCKMKCSCHGECC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1); // PRCKMKCSCHGECC : 料金項目抽出変換一覧照会CC
		
		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		invokeService(paramMap, inDataMap, outputMap);

		// 下りマッピング
		mapper.getCHSV001601SC(paramBeans, outputMap);
		mapper.getCHSV001602SC(paramBeans, outputMap);
		mapper.getCHSV001603SC(paramBeans, outputMap);
		mapper.getCHSV001604SC(paramBeans, outputMap);
		mapper.getPRCKMKCSCHGECC(paramBeans, outputMap);
	}

	/**
	 * サービスの実行結果から、該当する請求契約の有無を判定する。 <br>
	 * 
	 * @param bean　[0]：金庫移動登録
	 * @param outputMap 値リスト、選択位置が格納されている親Bean
	 * @return 判定結果
	 */
	private boolean isGetSeikyKei(X31SDataBeanAccess[] bean)
	{
		
		String idoSkSeikyKeiNo1 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_SEIKY_KEI_NO_1, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkSeikyKeiNo2 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_SEIKY_KEI_NO_2, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkSeikyKeiNo3 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_SEIKY_KEI_NO_3, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkSeikyKeiNo4 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_SEIKY_KEI_NO_4, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkSeikyKeiNo5 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_SEIKY_KEI_NO_5, X31CWebConst.DATABEAN_GET_VALUE);

		String sohusNm1 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_SOHUS_NM_1, X31CWebConst.DATABEAN_GET_VALUE);
		String sohusNm2 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_SOHUS_NM_2, X31CWebConst.DATABEAN_GET_VALUE);
		String sohusNm3 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_SOHUS_NM_3, X31CWebConst.DATABEAN_GET_VALUE);
		String sohusNm4 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_SOHUS_NM_4, X31CWebConst.DATABEAN_GET_VALUE);
		String sohusNm5 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_SOHUS_NM_5, X31CWebConst.DATABEAN_GET_VALUE);

		String idoSkKnkPrcKmkCd1 = bean[0].sendMessageString(CHW01104SFConst.KNK_PRC_KMK_CD_1, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkKnkPrcKmkCd2 = bean[0].sendMessageString(CHW01104SFConst.KNK_PRC_KMK_CD_2, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkKnkPrcKmkCd3 = bean[0].sendMessageString(CHW01104SFConst.KNK_PRC_KMK_CD_3, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkKnkPrcKmkCd4 = bean[0].sendMessageString(CHW01104SFConst.KNK_PRC_KMK_CD_4, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkKnkPrcKmkCd5 = bean[0].sendMessageString(CHW01104SFConst.KNK_PRC_KMK_CD_5, X31CWebConst.DATABEAN_GET_VALUE);
		
		String idoSkKnkAmnt1 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_KNK_AMNT_1, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkKnkAmnt2 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_KNK_AMNT_2, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkKnkAmnt3 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_KNK_AMNT_3, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkKnkAmnt4 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_KNK_AMNT_4, X31CWebConst.DATABEAN_GET_VALUE);
		String idoSkKnkAmnt5 = bean[0].sendMessageString(CHW01104SFConst.IDO_SK_KNK_AMNT_5, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 移動先金庫ステータスが"仮受金"または"不明金"の場合、チェックしない
		String knkStatKruk = JACStrConst.KNK_STAT_KARIUKEKIN;
		String knkStatHmei = JACStrConst.KNK_STAT_HUMEIKIN;

		// 1行目
		// 未入力行はチェックしない
		if (!checkInput(idoSkKnkPrcKmkCd1, idoSkSeikyKeiNo1, idoSkKnkAmnt1))
		{
			if (!(idoSkKnkPrcKmkCd1.equals(knkStatKruk) || idoSkKnkPrcKmkCd1.equals(knkStatHmei)))
			{
				if (JCHWebCommon.isNotNullOrEmpty(idoSkSeikyKeiNo1) && JCHWebCommon.isNullOrEmpty(sohusNm1))
				{
					return true;
				}
			}
		}

		// 2行目
		// 未入力行はチェックしない
		if (!checkInput(idoSkKnkPrcKmkCd2, idoSkSeikyKeiNo2, idoSkKnkAmnt2))
		{
			if (!(idoSkKnkPrcKmkCd2.equals(knkStatKruk) || idoSkKnkPrcKmkCd2.equals(knkStatHmei)))
			{
				if (JCHWebCommon.isNotNullOrEmpty(idoSkSeikyKeiNo2) && JCHWebCommon.isNullOrEmpty(sohusNm2))
				{
					return true;
				}
			}
		}

		// 3行目
		// 未入力行はチェックしない
		if (!checkInput(idoSkKnkPrcKmkCd3, idoSkSeikyKeiNo3, idoSkKnkAmnt3))
		{
			if (!(idoSkKnkPrcKmkCd3.equals(knkStatKruk) || idoSkKnkPrcKmkCd3.equals(knkStatHmei)))
			{
				if (JCHWebCommon.isNotNullOrEmpty(idoSkSeikyKeiNo3) && JCHWebCommon.isNullOrEmpty(sohusNm3))
				{
					return true;
				}
			}
		}
		

		// 4行目
		// 未入力行はチェックしない
		if (!checkInput(idoSkKnkPrcKmkCd4, idoSkSeikyKeiNo4, idoSkKnkAmnt4))
		{
			if (!(idoSkKnkPrcKmkCd4.equals(knkStatKruk) || idoSkKnkPrcKmkCd4.equals(knkStatHmei)))
			{
				if (JCHWebCommon.isNotNullOrEmpty(idoSkSeikyKeiNo4) && JCHWebCommon.isNullOrEmpty(sohusNm4))
				{
					return true;
				}
			}
		}

		// 5行目
		// 未入力行はチェックしない
		if (!checkInput(idoSkKnkPrcKmkCd5, idoSkSeikyKeiNo5, idoSkKnkAmnt5))
		{
			if (!(idoSkKnkPrcKmkCd5.equals(knkStatKruk) || idoSkKnkPrcKmkCd5.equals(knkStatHmei)))
			{
				if (JCHWebCommon.isNotNullOrEmpty(idoSkSeikyKeiNo5) && JCHWebCommon.isNullOrEmpty(sohusNm5))
				{
					return true;
				}
			}
		}

		return false;
	}

	/**
	 * 指定したリストより選択位置の指定した名称を取得します。 <br>
	 * 
	 * @param bean 金庫移動情報Bean
	 * @param keyInfoMei 取得するinfo名称
	 * @param keyListMei 値リストを示すキー名称
	 * @param keySelMei 選択位置を示すキー名称
	 * @return 名称
	 */
	private String convSelIndexToTarget(X31SDataBeanAccess[] bean, String keyInfoMei, String keyListMei, String keySelMei)
	{

		X31SDataBeanAccess infoBean = bean[0].getDataBeanArray(keyInfoMei).getDataBean(0);

		return this.getValueFromListBySelIndex(infoBean, keyListMei, keySelMei);
	}

	/**
	 * 指定したリストより選択位置の値を取得します。 <br>
	 * 
	 * @param infoBean 値リスト、選択位置が格納されている親Bean
	 * @param keyList 値リストを示すキー
	 * @param keySel 選択位置を示すキー
	 * @return 名称
	 */
	private String getValueFromListBySelIndex(X31SDataBeanAccess infoBean, String keyList, String keySel)
	{

		String value = null;

		if (infoBean != null)
		{
			int idxSel;

			try
			{
				idxSel = Integer.parseInt(infoBean.sendMessageString(keySel, X31CWebConst.DATABEAN_GET_VALUE));
			}
			catch (NumberFormatException ex)
			{
				idxSel = -1;
			}

			if (idxSel >= 0)
			{
				value = infoBean.sendMessageString(keyList, X31CWebConst.DATABEAN_GET_VALUE, idxSel);
			}
		}

		return value;
	}

	/**
	 * 移動先金庫情報がすべて入力されている場合trueを返却します。 <br>
	 * 
	 * @param strIdoSkKnkStat　移動先金庫ステータス
	 * @param strSeikyKeiNo　移動先請求契約番号
	 * @param strIdoSkKnkAmnt　移動先金庫金額
	 * @return boolean
	 */
	private boolean checkInput(String strIdoSkKnkStat, String strSeikyKeiNo, String strIdoSkKnkAmnt) {

		if(strIdoSkKnkStat != null && strSeikyKeiNo != null && strIdoSkKnkAmnt != null
				&& !"".equals(strIdoSkKnkStat) && !"".equals(strSeikyKeiNo) && !"".equals(strIdoSkKnkAmnt)){
			return true;
		}
		return false;
	}
}
