/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0401_KKSV0401OPDBMapper
*	ソースファイル名：KKSV0401_KKSV0401OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2012年04月13日
*＜機能概要＞
*	BP（機器提供サービス契約解約チェック処理サービス）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/04/13	Fujitsu		新規作成
*
**********************************************************************/
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 com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.web.webview.KKW03301SF.KKW03301SFConst;
import eo.web.webview.common.JKKCommonConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0401_KKSV0401OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public KKSV0401_KKSV0401OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV040101CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		// 設定内容を格納する HasMap
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 顧客契約引継リストを取得
		X31SDataBeanAccess custbean = bean[0].getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST).getDataBean(0);
		
		// チェック画面ＩＤ
		parentMap.put("check_scrn_id", "KKW034");
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 部品呼び出し → 機器提供サービス契約解約情報マップ.異動区分
		parentMap.put("ido_div", custbean.sendMessageString(JKKCommonConst.HKTGI_IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 部品呼び出し → 進捗登録情報マップ.サービス契約番号
		parentMap.put("svc_kei_no", custbean.sendMessageString(JKKCommonConst.HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 機器提供サービス契約番号 → 機器提供サービス契約料金コース変更中止情報マップ.機器提供サービス契約番号
		parentMap.put("kktk_svc_kei_no", bean[0].sendMessageString("機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));		
		
		// 予約適用年月日 → 返品機器受付情報マップ.返品受付年月日
		parentMap.put("unyo_ymd", bean[0].sendMessageString("運用日付", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 機器提供終了年月日 → サービス契約内訳解約確定情報マップ.サービス課金終了年月日
		parentMap.put("svc_chrg_endymd", bean[0].sendMessageString("解約年月日", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 配送ステータス →返品機器受付マップ.配送ステータス
		parentMap.put("haiso_stat", bean[0].sendMessageString("配送ステータス", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 更新年月日時分秒
		parentMap.put("upd_dtm_bf", bean[0].sendMessageString("更新年月日時分秒（サービス契約）", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 機器一覧から画面選択行を取得
		X31SDataBeanAccessArray select_list = bean[0].getDataBeanArray(KKW03301SFConst.SERVICE_LIST);
		
		// KKW03301機器提供サービス契約一覧画面で選択した機器情報を取得する。
		String selectRow = bean[0].sendMessageString(KKW03301SFConst.SELECTROW, X31CWebConst.DATABEAN_GET_VALUE);
		
		X31SDataBeanAccess kikilist = select_list.getDataBean(Integer.parseInt(selectRow));
		
		// 停止SOD年月日
		parentMap.put("stp_sod_send_ymd", kikilist.sendMessageString("停止ＳＯＤ送信年月日", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 進捗登録
		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray(KKW03301SFConst.KTGI_CUST_KEI_HKTGI_LIST);
		ArrayList idoRsnList = new ArrayList();
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				int count = (Integer)subbean.sendMessage(KKW03301SFConst.HKTGI_IDO_RSN_CD_04, X31CWebConst.DATABEAN_GET_COUNT);
				for (int j = 0; j < count; j++)
				{
					HashMap idoRsnMap = new HashMap();
					// 異動理由コード
					if (subbean != null)
					{
						idoRsnMap.put("ido_rsn_cd", subbean.sendMessageString(KKW03301SFConst.HKTGI_IDO_RSN_CD_04, X31CWebConst.DATABEAN_GET_VALUE, j));
					}
					idoRsnList.add(idoRsnMap);
				}
			}
		}
		parentMap.put("EKK1091D010CBSMsg1List", idoRsnList);
		
		// オーダ設定番号
//		parentMap.put("odr_set_no", kikilist.sendMessageString("オーダ設定番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 更新年月日時分秒（オーダ設定）
//		parentMap.put("upd_dtm_odr_set", kikilist.sendMessageString("更新年月日時分秒（オーダ設定）", X31CWebConst.DATABEAN_GET_VALUE));
		
		
		// 機器提供サービス契約世代登録年月日時分秒 → 機器提供サービス契約料金コース変更中止情報マップ.世代登録年月日時分秒
//		parentMap.put("gene_add_dtm", bean[0].sendMessageString("機器提供サービス契約世代登録年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
//		// 配送番号 → 配送中止情報マップ.配送番号
//		parentMap.put("haiso_no", bean[0].sendMessageString("配送番号", X31CWebConst.DATABEAN_GET_VALUE));
//		// 申込受付年月日時分秒 → 返品機器受付情報マップ.登録契機契約異動年月日時分秒
//		parentMap.put("add_optnty_kei_ido_dtm", bean[0].sendMessageString("申込受付年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
//		 更新年月日時分秒 → 機器提供サービス契約料金コース変更中止情報マップ.更新年月日時分秒（更新前）
//		
////		parentMap.put("upd_dtm_bf", kikilist.sendMessageString("編集世代登録年月日時分秒（機器提供サービス契約番号）", X31CWebConst.DATABEAN_GET_VALUE));
//
//		// 配送ステータス
//		parentMap.put("haiso_no", bean[0].sendMessageString("配送ステータス", X31CWebConst.DATABEAN_GET_VALUE));
		
		
		// 引継情報を取得
//		X31SDataBeanAccessArray subbeanArray = bean[0].getDataBeanArray(KKW03301SFConst.IPV6_OP_SVC_KEI_LIST);
//		X31SDataBeanAccess subbean = null;
//		ArrayList<HashMap<String, Object>> childList = new ArrayList<HashMap<String, Object>>();
//		HashMap<String, Object> childMap = null;
//		for (int i = 0; i < subbeanArray.getCount(); i++)
//		{
//			subbean = subbeanArray.getDataBean(i);
//			childMap = new HashMap<String, Object>();
//			childMap.put("op_svc_kei_no", subbean.sendMessageString(KKW03301SFConst.IPV6_OP_SVC_KEI_NO_16, X31CWebConst.DATABEAN_GET_VALUE));
//			childList.add(childMap);
//		}
//		
//		parentMap.put("op_svc_kei_no_lst", childList);
		
		outputMap.put("KKSV040101CC", parentMap);
		
		return outputMap;
	}

}
