/**
 * 
 */
package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.ArrayList;
import java.util.HashMap;
import com.fujitsu.futurity.bp.x21.bpm.common.AbstractCustomReqChk;
import com.fujitsu.futurity.bp.x21.bpm.common.IConditionValue;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.reqchk.exception.ReqChkException;


/**
 * KKSV0391 トーキ更新・解除移転トーキ設定<br>
 * KKSV039101CC SODCC<br>
 *<br>
 * SODCCへ、サービス契約内訳＜eo光電話＞情報変更時の変更後世代登録年月日時分秒設定を行う。
 * 
 * @author 富士通
 * @since 2011-10-18
 */
public class JKKSV039101CCReqChk extends AbstractCustomReqChk {

	
	/**
	 * ＳＯＤＣＣ　実行判定メソッド
	 */
	@SuppressWarnings("unchecked")
	@Override
	public boolean checkExecution(IRequestParameterReadOnly arg0, IConditionValue arg1) throws ReqChkException
	{
		//SCマップから必要な情報を取り出す
		HashMap<String, Object> parentMap;
		try 
		{
			parentMap = (HashMap<String, Object>)arg0.getData("KKSV039104SC");

			String geneAddDtm = (String) parentMap.get("kk0161_gene_add_dtm");
			if (null != geneAddDtm && ! "".equals(geneAddDtm))
			{
				chgAfGeneAddDtmMapping(geneAddDtm, arg0);
				return true;
			}
		}
		catch (RequestParameterException e) 
		{
			return false;
		}

		return false;
	}

	private void chgAfGeneAddDtmMapping(String geneAddDtm, IRequestParameterReadOnly param) throws RequestParameterException {
		HashMap<String, Object> map = (HashMap<String, Object>) param.getData("trgt_data");
		ArrayList<Object> list = (ArrayList<Object>)map.get("trgt_data_list");
		HashMap<String, Object> subMap = (HashMap<String, Object>) list.get(0);
		HashMap<String, Object> svcUcwkKeiyakuInfoMap = (HashMap<String, Object>)subMap.get("svc_kei_ucwk_info");
		svcUcwkKeiyakuInfoMap.put("chaf_svc_kei_ucwk_gene_add_dtm", geneAddDtm);
	}

}
