/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：顧客契約
*	モジュール名	：KKW00149SFLogic
*	ソースファイル名：KKW00149SFLogic.java
*	作成者			：Fj
*	日付			：2011年05月13日
*＜機能概要＞
*	取扱コード情報照会のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/05/13	FJ）富士通 	新規作成
*
**********************************************************************/
package eo.web.webview.KKW00149SF;

import java.util.HashMap;

import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.KKW00127SF.KKW00127SFConst;
import eo.web.webview.KKW00149SF.KKW00149SFConst;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.mapping.KKSV0070_KKSV0070OPDBMapper;
import eo.web.webview.JCCWebBusinessLogic;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.common.JSYwebLog;


/**
 * <dd>クラス名：取扱コード情報照会ビューロジック
 * <dd>クラス説明：画面上のボタン押下時の各処理を記述します。
 * <dd>備考：
 * @version  1.0 2011/05/13
 * @author   富士通
 */
@SuppressWarnings("serial")
public class KKW00149SFLogic extends JCCWebBusinessLogic
{
	/**
	 * 代理店コード
	 */
	private String agnt_cd = null;
	
	/**
	 * 取扱コード情報照会画面初期表示処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean actionInit() throws Exception
	{

		//ユースケースID格納用のHashMap
		HashMap<String, Object> paramMap = null;
		//マッピングクラスの結果を格納するHashMap
		HashMap<String, Object> inputMap = null;
		//サービス呼出結果を格納するHashMap
		HashMap<String, Object> outputMap = null;

		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		//サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		//画面跨り共有情報設定処理
		init_Data_KKW00149SFBean(svcFormBean);

		//取扱コード情報照会初期表示サービスに必要な値を設定
		svcFormBean.sendMessageString(KKW00149SFConst.AGNT_CD, X31CWebConst.DATABEAN_SET_VALUE, agnt_cd);
		svcFormBean.sendMessageString(KKW00149SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));	
				
		//取扱コード情報照会初期表示サービスの呼び出し
		paramMap = new HashMap<String, Object>();		//パラメタマップ生成
		inputMap = new HashMap<String, Object>();		//インプットマップ生成
		outputMap = new HashMap<String, Object>();		//アウトプットマップ生成
		
		//サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0070);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0070OP);
		
		// 20120416 ST2-2012-0000708 START
		String agntCd = svcFormBean.sendMessageString(KKW00149SFConst.AGNT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if (agntCd != null && !"".equals(agntCd))
		{
			// 代理店コードが設定されている場合
			// 20120416 ST2-2012-0000708 END
			
			// マッピング用paramBeanセット
			X31SDataBeanAccess[] paramBean = {svcFormBean};
			
			// 上りマッピング(サービス項目-DataBean項目マッピング)
			KKSV0070_KKSV0070OPDBMapper mapper = new KKSV0070_KKSV0070OPDBMapper();
			
			// 代理店一意照会SC(カレント)
			mapper.setKKSV007001SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
			
			// DataBeanログ出力
			JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
			
			// 取扱コード情報照会初期表示サービス実行
			X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
				
			// 取得情報の下りマッピング
			mapper.getKKSV007001SC(paramBean, outputMap);
		}
		
		// 20120416 ST2-2012-0000708 START
		// 代理店一意照会一意照会明細のフォーマット編集を実施
		X31SDataBeanAccessArray dairitenArray = svcFormBean.getDataBeanArray(KKW00149SFConst.EKK0061A010CBSMSG1LIST);
		for (int i = 0; i < dairitenArray.getCount(); i++)
		{
			X31SDataBeanAccess dairitenBean = dairitenArray.getDataBean(i);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_NM, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_AD_CD, true, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_PCD, false, true);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_STATE_NM, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_CITY_NM, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_OAZTSU_NM, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_AZCHO_NM, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_BNCHIGO, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_ADRTTM, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_ADRRM, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_TELNO, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_FAX_NO, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_TNTSHA_CD, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_TSTAYMD, false, false);
			formatBean(dairitenBean, KKW00149SFConst.AGNT_TENDYMD, false, false);
		}
		// 20120416 ST2-2012-0000708 END

		commoninfoBean.sendMessageString( CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00149);
		commoninfoBean.sendMessageString( CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00149);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}
	
	/**
	 * 引き継ぎ情報を取得し、取扱コード情報照会サービスフォームBeanに設定する
	 * @param  svcFormBean  DataBeanアクセスクラス
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public void init_Data_KKW00149SFBean(X31SDataBeanAccess svcFormBean) throws Exception
	{
		//引継ぎデータ取得
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
		
		//代理店コード取得
		agnt_cd = (String)map.get(KKW00127SFConst.CHOICE_TORIATSU_CD);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
	}
	
	// 20120416 ST2-2012-0000708 START
	/**
	 * フォーマット編集を行います
	 * 
	 * @param bean ビーン
	 * @param key キー
	 * @param isAd 住所コード編集要否
	 * @param isPcd 郵便番号編集要否
	 */
	private void formatBean(X31SDataBeanAccess bean, String key, boolean isAd, boolean isPcd)
	{
		String value = bean.sendMessageString(key, X31CWebConst.DATABEAN_GET_VALUE, 0);
		if (value == null)
		{
			bean.sendMessageString(key, X31CWebConst.DATABEAN_SET_VALUE, 0,"");
		}
		else
		{
			if (isAd)
			{
				bean.sendMessageString(key, X31CWebConst.DATABEAN_SET_VALUE, 0,JPCUtilCommon.hyhunAdCd(value));
			}
			
			if (isPcd)
			{
				bean.sendMessageString(key, X31CWebConst.DATABEAN_SET_VALUE, 0,JPCUtilCommon.hyhunPcd(value));
			}
		}
	}
	// 20120416 ST2-2012-0000708 END
}
