/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom						 *
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW05908SFLogic
*   ソースファイル名：KKW05908SFLogic.java
*   作成者          ：FJ
*   日付            ：2012年01月30日
*＜機能概要＞
*   機器提供サービス契約機器変更画面のビューロジックです
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*	v3.00.00	2012/08/20	FJ）庭山	【ST2-2012-0001567】対応
*	v4.00.00	2013/02/07	FJ）間瀬	【IT1-2013-0000132】対応
*
**********************************************************************/

package eo.web.webview.KKW05908SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.util.JPCUtilCommon;
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.KKSV0472_KKSV0472OPDBMapper;
import eo.web.webview.mapping.KKSV0473_KKSV0473OPDBMapper;

/**
 * 面開発案件情報登録のビューロジックです.
 * 
 * @author 富士通
 */
public class KKW05908SFLogic extends JCCWebBusinessLogic 
{
	
	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean init() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		//セッションデータ取得
		HashMap<String, Object> parameterMap = JCCWebCommon.getScreenInfo(this);
		// セッションの面開発案件番号を取得
		bean.sendMessageString(KKW05908SFConst.MNKHT_ANKEN_NO,
								X31CWebConst.DATABEAN_SET_VALUE,
								(String)parameterMap.get(KKW05908SFConst.MNKHT_ANKEN_NO));
		
		// オンライン運用日付取得
		String ope_date = JCCWebCommon.getOpeDate(this, null);
		bean.sendMessageString(KKW05908SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, ope_date);
		
		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0472");
		
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// コンボ情報取得
		X31SDataBeanAccess[] paramBean = { bean };
		
		KKSV0472_KKSV0472OPDBMapper mapper = new KKSV0472_KKSV0472OPDBMapper();
		mapper.setKKSV047201SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047202SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047203SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047204SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		mapper.getKKSV047201SC(paramBean, outputMap);	// 面開発案件情報
		mapper.getKKSV047202SC(paramBean, outputMap);	// 面開発保証金情報
		mapper.getKKSV047203SC(paramBean, outputMap);	// 面開発担当者情報
		mapper.getKKSV047204SC(paramBean, outputMap);	// 割引サービス一意照会
		
		// 郵便番号を表示用に加工
		String strPcd = bean.sendMessageString(KKW05908SFConst.PCD, X31CWebConst.DATABEAN_GET_VALUE);
		if (strPcd.length() == 7)
		{
			StringBuffer stbPcd = new StringBuffer();
			stbPcd.append("〒");
			stbPcd.append(JPCUtilCommon.hyhunPcd(strPcd));
			bean.sendMessageString(KKW05908SFConst.PCD_DISP, X31CWebConst.DATABEAN_SET_VALUE, stbPcd.toString());
		}
		
		// 住所コードを表示用に加工
		String strAdCd = bean.sendMessageString(KKW05908SFConst.AD_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if (strAdCd.length() == 11)
		{
			bean.sendMessageString(KKW05908SFConst.AD_CD_DISP, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.hyhunAdCd(strAdCd));
		}

		// メッセージエリアにインフォメーションを表示する。
		// EKB0370--I：＜＜　以下の内容で%1%を行います。よろしいですか？　＞＞
		JCCWebCommon.setMessageInfo(this, "EKB0370--I", new String[]{"面開発案件情報の削除"});
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05908);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05908);
		
		return true;
	}
	
	/**
	 * 確定ボタン押下で入力内容を確認し、次画面へ遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	public boolean delFix() throws Exception
	{
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		/* ++++++++++ v4.00.00 修正開始 ++++++++++ */
//		ArrayList<HashMap<String, Object>> fileInfoList = JCCWebCommon.getFileInfoArray(this); 
//		for (int i = 0; i < fileInfoList.size(); i++)
//		{
//			HashMap fileInfoMap = fileInfoList.get(i);
//			String renbanKey = (String)fileInfoMap.get("fileKey");
//			String fileName = (String)fileInfoMap.get("fileName");
//			
//			bean.sendMessageString(KKW05908SFConst.ANKEN_NM, X31CWebConst.DATABEAN_SET_VALUE, renbanKey);
//			bean.sendMessageString(KKW05908SFConst.ANKEN_KANA, X31CWebConst.DATABEAN_SET_VALUE, fileName);
//		}
		/* ++++++++++ v4.00.00 修正終了 ++++++++++ */

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 検索処理のユースケースID格納用マップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// 共通情報の設定
		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
		
		// 更新のデータBeanとBPをマッピングするインスタンスを生成
		KKSV0473_KKSV0473OPDBMapper mapper = new KKSV0473_KKSV0473OPDBMapper();
		
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0473");
		
		mapper.setKKSV047301SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047302CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047303CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setKKSV047304SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		
		// サービスの呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// 面開発案件情報一覧照会（複合検索）SCマップ.面開発担当者一覧照会（面開発案件番号）明細を取得
		ArrayList<HashMap<String, Object>> list = (ArrayList<HashMap<String, Object>>)outputMap.get("KKSV047301SC").get("EKK0271B001CBSMsg1List");
		String kariAddZumiCnt = "";
		if (list != null)
		{
			for(int i = 0; i < list.size(); i++)
			{
				// 仮登録件数を取得
				kariAddZumiCnt = (String)list.get(i).get("kari_add_zumi_cnt");
			}
		}
		
		// 遷移先画面の設定
		if ("".equals(kariAddZumiCnt) || "0".equals(kariAddZumiCnt))
		{
			// 自画面に表示するメッセージを設定する。
			// EKB4390--I：＜＜%1%が完了しました。＞＞
			JCCWebCommon.setMessageInfo(this, "EKB4390--I", new String[]{"面開発案件情報の削除"});
			
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05909);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05909);
		}
		else
		{
			// 自画面に表示するメッセージを設定する。
			JCCWebCommon.setMessageInfo(this, "EKB5130-KW");
			// 画面遷移
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05908);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW05908);
		}
		
		return true;
	}
	
	/**
	 * 戻るボタン押下処理です。
	 * <br>
	 * @return boolean　処理の成否。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public boolean back() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 遷移先画面情報を設定します
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05901);
		return true;
	}
	
	/**
	 * 完了ボタン押下処理です。
	 * <br>
	 * @return boolean　処理の成否。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public boolean delFin() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 遷移先画面情報を設定します
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW05901);
		return true;
	}
}
