/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0592_KKSV0592OPDBMapper
*	ソースファイル名：KKSV0592_KKSV0592OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年06月19日
*＜機能概要＞
*	BP（保留削除）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/06/19	FJ		新規作成
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.web.webview.KKW00101SF.KKW00101SFConst;

/**
 * DataBean-BPマッピングをする。
 * <BR>
 * @author 富士通
 */
public class KKSV0592_KKSV0592OPDBMapper
{
	
	/**
	 * コンストラクタ
	 */
	public KKSV0592_KKSV0592OPDBMapper(){
	}

	/**
	 * 保留削除の上りマッピングをする
	 * @param   bean        [0]：申込新規登録画面
	 * @param   outputMap   登録データ
	 * @param   func_code   機能コード
	 * @param   mskmFlagMap 申込フラグマップ
	 * @param   pdingMap    KKSV0537_保留情報照会の検索結果
	 * @return  登録データ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV059201CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			HashMap pdingMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		// 保留番号
		String pdingNo = bean[0].sendMessageString(KKW00101SFConst.PDING_NO, X31CWebConst.DATABEAN_GET_VALUE);

		// 保留番号が設定されていない場合、保留スキーマにデータがないと判断
		if (pdingNo == null || "".equals(pdingNo.trim()))
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		////////////////////////////////////////
		// 申込保留内容設定コード一時保存削除 //
		////////////////////////////////////////

		// 申込保留内容設定コード一時保存一覧照会マップ
		HashMap mpnySetcdTppvMap = (HashMap)pdingMap.get("KKSV053704SC");

		if (mpnySetcdTppvMap != null)
		{
			// 申込保留内容設定コード一時保存削除マップ
			HashMap mpnySetcdTppvDelMap = new HashMap();
			parentMap.put("kk_t_mpny_setcd_tppv_del_map", mpnySetcdTppvDelMap);

			mpnySetcdTppvDelMap.put("kk2231_mskm_pny_tppv_no", pdingNo);
		}

		//////////////////////////////////////
		// 申込保留内容電話番号一時保存削除 //
		//////////////////////////////////////

		// 申込保留内容電話番号一時保存一覧照会マップ
		HashMap mpnySvkeiTppvTelMap = (HashMap)pdingMap.get("KKSV053703SC");
		// 一覧紹介から取得した申込保留内容電話番号一時保存リスト
		ArrayList icrnMTTList = null;
		// 申込保留内容電話番号一時保存削除リスト
		ArrayList mpnyTelnoTppvDelList = new ArrayList();

		
		if (mpnySvkeiTppvTelMap != null)
		{
			icrnMTTList = (ArrayList)mpnySvkeiTppvTelMap.get("EKK2221B010CBSMsg1List");
		}

		// 申込保留内容電話番号一時保存にレコードが存在する場合
		if (icrnMTTList != null)
		{
			parentMap.put("kk_t_mpny_telno_tppv_del_list", mpnyTelnoTppvDelList);

			for (int i = 0; i < icrnMTTList.size(); i++)
			{
				// 申込保留内容電話番号一時保存削除マップの作成
				HashMap mpnyTelnoTppvDelMap = new HashMap();
				// 申込保留内容電話番号一時保存リストから削除対象のレコード情報を取得
				HashMap inputMTTMap = (HashMap)icrnMTTList.get(i);
				mpnyTelnoTppvDelMap.put("kk2221_mskm_pny_tppv_no", inputMTTMap.get("mskm_pny_tppv_no"));
				mpnyTelnoTppvDelMap.put("kk2221_mpny_svkei_tppv_no", inputMTTMap.get("mpny_svkei_tppv_no"));
				mpnyTelnoTppvDelMap.put("kk2221_mpny_tg_telno_skbt_cd", inputMTTMap.get("mpny_tg_telno_skbt_cd"));

				mpnyTelnoTppvDelList.add(mpnyTelnoTppvDelMap);
			}
		}

		//////////////////////////////////////////
		// 申込保留内容サービス契約一時保存削除 //
		//////////////////////////////////////////

		// 申込保留内容サービス契約一時保存一覧照会マップ
		HashMap mpnySvkeiTppvMap = (HashMap)pdingMap.get("KKSV053702SC");
		// 一覧紹介から取得した申込保留内容サービス契約一時保存リスト
		ArrayList icrnMSTList = null;
		// 申込保留内容サービス契約一時保存削除リスト
		ArrayList mpnySvkeiTppvDelList = new ArrayList();

		if (mpnySvkeiTppvMap != null)
		{
			icrnMSTList = (ArrayList)mpnySvkeiTppvMap.get("EKK2211B010CBSMsg1List");
		}

		// 申込保留内容サービス契約一時保にレコードが存在する場合
		if (icrnMSTList != null)
		{
			parentMap.put("kk_t_mpny_svkei_tppv_del_list", mpnySvkeiTppvDelList);

			for (int i = 0; i < icrnMSTList.size(); i++)
			{
				// 申込保留内容サービス契約一時保存削除マップ
				HashMap mpnySvkeiTppvDelMap = new HashMap();
				// 申込保留内容電話番号一時保存リストから削除対象のレコード情報を取得
				HashMap inputMSTMap = (HashMap)icrnMSTList.get(i);
				mpnySvkeiTppvDelMap.put("kk2211_mskm_pny_tppv_no", inputMSTMap.get("mskm_pny_tppv_no"));
				mpnySvkeiTppvDelMap.put("kk2211_mpny_svkei_tppv_no", inputMSTMap.get("mpny_svkei_tppv_no"));
				
				mpnySvkeiTppvDelList.add(mpnySvkeiTppvDelMap);
			}
		}

		//////////////////////////////
		// 申込保留内容一時保存削除 //
		//////////////////////////////

		// 申込保留内容一時保存一意照会マップ
		HashMap mskmPnyTppvMap = (HashMap)pdingMap.get("KKSV053701SC");
		// 一意紹介から取得した申込保留内容一時保存リスト
		ArrayList mskmPnyTppvList = null;

		// 申込保留内容一時保存にレコードが存在する場合
		if (mskmPnyTppvMap != null)
		{
			mskmPnyTppvList = (ArrayList)mskmPnyTppvMap.get("EKK2081A010CBSMsg1List");
		}

		if (mskmPnyTppvList  != null && 0 <= mskmPnyTppvList.size())
		{
			// 申込保留内容一時保存用マップ
			HashMap childMskmPnyTppvMap = (HashMap)mskmPnyTppvList.get(0);
			// 申込保留内容一時保存削除マップ
			HashMap mskmPnyTppvDelMap = new HashMap();
			parentMap.put("kk_t_mskm_pny_tppv_del_map", mskmPnyTppvDelMap);

			// 申込保留内容一時保存番号
			mskmPnyTppvDelMap.put("kk2081_mskm_pny_tppv_no", childMskmPnyTppvMap.get("mskm_pny_tppv_no"));
			// 更新前最終更新年月日時分秒
			mskmPnyTppvDelMap.put("kk2081_last_upd_dtm_bf", childMskmPnyTppvMap.get("upd_dtm"));
		}

		outputMap.put("KKSV059201CC", parentMap);

		return outputMap;
	}
}