/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom, 2011
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JKKSIFECK0011Mapper
 *   ソースファイル名：JKKSIFECK0011Mapper.java
 *   作成者          ：富士通
 *   日付            ：2014年02月21日
 *＜機能概要＞
 *   
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v8.00.00    2014/02/21   FJ）藤田    新規作成
 *  v10.00.00    2014/08/11   FJ）藤田    【ANK-2213-00-00】 対応
 *  v33.00.00    2017/06/19   FJ) 辻本    【ANK-3179-00-00】解約済み契約の請求明細表示
 *
 **********************************************************************/
package com.fujitsu.futurity.bp.custom.common;


import com.fujitsu.futurity.bp.custom.constant.JKKSvkeiShosaConstCC;
import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.constant.JPCModelConstant;
import eo.common.util.JKKCommonUtil;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B004CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C120CBSMsg;

public class JKKSIFECK0011Mapper extends JKKSIFMapperBase {

	/** お客様一意照会 */
	private static final String TEMPLATE_ID_ECK0011A010 = "ECK0011A010";

	/**
	 * 共通初期処理
	 * @param template
	 */
	protected void init(CAANMsg template)
	{
		super.init(template);
	}
	
	/**
	 * お客様一意照会SIF(IN)マッピング
	 * <br>機能コード : 2
	 * <br>カレントを取得します。
	 * @param	sysid		sysid
	 * @param	rsvAplyYmd	予約適用年月日
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateECK0011A010(String sysid, String rsvAplyYmd)
	{
		CAANMsg template = new CAANMsg(ECK0011A010CBSMsg.class.getName());
		
		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ECK0011A010CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(ECK0011A010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0011A010);

		// 機能コード
		template.set(ECK0011A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);

		// SYSID
		template.set(ECK0011A010CBSMsg.KEY_SYSID, sysid);

		// 予約適用年月日
		if (rsvAplyYmd == null || "".equals(rsvAplyYmd))
		{
			template.setNull(ECK0011A010CBSMsg.KEY_RSV_APLY_YMD);
		} else {
			template.set(ECK0011A010CBSMsg.KEY_RSV_APLY_YMD, rsvAplyYmd);
		}

		return template;
	}

	// ANK-2213-00-00 対応 藤田 2014/08/11 ADD START
	/**
	 * お客様履歴一覧照会
	 *<br>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * @param sysid
	 * @param funcCode
	 * @return
	 */
	public CAANMsg getMappedTemplateECK0011B004(String sysid,
												 String upd_dtm_from,
												 String upd_dtm_to,
												 String funcCode)
	{
		CAANMsg template = new CAANMsg(ECK0011B004CBSMsg.class.getName());

		//nullを設定
		fillCAANMSGNullMapping(template, new ECK0011B004CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(ECK0011B004CBSMsg.TEMPLATEID, "ECK0011B004");

		// 機能コード
		template.set(ECK0011B004CBSMsg.FUNC_CODE, funcCode);
		
		// ＳＹＳＩＤ
		template.set(ECK0011B004CBSMsg.KEY_SYSID, sysid);
		
		// ＫＥＹ＿変更日時ＦＲＯＭ
		if (upd_dtm_from == null || "".equals(upd_dtm_from))
		{
			template.setNull(ECK0011B004CBSMsg.KEY_UPD_DTM_FROM);
		} else {
			template.set(ECK0011B004CBSMsg.KEY_UPD_DTM_FROM, upd_dtm_from);
		}
		// ＫＥＹ＿変更日時ＴＯ
		if (upd_dtm_to == null || "".equals(upd_dtm_to))
		{
			template.setNull(ECK0011B004CBSMsg.KEY_UPD_DTM_TO);
		} else {
			template.set(ECK0011B004CBSMsg.KEY_UPD_DTM_TO, upd_dtm_to);
		}
		
		return template;
	}
	// ANK-2213-00-00 対応 藤田 2014/08/11 ADD END

	/**
	 *<br>会員種別変更
	 *<br>機能コード : 1
	 *<br>サービスコンポーネント実行前に、CAANMsgに必要なデータをマッピングする
	 * @param sysid sysid
	 * @param upd_dtm_bf 更新年月日時分秒（更新前）
	 * @param regitMemberSbtCd 会員種別コード
	 * @param dslAfSkssnsKh 解約後請求書参照可否
	 * @return サービスコンポーネント実行用CAANMsg
	 */
	public CAANMsg getMappedTemplateECK0011C120(
			String sysid,
			String upd_dtm_bf,
			// ANK-3179-00-00 MOD START
//			String regitMemberSbtCd)
			String regitMemberSbtCd,
			String dslAfSkssnsKh)
			// ANK-3179-00-00 MOD START
	{
		CAANMsg template = new CAANMsg(ECK0011C120CBSMsg.class.getName());

		//nullを設定
		fillCAANMSGNullMapping(template, new ECK0011C120CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(ECK0011C120CBSMsg.TEMPLATEID, "ECK0011C120");

		// 機能コード
		template.set(ECK0011C120CBSMsg.FUNC_CODE, JKKSvkeiShosaConstCC.FUNC_CODE_1);
		
		// ＳＹＳＩＤ
		if (sysid == null || "".equals(sysid))
		{
			template.setNull(ECK0011C120CBSMsg.SYSID);
		}
		else
		{
			template.set(ECK0011C120CBSMsg.SYSID, sysid);
		}
		
		// 会員種別コード
		if (regitMemberSbtCd == null || "".equals(regitMemberSbtCd))
		{
			template.setNull(ECK0011C120CBSMsg.MEMBER_SBT_CD);
		}
		else
		{
			template.set(ECK0011C120CBSMsg.MEMBER_SBT_CD, regitMemberSbtCd);
		}
		
		// 更新年月日時分秒（更新前）
		if (upd_dtm_bf == null || "".equals(upd_dtm_bf))
		{
			template.setNull(ECK0011C120CBSMsg.UPD_DTM_BF);
		}
		else
		{
			template.set(ECK0011C120CBSMsg.UPD_DTM_BF, upd_dtm_bf);
		}
		
		// ANK-3179-00-00 ADD START
		// 解約後請求書参照可否
		if (JKKCommonUtil.isNull(dslAfSkssnsKh))
		{
			template.setNull(ECK0011C120CBSMsg.DSL_AF_SKSSNS_KH);
		}
		else
		{
			template.set(ECK0011C120CBSMsg.DSL_AF_SKSSNS_KH, dslAfSkssnsKh);
		}
		// ANK-3179-00-00 ADD END
		
		return template;
	}

}
