/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *  システム名      ：契約管理システム
 *  モジュール名    ：オプションサービス契約履歴一覧照会
 *  ソースファイル名：KKW02304SFLogic.java
 *  作成者          ：富士通
 *  日付            ：2011年10月26日
 *＜機能概要＞
 *  オプションサービス契約履歴一覧照会
 *＜修正履歴＞
 *  バージョン 修正日    修正者   修正内容
 *  v1.00.00  2011/10/26 富士通   新規作成
 *
 **********************************************************************/
package eo.web.webview.KKW02304SF;

import java.util.HashMap;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

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.mapping.KKSV0324_KKSV0324OPDBMapper;

/**
 * オプションサービス契約履歴一覧照会<BR>
 * 
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW02304SFLogic extends JCCWebBusinessLogic
{

	/** ユーザデータのマップキー */
	private static final String KKSV032401CC = "KKSV032401CC";

	/** ページングのコマンドID */
	private static final String COMMAND_ID_PAGING = "paging";

	/** 0 */
	private static final String TABLE_IDX_0 = "0";

	/**
	 * 照会画面初期表示処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean actionInit() throws Exception
	{
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		// セッション情報読み込み
		JCCWebCommon.getScreenInfo(this);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		// 一覧検索処理
		searchList(svcFormBean, true);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * ページングを実施します。<br />
	 * 
	 * @return true:正常
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean actionPaging() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		// 一覧検索処理
		searchList(bean, false);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 検索結果を返却します。<br />
	 * 
	 * @param bean
	 *            サービスフォームビーン
	 * @param pageReset
	 *            ページャリセットフラグ
	 */
	private void searchList(X31SDataBeanAccess bean, boolean pageReset)
	{
		X31SDataBeanAccess[] paramBean =
		{
			bean
		};

		// HashMap定義
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0324);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0324OP);

		bean.getDataBeanArray(KKW02304SFConst.OP_SVC_RIREKI_LIST).clearArray();

		// 上りマッピング
		KKSV0324_KKSV0324OPDBMapper mapper = new KKSV0324_KKSV0324OPDBMapper();
		mapper.setKKSV032401CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);

		// ページ番号のリセット
		if (pageReset)
		{
			JCCWebCommon.clearPageLinkInfo(this, "KKW02304");
		}

		// ページリンク情報の上りマッピング
		JCCWebCommon.upmapperPageLinkInfo(this, TABLE_IDX_0, KKSV032401CC, inputMap);

		// サービス契約内訳＜eo光電話＞一覧照会サービス実行
		invokeService(paramMap, inputMap, outputMap);

		// 下りマッピング
		mapper.getKKSV032401CC(paramBean, outputMap);

		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, TABLE_IDX_0, KKSV032401CC, outputMap);

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, COMMAND_ID_PAGING);
	}

	/**
	 * ソートリンク処理を行います。 <br>
	 * 
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionSort() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean =
		{
			bean
		};

		setOrderByItem(paramBean);

		searchList(bean, true);

		return true;

	}

	/**
	 * @param paramBean
	 */
	private void setOrderByItem(X31SDataBeanAccess[] paramBean)
	{
		// ソート番号の取得
		String sort_num = paramBean[0].sendMessageString(KKW02304SFConst.SORT_NUM, X31CWebConst.DATABEAN_GET_VALUE);
		// ソート項目
		paramBean[0].sendMessageString(KKW02304SFConst.SORT_ITEM, X31CWebConst.DATABEAN_SET_VALUE, sort_num);
	}

	/**
	 * <dd>メソッド名：戻る処理
	 * <dd>メソッド説明：戻るボタン押下時の処理を行う。
	 * <dd>備考：なし。
	 * @return boolean　true
	 * @throws Exception 例外
	 */
	public boolean actionReturn() throws Exception 
	{
		// 遷移先情報の設定
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCCWebCommon.getScreenId(this));

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}
}
