/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKUCheckSTBCount
*   ソースファイル名：JKUCheckSTBCount.java
*   作成者          ：富士通
*   日付            ：2011年10月24日
*＜機能概要＞
*   ＳＴＢ台数カウントチェック部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/10/24   FJ          新規作成
*   v25.00.00   2016/04/04   FJ）田口    【ANK-2530-00-00】TV新コースおよびVOD導入
*   v40.00.00   2019/01/10   FJ）植木    【ANK-3488-09-00】バックヤード機能の蓋開け（STB台数カウント部品修正）
**********************************************************************/

package eo.common.util;

import java.util.HashMap;

import eo.common.constant.JKUStrConst;



/**
 * ＳＴＢ台数カウントチェック部品です。<p>
 * 工事受付共通アクセッサー部品で実装します。
 * <BR>
 * @author 富士通
 */
public class JKUCheckSTBCount
{
	/** ＳＴＢ無しメニューフラグ */
	private String stbNonMenuFlg = null;
	/** ＳＴＢ旧契約台数 */
	private int stbOldKeiCnt = 0;
	/** ＳＴＢ新契約台数 */
	private int stbNewKeiCnt = 0;
	/** ＳＴＢ新設申込台数 */
	private int stbNewestaMskmCnt = 0;
	/** ＳＴＢ移動申込台数 */
	private int stbMoveMskmCnt = 0;
	/** ＨＤＲ＿ＳＴＢ旧契約台数 */
	private int hdrStbOldKeiCnt = 0;
	/** ＨＤＲ＿ＳＴＢ新契約台数 */
	private int hdrStbNewKeiCnt = 0;
	/** ＨＤＲ＿ＳＴＢ新設申込台数 */
	private int hdrStbNewestaMskmCnt = 0;
	/** ＨＤＲ＿ＳＴＢ移動申込台数 */
	private int hdrStbMoveMskmCnt = 0;
	
	/**
	 * コンストラクタです。<BR>
	 * @param kojiakSbtCd
	 * @param map 工事案件対象宅内機器スキーマからＳＴＢのみ取得したHashMap。
	 * @author 富士通
	 */
	public JKUCheckSTBCount(String kojiakSbtCd, HashMap[] map)
	{
		for (int i = 0; i < map.length; i++)
		{
			// 工事案件対象宅内機器ステータスがなしの場合はカウントアップしない
			if (JKUStrConst.CD00475_NASHI.equals(map[i].get(JKUStrConst.KU0141_KOJIAK_TRGT_TAKNKIKI_STAT)))
			{
				continue;
			}
			
			// 宅内機器異動コード
			String taknkikiIdoCd = (String)map[i].get(JKUStrConst.KU0141_TAKNKIKI_IDO_CD);
			// ＨＤＤ容量コード
			String hddCapaCd = null;
			// 宅内機器種別コード
			String taknkiki_sbt_cd = (String)map[i].get(JKUStrConst.KU0141_TAKNKIKI_SBT_CD);
			// 設置撤去フラグ
			String stcTekkyoFlg = (String)map[i].get(JKUStrConst.KU0141_STC_TEKKYO_FLG);
			
			if(null == (String)map[i].get(JKUStrConst.KU0141_CHGE_HDD_CAPA_CD))
			{
				hddCapaCd = (String)map[i].get(JKUStrConst.KU0141_RSV_HDD_CAPA_CD);
			}
			else
			{
				hddCapaCd = (String)map[i].get(JKUStrConst.KU0141_CHGE_HDD_CAPA_CD);
			}
			
			// 宅内機器種別コードがＳＴＢの場合のみカウントを行う
			if (JKUStrConst.TKNKKSBT_STB.equals(taknkiki_sbt_cd))
			{
				this.setSTBCount(kojiakSbtCd, taknkikiIdoCd, hddCapaCd, stcTekkyoFlg);
			}
		}
		
		if (this.stbMoveMskmCnt > 0 || this.stbNewestaMskmCnt > 0 || this.stbNewKeiCnt > 0)
		{
			this.stbNonMenuFlg = JKUStrConst.UM_NON;
		}
		else
		{
			this.stbNonMenuFlg = JKUStrConst.UM_YK;
		}
	}

	/**
	 * ＳＴＢ台数カウントを行います。<BR>
	 * @param kojiakSbtCd 工事案件種別コード
	 * @param taknkikiIdoCd 宅内機器異動コード
	 * @param hddCapaCd ＨＤＤ容量コード
	 * @param stcTekkyoFlg 設置撤去フラグ
	 */
	private void setSTBCount(String kojiakSbtCd, String taknkikiIdoCd, String hddCapaCd, String stcTekkyoFlg) 
	{
		/** STB追加 */
		if (JKUStrConst.CD00562_ADD.equals(taknkikiIdoCd))
		{
			// 工事案件種別
			if(JKUStrConst.CD00577_NEWESTA.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_AD_CHG_NEWESTA.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_LINK_STB.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_MNKHT.equals(kojiakSbtCd))
			{
				// ＳＴＢ新設申込台数
				this.stbNewestaMskmCnt++;
				
				// HDD容量コード
// ANK-2530-00-00 MOD START
//				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd))
				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd)
// ANK-3488-09-00 MOD START
//					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd))
					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd)
					&& !JKUStrConst.CD00557_NON_4K.equals(hddCapaCd))
// ANK-3488-09-00 MOD END
// ANK-2530-00-00 MOD END
				{
					// ＨＤＲ＿ＳＴＢ新設申込台数
					this.hdrStbNewestaMskmCnt++;
				}
			}
			// 工事案件種別
			if(JKUStrConst.CD00577_EOTV_CHG.equals(kojiakSbtCd))
			{
				// ＳＴＢ新契約台数
				this.stbNewKeiCnt++;
				
				// HDD容量コード
// ANK-2530-00-00 MOD START
//				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd))
				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd)
// ANK-3488-09-00 MOD START
//					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd))
					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd)
					&& !JKUStrConst.CD00557_NON_4K.equals(hddCapaCd))
// ANK-3488-09-00 MOD END
// ANK-2530-00-00 MOD END
				{
					// ＨＤＲ＿ＳＴＢ新契約台数
					this.hdrStbNewKeiCnt++;
				}
			}
		}
		/** STB交換 */
		if (JKUStrConst.CD00562_KOKAN.equals(taknkikiIdoCd))
		{
			// 設置撤去フラグ
			if(JKUStrConst.CD00772_STC.equals(stcTekkyoFlg))
			{
				// 工事案件種別
				if(JKUStrConst.CD00577_NEWESTA.equals(kojiakSbtCd)
						|| JKUStrConst.CD00577_AD_CHG_NEWESTA.equals(kojiakSbtCd)
						|| JKUStrConst.CD00577_LINK_STB.equals(kojiakSbtCd)
						|| JKUStrConst.CD00577_MNKHT.equals(kojiakSbtCd))
				{
					// ＳＴＢ新設申込台数
					this.stbNewestaMskmCnt++;
					
					// HDD容量コード
// ANK-2530-00-00 MOD START
//					if(!JKUStrConst.CD00557_NON.equals(hddCapaCd))
					if(!JKUStrConst.CD00557_NON.equals(hddCapaCd)
// ANK-3488-09-00 MOD START
//						&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd))
						&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd)
						&& !JKUStrConst.CD00557_NON_4K.equals(hddCapaCd))
// ANK-3488-09-00 MOD END
// ANK-2530-00-00 MOD END
					{
						// ＨＤＲ＿ＳＴＢ新設申込台数
						this.hdrStbNewestaMskmCnt++;
					}
				}
				// 工事案件種別
				if(JKUStrConst.CD00577_EOTV_CHG.equals(kojiakSbtCd))
				{
					// ＳＴＢ新契約台数
					this.stbNewKeiCnt++;
					
					// HDD容量コード
// ANK-2530-00-00 MOD START
//					if(!JKUStrConst.CD00557_NON.equals(hddCapaCd))
					if(!JKUStrConst.CD00557_NON.equals(hddCapaCd)
// ANK-3488-09-00 MOD START
//						&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd))
						&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd)
						&& !JKUStrConst.CD00557_NON_4K.equals(hddCapaCd))
// ANK-3488-09-00 MOD END
// ANK-2530-00-00 MOD END
					{
						// ＨＤＲ＿ＳＴＢ新契約台数
						this.hdrStbNewKeiCnt++;
					}
				}
			}
			// 設置撤去フラグ
			if(JKUStrConst.CD00772_TEKKYO.equals(stcTekkyoFlg))
			{
				// 工事案件種別
				if(JKUStrConst.CD00577_EOTV_CHG.equals(kojiakSbtCd))
				{
					// ＳＴＢ旧契約台数
					this.stbOldKeiCnt++;
					
					// HDD容量コード
// ANK-2530-00-00 MOD START
//					if(!JKUStrConst.CD00557_NON.equals(hddCapaCd))
					if(!JKUStrConst.CD00557_NON.equals(hddCapaCd)
// ANK-3488-09-00 MOD START
//						&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd))
						&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd)
						&& !JKUStrConst.CD00557_NON_4K.equals(hddCapaCd))
// ANK-3488-09-00 MOD END
// ANK-2530-00-00 MOD END
					{
						// ＨＤＲ＿ＳＴＢ旧契約台数
						this.hdrStbOldKeiCnt++;
					}
				}
			}
		}
		/** STB一部撤去 */
		if (JKUStrConst.CD00562_ICHIBU_TEKKYO.equals(taknkikiIdoCd))
		{
			// 工事案件種別
			if(JKUStrConst.CD00577_KYOSEI_DSL.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_TEKKYO_DSL.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(kojiakSbtCd))
			{
				// ＳＴＢ新契約台数
				this.stbNewKeiCnt++;
			}
			if(JKUStrConst.CD00577_EOTV_CHG.equals(kojiakSbtCd))
			{
				// ＳＴＢ旧契約台数
				this.stbOldKeiCnt++;
				
				// HDD容量コード
// ANK-2530-00-00 MOD START
//				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd))
				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd)
// ANK-3488-09-00 MOD START
//					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd))
					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd)
					&& !JKUStrConst.CD00557_NON_4K.equals(hddCapaCd))
// ANK-3488-09-00 MOD END
// ANK-2530-00-00 MOD END
				{
					// ＨＤＲ＿ＳＴＢ旧契約台数
					this.hdrStbOldKeiCnt++;
				}
			}
		}
		/** STB移動 */
		if (JKUStrConst.CD00562_MOVE.equals(taknkikiIdoCd))
		{
			// 工事案件種別
			if(JKUStrConst.CD00577_NEWESTA.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_AD_CHG_NEWESTA.equals(kojiakSbtCd))
			{
				// ＳＴＢ移動申込台数
				this.stbMoveMskmCnt++;
				
				// HDD容量コード
// ANK-2530-00-00 MOD START
//				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd))
				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd)
// ANK-3488-09-00 MOD START
//					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd))
					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd)
					&& !JKUStrConst.CD00557_NON_4K.equals(hddCapaCd))
// ANK-3488-09-00 MOD END
// ANK-2530-00-00 MOD END
				{
					// ＨＤＲ＿ＳＴＢ移動申込台数
					this.hdrStbMoveMskmCnt++;
				}
			}
		}
		/** 異動なし */
		if (JKUStrConst.CD00562_IDO_NON.equals(taknkikiIdoCd))
		{
			// 工事案件種別
			if(JKUStrConst.CD00577_NEWESTA.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_AD_CHG_NEWESTA.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_LINK_STB.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_MNKHT.equals(kojiakSbtCd))
			{
				// ＳＴＢ新設申込台数
				this.stbNewestaMskmCnt++;
				
				// HDD容量コード
// ANK-2530-00-00 MOD START
//				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd))
				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd)
// ANK-3488-09-00 MOD START
//					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd))
					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd)
					&& !JKUStrConst.CD00557_NON_4K.equals(hddCapaCd))
// ANK-3488-09-00 MOD END
// ANK-2530-00-00 MOD END
				{
					// ＨＤＲ＿ＳＴＢ新設申込台数
					this.hdrStbNewestaMskmCnt++;
				}
			}
			
			// 工事案件種別
			if(JKUStrConst.CD00577_ISETSU.equals(kojiakSbtCd))
			{
				// ＳＴＢ新契約台数
				this.stbNewKeiCnt++;
			}
			
			// 工事案件種別
			if(JKUStrConst.CD00577_EOTV_CHG.equals(kojiakSbtCd))
			{
				// ＳＴＢ新契約台数
				this.stbNewKeiCnt++;
				
				// ＳＴＢ旧契約台数
				this.stbOldKeiCnt++;
				
				// HDD容量コード
// ANK-2530-00-00 MOD START
//				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd))
				if(!JKUStrConst.CD00557_NON.equals(hddCapaCd)
// ANK-3488-09-00 MOD START
//					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd))
					&& !JKUStrConst.CD00557_NON_VOD.equals(hddCapaCd)
					&& !JKUStrConst.CD00557_NON_4K.equals(hddCapaCd))
// ANK-3488-09-00 MOD END
// ANK-2530-00-00 MOD END
				{
					// ＨＤＲ＿ＳＴＢ新契約台数
					this.hdrStbNewKeiCnt++;
					
					// ＨＤＲ＿ＳＴＢ旧契約台数
					this.hdrStbOldKeiCnt++;
				}
			}
		}
	}

	/**
	 * ＳＴＢ無しメニューフラグを取得します。<BR>
	 * @return ＳＴＢ無しメニューフラグ
	 */
	public String getStbNonMenuFlg()
	{
		return String.valueOf(stbNonMenuFlg);
	}


	/**
	 * ＳＴＢ旧契約台数を取得します。<BR>
	 * @return ＳＴＢ旧契約台数
	 */
	public String getStbOldKeiCnt()
	{
		return String.valueOf(stbOldKeiCnt);
	}


	/**
	 * ＳＴＢ新契約台数を取得します。<BR>
	 * @return ＳＴＢ新契約台数
	 */
	public String getStbNewKeiCnt()
	{
		return String.valueOf(stbNewKeiCnt);
	}


	/**
	 * ＳＴＢ新設申込台数を取得します。<BR>
	 * @return ＳＴＢ新設申込台数
	 */
	public String getStbNewestaMskmCnt()
	{
		return String.valueOf(stbNewestaMskmCnt);
	}


	/**
	 * ＳＴＢ移動申込台数を取得します。<BR>
	 * @return ＳＴＢ移動申込台数
	 */
	public String getStbMoveMskmCnt()
	{
		return String.valueOf(stbMoveMskmCnt);
	}


	/**
	 * ＨＤＲ＿ＳＴＢ旧契約台数を取得します。<BR>
	 * @return ＨＤＲ＿ＳＴＢ旧契約台数
	 */
	public String getHdrStbOldKeiCnt()
	{
		return String.valueOf(hdrStbOldKeiCnt);
	}


	/**
	 * ＨＤＲ＿ＳＴＢ新契約台数を取得します。<BR>
	 * @return ＨＤＲ＿ＳＴＢ新契約台数
	 */
	public String getHdrStbNewKeiCnt()
	{
		return String.valueOf(hdrStbNewKeiCnt);
	}


	/**
	 * ＨＤＲ＿ＳＴＢ新設申込台数を取得します。<BR>
	 * @return ＨＤＲ＿ＳＴＢ新設申込台数
	 */
	public String getHdrStbNewestaMskmCnt()
	{
		return String.valueOf(hdrStbNewestaMskmCnt);
	}


	/**
	 * ＨＤＲ＿ＳＴＢ移動申込台数を取得します。<BR>
	 * @return ＨＤＲ＿ＳＴＢ移動申込台数
	 */
	public String getHdrStbMoveMskmCnt()
	{
		return String.valueOf(hdrStbMoveMskmCnt);
	}
}
