/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CRSV0093_CRSV0093OPDBMapper
*	ソースファイル名：CRSV0093_CRSV0093OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年08月18日
*＜機能概要＞
*	BP（問合せ客情報登録）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/18	FJ		新規作成
*	v29.00.00	2017/02/10	ＦＪ) 笠川	ANK-2928-00-00 お客さま申告アドレスの複数登録
*
**********************************************************************/
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.common.constant.JCRStrConst;
import eo.common.util.JCRUtilCommon;
import eo.web.webview.CRW02601SF.CRW02601SFConst;
import eo.web.webview.common.JCRWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CRSV0093_CRSV0093OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public CRSV0093_CRSV0093OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ客情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCRSV009301SC(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("proscst_nm", bean[0].sendMessageString("問合せ客名", X31CWebConst.DATABEAN_GET_VALUE));
		// 問合せ客名（カナ） → 問合せ客情報登録マップ.問合せ客カナ名
		parentMap.put("proscst_kana", bean[0].sendMessageString("問合せ客名（カナ）", X31CWebConst.DATABEAN_GET_VALUE));
		// 問合せ客電話番号 → 問合せ客情報登録マップ.問合せ客電話番号
		parentMap.put("proscst_telno", bean[0].sendMessageString("問合せ客電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 問合せ客携帯電話番号 → 問合せ客情報登録マップ.問合せ客携帯電話番号
		parentMap.put("proscst_ktai_telno", bean[0].sendMessageString("問合せ客携帯電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 問合せ客メールアドレス → 問合せ客情報登録マップ.問合せ客メールアドレス
		parentMap.put("proscst_mlad", bean[0].sendMessageString("問合せ客メールアドレス", X31CWebConst.DATABEAN_GET_VALUE));
		// 問合せ客性別コード → 問合せ客情報登録マップ.問合せ客性別コード
		parentMap.put("proscst_sex_cd", bean[0].sendMessageString("問合せ客性別コード", X31CWebConst.DATABEAN_GET_VALUE));

		// 生年月日
		String proscstBirthday = null;

		if (JCRStrConst.YEAR_DISPLAY_KBN_WAREKI.equals(bean[0].sendMessageString(CRW02601SFConst.SEIREKI_WAREKI_KBN, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 和暦が入力されている時
			// 和暦年月日を編集
			String gengoCd = JCRWebCommon.getPullDownCode(bean[0], CRW02601SFConst.GENGO, CRW02601SFConst.L1_GENGO_IDX_02, CRW02601SFConst.L1_GENGO_CD_02);
			String gengo = JCRWebCommon.getGengoS(gengoCd);

			if (!JCRUtilCommon.isNull(bean[0].sendMessageString(CRW02601SFConst.WAREKI_BIRTHD_YEAR, X31CWebConst.DATABEAN_GET_VALUE))) 
			{
				String wareki1 = gengo +
				bean[0].sendMessageString(CRW02601SFConst.WAREKI_BIRTHD_YEAR, X31CWebConst.DATABEAN_GET_VALUE) +
				bean[0].sendMessageString(CRW02601SFConst.WAREKI_BIRTHD_MONTH, X31CWebConst.DATABEAN_GET_VALUE) +
				bean[0].sendMessageString(CRW02601SFConst.WAREKI_BIRTHD_DAY, X31CWebConst.DATABEAN_GET_VALUE);

				// 和暦⇒西暦変換
				proscstBirthday = JCRUtilCommon.formatDate(JCRWebCommon.toWestCalendar(wareki1), JCRStrConst.FMT_YMD, JCRStrConst.FMT_YMD);
			}
		}
		else if (JCRStrConst.YEAR_DISPLAY_KBN_SEIREKI.equals(bean[0].sendMessageString(CRW02601SFConst.SEIREKI_WAREKI_KBN, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 西暦が入力されている時
			proscstBirthday = bean[0].sendMessageString(CRW02601SFConst.SEIREKI_BIRTHD_YEAR, X31CWebConst.DATABEAN_GET_VALUE) +
				bean[0].sendMessageString(CRW02601SFConst.SEIREKI_BIRTHD_MONTH, X31CWebConst.DATABEAN_GET_VALUE) +
				bean[0].sendMessageString(CRW02601SFConst.SEIREKI_BIRTHD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		}

		// 問合せ客生年月日 → 問合せ客情報登録マップ.問合せ客生年月日
		parentMap.put("proscst_birthd", proscstBirthday);

		// 郵便番号 → 問合せ客情報登録マップ.問合せ客郵便番号
		parentMap.put("proscst_pcd",
				bean[0].sendMessageString("郵便番号１", X31CWebConst.DATABEAN_GET_VALUE) + bean[0].sendMessageString("郵便番号２", X31CWebConst.DATABEAN_GET_VALUE));

		// 都道府県名 → 問合せ客情報登録マップ.問合せ客都道府県名
		parentMap.put("proscst_state_nm", bean[0].sendMessageString("都道府県名", X31CWebConst.DATABEAN_GET_VALUE));
		// 市区町村名 → 問合せ客情報登録マップ.問合せ客市区町村名
		parentMap.put("proscst_city_nm", bean[0].sendMessageString("市区町村名", X31CWebConst.DATABEAN_GET_VALUE));
		// 大字通称名 → 問合せ客情報登録マップ.問合せ客大字通称名
		parentMap.put("proscst_oaztsu_nm", bean[0].sendMessageString("大字通称名", X31CWebConst.DATABEAN_GET_VALUE));
		// 字丁目名 → 問合せ客情報登録マップ.問合せ客字丁目名
		parentMap.put("proscst_azcho_nm", bean[0].sendMessageString("字丁目名", X31CWebConst.DATABEAN_GET_VALUE));
		// 番地・号 → 問合せ客情報登録マップ.問合せ客番地号
		parentMap.put("proscst_bnchigo", bean[0].sendMessageString("番地・号", X31CWebConst.DATABEAN_GET_VALUE));
		// 建物名 → 問合せ客情報登録マップ.問合せ客住所補記・建物名
		parentMap.put("proscst_adrttm", bean[0].sendMessageString("建物名", X31CWebConst.DATABEAN_GET_VALUE));
		// 部屋番号 → 問合せ客情報登録マップ.問合せ客住所補記・部屋番号
		parentMap.put("proscst_adrrm", bean[0].sendMessageString("部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 問合せ客情報登録マップ.お客様ランクコード
		parentMap.put("cust_rank_cd", JCRWebCommon.getPullDownCode(bean[0], "お客様ランク", "お客様ランクコードインデックス", "お客様ランクコードリスト"));
		// 部品呼び出し → 問合せ客情報登録マップ.連絡手段コード
		parentMap.put("rrk_way_cd", JCRWebCommon.getPullDownCode(bean[0], "連絡手段", "連絡手段コードインデックス", "連絡手段コードリスト"));
		// 連絡情報 → 問合せ客情報登録マップ.連絡手段補記
		parentMap.put("rrk_way_hoki", bean[0].sendMessageString("連絡情報", X31CWebConst.DATABEAN_GET_VALUE));

		if (bean[0].sendMessageBoolean("削除対象外フラグ", X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 削除対象外フラグ → 問合せ客情報登録マップ.削除対象外フラグ
			parentMap.put("del_trgt_gai_flg", JCRStrConst.CD_DIV_DEL_TAISHOGAI);
		}
		else
		{
			// 削除対象外フラグ → 問合せ客情報登録マップ.削除対象外フラグ
			parentMap.put("del_trgt_gai_flg", JCRStrConst.CD_DIV_DEL_TAISHO);
		}

		// お客様特定用申込書番号 → 問合せ客情報登録マップ.お客様特定用申込書番号
		parentMap.put("cust_tokut_mskmsho_no", bean[0].sendMessageString("お客様特定用申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 申告アドレス → 問合せ客情報登録マップ.申告アドレス
		parentMap.put("skk_ad", bean[0].sendMessageString("申告アドレス", X31CWebConst.DATABEAN_GET_VALUE));
        // 20170210 ANK-2928-00-00  ADD  START
		// 申告アドレス２ → 問合せ客情報登録マップ.申告アドレス２
		parentMap.put("skk_ad_2", bean[0].sendMessageString("申告アドレス２", X31CWebConst.DATABEAN_GET_VALUE));
		// 申告アドレス３ → 問合せ客情報登録マップ.申告アドレス３
		parentMap.put("skk_ad_3", bean[0].sendMessageString("申告アドレス３", X31CWebConst.DATABEAN_GET_VALUE));
        // 20170210 ANK-2928-00-00  ADD  END
		// 問合せ客補足備考 → 問合せ客情報登録マップ.問合せ客補足備考
		parentMap.put("proscst_hsk_biko", bean[0].sendMessageString("問合せ客補足備考", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("CRSV009301SC", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：問合せ客情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCRSV009301SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CRSV009301SC")){
			parentMap = (HashMap)outputMap.get("CRSV009301SC");
		}

		// 問合せ客番号 ← 問合せ客情報登録マップ.問合せ客番号
		if (parentMap != null) {
			bean[0].sendMessageString("問合せ客番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("proscst_no"));
		} else {
			bean[0].sendMessageString("問合せ客番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
		}

		return bean;
	}

}