/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：KKSV0914_KKSV0914OPDBMapper
 *	ソースファイル名：KKSV0914_KKSV0914OPDBMapper.java
 *	作成者			：FJ
 *	日付			：2018年07月05日
 *＜機能概要＞
 *	BP（サービス契約一覧照会）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *  v38.00.00	2018/07/05	FJ)原田		【ANK-3436-00-00】mineoセット割
 *  v38.01.00	2018/07/29	FJ)原田		【IT1-2018-0000130】
 *  v57.00.00	2022/01/20	FJ)南		【ANK-4195-00-00】eo光ネット×mineoセット割施策開始対応
 **********************************************************************/
package eo.web.webview.mapping;

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.KKW22301SF.KKW22301SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0914_KKSV0914OPDBMapper {

	// IT1-2018-0000130 ADD START
	/** 解除メール通知有無（"1：有"） */
	public static final String MAIL_SEND_FLG_ARI = "1";
	// IT1-2018-0000130 ADD END
	
	/**
	 * コンストラクタ
	 */
	public KKSV0914_KKSV0914OPDBMapper(){
	}


	/**
	 * 上りマッピングをする
	 * @param bean セット割登録画面
	 * @param outputMap outputMap
	 * @param opeDateTime 運用年月日時分秒
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV091401CC(X31SDataBeanAccess[] bean, HashMap outputMap, String opeDateTime)
	{
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		X31SDataBeanAccess beanTemp = null;
		X31SDataBeanAccessArray arraybean = null;
		
		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("顧客契約引継リスト");
		X31SDataBeanAccess subbean = arraybean.getDataBean(0);
		
		// 呼出元システム識別番号 "2":バックヤード
		parentMap.put("call_mt_sys_skbt_no", "2");
		// ANK-4195-00-00 ADD START
		// 申請経路 "1":バックヤード
		parentMap.put("route", "1");
		// ANK-4195-00-00 ADD END
		// 運用日時
		parentMap.put("ope_date_time", opeDateTime);
		// 処理区分　"4"：登録
		parentMap.put("tran_div", "4");
		// サービス契約番号
		parentMap.put("svc_kei_no", subbean.sendMessageString(KKW22301SFConst.SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// SYSID
		parentMap.put("sysid", subbean.sendMessageString(KKW22301SFConst.SYSID_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求先番号
		parentMap.put("seiky_way_no", subbean.sendMessageString(KKW22301SFConst.SEIKY_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者住所コード
		parentMap.put("keisha_ad_cd", beanTemp.sendMessageString(KKW22301SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 加入契約支払方式コード
		parentMap.put("kanyu_kei_pay_hoshiki_cd", "");
		// 申込年月日(年)
		parentMap.put("mskm_ymd_y", "");
		// 申込年月日(月)
		parentMap.put("mskm_ymd_m", "");
		// 申込年月日(日)
		parentMap.put("mskm_ymd_d", "");
		// 受付番号
		parentMap.put("uk_no", "");
		// 利用場所住所コード
		parentMap.put("kaisen_place_ad_cd", beanTemp.sendMessageString(KKW22301SFConst.KAISEN_PLACE_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", beanTemp.sendMessageString(KKW22301SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サービスID
		parentMap.put("serviceID", "");
		// コース区分
		parentMap.put("cource_div", "");
		// mineo電話番号
		parentMap.put("mineo_tel", "");
		// 解除メール通知有無1
		// IT1-2018-0000130 MOD START
		//parentMap.put("kei_1_mail_send_flag", "");
		parentMap.put("kei_1_mail_send_flag", MAIL_SEND_FLG_ARI);
		// IT1-2018-0000130 MOD END
		// キャンペーンコード
		parentMap.put("cmp_cd", beanTemp.sendMessageString(KKW22301SFConst.WRIB_CAMPAIGN_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		String searchTrgt = beanTemp.sendMessageString(KKW22301SFConst.SEARCH_TRGT_SELECT, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 検索対象
		parentMap.put("search_trgt", searchTrgt);
		
		if("1".equals(searchTrgt) || "2".equals(searchTrgt))
		{
			// mineoとのセット割登録の場合
			// セット割申込申請番号
			parentMap.put("set_wari_mkm_shin_no", beanTemp.sendMessageString(KKW22301SFConst.SEARCH_KEY, X31CWebConst.DATABEAN_GET_VALUE));
			// 入力受付番号
			parentMap.put("input_uk_no", "");
		}
		else if ("3".equals(searchTrgt))
		{
			// 電気とのセット割登録の場合
			// セット割申込申請番号
			parentMap.put("set_wari_mkm_shin_no", "");
			// 入力受付番号
			parentMap.put("input_uk_no", beanTemp.sendMessageString(KKW22301SFConst.SEARCH_KEY, X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		// 解除メール通知有無2
		// IT1-2018-0000130 MOD START
		//parentMap.put("kei_2_mail_send_flag", "");
		parentMap.put("kei_2_mail_send_flag", MAIL_SEND_FLG_ARI);
		// IT1-2018-0000130 MOD END
		// セット割取得キー
		parentMap.put("set_wari_stku_key", "");
		
		outputMap.put("KKSV091401CC", parentMap);
		
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean セット割登録画面
	 * @param outputMap outputMap
	 * @return X31SDataBeanAccess bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV091401CC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV091401CC")){
			parentMap = (HashMap)outputMap.get("KKSV091401CC");
		}
		
		
		if(parentMap != null)
		{
			// セット割_サービス契約番号
			bean[0].sendMessageString(KKW22301SFConst.WRIB_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("wrib_svc_kei_no"));
			// セット割_ＳＹＳＩＤ
			bean[0].sendMessageString(KKW22301SFConst.WRIB_SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("wrib_sysid"));
			// セット割_請求契約番号
			bean[0].sendMessageString(KKW22301SFConst.WRIB_SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("wrib_seiky_kei_no"));
			// セット割_契約者住所コード
			bean[0].sendMessageString(KKW22301SFConst.WRIB_KEISHA_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("wrib_keisha_ad_cd"));
			// セット割_回線場所住所コード
			bean[0].sendMessageString(KKW22301SFConst.WRIB_KAISEN_PLACE_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("wrib_kaisen_place_ad_cd"));
			// セット割_サービス契約回線内訳番号
			bean[0].sendMessageString(KKW22301SFConst.WRIB_SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("wrib_svc_kei_kaisen_ucwk_no"));
			// セット割_申込日
			bean[0].sendMessageString(KKW22301SFConst.WRIB_MSKM_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("wrib_mskm_ymd"));
			// セット割_契約状態名称
			bean[0].sendMessageString(KKW22301SFConst.WRIB_SVC_KEI_STAT_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("wrib_svc_kei_stat_nm"));
			// セット割_コース区分
			bean[0].sendMessageString(KKW22301SFConst.WRIB_COURSE_DIV, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("wrib_course_div"));
		}
		
		return bean;
	}
}