/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom, 2011
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JKKSIFEKK0401Mapper
 *   ソースファイル名：JKKSIFEKK0401Mapper.java
 *   作成者          ：富士通
 *   日付            ：2014年02月26日
 *＜機能概要＞
 *   サブオプションサービス  照会・更新用マッパー
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v8.00.00    2014/02/26   FJ）藤田    新規作成
 *
 **********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import com.fujitsu.futurity.model.base.CAANMsg;

import eo.ejb.cbs.cbsmsg.EKK0401B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0401C150CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0401C170CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0401C180CBSMsg;

public class JKKSIFEKK0401Mapper extends JKKSIFMapperBase {

	/**
	 * 共通初期処理
	 * @param template
	 */
	protected void init(CAANMsg template)
	{
		super.init(template);
	}

	/**
	 * サブオプションサービス契約一覧照会 S-IF上りマッピング
	 * <br>
	 * @param	op_svc_kei_no	オプションサービス契約番号
	 * @param	funcCode	機能コード
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateEKK0401B001(String op_svc_kei_no, String funcCode)
	{
		CAANMsg template = new CAANMsg(EKK0401B001CBSMsg.class.getName());
		
		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0401B001CBSMsg().getContents());

		// 共通初期処理
		init(template);
		
		// テンプレートID
		template.set(EKK0401B001CBSMsg.TEMPLATEID, "EKK0401B001");

		// 機能コード
		template.set(EKK0401B001CBSMsg.FUNC_CODE, funcCode);

		// ＫＥＹ＿オプションサービス契約番号
		template.set(EKK0401B001CBSMsg.KEY_OP_SVC_KEI_NO, op_svc_kei_no);
		
		return template;
	}

	/**
	 * サブオプションサービス契約キャンセル S-IF上りマッピング
	 * <br>
	 * @param op_svc_kei_no
	 * @param sbop_svc_kei_no
	 * @param mskm_dtl_no
	 * @param svc_cancel_rsn_cd
	 * @param ido_div
	 * @param upd_dtm_bf
	 * @param funcCode
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateEKK0401C150(String op_svc_kei_no
												,String sbop_svc_kei_no
												,String mskm_dtl_no
												,String svc_cancel_rsn_cd
												,String ido_div
												,String upd_dtm_bf
												,String funcCode)
	{
		CAANMsg template = new CAANMsg(EKK0401C150CBSMsg.class.getName());

		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0401C150CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(EKK0401C150CBSMsg.TEMPLATEID, "EKK0401C150");
		// 機能コード
		template.set(EKK0401C150CBSMsg.FUNC_CODE, funcCode);
		
		// オプションサービス契約番号
		template.set(EKK0401C150CBSMsg.OP_SVC_KEI_NO, op_svc_kei_no);
		// サブオプションサービス契約番号
		template.set(EKK0401C150CBSMsg.SBOP_SVC_KEI_NO, sbop_svc_kei_no);
		// 申込明細番号
		template.set(EKK0401C150CBSMsg.MSKM_DTL_NO, mskm_dtl_no);
		// サービスキャンセル理由コード
		template.set(EKK0401C150CBSMsg.SVC_CANCEL_RSN_CD, svc_cancel_rsn_cd);
		// 異動区分
		template.set(EKK0401C150CBSMsg.IDO_DIV, ido_div);
		// 更新年月日時分秒(更新前)
		template.set(EKK0401C150CBSMsg.UPD_DTM_BF, upd_dtm_bf);

		return template;
	}

	/**
	 * オプションサービス契約解約 S-IF上りマッピング
	 * <br>
	 * @param op_svc_kei_no
	 * @param sbop_svc_kei_no
	 * @param mskm_dtl_no
	 * @param rsv_tsta_kibo_ymd
	 * @param svc_endymd
	 * @param svc_chrg_endymd
	 * @param svc_dlre_cd
	 * @param svc_dlre_memo
	 * @param dsl_tnt_user_id
	 * @param pnlty_hassei_cd
	 * @param ido_div
	 * @param upd_dtm_bf
	 * @param op_hktgi_sk_svc_kei_no
	 * @param warn_flg
	 * @param funcCode
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateEKK0401C170(String op_svc_kei_no
												,String sbop_svc_kei_no
												,String mskm_dtl_no
												,String rsv_tsta_kibo_ymd
												,String svc_endymd
												,String svc_chrg_endymd
												,String svc_dlre_cd
												,String svc_dlre_memo
												,String pnlty_hassei_cd
												,String ido_div
												,String upd_dtm_bf
												,String op_hktgi_sk_svc_kei_no
												,String funcCode)
	{
		CAANMsg template = new CAANMsg(EKK0401C170CBSMsg.class.getName());

		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0401C170CBSMsg().getContents());

		// 共通初期処理
		init(template);
		
		// テンプレートID
		template.set(EKK0401C170CBSMsg.TEMPLATEID, "EKK0401C170");
		// 機能コード
		template.set(EKK0401C170CBSMsg.FUNC_CODE, funcCode);
		
		// オプションサービス契約番号
		template.set(EKK0401C170CBSMsg.OP_SVC_KEI_NO, op_svc_kei_no);
		// サブオプションサービス契約番号
		template.set(EKK0401C150CBSMsg.SBOP_SVC_KEI_NO, sbop_svc_kei_no);
		// 申込明細番号
		template.set(EKK0401C170CBSMsg.MSKM_DTL_NO, mskm_dtl_no);
		// 予約適用開始希望年月日
		template.set(EKK0401C170CBSMsg.RSV_TSTA_KIBO_YMD, rsv_tsta_kibo_ymd);
		// サービス終了年月日
		template.set(EKK0401C170CBSMsg.SVC_ENDYMD, svc_endymd);
		// サービス課金終了年月日
		template.set(EKK0401C170CBSMsg.SVC_CHRG_ENDYMD, svc_chrg_endymd);
		// サービス解約理由コード
		template.set(EKK0401C170CBSMsg.SVC_DLRE_CD, svc_dlre_cd);
		// サービス解約理由メモ
		template.set(EKK0401C170CBSMsg.SVC_DLRE_MEMO, svc_dlre_memo);
		// 違約金発生コード
		template.set(EKK0401C170CBSMsg.PNLTY_HASSEI_CD, pnlty_hassei_cd);
		// 異動区分
		template.set(EKK0401C170CBSMsg.IDO_DIV, ido_div);
		// 更新年月日時分秒(更新前)
		template.set(EKK0401C170CBSMsg.UPD_DTM_BF, upd_dtm_bf);
		// オプション引継先サービス契約番号
		template.set(EKK0401C170CBSMsg.OP_HKTGI_SK_SVC_KEI_NO, op_hktgi_sk_svc_kei_no);

		return template;
	}
	
	/**
	 * サブオプションサービス契約解約確定 S-IF上りマッピング
	 * <br>
	 * @param op_svc_kei_no
	 * @param sbop_svc_kei_no
	 * @param svc_endymd
	 * @param svc_chrg_endymd
	 * @param svc_dlre_cd
	 * @param svc_dlre_memo
	 * @param upd_dtm_bf
	 * @param dslji_chrg_flg
	 * @param funcCode
	 * @return
	 */
	public CAANMsg getMappedTemplateEKK0401C180(String op_svc_kei_no
			,String sbop_svc_kei_no
			,String svc_endymd
			,String svc_chrg_endymd
			,String svc_dlre_cd
			,String svc_dlre_memo
			,String upd_dtm_bf
			,String dslji_chrg_flg
			,String funcCode)
	{
		CAANMsg template = new CAANMsg(EKK0401C180CBSMsg.class.getName());
		
		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0401C180CBSMsg().getContents());
		
		// 共通初期処理
		init(template);
		
		// テンプレートID
		template.set(EKK0401C180CBSMsg.TEMPLATEID, "EKK0401C180");
		// 機能コード
		template.set(EKK0401C180CBSMsg.FUNC_CODE, funcCode);
		
		// オプションサービス契約番号
		template.set(EKK0401C180CBSMsg.OP_SVC_KEI_NO, op_svc_kei_no);
		// サブオプションサービス契約番号
		template.set(EKK0401C150CBSMsg.SBOP_SVC_KEI_NO, sbop_svc_kei_no);
		// サービス終了年月日
		template.set(EKK0401C180CBSMsg.SVC_ENDYMD, svc_endymd);
		// サービス課金終了年月日
		template.set(EKK0401C180CBSMsg.SVC_CHRG_ENDYMD, svc_chrg_endymd);
		// サービス解約理由コード
		template.set(EKK0401C180CBSMsg.SVC_DLRE_CD, svc_dlre_cd);
		// サービス解約理由メモ
		template.set(EKK0401C180CBSMsg.SVC_DLRE_MEMO, svc_dlre_memo);
		// 更新年月日時分秒(更新前)
		template.set(EKK0401C180CBSMsg.UPD_DTM_BF, upd_dtm_bf);
		// 解約時課金フラグ
		template.set(EKK0401C180CBSMsg.DSLJI_CHRG_FLG, dslji_chrg_flg);
		
		return template;
	}
}
