/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom, 2011
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JKKSIFEKK0161Mapper
 *   ソースファイル名：JKKSIFEKK0161Mapper.java
 *   作成者          ：富士通
 *   日付            ：2014年02月21日
 *＜機能概要＞
 *   
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v8.00.00    2014/02/21   FJ）藤田    新規作成
 *   v8.01.00    2014/02/21   FJ)藤田     【ANK-1855-00-00】対応
 *	v19.00.00    2015/10/12   FJ)森脇     【OM-2015-0002213】消去可否チェックでワーニング
 *
 **********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0161A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B003CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161C160CBSMsg;

public class JKKSIFEKK0161Mapper extends JKKSIFMapperBase
{
	/**
	 * EKK0161A010_サービス契約内訳一意照会S-IF入力マッピング
	 * <br>
	 * @param svc_kei_ucwk_no サービス契約内訳番号
	 * @param gene_add_dtm 世代登録年月日時分秒 (null指定でカレント検索)
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateEKK0161A010(String svc_kei_ucwk_no, String gene_add_dtm) 
	{
		CAANMsg template = new CAANMsg(EKK0161A010CBSMsg.class.getName());

		// nullを設定
		fillCAANMSGNullMapping(template, new EKK0161A010CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(EKK0161A010CBSMsg.TEMPLATEID, "EKK0161A010");

		// ＫＥＹ＿サービス契約内訳番号
		template.set(EKK0161A010CBSMsg.KEY_SVC_KEI_UCWK_NO, svc_kei_ucwk_no);

		if (gene_add_dtm != null) {
			// 機能コード
			template.set(EKK0161A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
			// ＫＥＹ＿世代登録年月日時分秒
			template.set(EKK0161A010CBSMsg.KEY_GENE_ADD_DTM, gene_add_dtm);
		} else {
			// 機能コード
			template.set(EKK0161A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);
			// ＫＥＹ＿予約適用年月日
			String rsv_aply_ymd = (String) JKKBpCommon.getOpeDate(null);
			template.set(EKK0161A010CBSMsg.KEY_RSV_APLY_YMD, rsv_aply_ymd);
		}

		return template;
	}

	/**
	 * EKK0161B003 サービス契約内訳一覧照会（SYSID）S-IF入力マッピング
	 * <br>
	 * @param sysid sysid
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateEKK0161B003(String sysid) 
	{
		CAANMsg template = new CAANMsg(EKK0161B003CBSMsg.class.getName());

		// nullを設定
		fillCAANMSGNullMapping(template, new EKK0161B003CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(EKK0161B003CBSMsg.TEMPLATEID, "EKK0161B003");

		// ＫＥＹ＿SYSID
		template.set(EKK0161B003CBSMsg.KEY_SYSID, sysid);

		// 機能コード
		template.set(EKK0161B003CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);

		return template;
	}

	/**
	 * サービス契約内訳キャンセル S-IF上りマッピング
	 * <br>
	 * @param svc_kei_ucwk_no
	 * @param mskm_dtl_no
	 * @param svc_cancel_rsn_cd
	 * @param ido_div
	 * @param upd_dtm_bf
	 * @param svctk_but_del_trn_jssi_dtm
	 * @param funcCode
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateEKK0161C160(String svc_kei_ucwk_no
												,String mskm_dtl_no
												,String svc_cancel_rsn_cd
												,String ido_div
												,String upd_dtm_bf
												,String funcCode
												// OM-2015-0002213 ADD START
												,String svctk_but_del_trn_jssi_dtm)
												// OM-2015-0002213 ADD END
	{
		CAANMsg template = new CAANMsg(EKK0161C160CBSMsg.class.getName());

		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0161C160CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(EKK0161C160CBSMsg.TEMPLATEID, "EKK0161C160");
		// 機能コード
		template.set(EKK0161C160CBSMsg.FUNC_CODE, funcCode);
		// サービス契約内訳番号
		template.set(EKK0161C160CBSMsg.SVC_KEI_UCWK_NO, svc_kei_ucwk_no);
		// 申込明細番号
		template.set(EKK0161C160CBSMsg.MSKM_DTL_NO, mskm_dtl_no);
		// サービスキャンセル理由コード
		template.set(EKK0161C160CBSMsg.SVC_CANCEL_RSN_CD, svc_cancel_rsn_cd);
		// 異動区分
		template.set(EKK0161C160CBSMsg.IDO_DIV, ido_div);
		// OM-2015-0002213 ADD START
		// サービス提供物消去処理実施年月日時分秒
		template.set(EKK0161C160CBSMsg.SVCTK_BUT_DEL_TRN_JSSI_DTM, svctk_but_del_trn_jssi_dtm);
		// OM-2015-0002213 ADD END
		// 更新年月日時分秒(更新前)
		template.set(EKK0161C160CBSMsg.UPD_DTM_BF, upd_dtm_bf);

		return template;
	}

}
