/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0209_KKSV0209OPDBMapper
*	ソースファイル名：KKSV0209_KKSV0209OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2012年04月16日
*＜機能概要＞
*	BP（電波障害物件登録）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/04/16	Fujitsu		新規作成
*	v4.00.00	2012/09/19	Fujitsu		ANK-0398-00-00対応
*
**********************************************************************/
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;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0209_KKSV0209OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public KKSV0209_KKSV0209OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：電波障害物件情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV0209SC(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("dmps_bukken_nm", bean[0].sendMessageString("電波障害物件名", X31CWebConst.DATABEAN_GET_VALUE));
		// 電波障害物件カナ名 → 電波障害案件登録SCマップ.電波障害物件カナ名
		parentMap.put("dmps_bukken_kana", bean[0].sendMessageString("電波障害物件カナ名", X31CWebConst.DATABEAN_GET_VALUE));
		// 住所コード → 電波障害案件登録SCマップ.電波障害起因者住所コード
		parentMap.put("dmps_kiinsha_ad_cd", bean[0].sendMessageString("住所コード更新", X31CWebConst.DATABEAN_GET_VALUE));
		// 郵便番号 → 電波障害案件登録SCマップ.電波障害起因者郵便番号
		parentMap.put("dmps_kiinsha_pcd", bean[0].sendMessageString("郵便番号更新", X31CWebConst.DATABEAN_GET_VALUE));
		// 都道府県 → 電波障害案件登録SCマップ.電波障害起因者都道府県名
		parentMap.put("dmps_kiinsha_state_nm", bean[0].sendMessageString("都道府県", X31CWebConst.DATABEAN_GET_VALUE));
		// 市区町村 → 電波障害案件登録SCマップ.電波障害起因者市区町村名
		parentMap.put("dmps_kiinsha_city_nm", bean[0].sendMessageString("市区町村", X31CWebConst.DATABEAN_GET_VALUE));
		// 大字通称 → 電波障害案件登録SCマップ.電波障害起因者大字通称名
		parentMap.put("dmps_kiinsha_oaztsu_nm", bean[0].sendMessageString("大字通称", X31CWebConst.DATABEAN_GET_VALUE));
		// 字丁目 → 電波障害案件登録SCマップ.電波障害起因者字丁目名
		parentMap.put("dmps_kiinsha_azcho_nm", bean[0].sendMessageString("字丁目", X31CWebConst.DATABEAN_GET_VALUE));
		// 番地・号 → 電波障害案件登録SCマップ.電波障害起因者住所番地号
		parentMap.put("dmps_kiinsha_ad_bnchigo", bean[0].sendMessageString("番地・号", X31CWebConst.DATABEAN_GET_VALUE));
		// 建物名 → 電波障害案件登録SCマップ.電波障害起因者住所補記・建物名
		parentMap.put("dmps_kiinsha_adrttm", bean[0].sendMessageString("建物名", X31CWebConst.DATABEAN_GET_VALUE));
		// 部屋番号 → 電波障害案件登録SCマップ.電波障害起因者住所補記・部屋番号
		parentMap.put("dmps_kiinsha_adrrm", bean[0].sendMessageString("部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 初期工事費金額 → 電波障害案件登録SCマップ.初期住人支払料金額
		parentMap.put("shk_junin_pay_prc_amnt", bean[0].sendMessageString("初期工事費金額", X31CWebConst.DATABEAN_GET_VALUE));
		// コールバック → 電波障害案件登録SCマップ.コールバック有無
		parentMap.put("callbk_um", bean[0].sendMessageString("コールバック", X31CWebConst.DATABEAN_GET_VALUE));
		// 対策方法メモ → 電波障害案件登録SCマップ.対策方法メモ
		parentMap.put("ctrpln_way_memo", bean[0].sendMessageString("対策方法メモ", X31CWebConst.DATABEAN_GET_VALUE));

		// 電波障害対策区分.電波障害対策コード → 電波障害案件登録SCマップ.電波障害対策コード
		X31SDataBeanAccessArray array1 = bean[0].getDataBeanArray("電波障害対策区分");
		X31SDataBeanAccess subbean1 = array1.getDataBean(0);
		parentMap.put("dmps_ctrpln_cd", subbean1.sendMessageString("コードタイプコード", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 相対料金プラン.相対料金プラン → 電波障害案件登録SCマップ.相対料金プラン
		X31SDataBeanAccessArray array2 = bean[0].getDataBeanArray("相対料金プラン");
		X31SDataBeanAccess subbean2 = array2.getDataBean(0);
		parentMap.put("dmps_anken_aitai_pplan_cd", subbean2.sendMessageString("コードタイプコード", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 電波障害案件種別.電波障害案件種別 → 電波障害案件登録SCマップ.電波障害案件種別コード
		X31SDataBeanAccessArray array3 = bean[0].getDataBeanArray("電波障害案件種別");
		X31SDataBeanAccess subbean3 = array3.getDataBean(0);
		parentMap.put("dmpsank_sbt_cd", subbean3.sendMessageString("コードタイプコード", X31CWebConst.DATABEAN_GET_VALUE));
		
		/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
		// 電波障害起因者住所手動入力フラグ
		if(bean[0].sendMessageBoolean("手動入力", X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("dmpsknsha_ad_man_input_flg", "1");
		}
		else
		{
			parentMap.put("dmpsknsha_ad_man_input_flg", "0");
		}
		
		// 電波障害起因者住所チェックレベル
		if(bean[0].sendMessageBoolean("手動入力", X31CWebConst.DATABEAN_GET_VALUE) || 
				"".equals(bean[0].sendMessageString("住所コード更新", X31CWebConst.DATABEAN_GET_VALUE)))
		{
			parentMap.put("dmps_kiinsha_ad_chk_lv", "0");
		}
		else
		{
			parentMap.put("dmps_kiinsha_ad_chk_lv", "1");
		}
		/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
		
		outputMap.put("KKSV0209SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：電波障害物件情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV0209SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV0209SC")){
			parentMap = (HashMap)outputMap.get("KKSV0209SC");
		}

		
		// 電波障害案件番号 ← 電波障害案件登録SCマップ.電波障害案件番号
		bean[0].sendMessageString("電波障害案件番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("dmps_anken_no"));

		return bean;
	}


}
