/*********************************************************************
*	All Right reserved,Copyright (c) Fujitsu, 2011
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0366_KKSV0366OPDBMapper
*	ソースファイル名：KKSV0366_KKSV0366OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年09月26日
*＜機能概要＞
*	BP（eoモバイル登録確認）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/26	FJ		新規作成
*   v4.00.00    2012/08/08  FJ）川西   【ANK-0398-00-00】住所管理に伴う「例外登録」の管理追加対応
*   v4.01.00    2012/10/31  FJ) 薄出   【IT1-2012-0001640】住所手動入力対応
**********************************************************************/
package eo.web.webview.mapping;

import java.util.HashMap;

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.JKKStrConst;
import eo.web.webview.KKW00121SF.KKW00121SFConst;
import eo.web.webview.KKW00121SF.KKW00121SFLogic;
import eo.web.webview.common.JKKKeiNewCmnLogicUtil;

/**
 * DataBean-BPマッピングをする。
 * <br />
 * @author 富士通
 */
public class KKSV0366_KKSV0366OPDBMapper
{

	/**
	 * コンストラクタ
	 */
	public KKSV0366_KKSV0366OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：申込新規登録画面
	 * @param outputMap パラメータマップ
	 * @param func_code 機能コード
	 * @return パラメータマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV036601CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}

		if(bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		X31SDataBeanAccessArray mskmInfoBeanArray = bean[0].getDataBeanArray(KKW00121SFConst.SVC_MSKM_INFO);
		X31SDataBeanAccess subDataBean = mskmInfoBeanArray.getDataBean(KKW00121SFLogic.KKW00181_TAB_INDEX);

		// サービス契約番号
		parentMap.put("mobile_svc_kei_no", subDataBean.sendMessageString(KKW00121SFConst.SVC_KEI_NO_22, X31CWebConst.DATABEAN_GET_VALUE));
		// 審査結果通知
		parentMap.put("mobile_skekka_send_cd", subDataBean.sendMessageString(KKW00121SFConst.SKEKKA_TCHI_22, X31CWebConst.DATABEAN_GET_VALUE));
		// 審査結果コード（詳細）
		parentMap.put("mobile_skekka_dtl_cd", subDataBean.sendMessageString(KKW00121SFConst.SKEKKA_CD_DTAIL_22, X31CWebConst.DATABEAN_GET_VALUE));
		// 審査結果補記
		String skekkaHokiIndex = subDataBean.sendMessageString(KKW00121SFConst.SKEKKA_HOKI_22, X31CWebConst.DATABEAN_GET_VALUE);
		if ((skekkaHokiIndex != null) && (!"".equals(skekkaHokiIndex)))
		{
			X31SDataBeanAccess comboBean = bean[0].getDataBeanArray(KKW00121SFConst.SKEKKA_HOKI).getDataBean(0);
			parentMap.put("mobile_skekka_hoki_cd", comboBean.sendMessageString(KKW00121SFConst.SKEKKA_HOKI_CD_LIST_24,
					X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(skekkaHokiIndex)));
		}
		// 部品呼び出し → eoモバイル登録確認マップ.運用日付
		parentMap.put("ope_date", outputMap.get("ope_date"));
		// お客様一覧照会＿ＳＹＳＩＤ → eoモバイル登録確認マップ.ＳＹＳＩＤ
		parentMap.put("sysid", bean[0].sendMessageString(KKW00121SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		String svcKeiPcrsCd = JKKKeiNewCmnLogicUtil.getMobSvcKeiPcrsCd(bean[0]);
		// 部品呼び出し → eoモバイル登録確認マップ.料金コースコード
		parentMap.put("mobile_pcrs_cd", svcKeiPcrsCd);
		
		// Wifiスポット、メールアドレス以外の場合
		if (!JKKKeiNewCmnLogicUtil.CD00134_MOB_WIFI.equals(svcKeiPcrsCd) && !JKKStrConst.CD00134_MOB_MAIL.equals(svcKeiPcrsCd))
		{
			// 部品呼び出し → eoモバイル登録確認マップ.機器提供サービス＿料金コースコード
			parentMap.put("mobile_kktk_pcrs_cd", eo.web.webview.common.JKKWebCommon.convertCode(bean[0], KKW00121SFConst.MOBILE_KIKI_COURSE_CHOICE, KKW00121SFConst.MOBILE_KIKI_CD_38, KKW00121SFConst.MOBILE_KIKI_CD_LIST_38));
		}

		// 部品呼び出し → eoモバイル登録確認マップ.機器・書類送付先住所
		parentMap.put("mobile_kiki_sohus_ad_skbt", eo.web.webview.common.JKKWebCommon.convertCode(bean[0], KKW00121SFConst.MOBILE_KIKI_SOHUS_AD_SKBT,
				KKW00121SFConst.MOBILE_KIKI_SOHUS_AD_SKBT_CD_39, KKW00121SFConst.MOBILE_KIKI_SOHUS_AD_SKBT_CD_LIST_39));
		// モバイル機器送付先＿住所コード → eoモバイル登録確認マップ.機器送付先住所コード
		parentMap.put("mobile_kiki_sohus_ad_cd", bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → eoモバイル登録確認マップ.機器送付先郵便番号
		parentMap.put("mobile_kiki_sohus_pcd",
				bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
				 + bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 部品呼び出し → eoモバイル登録確認マップ.機器・機器送付先住所手動入力フラグ
		String mobileKikiShsAdManInputFlg = eo.web.webview.common.JKKKeiNewCmnLogicUtil.dataBeanGetBoolean(bean[0], KKW00121SFConst.MOBILE_KIKI_SOHUS_EXCEPTION_INPUT);
		
		if ("".equals(mobileKikiShsAdManInputFlg)) 
		{
			mobileKikiShsAdManInputFlg = JKKStrConst.AD_MAN_INPUT_NO;
		}
		parentMap.put("mobile_kiki_shs_ad_man_input_flg", mobileKikiShsAdManInputFlg);
		
		// モバイル機器送付先＿都道府県 → eoモバイル登録確認マップ.機器送付先都道府県名
		parentMap.put("mobile_kiki_sohus_state_nm", bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// モバイル機器送付先＿市区町村 → eoモバイル登録確認マップ.機器送付先市区町村名
		parentMap.put("mobile_kiki_sohus_city_nm", bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// モバイル機器送付先＿大字通称名 → eoモバイル登録確認マップ.機器送付先大字通称名
		parentMap.put("mobile_kiki_sohus_oaztsu_nm", bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// モバイル機器送付先＿字丁目 → eoモバイル登録確認マップ.機器送付先字丁目名
		parentMap.put("mobile_kiki_sohus_azcho_nm", bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// モバイル機器送付先＿番地・号 → eoモバイル登録確認マップ.機器送付先番地号
		parentMap.put("mobile_kiki_sohus_bnchigo", bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
		// モバイル機器送付先＿建物名等 → eoモバイル登録確認マップ.機器送付先住所補記・建物名
		parentMap.put("mobile_kiki_sohus_adrttm", bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
		// モバイル機器送付先＿部屋番号等 → eoモバイル登録確認マップ.機器送付先住所補記・部屋番号
		parentMap.put("mobile_kiki_sohus_adrrm", bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
		//**********↓UI残-810**********
		// 機器送付先名
		parentMap.put("mobile_kiki_sohus_nm",bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_SHS_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 機器送付先カナ名
		parentMap.put("mobile_kiki_sohus_kana",bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_SHS_NM_KANA, X31CWebConst.DATABEAN_GET_VALUE));
		// 機器送付先電話番号
		parentMap.put("mobile_kiki_sohus_telno",bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIKI_SOHUS_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		//**********↑UI残-810**********
		// モバイル＿記事欄 → eoモバイル登録確認マップ.モバイル記事欄
		parentMap.put("mobile_kijiran", bean[0].sendMessageString(KKW00121SFConst.MOBILE_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));

		//↓↓↓ 【IT1-2012-0001640】住所手動入力対応 FJ)薄出
		// 住所チェックレベル２  → eoモバイル登録確認マップ.機器送付先住所チェックレベル
		parentMap.put("mobile_kiki_sohus_ad_chk_lv", JKKStrConst.AD_CHK_LV2);
		//↑↑↑ 【IT1-2012-0001640】住所手動入力対応 FJ)薄出

		outputMap.put("KKSV036601CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：申込新規登録画面
	 * @param outputMap パラメータマップ
	 * @param func_code 機能コード
	 * @return パラメータマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV036602CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		X31SDataBeanAccessArray mskmInfoBeanArray = bean[0].getDataBeanArray(KKW00121SFConst.SVC_MSKM_INFO);
		X31SDataBeanAccess subDataBean = mskmInfoBeanArray.getDataBean(KKW00121SFLogic.KKW00181_TAB_INDEX);

		// 事務手数料(一時金設定コード)
		String jimuCommisionIndex = subDataBean.sendMessageString(KKW00121SFConst.JIMU_COMMISION_22, X31CWebConst.DATABEAN_GET_VALUE);
		if ((jimuCommisionIndex != null) && (!"".equals(jimuCommisionIndex)))
		{
			X31SDataBeanAccess comboBean = bean[0].getDataBeanArray(KKW00121SFConst.JIMU_COMMISION).getDataBean(0);
			parentMap.put("icjkn_sette_cd", comboBean.sendMessageString(KKW00121SFConst.JIMU_COMMISION_CD_LIST_25, X31CWebConst.DATABEAN_GET_VALUE,
					Integer.parseInt(jimuCommisionIndex)));
		}
		// 事務手数料（指定）
		parentMap.put("icjkn_shitei_amnt", subDataBean.sendMessageString(KKW00121SFConst.JIMU_COMMISION_SHITEI_22, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV036602CC", parentMap);

		return outputMap;
	}
}