package com.fujitsu.futurity.bp.custom.common;


import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg1List;
import eo.ejb.common.JKKModelCommon;

public class JKKSIFEKK0011Mapper extends JKKSIFMapperBase 
{



	/**
	 * EKK0011D020 申込内容承認登録S-IFの入力マッピングをします
	 * 
	 * @param param リクエストパラメータ
	 * @param funcCode 機能コード
	 * @param mskmSbtCd 申込種別コード
	 * @param sysid ＳＹＳＩＤ
	 * @param mskmshoNo 申込書番号
	 * @param mskmshoDtlNo 申込書明細番号
	 * @param mskmUkDtm 申込受付日時
	 * @return 
	 * @throws RequestParameterException
	 */
	public CAANMsg getMappedTemplateEKK0011D020(IRequestParameterReadOnly param, String funcCode, String mskmSbtCd, 
			String sysid, String mskmshoNo, String mskmshoDtlNo, String mskmUkDtm) throws RequestParameterException
	{
		CAANMsg template = new CAANMsg(EKK0011D020CBSMsg.class.getName());
		CAANMsg[] templateArray = null;

		// nullを設定
		fillCAANMSGNullMapping(template, new EKK0011D020CBSMsg().getContents());

		// 共通初期処理
		init(template);
		
		// テンプレートID
		template.set(EKK0011D020CBSMsg.TEMPLATEID, "EKK0011D020");

		// 機能コード（デフォルト：１）
		template.set(EKK0011D020CBSMsg.FUNC_CODE, funcCode);
		
		// リクエストパラメータ.ＳＹＳＩＤ → ＳＹＳＩＤ
		if (null == sysid || 1 > sysid.length())
		{
			template.setNull(EKK0011D020CBSMsg.SYSID);
		}
		else
		{
			template.set(EKK0011D020CBSMsg.SYSID, sysid);
		}

		// 申込種別コード
		template.set(EKK0011D020CBSMsg.MSKM_SBT_CD, mskmSbtCd);	//JKKDslRun.MSKM_SBT_CD_DSL);

		// リクエストパラメータ.運用日時 → 申込受付年月日時分秒
		template.set(EKK0011D020CBSMsg.MSKM_UK_DTM, mskmUkDtm);
		//↑↑↑2012-12-01変更　ロット２IT1-2012-0002202, IT1-2012-0002203（解約の進捗登録を正規化）↑↑↑

//		// リクエストパラメータ.オペレータＩＤ → 申込受付担当ユーザーＩＤ
//		template.set(EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID, 
//				param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		// リクエストパラメータ.運用日付 → 申込年月日
		template.set(EKK0011D020CBSMsg.MSKM_YMD, JKKBpCommon.getOpeDate(null));

		// コンシューマ営業用申込状態識別コード(04:承認済) → コンシューマ営業用申込状態識別コード
		template.set(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD, "04");

		templateArray = template.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);

		if (templateArray == null) {
			templateArray = new CAANMsg[1];
			template.set(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, templateArray);
		}

		CAANMsg childTemplate = templateArray[0];
		if (childTemplate == null) {
			childTemplate = new CAANMsg(EKK0011D020CBSMsg1List.class.getName());
			templateArray[0] = childTemplate;
		}
		// nullを設定
		fillCAANMSGNullMapping(childTemplate, new EKK0011D020CBSMsg1List().getContents());

		// 申込書番号
		childTemplate.set(EKK0011D020CBSMsg1List.MSKMSHO_NO, mskmshoNo);
		
		// 申込書明細番号
		childTemplate.set(EKK0011D020CBSMsg1List.MSKMSHO_DTL_NO, mskmshoDtlNo);

		return template;
	}


}
