/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom, 2011
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JKKSIFEKK0081Mapper
 *   ソースファイル名：JKKSIFEKK0081Mapper.java
 *   作成者          ：富士通
 *   日付            ：2014年01月06日
 *＜機能概要＞
 *   
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v8.00.00    2014/01/06   FJ）藤田    新規作成
 *   v8.01.00    2014/02/21   FJ）藤田    【IT2-2014-0000129】対応
 *   v8.02.00    2014/03/19   FJ）藤田    【IT1-2014-0000098】対応
 *
 **********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import com.fujitsu.futurity.model.base.CAANMsg;

import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B519CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B526CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081C160CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081C180CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081C260CBSMsg;

public class JKKSIFEKK0081Mapper extends JKKSIFMapperBase {

	/** サービス契約一意照会 */
	private static final String TEMPLATE_ID_EKK0081A010 = "EKK0081A010";

	/**
	 * 共通初期処理
	 * @param template
	 */
	protected void init(CAANMsg template)
	{
		super.init(template);
	}
	
	/**
	 * サービス契約一意照会SIF(IN)マッピング
	 * <br>機能コード : 2
	 * <br>
	 * @param svcKeiNo サービス契約番号
	 * @param	rsvAplyYmd	予約適用年月日
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateEKK0081A010(String svcKeiNo, String rsvAplyYmd)
	{
		CAANMsg template = new CAANMsg(EKK0081A010CBSMsg.class.getName());

		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0081A010CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID(SIFのID)
		template.set(EKK0081A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0081A010);

		// 機能コード
		template.set(EKK0081A010CBSMsg.FUNC_CODE, FUNC_CD_2);

		// ＫＥＹ＿サービス契約番号
		if (null != svcKeiNo && 0 < svcKeiNo.length())
		{
			template.set(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		}
		else
		{
			template.setNull(EKK0081A010CBSMsg.KEY_SVC_KEI_NO);
		}

		// ＫＥＹ＿予約適用年月日
		if (rsvAplyYmd == null || "".equals(rsvAplyYmd)) {
			template.setNull(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD);
		} else {
			template.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, rsvAplyYmd);
		}

		return template;
	}


	/**
	 * EKK0081C160 サービス契約解約確定S-IFの入力マッピングを行います
	 * 
	 * @param funcCode 機能コード
	 * @param svcKeiNo サービス契約番号
	 * @param mskmDtlNo 申込明細番号
	 * @param svcClYmd サービスキャンセル日（入力）
	 * @param dlreCd キャンセル理由コード
	 * @param idoDiv 異動区分
	 * @param updDtmBf 更新前更新日時
	 * @return S-IFテンプレート
	 */
	public CAANMsg getMappedTemplateEKK0081C160(String funcCode,
			String svcKeiNo, String mskmDtlNo, String svcClYmd, String dlreCd,
			String idoDiv, String updDtmBf)
	{
		CAANMsg template = new CAANMsg(EKK0081C160CBSMsg.class.getName());
		
		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0081C160CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(EKK0081C160CBSMsg.TEMPLATEID, "EKK0081C160");

		// 機能コード
		template.set(EKK0081C160CBSMsg.FUNC_CODE, funcCode);

		
		final String[] inItems = {
				EKK0081C160CBSMsg.SVC_KEI_NO,			//サービス契約番号
//				EKK0081C160CBSMsg.GENE_ADD_DTM,			//出力・世代登録年月日時分秒
//				EKK0081C160CBSMsg.SVC_KEI_STAT,			//出力・サービス契約ステータス
				EKK0081C160CBSMsg.MSKM_DTL_NO,			//申込明細番号
//				EKK0081C160CBSMsg.RSV_APLY_YMD,			//出力・予約適用年月日
//				EKK0081C160CBSMsg.RSV_APLY_CD,			//出力・予約適用コード
//				EKK0081C160CBSMsg.SVC_CANCEL_YMD,		//出力・サービスキャンセル年月日
				EKK0081C160CBSMsg.SVC_CANCEL_RSN_CD,	//サービスキャンセル理由コード
//				EKK0081C160CBSMsg.SVC_CANCEL_CL_YMD,	//出力・サービスキャンセル取消年月日
				EKK0081C160CBSMsg.IDO_DIV,				//異動区分
//				EKK0081C160CBSMsg.ADD_DTM,				//出力・登録年月日時分秒
//				EKK0081C160CBSMsg.ADD_OPEACNT,			//出力・登録オペレータアカウント
//				EKK0081C160CBSMsg.UPD_DTM,				//出力・更新年月日時分秒
//				EKK0081C160CBSMsg.UPD_OPEACNT,			//出力・更新オペレータアカウント
//				EKK0081C160CBSMsg.MK_FLG,				//出力・無効フラグ
				EKK0081C160CBSMsg.UPD_DTM_BF,			//更新年月日時分秒(更新前)
				EKK0081C160CBSMsg.SVC_CANCEL_YMD_I		//サービスキャンセル年月日（入力）
		};
		
		final String[] inDatas = {
				svcKeiNo,
				mskmDtlNo,
				dlreCd,
				idoDiv,
				updDtmBf,
				svcClYmd
		};
		
		for (int i=0; i<inItems.length; i++)
		{
			if (null == inDatas[i] || 1 > inDatas[i].length())
			{
				template.setNull(inItems[i]);
			}
			else
			{
				template.set(inItems[i], inDatas[i]);
			}
		}
		
		return template;
	}


	
	/**
	 * EKK0081C180 サービス契約解約確定S-IFの入力マッピングを行います
	 * 
	 * @param funcCode 機能コード
	 * @param svcKeiNo サービス契約番号
	 * @param mskmDtlNo 申込明細番号
	 * @param rsvAplyKiboYmd 予約適用開始希望日
	 * @param svcEndYmd サービス終了日
	 * @param svcChrgEndYmd サービス課金終了日
	 * @param dlreCd 解約理由コード
	 * @param dlreMemo 解約メモ
	 * @param pnltyHasseiCd 違約金発生区分
	 * @param IdoDiv 異動区分
	 * @param updDtmBf 更新前更新日時
	 * @param svcDslYmd サービス解約日(入力)
	 * @return S-IFテンプレート
	 */
	public CAANMsg getMappedTemplateEKK0081C180(String funcCode,
			String svcKeiNo, String mskmDtlNo, String rsvAplyKiboYmd, String svcEndYmd, String svcChrgEndYmd, String dlreCd, String dlreMemo,
			String pnltyHasseiCd, String IdoDiv, String updDtmBf, String svcDslYmd)
	{
		CAANMsg template = new CAANMsg(EKK0081C180CBSMsg.class.getName());
		
		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0081C180CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(EKK0081C180CBSMsg.TEMPLATEID, "EKK0081C180");

		// 機能コード
		template.set(EKK0081C180CBSMsg.FUNC_CODE, funcCode);

		
		final String[] inItems = {
				EKK0081C180CBSMsg.SVC_KEI_NO,					//サービス契約番号
				EKK0081C180CBSMsg.MSKM_DTL_NO,					//申込明細番号
				EKK0081C180CBSMsg.RSV_TSTA_KIBO_YMD,			//予約適用開始希望年月日
				EKK0081C180CBSMsg.SVC_ENDYMD,					//サービス終了年月日
				EKK0081C180CBSMsg.SVC_CHRG_ENDYMD,				//サービス課金終了年月日
				EKK0081C180CBSMsg.SVC_DLRE_CD,					//サービス解約理由コード
				EKK0081C180CBSMsg.SVC_DLRE_MEMO,				//サービス解約理由メモ
				EKK0081C180CBSMsg.PNLTY_HASSEI_CD,				//違約金発生コード
				EKK0081C180CBSMsg.IDO_DIV,						//異動区分
//				EKK0081C180CBSMsg.ADD_DTM,						//出力・登録年月日時分秒
//				EKK0081C180CBSMsg.ADD_OPEACNT,					//出力・登録オペレータアカウント
//				EKK0081C180CBSMsg.UPD_DTM,						//出力・更新年月日時分秒
//				EKK0081C180CBSMsg.UPD_OPEACNT,					//出力・更新オペレータアカウント
//				EKK0081C180CBSMsg.MK_FLG,						//出力・無効フラグ
				EKK0081C180CBSMsg.NO_KOJI_CHK_FLG,				//‘0’固定・工事なし登録チェック実施フラグ
				EKK0081C180CBSMsg.UPD_DTM_BF,					//更新年月日時分秒(更新前)
//				EKK0081C180CBSMsg.TEL_SNGLKEI_FAIL_CHK_FLG,		//不要・電話単独契約不可チェック対象外フラグ
//				EKK0081C180CBSMsg.WARN_FLG						//不要・警告フラグ
//				EKK0081C180CBSMsg.SVC_DSL_YMD		//2014/01/17追加 -> S/IF側になし
		};
		
		final String[] inDatas = {
				svcKeiNo,
				mskmDtlNo,
				rsvAplyKiboYmd,
				svcEndYmd,
				svcChrgEndYmd,
				dlreCd,
				dlreMemo,
				pnltyHasseiCd,
				IdoDiv,
				"0",
				updDtmBf,
				svcDslYmd							//2014/01/17追加
		};
		
		for (int i=0; i<inItems.length; i++)
		{
			if (null == inDatas[i] || 1 > inDatas[i].length())
			{
				template.setNull(inItems[i]);
			}
			else
			{
				template.set(inItems[i], inDatas[i]);
			}
		}
		
		return template;
	}


	/**
	 * EKK0081C260 サービス契約解約確定S-IFの入力マッピングを行います
	 * 
	 * @param funcCode 機能コード
	 * @param svcKeiNo サービス契約番号
	 * @param svcEndYmd サービス終了日
	 * @param svcChrgEndYmd サービス課金終了日
	 * @param dslKisanYmd 解約起算日
	 * @param dlreCd 解約理由コード
	 * @param dlreMemo 解約メモ
	 * @param updDtmBf 更新前更新日時
	 * @param svcDslYmd サービス解約日(入力)
	 * @return S-IFテンプレート
	 */
	public CAANMsg getMappedTemplateEKK0081C260(String funcCode,
			String svcKeiNo, String svcEndYmd, String svcChrgEndYmd, String dslKisanYmd, String dlreCd, String dlreMemo,
			String updDtmBf, String svcDslYmd)
	{
		CAANMsg template = new CAANMsg(EKK0081C260CBSMsg.class.getName());
		
		// まずは全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0081C260CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID
		template.set(EKK0081C260CBSMsg.TEMPLATEID, "EKK0081C260");

		// 機能コード
		template.set(EKK0081C260CBSMsg.FUNC_CODE, funcCode);

		
		final String[] inItems = {
				EKK0081C260CBSMsg.SVC_KEI_NO,					//サービス契約番号
//				EKK0081C260CBSMsg.GENE_ADD_DTM,					//出力・世代登録年月日時分秒
//				EKK0081C260CBSMsg.SVC_KEI_STAT,					//出力・サービス契約ステータス
				EKK0081C260CBSMsg.SVC_ENDYMD,					//サービス終了年月日
				EKK0081C260CBSMsg.SVC_DSL_KISAN_YMD,			//サービス解約起算年月日
				EKK0081C260CBSMsg.SVC_DLRE_CD,					//サービス解約理由コード
				EKK0081C260CBSMsg.SVC_DLRE_MEMO,				//サービス解約理由メモ
//				EKK0081C260CBSMsg.HOJINSVKEI_HKTGI_SBT_CD,		//不要・法人サービス契約引継ぎ種別コード
				EKK0081C260CBSMsg.UPD_DTM_BF,					//更新年月日時分秒(更新前)
//				EKK0081C260CBSMsg.UPD_DTM,						//出力・更新年月日時分秒
//				EKK0081C260CBSMsg.UPD_OPEACNT,					//出力・更新オペレータアカウント
				EKK0081C260CBSMsg.RULE0079_AUTO_APLY,			//‘0’固定・工事費自動適用要否
//				EKK0081C260CBSMsg.TK_KIBO_EQUIP,				//不要・撤去希望設備
//				EKK0081C260CBSMsg.TEL_SNGLKEI_FAIL_CHK_FLG,		//不要・電話単独契約不可チェック対象外フラグ
//				EKK0081C260CBSMsg.SVC_DSL_YMD,					//出力・サービス解約年月日
//				EKK0081C260CBSMsg.IDO_DIV,						//出力・異動区分
//				EKK0081C260CBSMsg.MSKM_DTL_NO,					//出力・申込明細番号
				EKK0081C260CBSMsg.SVC_CHRG_ENDYMD,				//サービス課金終了年月日
				EKK0081C260CBSMsg.SVC_DSL_YMD_I		//2014/01/17追加
		};
		
		final String[] inDatas = {
				svcKeiNo,
				svcEndYmd,
				dslKisanYmd,
				dlreCd,
				dlreMemo,
				updDtmBf,
				"0",
				svcChrgEndYmd,
				svcDslYmd							//2014/01/17追加
		};
		
		for (int i=0; i<inItems.length; i++)
		{
			if (null == inDatas[i] || 1 > inDatas[i].length())
			{
				template.setNull(inItems[i]);
			}
			else
			{
				template.set(inItems[i], inDatas[i]);
			}
		}
		
		return template;
	}

	// IT2-2014-0000129 対応 藤田 2014/2/21 ADD START
	/**
	 * サービス契約一覧照会（SYSID）3 SIF(IN)マッピング
	 * <br>
	 * @param sysid sysid
	 * @param	funcCode	機能コード
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateEKK0081B519(String sysid, String funcCode)
	{
		CAANMsg template = new CAANMsg(EKK0081B519CBSMsg.class.getName());

		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0081B519CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID(SIFのID)
		template.set(EKK0081B519CBSMsg.TEMPLATEID, "EKK0081B519");

		// 機能コード
		template.set(EKK0081B519CBSMsg.FUNC_CODE, funcCode);

		// ＫＥＹ＿SYSID
		template.set(EKK0081B519CBSMsg.KEY_SYSID, sysid);

		return template;
	}
	// IT2-2014-0000129 対応 藤田 2014/2/21 ADD END

	// IT1-2014-0000098 請求オプション対応 2014/03/19 藤田 ADD START
	/**
	 * インターネットサービス一覧照会（請求契約番号）SIF(IN)マッピング
	 * <br>機能コード : 2
	 * <br>
	 * @param	seikyKeiNo	請求契約番号
	 * @return テンプレート
	 */
	public CAANMsg getMappedTemplateEKK0081B526(
			 String seikyKeiNo
			,String funcCode
		)
	{
		CAANMsg template = new CAANMsg(EKK0081B526CBSMsg.class.getName());

		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0081B526CBSMsg().getContents());

		// 共通初期処理
		init(template);

		// テンプレートID(SIFのID)
		template.set(EKK0081B526CBSMsg.TEMPLATEID, "EKK0081B526");

		// 機能コード
		template.set(EKK0081B526CBSMsg.FUNC_CODE, funcCode);

		// ＫＥＹ＿請求契約番号
		template.set(EKK0081B526CBSMsg.KEY_SEIKY_KEI_NO, seikyKeiNo);

		return template;
	}
	// IT1-2014-0000098 請求オプション対応 2014/03/19 藤田 ADD END

}
