/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEKU0161A010TPMA
*	ソースファイル名：JEKU0161A010TPMA.java
*	作成者			：富士通
*	日付			：2011年10月13日
*＜機能概要＞
*	工事有無判定の独自処理を呼び出す部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00	2011/10/13	FJ)			新規作成
*	v61.00.00	2023/01/13	GDC)r.heredia	【ANK-4315-00-00】eoホームゲートウェイ導入対応 step2
*
********************************************************************************/

package eo.ejb.cbs.mainproc;

import com.fujitsu.futurity.model.base.CAANException;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateMainHandler;

import eo.common.constant.JKUStrConst;
import eo.ejb.cbs.cbsmsg.EKU0161A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKU0161A010CBSMsg1List;
import eo.ejb.common.JKUModelCommon;

/**
 * <p>
 * 工事有無判定の独自処理を呼び出す部品です。
 * </p>
 * @author 富士通
 */
public class JEKU0161A010TPMA implements TemplateMainHandler
{
	/**
	 * コンストラクタです
	 */
	public JEKU0161A010TPMA()
	{
		super();
	}
	
	/**
	 * 主処理
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @throws CAANException
	 */
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{
		// 工事受付コード
		String kojiUkCd = inCBSMsg.getString(EKU0161A010CBSMsg.KEY_KOJI_UK_CD);
		// 工事受付詳細コード
		String kojiUkDtlCd = inCBSMsg.getString(EKU0161A010CBSMsg.KEY_KOJI_UK_DTAIL_CD);
		// 面開発案件番号
		String mnkhNo = inCBSMsg.getString(EKU0161A010CBSMsg.KEY_MENKAIHAT_ANKEN_NO);
		// リンクSTBフラグ
		String linkStbFlg = inCBSMsg.getString(EKU0161A010CBSMsg.KEY_LINK_STB_FLG);
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0161A010CBSMsg.KEY_PRC_GRP_CD);
		// PON種別コード
		String ponSbtCd = inCBSMsg.getString(EKU0161A010CBSMsg.KEY_PON_SBT_CD);
		// 料金コースPON条件コード
		String pcrsPonJokenCd = inCBSMsg.getString(EKU0161A010CBSMsg.KEY_PCRS_PON_JOKEN_CD);
		// ANK-4315-00-00 ADD START
		// ONU交換要否
		String onuKokanYh = inCBSMsg.getString(EKU0161A010CBSMsg.KEY_ONU_KOKAN_YH);
		// ANK-4315-00-00 ADD END
		
		//返却用のCAANMsg生成
		CAANMsg[] outMsgList = new CAANMsg[1];
		CAANMsg outMsg = new CAANMsg("eo.ejb.cbs.cbsmsg.EKU0161A010CBSMsg1List");
		// 工事案件種別
		String kojiakSbt = null;
		// 工事有無判定結果
		String kojiUm = null;
		
		// 工事案件種別取得
		// ANK-4315-00-00 MOD START
//		kojiakSbt = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtlCd, mnkhNo, linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd);
		kojiakSbt = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtlCd, mnkhNo, linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd,
				onuKokanYh
		);
		// ANK-4315-00-00 MOD END
		
		if (null == kojiakSbt || "".equals(kojiakSbt))
		{
			// 結果がnullなら「無」を返す
			outMsg.set(EKU0161A010CBSMsg1List.KOJI_UM, JKUStrConst.UM_NON);
			// 出力用CAANMsgListに値をセット
			outMsgList[0] = outMsg;
			inCBSMsg.set(EKU0161A010CBSMsg.EKU0161A010CBSMSG1LIST, outMsgList);
		}
		else if (null != kojiakSbt)
		{
			kojiUm = checkKojiUm(kojiakSbt);
			
			outMsg.set(EKU0161A010CBSMsg1List.KOJI_UM, kojiUm);
			// 出力用CAANMsgListに値をセット
			outMsgList[0] = outMsg;
			inCBSMsg.set(EKU0161A010CBSMsg.EKU0161A010CBSMSG1LIST, outMsgList);
		}
		
	}
	
	
	/**
	 * 工事有無判定
	 * @param kojiakSbt 工事案件種別
	 * @return 工事有無
	 */
	private static String checkKojiUm(String kojiakSbt)
	{
		String resultKojiUm = null;
		
		
		
		if (JKUStrConst.CD00577_PLAN_CHG_KOJI_NON.equals(kojiakSbt))
		{
			// プラン変更（工事なし）の場合
			resultKojiUm = JKUStrConst.UM_NON;
		}
		else if (JKUStrConst.CD00577_SVC_ADD_KOJI_NON.equals(kojiakSbt))
		{
			// サービス追加（工事なし）の場合
			resultKojiUm = JKUStrConst.UM_NON;
		}
		else
		{
			// 上記以外の場合
			resultKojiUm = JKUStrConst.UM_YK;
		}
		
		return resultKojiUm;
	}
}