/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0724_KKSV0724OPDBMapper
*	ソースファイル名：KKSV0724_KKSV0724OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年08月29日
*＜機能概要＞
*	BP（機器提供サービス契約情報変更・不明機器更新）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/08/29	FJ)鳩本		新規作成
*	v5.00.00	2013/04/04	FJ)田原		【IKK-2013-0000823】障害対応
**********************************************************************/
package eo.web.webview.mapping;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.web.webview.KKW03301SF.KKW03301SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0724_KKSV0724OPDBMapper {


	/** 定数領域 */

	/** 機器製造番号プルダウン表示 */
	private static final String KIKI_SEIZO_NO_PULL_FLG_DISP = "1";
	
	/**
	 * コンストラクタ
	 */
	public KKSV0724_KKSV0724OPDBMapper(){
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約変更
	 * @param outputMap
	 * @param func_code
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJKKFumeiKktkSvcKeiUpdCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate) {
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess beanTemp = bean[0];
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// チェック画面ＩＤ
		parentMap.put("check_scrn_id", "KKW108");
		// サービス契約番号
		parentMap.put("svc_kei_no", beanTemp.sendMessageString(KKW03301SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 機器提供サービス契約番号
		parentMap.put("kktk_svc_kei_no", bean[0].sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 宅内機器型式コード
		parentMap.put("taknkiki_model_cd", getComboItemData(beanTemp, KKW03301SFConst.KIKI_MODEL, KKW03301SFConst.KIKI_MODEL_CD_05));
		// 機器製造番号	kk_seizo_no
		String kikiSeizoNoPullFlg = beanTemp.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO_PULL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		// プルダウン表示の場合
		if(KIKI_SEIZO_NO_PULL_FLG_DISP.equals(kikiSeizoNoPullFlg))
		{
			parentMap.put("kiki_seizo_no", getComboItemData(beanTemp, KKW03301SFConst.KIKI_SEIZO_NO_PULL, KKW03301SFConst.KIKI_SEIZO_NO_13));
		}
		else
		{
			parentMap.put("kiki_seizo_no", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// 運用日付
		parentMap.put("unyo_ymd", beanTemp.sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分
		parentMap.put("ido_div", beanTemp.sendMessageString(KKW03301SFConst.IDO_KBN, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動理由コード
		parentMap.put("ido_rsn_cd", beanTemp.sendMessageString(KKW03301SFConst.IDO_RSN_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 販売種別コード
		parentMap.put("hambai_sbt_cd", getComboItemData(beanTemp, KKW03301SFConst.HAMBAI_SBT, KKW03301SFConst.CD_DIV_CD_06));
		// 機器提供種別コード
		parentMap.put("kktk_sbt_cd", getComboItemData(beanTemp, KKW03301SFConst.TK_SBT, KKW03301SFConst.CD_DIV_CD_06));
		
		// 更新年月日時分秒（サービス契約）
		parentMap.put("upd_dtm_svc_kei", beanTemp.sendMessageString(KKW03301SFConst.UPD_DTM_SVC_KEI, X31CWebConst.DATABEAN_GET_VALUE));
		
		/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
		// 更新年月日時分秒（サービス契約回線内訳）
		parentMap.put("upd_dtm_svc_kei_kaisen_ucwk", beanTemp.sendMessageString(KKW03301SFConst.UPD_DTM_SVC_KEI_KAISEN_UCWK, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v5.00.00 追加終了 ++++++++++ */
		
		outputMap.put("KKSV072401CC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * コンボボックスのコードと名称領域に設定している値を取得する。
	 * 
	 * @param subbean 画面データ
	 * @param comboItemId 対象プルダウン名
	 * @param itemNme 取得対象項目名
	 * @return 
	 */
	private String getComboItemData(X31SDataBeanAccess bean, String comboItemId, String itemNme)
	{
		X31SDataBeanAccess comboItem = bean.getDataBeanArray(comboItemId).getDataBean(0);
		return getNullToStr(comboItem.sendMessageString(itemNme, X31CWebConst.DATABEAN_GET_VALUE));
	}
	
	/**
	 * Nullの場合空白を返却します。
	 * @param bean
	 * @return 連結した住所コード
	 */
	private String getNullToStr(String str)
	{
		
		if(str == null){
			return "";
		}
		
		
		return str.trim();
	}
}