/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：KKSV0472_KKSV0472OPDBMapper
 *	ソースファイル名：KKSV0472_KKSV0472OPDBMapper.java
 *	作成者			：Fujitsu
 *	日付			：2012年02月01日
 *＜機能概要＞
 *	BP（面開発案件情報削除初期表示）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2012/02/01	Fujitsu		新規作成
 *
 **********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
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.web.webview.KKW05908SF.KKW05908SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0472_KKSV0472OPDBMapper {

	/**
	 * コンストラクタ
	 */
	public KKSV0472_KKSV0472OPDBMapper() {
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean
	 *            　[0]：面開発案件情報削除
	 * @param outputMap
	 * @param func_code
	 *            　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV047201SC(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);

		// 面開発案件番号 → 面開発案件一意取得SCマップ.ＫＥＹ＿面開発案件番号
		parentMap.put("key_menkaihat_anken_no", bean[0].sendMessageString(KKW05908SFConst.MNKHT_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV047201SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean
	 *            　[0]：面開発案件情報削除
	 * @param outputMap
	 * @param func_code
	 *            　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV047202SC(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);

		// 面開発案件番号 → 面開発保証金一覧取得SCマップ.ＫＥＹ＿面開発案件番号
		parentMap.put("key_menkaihat_anken_no", bean[0].sendMessageString(KKW05908SFConst.MNKHT_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV047202SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean
	 *            　[0]：面開発案件情報削除
	 * @param outputMap
	 * @param func_code
	 *            　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV047203SC(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);

		// 面開発案件番号 → 面開発担当者一覧取得SCマップ.ＫＥＹ＿面開発案件番号
		parentMap.put("key_menkaihat_anken_no", bean[0].sendMessageString(KKW05908SFConst.MNKHT_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV047203SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：面開発案件情報削除
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV047204SC(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);

		// 基準日 → 割引サービス一意照会SCマップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV047204SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean
	 *            　[0]：面開発案件情報削除
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV047201SC(X31SDataBeanAccess[] bean,
			HashMap outputMap) {

		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV047201SC")) {
			parentMap = (HashMap) outputMap.get("KKSV047201SC");
		}

		if (parentMap.containsKey("EKK0271A010CBSMsg1List")) {
			ArrayList childList = (ArrayList) parentMap
					.get("EKK0271A010CBSMsg1List");

			if (0 != childList.size()) {
				HashMap childMap = (HashMap) childList.get(0);

				// 案件名 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.案件名
				bean[0].sendMessageString(KKW05908SFConst.ANKEN_NM, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("anken_nm"));
				// 案件カナ名 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.案件カナ名
				bean[0].sendMessageString(KKW05908SFConst.ANKEN_KANA, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("anken_kana"));
				// ディベロッパー名 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.ディベロッパー名
				bean[0].sendMessageString(KKW05908SFConst.DEVELOPER_NM, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("developer_nm"));
				// 物件名 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.物件名
				bean[0].sendMessageString(KKW05908SFConst.BKN_NM, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("bukken_nm"));
				// 覚書有効期限 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.覚書有効期限年月日
				bean[0].sendMessageString(KKW05908SFConst.OBOEGAKI_YK_KIGEN, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("oboegaki_yk_kigen_ymd"));
				// 分譲戸数 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.分譲戸数
				bean[0].sendMessageString(KKW05908SFConst.BUNJO_KOSU, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("bunjo_kosu"));
//				// キャンペーンコード ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.割引サービスコード
//				bean[0].sendMessageString(KKW05908SFConst.CMP_CD, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("wrib_svc_cd"));
				// 獲得チャネル ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.獲得チャネルコード名称
				bean[0].sendMessageString(KKW05908SFConst.KAKUTOKU_CHANNEL, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("kakutoku_channel_cd_nm"));
				// 標準サービス区分 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.標準サービス区分名称
				bean[0].sendMessageString(KKW05908SFConst.STDARD_SVC_DIV, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("stdard_svc_div_nm"));
				// 住所コード ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.面開発案件住所コード
				bean[0].sendMessageString(KKW05908SFConst.AD_CD, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_anken_ad_cd"));
				// 郵便番号 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.面開発案件郵便番号
				bean[0].sendMessageString(KKW05908SFConst.PCD, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_anken_pcd"));
				// 都道府県 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.面開発案件都道府県名
				bean[0].sendMessageString(KKW05908SFConst.STATE, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_anken_state_nm"));
				// 市区町村 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.面開発案件市区町村名
				bean[0].sendMessageString(KKW05908SFConst.CITY, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_anken_city_nm"));
				// 大字通称名 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.面開発案件大字通称名
				bean[0].sendMessageString(KKW05908SFConst.OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_anken_oaztsu_nm"));
				// 字丁目 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.面開発案件字丁目名
				bean[0].sendMessageString(KKW05908SFConst.AZCHO, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_anken_azcho_nm"));
				// 番地・号 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.面開発案件番地号
				bean[0].sendMessageString(KKW05908SFConst.BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_anken_bnchigo"));
				// 電話番号 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.面開発案件電話番号
				bean[0].sendMessageString(KKW05908SFConst.TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_anken_telno"));
				// 導入担当者（ユーザ名） ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.導入担当者ユーザー名
				bean[0].sendMessageString(KKW05908SFConst.DONYU_USER_NM, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("donyu_tntsha_user_nm"));
				// 導入担当者（組織名） ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.導入担当者組織名
				bean[0].sendMessageString(KKW05908SFConst.DONYU_ORG_NM, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("donyu_tntsha_org_nm"));
				// 導入担当者（立場） ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.導入担当者立場名
				bean[0].sendMessageString(KKW05908SFConst.DONYU_POSITION, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("donyu_tntsha_position_nm"));
				// フォロー担当者（ユーザ名） ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.フォロー担当者ユーザー名
				bean[0].sendMessageString(KKW05908SFConst.FOLLOW_USER_NM, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("follow_tntsha_user_nm"));
				// フォロー担当者（組織名） ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.フォロー担当者組織名
				bean[0].sendMessageString(KKW05908SFConst.FOLLOW_ORG_NM, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("follow_tntsha_org_nm"));
				// フォロー担当者（立場） ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.フォロー担当者立場名
				bean[0].sendMessageString(KKW05908SFConst.FOLLOW_POSITION, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("follow_tntsha_position_nm"));
				// 物件パターン ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.物件パターンコード名称
				bean[0].sendMessageString(KKW05908SFConst.BKN_PATTERN, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("bukken_pattern_cd_nm"));
				// インセ対象 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.インセ対象コード名称
				bean[0].sendMessageString(KKW05908SFConst.INSE_TG, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("ince_trgt_cd_nm"));
				// 関電支店 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.関電支店コード名称
				bean[0].sendMessageString(KKW05908SFConst.KEPCO_SHITEN, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("kepco_shiten_cd_nm"));
				// 覚書締結年月日 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.覚書締結年月日
				bean[0].sendMessageString(KKW05908SFConst.OBOEGAKI_CND_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("oboegaki_cnc_ymd"));
				// 受注年月 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.受注年月
				bean[0].sendMessageString(KKW05908SFConst.JUCHU_YM, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("juchu_ym"));
				// 内示年月 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.内示年月
				bean[0].sendMessageString(KKW05908SFConst.NAIZI_YM, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("naiji_ym"));
				// Ｅハウス報告 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.Eハウス報告インセンティブ支払年月
				bean[0].sendMessageString(KKW05908SFConst.EHAUSU_HOUKOKU_YM, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("ehouse_rpt_incntv_pay_ym"));
				// 備考 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.面開発案件補足備考
				bean[0].sendMessageString(KKW05908SFConst.BIKO, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_anken_hsk_biko"));
				// 更新前更新年月日時分秒 ← 面開発案件一意取得SCマップ.面開発案件一意照会明細.更新年月日時分秒
				bean[0].sendMessageString(KKW05908SFConst.UPD_DTM_BF, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("upd_dtm"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean
	 *            　[0]：面開発案件情報削除
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV047202SC(X31SDataBeanAccess[] bean,
			HashMap outputMap) {

		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV047202SC")) {
			parentMap = (HashMap) outputMap.get("KKSV047202SC");
		}

		ArrayList childList = null;
		X31SDataBeanAccessArray listKKSV047202SC_maeukkin_net_EKK0291B001CBSMsg1List = null;
		String nmKey = "";

		childList = null;
		if (parentMap.containsKey("EKK0291B001CBSMsg1List")) {
			childList = (ArrayList) parentMap.get("EKK0291B001CBSMsg1List");

			for (int i = 0; i < childList.size(); i++) {
				X31SDataBeanAccess subbean = null;
				HashMap childMap = (HashMap) childList.get(i);

				// サービスコードの取得
				String svc_cd = (String) childMap.get("svc_cd");

				// サービスコードが"01"の場合、（ｅｏ光ネット）のマッピングを実施する
				if (svc_cd.equals("01")) {
					listKKSV047202SC_maeukkin_net_EKK0291B001CBSMsg1List = bean[0].getDataBeanArray(KKW05908SFConst.MAEUKKIN_NET);
					nmKey = "menkaihat_hoshokin_cd_nm_net";
				}
				// サービスコードが"02"の場合、（ｅｏ光電話）のマッピングを実施する
				else if (svc_cd.equals("02")) {
					listKKSV047202SC_maeukkin_net_EKK0291B001CBSMsg1List = bean[0].getDataBeanArray(KKW05908SFConst.MAEUKKIN_TEL);
					nmKey = "menkaihat_hoshokin_cd_nm_tel";
				}
				// サービスコードが"03"の場合、（ｅｏ光ＴＶ）のマッピングを実施する
				else if (svc_cd.equals("03")) {
					listKKSV047202SC_maeukkin_net_EKK0291B001CBSMsg1List = bean[0].getDataBeanArray(KKW05908SFConst.MAEUKKIN_TV);
					nmKey = "menkaihat_hoshokin_cd_nm_tv";
				}
				
				if (listKKSV047202SC_maeukkin_net_EKK0291B001CBSMsg1List
						.getCount() - 1 >= i) {
					subbean = listKKSV047202SC_maeukkin_net_EKK0291B001CBSMsg1List
							.getDataBean(i);
				} else {
					subbean = listKKSV047202SC_maeukkin_net_EKK0291B001CBSMsg1List
							.addDataBean();
				}

				// 前受金情報.面開発保証金番号 ← 面開発保証金一覧取得SCマップ.面開発保証金一覧照会（面開発案件番号）明細.面開発保証金番号
				subbean.sendMessageString(KKW05908SFConst.MKHT_HOSHOKIN_NO_01, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_hoshokin_no"));
				// 前受金情報.金額 ← 面開発保証金一覧取得SCマップ.面開発保証金一覧照会（面開発案件番号）明細.金額
				subbean.sendMessageString(KKW05908SFConst.MAEUKKIN_01, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("amnt"));
				// 前受金情報.料金内訳略称 ← 面開発保証金一覧取得SCマップ.面開発保証金一覧照会（面開発案件番号）明細.面開発保証金コード名称
				subbean.sendMessageString(KKW05908SFConst.PRC_UW_ALI_01, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(nmKey));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean
	 *            　[0]：面開発案件情報削除
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV047203SC(X31SDataBeanAccess[] bean,
			HashMap outputMap) {

		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV047203SC")) {
			parentMap = (HashMap) outputMap.get("KKSV047203SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listKKSV047203SC_mnkht_tntsha_list_EKK0281B001CBSMsg1List = bean[0]
				.getDataBeanArray(KKW05908SFConst.MNKHT_TNTSHA_LIST);
		childList = null;
		if (parentMap.containsKey("EKK0281B001CBSMsg1List")) {
			childList = (ArrayList) parentMap.get("EKK0281B001CBSMsg1List");

			for (int i = 0; i < childList.size(); i++) {
				X31SDataBeanAccess subbean = null;
				if (listKKSV047203SC_mnkht_tntsha_list_EKK0281B001CBSMsg1List
						.getCount() - 1 >= i) {
					subbean = listKKSV047203SC_mnkht_tntsha_list_EKK0281B001CBSMsg1List
							.getDataBean(i);
				} else {
					subbean = listKKSV047203SC_mnkht_tntsha_list_EKK0281B001CBSMsg1List
							.addDataBean();
				}
				HashMap childMap = (HashMap) childList.get(i);

				// 面開発担当者.面開発担当者番号 ← 面開発担当者一覧取得SCマップ.面開発担当者一覧照会（面開発案件番号）明細.面開発担当者番号
				subbean.sendMessageString(KKW05908SFConst.MKHT_TNTO_NO_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_tntsha_no"));
				// 面開発担当者.担当者名 ← 面開発担当者一覧取得SCマップ.面開発担当者一覧照会（面開発案件番号）明細.担当者名
				subbean.sendMessageString(KKW05908SFConst.TNTSHA_NM_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("tntsha_nm"));
				// 面開発担当者.担当者カナ名 ← 面開発担当者一覧取得SCマップ.面開発担当者一覧照会（面開発案件番号）明細.担当者カナ名
				subbean.sendMessageString(KKW05908SFConst.TNTSHA_KANA_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("tntsha_kana"));
				// 面開発担当者.電話番号 ← 面開発担当者一覧取得SCマップ.面開発担当者一覧照会（面開発案件番号）明細.電話番号
				subbean.sendMessageString(KKW05908SFConst.TELNO_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("telno"));
				// 面開発担当者.備考 ← 面開発担当者一覧取得SCマップ.面開発担当者一覧照会（面開発案件番号）明細.面開発担当者補足備考
				subbean.sendMessageString(KKW05908SFConst.BIKO_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("menkaihat_tntsha_hsk_biko"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：面開発案件情報削除
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV047204SC(X31SDataBeanAccess[] bean, HashMap outputMap){
		
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV047204SC")){
			parentMap = (HashMap)outputMap.get("KKSV047204SC");
		}
		ArrayList childList = null;
		
		// ツールでは生成できないため手作成
		
		if(parentMap.containsKey("EKK0841A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0841A010CBSMsg1List");
			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				// キャンペーンコード
				bean[0].sendMessageString(KKW05908SFConst.CMP_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("dsp_campaign_cd"));
			}
		}
		return bean;
	}

}
