/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKejbEKK1311E010TKCK
*	ソースファイル名：JKKejbEKK1311E010TKCK.java
*	作成者			：富士通
*	日付			：2012年5月11日
*＜機能概要＞
*	テレビオプション視聴実績物理削除の単関連部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/05/11	富士通		新規作成
*
**********************************************************************/

package eo.ejb.common.itemrelation;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.ejb.cbs.cbsmsg.EKK1311E010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1311E010CBSMsg1List;

/**
 * <p>
 * テレビオプション視聴実績登録の単関連部品です。
 * </p>
 * @author 富士通
 */
public class JKKejbEKK1311E010TKCK
{

	/**
	 * <p>
	 * 明細データの一意制約チェックを行います。
	 * キー項目が重複しているデータが存在していないかチェックします。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return キー項目が重複するデータが存在する場合はfalse。
	 */
	public boolean isUniqueCheck(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		//テレビオプション視聴実績明細のnullチェック
		CAANMsg[] l_ekk1311e010cbsmsg1list = new CAANMsg[]{};
		if(!inMsg.isNull(EKK1311E010CBSMsg.EKK1311E010CBSMSG1LIST)){
			l_ekk1311e010cbsmsg1list = inMsg.getCAANMsgList(EKK1311E010CBSMsg.EKK1311E010CBSMSG1LIST);
		}
		
		for(int i = 0; i < l_ekk1311e010cbsmsg1list.length; i++){
			for(int j = i+1; j < l_ekk1311e010cbsmsg1list.length; j++){
				
				//((集計年月がnullでない かつ オプションサービスコードがnullでない) かつ サービス契約番号がnullでない) かつ サービス契約内訳番号がnullでない 処理継続
				if(!(((!l_ekk1311e010cbsmsg1list[i].isNull(EKK1311E010CBSMsg1List.SHUK_YM) && 
						!l_ekk1311e010cbsmsg1list[i].isNull(EKK1311E010CBSMsg1List.OP_SVC_CD)) && 
						!l_ekk1311e010cbsmsg1list[i].isNull(EKK1311E010CBSMsg1List.SVC_KEI_NO)) && 
						!l_ekk1311e010cbsmsg1list[i].isNull(EKK1311E010CBSMsg1List.SVC_KEI_UCWK_NO))){
					
					continue;
				}
				
				//((集計年月が内容が一意でない かつ オプションサービスコードが内容が一意でない) かつ サービス契約番号が内容が一意でない) かつ サービス契約内訳番号が内容が一意でない ：エラー(連結キー)
				if(((l_ekk1311e010cbsmsg1list[i].getObject(EKK1311E010CBSMsg1List.SHUK_YM).equals(l_ekk1311e010cbsmsg1list[j].getObject(EKK1311E010CBSMsg1List.SHUK_YM)) && 
						l_ekk1311e010cbsmsg1list[i].getObject(EKK1311E010CBSMsg1List.OP_SVC_CD).equals(l_ekk1311e010cbsmsg1list[j].getObject(EKK1311E010CBSMsg1List.OP_SVC_CD))) && 
						l_ekk1311e010cbsmsg1list[i].getObject(EKK1311E010CBSMsg1List.SVC_KEI_NO).equals(l_ekk1311e010cbsmsg1list[j].getObject(EKK1311E010CBSMsg1List.SVC_KEI_NO))) && 
						l_ekk1311e010cbsmsg1list[i].getObject(EKK1311E010CBSMsg1List.SVC_KEI_UCWK_NO).equals(l_ekk1311e010cbsmsg1list[j].getObject(EKK1311E010CBSMsg1List.SVC_KEI_UCWK_NO))){

					return false;
				}
			}
		}
		
		return true;
		
	}

}
