/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom, 2011
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：契約管理
 *   モジュール名    ：CASHPOST登録画面
 *   ソースファイル名：KKW22401SFLogic.java
 *   作成者          ：FJ
 *   日付            ：2019年05月08日
 *＜機能概要＞
 *   CASHPOST登録画面ビューロジックです。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v44.00.00	 2019/05/08   FJ）澤田	  新規作成【ANK-3610-00-00】CASHPOST登録
 *   v46.00.00	 2019/10/08   FJ）岡井	  【ANK-3704-00-00】CASHPOST連携機能開発
 *   v49.00.00	 2020/04/08   FJ）岡井	  【ANK-3837-00-00】CASHPOST連携：住所変更時のCP付け替え機能
 *   v57.00.00	 2022/02/07	  FJ) 平野	  【ANK-4193-00-00】CASHPOSTお客さま受取結果反映
 **********************************************************************/
package eo.web.webview.KKW22401SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKStringUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0934_KKSV0934OPDBMapper;
import eo.web.webview.mapping.KKSV0935_KKSV0935OPDBMapper;
import eo.web.webview.mapping.KKSV0936_KKSV0936OPDBMapper;
import eo.web.webview.mapping.KKSV0997_KKSV0997OPDBMapper;

/**
 * CASHPOST登録画面ビューロジック.
 * <p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW22401SFLogic extends JCCWebBusinessLogic 
{	
	/** 改行文字列 */
	public static final String KAIGYOU = "\r\n";
	
	/** 金額 */
	public static final String MONEY = "金額";
	
	/** コロン */
	public static final String KORON = "：";
	
	/** 登録してもよろしいでしょうか？ */
	public static final String MONGON = "登録してもよろしいでしょうか？";
	
	/** 円で入力されています。 */
	public static final String MONGON_2 = "円で入力されています。";
	
	// ANK-3837-00-00 ADD START
	/** キャンペーンＩＤの付け替えを実施します。 */
	public static final String MONGON_3 = "キャンペーンＩＤの付け替えを実施します。";
	
	/** よろしいでしょうか？ */
	public static final String MONGON_4 = "よろしいでしょうか？";
	// ANK-3837-00-00 ADD END
	// ANK-4193-00-00 ADD START
	// 0:正常終了
	public static final String RETURN_SEIJYO = "0";
	// ANK-4193-00-00 ADD END
	/**
	 * 初期表示処理
	 * @return 正常終了:true 異常修了:false
	 * @throws Exception Exception
	 */
	public boolean actionInit() throws Exception
	{
		// DataBeanログ出力
		// 跨り関係のない画面からの遷移にあたって
		// 跨り関係のない画面および自画面が設定した受け渡し情報をSFBeanに設定。
		
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 遷移元
		String baseScreenId = JCCWebCommon.getScreenId(this,  JKKScreenConst.SCREEN_ID_KKW22401);
		// 割引サービス契約一覧照会 
		if (JKKScreenConst.SCREEN_ID_KKW01021.equals(baseScreenId))
		{
			// 確定ボタンを活性化する
			bean.sendMessageString(KKW22401SFConst.FIX_DISABLED_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		}
		
		//サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		if (svcFormBean == null)
		{
			throw new Exception();
		}		
		///// セッション情報取得 /////
		JCCWebCommon.getScreenInfo(this);
		
		
		X31SDataBeanAccessArray custKeiHktgiList =  bean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
		
		// SYSID
		String sysId = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE);

		bean.sendMessageString(KKW22401SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, sysId);

		// マッピング用paramBeanセット
		X31SDataBeanAccess[] paramBean = {svcFormBean};

		// ユースケースID格納用マップ
		Map<String, Object> paramMap = new HashMap<String, Object>();

		// ユースケースID格納用マップに情報を設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0934);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0934OP);

		// 条件格納用マップ
		HashMap<String, Object> inputMap = null;
		inputMap = new HashMap<String, Object>();		//データマップ

		// 処理結果格納用マップ
		HashMap<String, Object> outputMap = null;
		outputMap = new HashMap<String, Object>();		//結果格納用マップ

		// マッピングクラス
		KKSV0934_KKSV0934OPDBMapper mapper = new KKSV0934_KKSV0934OPDBMapper();

//		// 上りマッピング
		mapper.setKKSV093401CC(paramBean, inputMap);

		// サービス実行
		invokeService(paramMap, inputMap, outputMap);

//		// 下りマッピング
		mapper.getKKSV093401CC(paramBean, outputMap);
		
		//共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW22401);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW22401);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;

	}
	
	/**
	 * 検索ボタン
	 * 
	 * @return 処理結果
	 * @throws Exception
	 */
	public boolean search() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { bean };
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0935_KKSV0935OPDBMapper mapper = new KKSV0935_KKSV0935OPDBMapper();
		// 変数の定義
		HashMap<String, Object> paramMap  = new HashMap<String, Object>();
		
		HashMap<String, Object> inputMap  = new HashMap<String, Object>();
		HashMap<String, Object> outputMap  = new HashMap<String, Object>();
		
		//確定フラグを初期値に戻す
		bean.sendMessageString(KKW22401SFConst.FIX_FLG, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW22401SFConst.MESSGE, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// ANK-3837-00-00 ADD START
		// 付け替え選択状態を初期値に戻す
		bean.sendMessageBoolean(KKW22401SFConst.TKE_SEL, X31CWebConst.DATABEAN_SET_VALUE, false);
		// ANK-3837-00-00 ADD END
		
		// ユースケースID格納用マップに情報を設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0935);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0935OP);
		
		//  → ＫＥＹ＿svc_kei_no
		//テキストボックスが空の場合、セレクトボックスで選択したサービス契約番号で検索
		if (JKKStringUtil.isNullBlank(paramBean[0].sendMessageString(KKW22401SFConst.SVC_KEI_NO_TXT, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			X31SDataBeanAccessArray svcKeiNoList = paramBean[0].getDataBeanArray(KKW22401SFConst.SVC_KEI_NO_SEL);
			X31SDataBeanAccess svcKeiNoBean = svcKeiNoList.getDataBean(0);
			int svcKeiNoIndex = Integer.parseInt(svcKeiNoBean.sendMessageString(KKW22401SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));

			String svcKeiNo = svcKeiNoBean.sendMessageString(KKW22401SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, svcKeiNoIndex);
			bean.sendMessageString(KKW22401SFConst.SVC_KEI_NO_SEARCH, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
		}
		//テキストボックスで入力したサービス契約番号で検索
		else
		{
			X31SDataBeanAccessArray svcKeiNoList = paramBean[0].getDataBeanArray(KKW22401SFConst.SVC_KEI_NO_SEL);
			X31SDataBeanAccess svcKeiNoBean = svcKeiNoList.getDataBean(0);
			String svcKeiNoTxt = paramBean[0].sendMessageString(KKW22401SFConst.SVC_KEI_NO_TXT, X31CWebConst.DATABEAN_GET_VALUE);
			boolean bol = false;
			// セレクトボックスのチェック
			int cnt = (Integer)svcKeiNoBean.sendMessage(KKW22401SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_COUNT);

			for (int i = 0; i < cnt; i++)
			{
				String svcKeiNo = svcKeiNoBean.sendMessageString(KKW22401SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);
				if (svcKeiNo.equals(svcKeiNoTxt))
				{
					bol = true;
				}
			}
			//テキストボックスに存在しない場合
			if (!bol)
			{
				// メッセージを設定
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB5580_KW, new String[]{ "お客さまID"}, "svc_kei_no_txt");
				return false;
			}
			
			bean.sendMessageString(KKW22401SFConst.SVC_KEI_NO_SEARCH, X31CWebConst.DATABEAN_SET_VALUE, paramBean[0].sendMessageString(KKW22401SFConst.SVC_KEI_NO_TXT, X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		mapper.setKKSV093501CC(paramBean, inputMap);
		
		invokeService(paramMap, inputMap, outputMap);
		
		// 取得情報の下りマッピング
		mapper.getKKSV093501CC(paramBean, outputMap);
		
		//送金可能キャンペーン一覧
		X31SDataBeanAccessArray cashpost_rnki_list = bean.getDataBeanArray(KKW22401SFConst.CASHPOST_RNKI_LIST);
		//検索対象に紐づいたCASHPOSTマスタに登録されていない場合エラー
		if (cashpost_rnki_list.getCount() == 0)
		{
			// メッセージを設定
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4680_NW, new String[]{ "選択されたサービス","CASHPOST"}, "svc_kei_no_com");
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4680_NW, new String[]{ "選択されたサービス","CASHPOST"}, "svc_kei_no_txt");
			return false;
		}
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		// 自画面の画面名を設定
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW22401);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW22401);

		return true;
	}
	
	/**
	 * 確定ボタン
	 * 
	 * @return 処理結果
	 * @throws Exception
	 */
	public boolean fix() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { bean };
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0936_KKSV0936OPDBMapper mapper = new KKSV0936_KKSV0936OPDBMapper();
		// 変数の定義
		HashMap<String, Object> paramMap  = new HashMap<String, Object>();
		
		HashMap<String, Object> inputMap  = new HashMap<String, Object>();
		HashMap<String, Object> outputMap  = new HashMap<String, Object>();
		
		String fixFlg =  bean.sendMessageString(KKW22401SFConst.FIX_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		//確定フラグが1以外の場合は、メッセージの出力編集を行う。
		if (!"1".equals(fixFlg))
		{
			//送金可能キャンペーン一覧
			X31SDataBeanAccessArray datalist = bean.getDataBeanArray(KKW22401SFConst.CASHPOST_RNKI_LIST);
			String msgBox = "";

			// ANK-3837-00-00 ADD START
			Boolean tkeSel = bean.sendMessageBoolean(KKW22401SFConst.TKE_SEL, X31CWebConst.DATABEAN_GET_VALUE);

			if (tkeSel)
			{
				// 付け替えが選択されている場合
				msgBox = MONGON_3 + KAIGYOU + KAIGYOU + MONGON_4;
			}
			// ANK-3837-00-00 ADD END
			else
			{
				// 付け替えが選択されていない場合
				for (int i = 0; i < datalist.getCount(); i++)
				{
					X31SDataBeanAccess dataBean = datalist.getDataBean(i);
					// 引き継ぎの情報（自画面用）を格納するMAPを生成する
					Boolean sel = dataBean.sendMessageBoolean(KKW22401SFConst.SELECTED_BOOLEAN_02, X31CWebConst.DATABEAN_GET_VALUE);
					Boolean bk_sel = dataBean.sendMessageBoolean(KKW22401SFConst.BK_SELECTED_BOOLEAN_02, X31CWebConst.DATABEAN_GET_VALUE);
					String sohuAmnt = dataBean.sendMessageString(KKW22401SFConst.AMNT_02, X31CWebConst.DATABEAN_GET_VALUE);
					sohuAmnt = sohuAmnt.replaceAll(",", "");
					String bkSohuAmnt = dataBean.sendMessageString(KKW22401SFConst.BK_AMNT_02, X31CWebConst.DATABEAN_GET_VALUE);
					bkSohuAmnt = bkSohuAmnt.replaceAll(",", "");
					//未選択⇒選択　登録処理
					if (bk_sel == false && sel == true)
					{
						if (JKKStringUtil.isNullBlank(msgBox))
						{
							msgBox = dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CD_02, X31CWebConst.DATABEAN_GET_VALUE) + KORON + dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CAMPAIGN_NM_02, X31CWebConst.DATABEAN_GET_VALUE) + "を登録します。";
							msgBox = msgBox + KAIGYOU + MONEY + dataBean.sendMessageString(KKW22401SFConst.AMNT_02, X31CWebConst.DATABEAN_GET_VALUE) + MONGON_2;
						}
						else
						{
							msgBox = msgBox + KAIGYOU;
							msgBox = msgBox + KAIGYOU + dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CD_02, X31CWebConst.DATABEAN_GET_VALUE) + KORON + dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CAMPAIGN_NM_02, X31CWebConst.DATABEAN_GET_VALUE) + "を登録します。";
							msgBox = msgBox + KAIGYOU + MONEY + dataBean.sendMessageString(KKW22401SFConst.AMNT_02, X31CWebConst.DATABEAN_GET_VALUE) + MONGON_2;
						}
					}
					//選択⇒選択 更新処理
					else if (bk_sel == true && sel == true)
					{
						//金額を変更した場合だけ　更新する
						if (!sohuAmnt.equals(bkSohuAmnt))
						{
							if (JKKStringUtil.isNullBlank(msgBox))
							{
								msgBox = dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CD_02, X31CWebConst.DATABEAN_GET_VALUE) + KORON + dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CAMPAIGN_NM_02, X31CWebConst.DATABEAN_GET_VALUE) + "を登録します。";
								msgBox = msgBox + KAIGYOU + MONEY + dataBean.sendMessageString(KKW22401SFConst.AMNT_02, X31CWebConst.DATABEAN_GET_VALUE) + MONGON_2;
							}
							else
							{
								msgBox = msgBox + KAIGYOU;
								msgBox = msgBox + KAIGYOU + dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CD_02, X31CWebConst.DATABEAN_GET_VALUE) + KORON + dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CAMPAIGN_NM_02, X31CWebConst.DATABEAN_GET_VALUE) + "を登録します。";
								msgBox = msgBox + KAIGYOU + MONEY + dataBean.sendMessageString(KKW22401SFConst.AMNT_02, X31CWebConst.DATABEAN_GET_VALUE) + MONGON_2;
							}
						}
					}
					//選択⇒未選択 削除処理
					else if (bk_sel == true && sel == false)
					{
						if (JKKStringUtil.isNullBlank(msgBox))
						{
							msgBox = dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CD_02, X31CWebConst.DATABEAN_GET_VALUE) + KORON + dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CAMPAIGN_NM_02, X31CWebConst.DATABEAN_GET_VALUE) + "を取消します。";
						}
						else
						{
							msgBox = msgBox + KAIGYOU;
							msgBox = msgBox + KAIGYOU + dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CD_02, X31CWebConst.DATABEAN_GET_VALUE) + KORON + dataBean.sendMessageString(KKW22401SFConst.CASHPOST_CAMPAIGN_NM_02, X31CWebConst.DATABEAN_GET_VALUE) + "を取消します。";
						}
					}
				}
				
				msgBox = msgBox + KAIGYOU + KAIGYOU + MONGON;
			}

			// ポップアップのメッセージを設定
			bean.sendMessageString(KKW22401SFConst.MESSGE, X31CWebConst.DATABEAN_SET_VALUE, msgBox);

			// 自画面の画面名を設定
			X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW22401);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW22401);
			return true;
		}
		else
		{
			//確定フラグを初期値に戻す
			bean.sendMessageString(KKW22401SFConst.FIX_FLG, X31CWebConst.DATABEAN_SET_VALUE, "");
			bean.sendMessageString(KKW22401SFConst.MESSGE, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		// ユースケースID格納用マップに情報を設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0936);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0936OP);
		
		mapper.setKKSV093601CC(paramBean, inputMap);
		
		invokeService(paramMap, inputMap, outputMap);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		// ANK-3704-00-00 ADD START
		if (!chkFix(outputMap, bean))
		{
			// チェックエラー
			return false;
		}
		// ANK-3704-00-00 ADD END
		
		//確定フラグを初期値に戻す
		bean.sendMessageString(KKW22401SFConst.FIX_FLG, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW22401SFConst.MESSGE, X31CWebConst.DATABEAN_SET_VALUE, "");
		//検索押下後に処理をおこなう。
		search();
		//完了メッセージを出力
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[]{ "登録"});
		
		// 自画面の画面名を設定
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW22401);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW22401);

		return true;
	}
	
	/**
	 * <dd>メソッド名：戻るボタン押下 <dd>メソッド説明：一覧照会画面の戻るボタン押下時処理を行う。 <dd>備考：なし。
	 * 
	 * @param
	 * @return true
	 */
	@SuppressWarnings("unchecked")
	public boolean actionReturn()
	{
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		return true;
	}

	// ANK-3704-00-00 ADD START
	/**
	 * 確定ボタン押下時のチェック結果判定処理です。
	 * ※2重登録用：ほぼ入ることはないが念のためチェック対象としておく
	 * 
	 * @param outputMap サービス結果
	 * @return チェック結果
	 */
	@SuppressWarnings("unchecked")
	private boolean chkFix(HashMap outputMap, X31SDataBeanAccess bean)
	{
		boolean result = true;

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV093601CC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV093601CC");
		}

		String errItem = (String) parentMap.get("err_item");

		// 合計最大還元額超過チェック
		if ("gokei_max_kangen_amnt".equals(errItem))
		{
			ArrayList errOyaNoList = (ArrayList) parentMap.get("err_info");
			X31SDataBeanAccessArray cashpostRnkiList = bean.getDataBeanArray(KKW22401SFConst.CASHPOST_RNKI_LIST);

			for (int i = 0; i < errOyaNoList.size(); i++)
			{
				HashMap errMap = (HashMap) errOyaNoList.get(i);
				String errOyaNo = (String) errMap.get("err_oya_no");

				for (int j = 0; j < cashpostRnkiList.getCount(); j++)
				{
					X31SDataBeanAccess dataBean = cashpostRnkiList.getDataBean(j);
					String oyaNo = dataBean.sendMessageString(KKW22401SFConst.OYA_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
					boolean sel = dataBean.sendMessageBoolean(KKW22401SFConst.SELECTED_BOOLEAN_02, X31CWebConst.DATABEAN_GET_VALUE);

					// エラーとなった親番号に紐づく金額入力項目を赤くする
					if (errOyaNo.equals(oyaNo) && sel)
					{
						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1040_JW, new String[]{"親番号毎の合計金額", "親番最大還元額超過", "登録"},
								"amnt" + j);
					}
				}
			}

			result = false;
		}

		return result;
	}
	// ANK-3704-00-00 ADD END
	// ANK-4193-00-00 ADD START
	/**
	 * 取得ボタン押下時処理
	 * 
	 * @return 処理結果
	 */
	public boolean actGetSokinStatus()throws Exception
	{
		// ユースケースID格納用のHashMap
		HashMap<String, Object> paramMap = null;
		// マッピングクラスの結果を格納するHashMap
		HashMap<String, Object> inputMap = null;
		// サービス呼出結果を格納するHashMap
		HashMap<String, Object> outputMap = null;
		
		paramMap = new HashMap<String, Object>(); // パラメタマップ生成
		inputMap = new HashMap<String, Object>(); // インプットマップ生成
		outputMap = new HashMap<String, Object>(); // アウトプットマップ生成
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		KKSV0997_KKSV0997OPDBMapper mapper = new KKSV0997_KKSV0997OPDBMapper();
		// マッピング用Bean作成
		X31SDataBeanAccess[] paramBean =
		{
			svcFormBean
		};
		
		// 送金ステータス取得用サイト管理番号
		String sokinStatusGetSiteKanriNo = svcFormBean.sendMessageString(KKW22401SFConst.SOKIN_STATUS_GET_SITE_KANRI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 送信済キャンペーン一覧を取得
		X31SDataBeanAccessArray cashPostSendList = svcFormBean.getDataBeanArray(KKW22401SFConst.CASHPOST_SEND_LIST);
		for (int j = 0; j < cashPostSendList.getCount(); j++)
		{
			X31SDataBeanAccess cashPostSendListBean = cashPostSendList.getDataBean(j);
			//一覧のサイト管理番号を取得
			String siteKanriNo = cashPostSendListBean.sendMessageString(KKW22401SFConst.SITE_KANRI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			if(siteKanriNo != null &&!"".equals(siteKanriNo))
			{
				// 一覧のサイト管理番号と返却値のサイト管理番号が同一の場合
				if(siteKanriNo.equals(sokinStatusGetSiteKanriNo))
				{
					// 送金ステータスをクリア
					cashPostSendListBean.sendMessageString(KKW22401SFConst.SOKIN_STATUS, X31CWebConst.DATABEAN_SET_VALUE, "");
				}
			}
		}
		mapper.setKKSV099701CC(paramBean,inputMap,sokinStatusGetSiteKanriNo); 
		
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0997);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0997OP);
		
		// サービス呼出処理
		invokeService(paramMap, inputMap, outputMap);
		
		// 処理結果の取得
		HashMap<String, Object> execute_info = new HashMap<String, Object>();
		execute_info = (HashMap<String, Object>)outputMap.get("KKSV099701CC");
		// 処理結果コード
		String trnResultCd = (String)execute_info.get("trn_rslt_cd");
		// 結果コード
		String resultKekkaCd = (String)execute_info.get("out_result");
		// ステータス
		String resultStatus = (String)execute_info.get("out_status");
		// サイト管理番号
		String resultSiteKanriNo = (String)execute_info.get("out_orderno");
		// 結果内容
		String resultContent = (String)execute_info.get("out_resultcontent");
		// 送金ステータス表示用
		String sokinStatus = (String)execute_info.get("sokin_status_nm");
		
		
		// 処理結果コードが0(正常）以外であればメッセージを表示
		if (!(RETURN_SEIJYO.equals(trnResultCd))){
		
			// エラーメッセージを表示
			String[] errMsg = { "取得先との接続エラー","送金ステータスを取得"};
			// EKBE194-KW_%1%により%2%できません。
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBE194_KW, errMsg);
		}
		else
		{
			//結果コードが正常の際
			if(RETURN_SEIJYO.equals(resultKekkaCd))
			{
				// 送信ステータス表示用名称が取得できない場合
				if(sokinStatus==null || "".equals(sokinStatus))
				{
					// エラーメッセージを表示
					String[] errMsg2 = 
					{
						resultStatus
					};
					// EKBF640-KW_未定義のステータスが返却されました。（%1%）
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBF640_KW, errMsg2 );
				}
				else
				{
					// 送信済キャンペーン一覧を取得
					for (int j = 0; j < cashPostSendList.getCount(); j++)
					{
						X31SDataBeanAccess cashPostSendListBean = cashPostSendList.getDataBean(j);
						//一覧のサイト管理番号を取得
						String siteKanriNo = cashPostSendListBean.sendMessageString(KKW22401SFConst.SITE_KANRI_NO, X31CWebConst.DATABEAN_GET_VALUE);
						if(siteKanriNo != null &&!"".equals(siteKanriNo))
						{
							// 一覧のサイト管理番号と返却値のサイト管理番号が同一の場合
							if(siteKanriNo.equals(resultSiteKanriNo))
							{
								// 送金ステータスを設定
								cashPostSendListBean.sendMessageString(KKW22401SFConst.SOKIN_STATUS, X31CWebConst.DATABEAN_SET_VALUE, sokinStatus);
							}
						}
					}
				}
			}
			// 結果コードが正常以外の際
			else
			{
				// エラーメッセージを表示
				String[] errMsg3 = 
				{
						resultContent
				};
				// EKBF630-KW_ステータス取得に失敗しました。（%1%）
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBF630_KW, errMsg3 );
			}
		}
		
		//共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW22401);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW22401);
		return true;
		
	}
	// ANK-4193-00-00 ADD END
}
