/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0908_KKSV0908OPDBMapper
*	ソースファイル名：KKSV0908_KKSV0908OPDBMapper.java
*	作成者			：FJ)柳
*	日付			：2018年06月13日
*＜機能概要＞
*	BP（個別割引適用可否照会・変更依頼）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v38.00.00	2018/06/13	FJ)柳		【ANK-3436-00-00】eo光×eo電気×mineoセット割対応
*	v38.00.01	2018/08/06	FJ)原田		【ST-2018-0000026】
*	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.JCCWebBusinessLogic;
import eo.web.webview.KKW00121SF.KKW00121SFConst;
import eo.web.webview.common.JCCWebCommon;

/**
 * DataBean-BPマッピングをする。
 */
public class KKSV0908_KKSV0908OPDBMapper
{
	// ST-2018-0000026 ADD START
	/** 解除メール通知有無（"1：有"） */
	public static final String MAIL_SEND_FLG_ARI = "1";
	// ST-2018-0000026 ADD END
	
	/**
	 * コンストラクタ
	 */
	public KKSV0908_KKSV0908OPDBMapper()
	{
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：個別割引適用可否照会・変更依頼
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV090801CC(X31SDataBeanAccess[] bean, HashMap outputMap,
			String func_code, JCCWebBusinessLogic bl)
	{
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		// サービス契約申込情報リスト
		X31SDataBeanAccessArray dataBeanArray = bean[0].getDataBeanArray(KKW00121SFConst.SVC_MSKM_INFO);
		// ｅｏ光ネット
		X31SDataBeanAccess subDataBean = dataBeanArray.getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 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", JCCWebCommon.getOpeDateTimeStamp(bl, null));
		// 2(登録) → 個別割引適用可否照会・変更依頼マップ.処理区分
		parentMap.put("tran_div", "2");
		// サービス契約申込情報リスト.ｅｏ光ネット.サービス契約番号 → 個別割引適用可否照会・変更依頼マップ.サービス契約番号
		parentMap.put("svc_kei_no", subDataBean.sendMessageString(KKW00121SFConst.SVC_KEI_NO_22, X31CWebConst.DATABEAN_GET_VALUE));
		// お客様一覧照会＿ＳＹＳＩＤ → 個別割引適用可否照会・変更依頼マップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString(KKW00121SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求先番号 → 個別割引適用可否照会・変更依頼マップ.請求先番号
		parentMap.put("seiky_way_no", bean[0].sendMessageString(KKW00121SFConst.SEIKY_WAY_NO_KOZA, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者−住所コード → 個別割引適用可否照会・変更依頼マップ.契約者住所コード
		parentMap.put("keisha_ad_cd", bean[0].sendMessageString(KKW00121SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 加入契約支払方式コード → 個別割引適用可否照会・変更依頼マップ.加入契約支払方式コード
		parentMap.put("kanyu_kei_pay_hoshiki_cd", bean[0].sendMessageString(KKW00121SFConst.KANYU_KEI_PAY_HOSHIKI_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込年月日（年） → 個別割引適用可否照会・変更依頼マップ.申込年月日(年)
		parentMap.put("mskm_ymd_y", bean[0].sendMessageString(KKW00121SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込年月日（月） → 個別割引適用可否照会・変更依頼マップ.申込年月日(月)
		parentMap.put("mskm_ymd_m", bean[0].sendMessageString(KKW00121SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込年月日（日） → 個別割引適用可否照会・変更依頼マップ.申込年月日(日)
		parentMap.put("mskm_ymd_d", bean[0].sendMessageString(KKW00121SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込書番号 → 個別割引適用可否照会・変更依頼マップ.受付番号
		parentMap.put("uk_no", bean[0].sendMessageString(KKW00121SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所−住所コード → 個別割引適用可否照会・変更依頼マップ.利用場所住所コード
		parentMap.put("kaisen_place_ad_cd", bean[0].sendMessageString(KKW00121SFConst.KAISEN_PLACE_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿サービス契約回線内訳番号 → 個別割引適用可否照会・変更依頼マップ.サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", bean[0].sendMessageString(KKW00121SFConst.KEY_SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// ""(空文字) → 個別割引適用可否照会・変更依頼マップ.サービスID
		parentMap.put("serviceID", "");
		// ""(空文字) → 個別割引適用可否照会・変更依頼マップ.コース区分
		parentMap.put("cource_div", "");
		// ""(空文字) → 個別割引適用可否照会・変更依頼マップ.mineo電話番号
		parentMap.put("mineo_tel", "");
		// ST-2018-0000026 MOD START
		//// ""(空文字) → 個別割引適用可否照会・変更依頼マップ.解除メール通知有無1
		//parentMap.put("kei_1_mail_send_flag", "");
		// "1"(有) → 個別割引適用可否照会・変更依頼マップ.解除メール通知有無1
		parentMap.put("kei_1_mail_send_flag", MAIL_SEND_FLG_ARI);
		// ST-2018-0000026 MOD END
		// セット割申込申請番号 → 個別割引適用可否照会・変更依頼マップ.セット割申込申請番号
		parentMap.put("set_wari_mkm_shin_no", bean[0].sendMessageString(KKW00121SFConst.SET_WARI_MKM_SHIN_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// ""(空文字) → 個別割引適用可否照会・変更依頼マップ.入力受付番号
		parentMap.put("input_uk_no", "");
		// ST-2018-0000026 MOD START
		//// ""(空文字) → 個別割引適用可否照会・変更依頼マップ.解除メール通知有無2
		//parentMap.put("kei_2_mail_send_flag", "");
		// "1"(有) → 個別割引適用可否照会・変更依頼マップ.解除メール通知有無2
		parentMap.put("kei_2_mail_send_flag", MAIL_SEND_FLG_ARI);
		// ST-2018-0000026 MOD END
		// セット割取得キー → 個別割引適用可否照会・変更依頼マップ.セット割取得キー
		parentMap.put("set_wari_stku_key", "^KK_SETWARI_");
		
		outputMap.put("KKSV090801CC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：個別割引適用可否照会・変更依頼
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV090801CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		
		if(outputMap.containsKey("KKSV090801CC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV090801CC");
		}
		
		// 処理結果コード ← 個別割引適用可否照会・変更依頼マップ.処理結果コード
		if (parentMap != null)
		{
			bean[0].sendMessageString(KKW00121SFConst.RSLT_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("rslt_cd"));
		}
		else
		{
			bean[0].sendMessageString(KKW00121SFConst.RSLT_CD, X31CWebConst.DATABEAN_SET_VALUE, new String());
		}
		
		return bean;
	}
}