/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0512_KKSV0512OPDBMapper
*	ソースファイル名：KKSV0512_KKSV0512OPDBMapper.java
*	作成者			：FJ
*	日付			：2015年04月03日
*＜機能概要＞
*	BP（照査前更新確認関連チェック）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/05/14	FJ			新規作成
*	v14.00.00	2015/04/03	FJ)川島		【ANK-2439-00-00】紹介キャンペーン全チャネル展開
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.util.JKKCommonUtil;
import eo.web.webview.KKW00121SF.KKW00121SFConst;
import eo.web.webview.common.JKKKeiNewCmnLogicUtil;


/**
 * DataBean-BPマッピングをする。
 * @author FJ
 */
public class KKSV0512_KKSV0512OPDBMapper
{
	
	/**
	 * コンストラクタ
	 */
	public KKSV0512_KKSV0512OPDBMapper()
	{
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：照査前登録画面
	 * @param outputMap サービス実行結果マップ
	 * @param func_code　機能コード
	 * @return サービス実行結果マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV051201SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 紹介コード → 紹介一意照会マップ.ＫＥＹ＿紹介コード
		parentMap.put("key_intr_cd", bean[0].sendMessageString("紹介コード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV051201SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 被紹介者名との苗字同一チェック
	 * @param bean 照査前登録画面
	 * @param outputMap サービス実行結果マップ
	 * @return true ：被紹介者名と苗字を前方一致し、一致する場合<br />
	 *          　　　 または、チェック条件が成立していない場合<br />
	 *          false：被紹介者名と苗字を前方一致し、一致しない場合
	 */
	@SuppressWarnings("unchecked")
	public boolean isSameHishokaiNm(X31SDataBeanAccess bean, HashMap outputMap)
	{
		// 被紹介者名を取得する。
		HashMap<String, Object> scMap = (HashMap<String, Object>)outputMap.get("KKSV051201SC");
		if(JKKCommonUtil.isNull(scMap))
		{
			return true;
		}
		
		ArrayList<HashMap<String, String>> msgList = (ArrayList<HashMap<String, String>>)scMap.get("EKK0311A010CBSMsg1List");
		if(JKKCommonUtil.isNull(msgList))
		{
			return true;
		}
		
		HashMap<String, String> mp = msgList.get(0);
		String hishokaiNm = mp.get("hishokai_nm");
		if(JKKCommonUtil.isNull(hishokaiNm))
		{
			return true;
		}
		
		// 契約者情報−氏名を取得する。
		String custNm = bean.sendMessageString(KKW00121SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE);
		if(JKKCommonUtil.isNull(custNm))
		{
			return true;
		}
		
		// 苗字を取得する。
		String familyNm = custNm.split(JKKKeiNewCmnLogicUtil.ZENKAKU_SPACE)[0];
		
		// 苗字が取得できなかった場合は不一致とし、falseを返却する。
		if(JKKCommonUtil.isNull(familyNm))
		{
			return false;
		}
		
		// 被紹介者名に対し、苗字で前方一致検索を行い、一致する場合、trueを返却する。
		if(hishokaiNm.startsWith(familyNm))
		{
			return true;
		}
		
		// 一致しない場合、falseを返却する。
		return false;
	}


}