/*********************************************************************
*	All Rights reserved,Copyright (c) Fujitsu, 2012
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0581_KKSV0581OPDBMapper
*	ソースファイル名：KKSV0581_KKSV0581OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年06月05日
*＜機能概要＞
*	BP（請求契約登録_検索サービス）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/06/05	FJ		新規作成
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

/**
 * DataBean-BPマッピングをする。
 * <br />
 * @author 富士通
 */
public class KKSV0581_KKSV0581OPDBMapper
{
	
	/** 送付先住所手動入力フラグ(1：有) */
	private static final String SHS_AD_MAN_INPUT_1 = "1";
	
	/**
	 * コンストラクタ
	 */
	public KKSV0581_KKSV0581OPDBMapper()
	{
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求契約登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV0581CC(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("key_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 運用年月日 → 法人格種別（前後指定）マップ.ＫＥＹ＿基準日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV0581CC", parentMap);
		
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：請求契約登録
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV0581CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV0581CC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV0581CC");
		}
		
		// 請求契約番号
		bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("seiky_kei_no"));
		// SYSID
		bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sysid"));
		// お客様名
		bean[0].sendMessageString("お客様名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cust_nm"));
		// 法人格前後コード
		bean[0].sendMessageString("法人格前後コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("shs_hojin_zengo_shitei_cd"));
		// 法人格コード
		bean[0].sendMessageString("法人格コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("shs_hojin_sbt_cd"));
		// 送付先カナ名
		bean[0].sendMessageString("送付先カナ名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("shs_kana"));
		// 送付先名
		bean[0].sendMessageString("送付先名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_nm"));
		// 部課名
		bean[0].sendMessageString("部課名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_bkm"));
		// 担当者名
		bean[0].sendMessageString("担当者名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_tntsha_nm"));
		// 電話番号
		bean[0].sendMessageString("電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_telno"));
		
		// 郵便番号
		String strPcd = (String)parentMap.get("sohus_pcd");
		String strPcd1 = "";
		String strPcd2 = "";
		if(strPcd.length() >= 7)
		{
			strPcd1 = strPcd.substring(0, 3);
			strPcd2 = strPcd.substring(3, 7);
		}
		// 郵便番号(上3桁)
		bean[0].sendMessageString("郵便番号（上３桁）", X31CWebConst.DATABEAN_SET_VALUE, strPcd1);
		// 郵便番号(下4桁)
		bean[0].sendMessageString("郵便番号（下４桁）", X31CWebConst.DATABEAN_SET_VALUE, strPcd2);
		
		// 送付先住所手動入力フラグ
		boolean shsAdManInputFlg = false;
		if(SHS_AD_MAN_INPUT_1.equals((String)parentMap.get("shs_ad_man_input_chkbox")))
		{
			shsAdManInputFlg = true;
		}
		bean[0].sendMessageBoolean("送付先住所手動入力フラグ", X31CWebConst.DATABEAN_SET_VALUE, shsAdManInputFlg);
		
		// 住所コード
		String strAd = (String)parentMap.get("sohus_ad_cd");
		String strAd1 = "";
		String strAd2 = "";
		String strAd3 = "";
		String strAd4 = "";
		if(strAd.length() >= 11)
		{
			strAd1 = strAd.substring(0, 2);
			strAd2 = strAd.substring(2, 5);
			strAd3 = strAd.substring(5, 8);
			strAd4 = strAd.substring(8, 11);
		}
		// 住所コード1
		bean[0].sendMessageString("住所コード１", X31CWebConst.DATABEAN_SET_VALUE, strAd1);
		// 住所コード2
		bean[0].sendMessageString("住所コード２", X31CWebConst.DATABEAN_SET_VALUE, strAd2);
		// 住所コード3
		bean[0].sendMessageString("住所コード３", X31CWebConst.DATABEAN_SET_VALUE, strAd3);
		// 住所コード4
		bean[0].sendMessageString("住所コード４", X31CWebConst.DATABEAN_SET_VALUE, strAd4);
		// 都道府県
		bean[0].sendMessageString("都道府県", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_state_nm"));
		// 市区町村
		bean[0].sendMessageString("市区町村", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_city_nm"));
		// 大字通称
		bean[0].sendMessageString("大字通称", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_oaztsu_nm"));
		// 字丁目
		bean[0].sendMessageString("字丁目", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_azcho_nm"));
		// 番地号
		bean[0].sendMessageString("番地号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_bnchigo"));
		// 建物名
		bean[0].sendMessageString("建物名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_adrttm"));
		// 部屋番号
		bean[0].sendMessageString("部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_adrrm"));
		// 支払方法コード
		bean[0].sendMessageString("支払方法コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("seiky_way_cd"));
		// 支払方法名
		bean[0].sendMessageString("支払方法名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("seiky_way_cd_nm"));
		// 申込明細番号
		bean[0].sendMessageString("申込明細番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("mskm_dtl_no"));
		// 異動区分
		bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("ido_div"));
		// 更新年月日＿請求契約
		bean[0].sendMessageString("更新年月日＿請求契約", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("upd_dtm_seiky_kei"));
		// 請求書発行要否
		bean[0].sendMessageString("請求書発行要否", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("seikyus_hakko_yh"));
		
		return bean;
	}

}
