/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0147_KKSV0147OPDBMapper
*	ソースファイル名：KKSV0147_KKSV0147OPDBMapper.java
*	作成者			：FJ
*	日付			：2013年03月11日
*＜機能概要＞
*	BP（NHK団体一括支払詳細情報取得）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2013/03/11	FJ		新規作成
*
**********************************************************************/
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.KKW02533SF.KKW02533SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 * @author 富士通
 */
public class KKSV0147_KKSV0147OPDBMapper
{
	
	/**
	 * コンストラクタ
	 */
	public KKSV0147_KKSV0147OPDBMapper()
	{
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ＮＨＫ団体一括支払一覧照会
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMa
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV014701SC(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);

		// n→1マッピング手動処理
		X31SDataBeanAccess beanTemp = bean[0];
		X31SDataBeanAccessArray arraybean = beanTemp.getDataBeanArray(KKW02533SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess subbean = arraybean.getDataBean(0);

		// オプションサービス契約番号
		Integer count = (Integer)subbean.sendMessage(KKW02533SFConst.OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_COUNT);
		
		if(0 < count)
		{
			// オプションサービス契約番号 → オプションサービス契約一意照会マップ.ＫＥＹ＿オプションサービス契約番号
			parentMap.put("key_op_svc_kei_no", subbean.sendMessageString(KKW02533SFConst.OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE, 0));
		}
		
		// 運用日付 → オプションサービス契約一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW02533SFConst.STA_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV014701SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ＮＨＫ団体一括支払一覧照会
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV014702SC(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);

		// n→1マッピング手動処理
		X31SDataBeanAccess beanTemp = bean[0];
		X31SDataBeanAccessArray arraybean = beanTemp.getDataBeanArray(KKW02533SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess subbean = arraybean.getDataBean(0);

		// オプションサービス契約番号
		Integer count = (Integer)subbean.sendMessage(KKW02533SFConst.OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_COUNT);
		
		if(0 < count)
		{
			// オプションサービス契約番号 → オプションサービス契約＜TV＞一意照会マップ.ＫＥＹ＿オプションサービス契約番号
			parentMap.put("key_op_svc_kei_no", subbean.sendMessageString(KKW02533SFConst.OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE, 0));
		}

		outputMap.put("KKSV014702SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：ＮＨＫ団体一括支払一覧照会
	 * @param outputMap
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV014701SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV014701SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV014701SC");
		}

		if (parentMap != null)
		{
			// 契約日 ← オプションサービス契約一意照会マップ.オプションサービス契約一意照会明細.契約締結年月日
			bean[0].sendMessageString(KKW02533SFConst.KEI_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kei_cnc_ymd"));

			// 契約期間（ＦＲＯＭ） ← オプションサービス契約一意照会マップ.オプションサービス契約一意照会明細.サービス利用開始希望年月日
			bean[0].sendMessageString(KKW02533SFConst.KEI_PRD_FROM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("svc_use_sta_kibo_ymd"));
			
			// 契約期間（ＴＯ） ← オプションサービス契約一意照会マップ.オプションサービス契約一意照会明細.サービス終了年月日
			bean[0].sendMessageString(KKW02533SFConst.KEI_PRD_TO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("svc_endymd"));
		}
		else
		{
			bean[0].sendMessageString(KKW02533SFConst.KEI_YMD, X31CWebConst.DATABEAN_SET_VALUE, null);
			bean[0].sendMessageString(KKW02533SFConst.KEI_PRD_FROM, X31CWebConst.DATABEAN_SET_VALUE, null);
			bean[0].sendMessageString(KKW02533SFConst.KEI_PRD_TO, X31CWebConst.DATABEAN_SET_VALUE, null);
		}
		
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：ＮＨＫ団体一括支払一覧照会
	 * @param outputMap
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV014702SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV014702SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV014702SC");
		}

		if (parentMap != null)
		{
			
			// 課金開始年月日 ← オプションサービス契約＜TV＞一意照会マップ.オプションサービス契約＜TV＞一意照会明細.初回請求年月日
			bean[0].sendMessageString(KKW02533SFConst.CHRG_STA_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("first_seiymd"));
			
			// 請求間隔 ← オプションサービス契約＜TV＞一意照会マップ.オプションサービス契約＜TV＞一意照会明細.NHK団体一括支払サイクルコード
			bean[0].sendMessageString(KKW02533SFConst.SEIKY_PRD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("nhk_grp_ikt_pay_cycle_cd"));
			
			// 契約内容 ← オプションサービス契約＜TV＞一意照会マップ.オプションサービス契約＜TV＞一意照会明細.NHK団体一括支払サイクルコード名称
			bean[0].sendMessageString(KKW02533SFConst.KEI_NAIYO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("nhk_grp_ikt_pay_cycle_cd_nm"));
			
			// ＮＨＫお客様Ｎｏ ← オプションサービス契約＜TV＞一意照会マップ.オプションサービス契約＜TV＞一意照会明細.NHKお客様番号
			bean[0].sendMessageString(KKW02533SFConst.NHK_CUST_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("nhk_cust_no"));
			
			// 集計日 ← オプションサービス契約＜TV＞一意照会マップ.オプションサービス契約＜TV＞一意照会明細.集計年月日
			bean[0].sendMessageString(KKW02533SFConst.SHUK_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("shuk_ymd"));
			
			// 変更日 ← オプションサービス契約＜TV＞一意照会マップ.オプションサービス契約＜TV＞一意照会明細.NHK団体一括契約変更届年月日
			bean[0].sendMessageString(KKW02533SFConst.CHG_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("nhk_dntiktkei_hktdk_ymd"));
			
			// 変更理由メモ ← オプションサービス契約＜TV＞一意照会マップ.オプションサービス契約＜TV＞一意照会明細.NHK団体一括契約変更理由メモ
			bean[0].sendMessageString(KKW02533SFConst.CHGRE_MEMO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("nhk_dntiktkei_chgre_memo"));
			
			// 登録メモ ← オプションサービス契約＜TV＞一意照会マップ.オプションサービス契約＜TV＞一意照会明細.NHK団体一括契約登録メモ
			bean[0].sendMessageString(KKW02533SFConst.ADD_MEMO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("nhk_dntiktkei_add_memo"));
		}
		else
		{
			bean[0].sendMessageString(KKW02533SFConst.CHRG_STA_YMD, X31CWebConst.DATABEAN_SET_VALUE, null);
			bean[0].sendMessageString(KKW02533SFConst.SEIKY_PRD, X31CWebConst.DATABEAN_SET_VALUE, null);
			bean[0].sendMessageString(KKW02533SFConst.KEI_NAIYO, X31CWebConst.DATABEAN_SET_VALUE, null);
			bean[0].sendMessageString(KKW02533SFConst.NHK_CUST_NO, X31CWebConst.DATABEAN_SET_VALUE, null);
			bean[0].sendMessageString(KKW02533SFConst.SHUK_YMD, X31CWebConst.DATABEAN_SET_VALUE, null);
			bean[0].sendMessageString(KKW02533SFConst.CHG_YMD, X31CWebConst.DATABEAN_SET_VALUE, null);
			bean[0].sendMessageString(KKW02533SFConst.CHGRE_MEMO, X31CWebConst.DATABEAN_SET_VALUE, null);
			bean[0].sendMessageString(KKW02533SFConst.ADD_MEMO, X31CWebConst.DATABEAN_SET_VALUE, null);
		}
		return bean;
	}


}
