package com.fujitsu.futurity.bp.custom.common;


import java.util.Map;

import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg1List;

public class JKKSIFEKK1091Mapper extends JKKSIFMapperBase {

	/** 進捗登録 */
	private static final String TEMPLATE_ID_EKK1091D010 = "EKK1091D010";

	/**
	 * 共通初期処理
	 * @param template
	 */
	protected void init(CAANMsg template)
	{
		super.init(template);
	}
	
	/**
	 * 進捗登録SIF(IN)マッピング
	 * <br>機能コード : 1
	 * @param	prgAddMap	進捗登録データマップ
	 * @param	idoRsnCdList	異動理由コードリスト
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateEKK1091D010(Map<String, Object> prgAddMap, String[] idoRsnCdList)
	{
		CAANMsg template = new CAANMsg(EKK1091D010CBSMsg.class.getName());
		
		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK1091D010CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(EKK1091D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1091D010);

		// 機能コード
		template.set(EKK1091D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);

		// 申込明細番号
		template.set(EKK1091D010CBSMsg.MSKM_DTL_NO, (String)prgAddMap.get("mskm_dtl_no"));
		//請求契約番号
		template.set(EKK1091D010CBSMsg.SEIKY_KEI_NO, (String)prgAddMap.get("seiky_kei_no"));
		//請求方法番号(口座)
		template.set(EKK1091D010CBSMsg.SEIKY_WAY_NO_KOZA, (String)prgAddMap.get("seiky_way_no_koza"));
		//請求方法番号(クレジットカード)
		template.set(EKK1091D010CBSMsg.SEIKY_WAY_NO_CRECARD, (String)prgAddMap.get("seiky_way_no_crecard"));
		//サービス契約番号
		template.set(EKK1091D010CBSMsg.SVC_KEI_NO, (String)prgAddMap.get("svc_kei_no"));
		//サービス契約内訳番号
		template.set(EKK1091D010CBSMsg.SVC_KEI_UCWK_NO, (String)prgAddMap.get("svc_kei_ucwk_no"));
		//サービス契約回線内訳番号
		template.set(EKK1091D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, (String)prgAddMap.get("svc_kei_kaisen_ucwk_no"));
		//機器提供サービス契約番号
		template.set(EKK1091D010CBSMsg.KKTK_SVC_KEI_NO, (String)prgAddMap.get("kktk_svc_kei_no"));
		//オプションサービス契約番号
		template.set(EKK1091D010CBSMsg.OP_SVC_KEI_NO, (String)prgAddMap.get("op_svc_kei_no"));
		//請求オプションサービス契約番号
		template.set(EKK1091D010CBSMsg.SEIOPSVC_KEI_NO, (String)prgAddMap.get("seiopsvc_kei_no"));
		//サブオプションサービス契約番号
		template.set(EKK1091D010CBSMsg.SBOP_SVC_KEI_NO, (String)prgAddMap.get("sbop_svc_kei_no"));
		//割引サービス契約番号
		template.set(EKK1091D010CBSMsg.WRIB_SVC_KEI_NO, (String)prgAddMap.get("wrib_svc_kei_no"));
		//異動区分
		template.set(EKK1091D010CBSMsg.IDO_DIV, (String)prgAddMap.get("ido_div"));
		//進捗ステータス
		template.set(EKK1091D010CBSMsg.PRG_STAT, (String)prgAddMap.get("prg_stat"));
		//進捗メモ
		template.set(EKK1091D010CBSMsg.PRG_MEMO, (String)prgAddMap.get("prg_memo"));
		//進捗特記事項1
		template.set(EKK1091D010CBSMsg.PRG_TKJK_1, (String)prgAddMap.get("prg_tkjk_1"));
		//進捗特記事項2
		template.set(EKK1091D010CBSMsg.PRG_TKJK_2, (String)prgAddMap.get("prg_tkjk_2"));
		//異動日時
		template.set(EKK1091D010CBSMsg.IDO_DTM, (String)prgAddMap.get("ido_dtm"));
		

		//異動理由コード
		CAANMsg[] list = new CAANMsg[idoRsnCdList.length];
		for (int i=0; i < idoRsnCdList.length; i++) {
			CAANMsg idoRsnTemp = new CAANMsg(EKK1091D010CBSMsg1List.class.getName());
			fillCAANMSGNullMapping(idoRsnTemp, new EKK1091D010CBSMsg1List().getContents());
			idoRsnTemp.set(EKK1091D010CBSMsg1List.IDO_RSN_CD, idoRsnCdList[i]);
			list[i] = idoRsnTemp;
		}

		template.set(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST, list);
		
		return template;
	}

	
}
