/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0444_KKSV0444OPDBMapper
*	ソースファイル名：KKSV0444_KKSV0444OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年07月19日
*＜機能概要＞
*	BP（仮申込一覧照会）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/07/19	富士通		新規作成
*   v4.00.00    2012/12/17  FJ）渡邉    【ST4-2012-0000132】申込・仮申込検索画面のレスポンス対応
*   v10.00.00   2012/07/09  FJ）松田    【ANK-2137-00-00】提携住宅会社用WEB受付画面配置
*   v73.00.00	2024/08/20	GDC) JN.Franco		【ANK-4427-00-00：NTT卸対応】
**********************************************************************/
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.KKW12702SF.KKW12702SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKWebCommon;

/**
 * DataBean-BPマッピングをする。
 * @author 富士通
 */
public class KKSV0444_KKSV0444OPDBMapper
{

	/** フラグ（オン） */
	private static final String FLG_ON = "1";
	
	/**
	 * コンストラクタ
	 */
	public KKSV0444_KKSV0444OPDBMapper()
	{
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：仮申込検索
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap　上りマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV044401SC(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);

		// 部品呼び出し → 仮申込一覧照会マップ.検索処理パターン
		parentMap.put("search_type", String.valueOf("1"));
		// 部品呼び出し → 仮申込一覧照会マップ.最大検索件数
		parentMap.put("max_search_num", JCCWebCommon.getSearchConst("KKW12702_MAX_SHOW_CNT"));
		// 部品呼び出し → 仮申込一覧照会マップ.表示件数
		parentMap.put("display_num", JCCWebCommon.getSearchConst("KKW12702_ROW_PER_PAGE"));
		// 検索用住居形態 → 仮申込一覧照会マップ.ＫＥＹ＿申込書種別コード
		parentMap.put("key_mskmsho_sbt_cd", bean[0].sendMessageString("検索用住居形態", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用仮申込ステータス → 仮申込一覧照会マップ.ＫＥＹ＿仮申込フラグ
		parentMap.put("key_kari_mskm_flg", bean[0].sendMessageString("検索用仮申込ステータス", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用申込形態区分（Ｗｅｂ申込） → 仮申込一覧照会マップ.ＫＥＹ＿申込形態コード＿ＷＥＢ
		parentMap.put("key_mskm_form_cd_web", bean[0].sendMessageString("検索用申込形態区分（Ｗｅｂ申込）", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用申込形態区分（量販店） → 仮申込一覧照会マップ.ＫＥＹ＿申込形態コード＿量販
		parentMap.put("key_mskm_form_cd_ryohan", bean[0].sendMessageString("検索用申込形態区分（量販店）", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用申込形態区分（訪販店） → 仮申込一覧照会マップ.ＫＥＹ＿申込形態コード＿訪販
		parentMap.put("key_mskm_form_cd_houhan", bean[0].sendMessageString("検索用申込形態区分（訪販店）", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用申込形態区分（住宅専用ＷＥＢ） → 仮申込一覧照会マップ.ＫＥＹ＿申込形態コード＿住宅専用ＷＥＢ
		parentMap.put("key_mskm_form_cd_jsyweb", bean[0].sendMessageString(KKW12702SFConst.SRC_MSKM_STAT_DIV_JTKWEB, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用申込区分（新規） → 仮申込一覧照会マップ.ＫＥＹ＿異動区分＿新規
		parentMap.put("key_ido_div_new", bean[0].sendMessageString("検索用申込区分（新規）", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用申込区分（追加） → 仮申込一覧照会マップ.ＫＥＹ＿異動区分＿追加
		parentMap.put("key_ido_div_add", bean[0].sendMessageString("検索用申込区分（追加）", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用申込書番号 → 仮申込一覧照会マップ.ＫＥＹ＿申込書番号
		parentMap.put("key_mskmsho_no", bean[0].sendMessageString("検索用申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用取扱コード → 仮申込一覧照会マップ.ＫＥＹ＿代理店コード
		parentMap.put("key_agnt_cd", bean[0].sendMessageString("検索用取扱コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用契約者氏名／法人名（カナ） → 仮申込一覧照会マップ.ＫＥＹ＿お客様カナ名
		parentMap.put("key_cust_kana", bean[0].sendMessageString("検索用契約者氏名／法人名（カナ）", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用電話番号 → 仮申込一覧照会マップ.ＫＥＹ＿契約者電話番号
		parentMap.put("key_keisha_telno", bean[0].sendMessageString("検索用電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用申込年月日＿前 → 仮申込一覧照会マップ.ＫＥＹ＿申込年月日＿ＦＲＯＭ
		parentMap.put("key_mskm_ymd_from", bean[0].sendMessageString("検索用申込年月日＿前", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用申込年月日＿後 → 仮申込一覧照会マップ.ＫＥＹ＿申込年月日＿ＴＯ
		parentMap.put("key_mskm_ymd_to", bean[0].sendMessageString("検索用申込年月日＿後", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用マンション名 → 仮申込一覧照会マップ.ＫＥＹ＿回線場所建物名
		parentMap.put("key_kaisen_place_adrttm", bean[0].sendMessageString("検索用マンション名", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用配線＿低価格 → 仮申込一覧照会マップ.ＫＥＹ＿マンション価格帯コード
		parentMap.put("key_mansion_kakakutai_cd", bean[0].sendMessageString("検索用配線＿低価格", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用配線＿特殊 → 仮申込一覧照会マップ.ＫＥＹ＿特殊配線フラグ
		parentMap.put("key_tokushu_haisen_flg", bean[0].sendMessageString("検索用配線＿特殊", X31CWebConst.DATABEAN_GET_VALUE));
		// システム日時 → 仮申込一覧照会マップ.ＫＥＹ＿システム日時
		parentMap.put("key_system_datetime", bean[0].sendMessageString("システム日時", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用日付 → 仮申込一覧照会マップ.ＫＥＹ＿運用日付
		parentMap.put("key_unyo_ymd", bean[0].sendMessageString("運用日付", X31CWebConst.DATABEAN_GET_VALUE));
		// ソート項目Ｎｏ → 仮申込一覧照会マップ.ＫＥＹ＿ソート項目Ｎｏ
		parentMap.put("key_sort_item_no", bean[0].sendMessageString("ソート項目Ｎｏ", X31CWebConst.DATABEAN_GET_VALUE));
		// ソート区分 → 仮申込一覧照会マップ.ＫＥＹ＿ソート区分
		parentMap.put("key_sort_div", bean[0].sendMessageString("ソート区分", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 検索用サービス（ネット）, 検索用サービス（電話）, 検索用サービス（テレビ）, 検索用サービス（モバイル）
		// → 仮申込一覧照会マップ.ＫＥＹ＿オーダリングサービス選択コード
		String keyOrderingSvcChoiceCd = "";
		String srcSvcNet = bean[0].sendMessageString(KKW12702SFConst.SRC_SVC_NET, X31CWebConst.DATABEAN_GET_VALUE);
		String srcSvcTel = bean[0].sendMessageString(KKW12702SFConst.SRC_SVC_TEL, X31CWebConst.DATABEAN_GET_VALUE);
		String srcSvcTv = bean[0].sendMessageString(KKW12702SFConst.SRC_SVC_TV, X31CWebConst.DATABEAN_GET_VALUE);
		String srcSvcMobile = bean[0].sendMessageString(KKW12702SFConst.SRC_SVC_MOBILE, X31CWebConst.DATABEAN_GET_VALUE);
		if (!(FLG_ON.equals(srcSvcNet) && FLG_ON.equals(srcSvcTel) && FLG_ON.equals(srcSvcTv) && FLG_ON.equals(srcSvcMobile)))
		{
			// サービスのすべてが選択状態以外の場合(サービスのすべてが未選択状態は必須エラーのため存在しない)
			keyOrderingSvcChoiceCd = JKKWebCommon.getOrderingSvcChoiceCd(srcSvcNet, srcSvcTel, srcSvcTv, srcSvcMobile);
		}
		parentMap.put("key_ordering_svc_choice_cd", keyOrderingSvcChoiceCd);

		outputMap.put("KKSV044401SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：仮申込検索
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV044401SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV044401SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV044401SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV044401SC_mskm_list_EKK0011B505CBSMsg1List = bean[0].getDataBeanArray("仮申込一覧");
		childList = null;
		if(listKKSV044401SC_mskm_list_EKK0011B505CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0011B505CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0011B505CBSMsg1List");

			for(int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if(listKKSV044401SC_mskm_list_EKK0011B505CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listKKSV044401SC_mskm_list_EKK0011B505CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listKKSV044401SC_mskm_list_EKK0011B505CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}
			
				// 仮申込一覧.仮申込フラグ ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.仮申込フラグ
				if (childMap != null)
				{
					subbean.sendMessageString("仮申込フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kari_mskm_flg"));
				}
				else
				{
					subbean.sendMessageString("仮申込フラグ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.申込形態コード ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.申込形態コード
				if (childMap != null)
				{
					subbean.sendMessageString("申込形態コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_form_cd"));
				}
				else
				{
					subbean.sendMessageString("申込形態コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.申込状態 ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.申込形態コード名称
				if (childMap != null)
				{
					subbean.sendMessageString("申込状態", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_form_cd_nm"));
				}
				else
				{
					subbean.sendMessageString("申込状態", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.異動区分 ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.異動区分
				if (childMap != null)
				{
					subbean.sendMessageString("異動区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_div"));
				}
				else
				{
					subbean.sendMessageString("異動区分", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.申込区分 ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.異動区分名称
				if (childMap != null)
				{
					subbean.sendMessageString("申込区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_div_nm"));
				}
				else
				{
					subbean.sendMessageString("申込区分", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.申込日 ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.申込年月日
				if (childMap != null)
				{
					subbean.sendMessageString("申込日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_ymd"));
				}
				else
				{
					subbean.sendMessageString("申込日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.申込番号 ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.申込番号
				if (childMap != null)
				{
					subbean.sendMessageString("申込番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_no"));
				}
				else
				{
					subbean.sendMessageString("申込番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.申込書番号 ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.申込書番号
				if (childMap != null)
				{
					subbean.sendMessageString("申込書番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskmsho_no"));
				}
				else
				{
					subbean.sendMessageString("申込書番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.マンション価格帯コード ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.マンション価格帯コード
				if (childMap != null)
				{
					subbean.sendMessageString("マンション価格帯コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_kakakutai_cd"));
				}
				else
				{
					subbean.sendMessageString("マンション価格帯コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.特殊配線フラグ ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.特殊配線フラグ
				if (childMap != null)
				{
					subbean.sendMessageString("特殊配線フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tokushu_haisen_flg"));
				}
				else
				{
					subbean.sendMessageString("特殊配線フラグ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.表示用マンション名 ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.回線場所住所補記・建物名
				if (childMap != null)
				{
					subbean.sendMessageString("表示用マンション名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrttm"));
				}
				else
				{
					subbean.sendMessageString("表示用マンション名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.表示用契約者氏名／法人名 ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.契約者氏名／法人名
				if (childMap != null)
				{
					subbean.sendMessageString("表示用契約者氏名／法人名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_nm"));
				}
				else
				{
					subbean.sendMessageString("表示用契約者氏名／法人名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.表示用契約者氏名／法人名（カナ） ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.契約者氏名／法人名（カナ）
				if (childMap != null)
				{
					subbean.sendMessageString("表示用契約者氏名／法人名（カナ）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_kana"));
				}
				else
				{
					subbean.sendMessageString("表示用契約者氏名／法人名（カナ）", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				
				// ANK-4427-00-00 ADD START
				// 検索結果リスト.料金コースコード ← 申込情報一覧照会マップ.申込情報一覧照会明細.料金コースコード
				if (childMap != null) {
					subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd"));
				} else {
					subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// // 申込情報一覧照会マップ.申込情報一覧照会明細.NTT卸 ← 申込情報一覧照会明細.NTT卸
				if (childMap != null) {
					subbean.sendMessageString("NTT卸区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("nttors_div"));
				} else {
					subbean.sendMessageString("NTT卸区分", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ANK-4427-00-00 ADD END
				// 仮申込一覧.契約者電話番号 ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.契約者電話番号
				if (childMap != null)
				{
					subbean.sendMessageString("契約者電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("keisha_telno"));
				}
				else
				{
					subbean.sendMessageString("契約者電話番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.申込ステータス ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.申込ステータス
				if (childMap != null)
				{
					subbean.sendMessageString("申込ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_stat"));
				}
				else
				{
					subbean.sendMessageString("申込ステータス", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.申込書種別コード ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.申込書種別コード
				if (childMap != null)
				{
					subbean.sendMessageString("申込書種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskmsho_sbt_cd"));
				}
				else
				{
					subbean.sendMessageString("申込書種別コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 仮申込一覧.オーダリングサービス選択コード ← 仮申込一覧照会マップ.仮申込情報一覧照会明細.オーダリングサービス選択コード
				if (childMap != null)
				{
					subbean.sendMessageString("オーダリングサービス選択コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ordering_svc_choice_cd"));
				}
				else
				{
					subbean.sendMessageString("オーダリングサービス選択コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}


}