/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：物流管理システム
*   ソースファイル名：DKW00305SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年07月20日
*＜機能概要＞
*   返品機器詳細を処理するロジッククラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/07/20   FJ          新規作成
*
**********************************************************************/
package eo.web.webview.DKW00305SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SRuntimeException;

import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JDKCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.mapping.DKSV0080_DKSV0080OPDBMapper;
import static eo.common.constant.JPCModelConstant.*;
import static eo.web.webview.DKW00305SF.DKW00305SFConst.*;
import static eo.web.webview.common.JDKScreenConst.*;
import static eo.web.webview.common.JDKWebCommon.*;


/**
 * 返品機器詳細画面を処理するロジッククラスです。
 * @author 富士通
 */
public class DKW00305SFLogic extends JCCWebBusinessLogic
{
	/** 返品機器詳細 */
	private static final String DKSV0080 = "DKSV0080";
	
	/**
	 * 初期化処理を行います。
	 * @return 処理実行結果
	 */
	@SuppressWarnings("unchecked")
	public boolean init() 
	{
		pickRelationDataFromSession();
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		X31SDataBeanAccess[] paramBean = {bean};
		
		HashMap paramMap = new HashMap();
		HashMap inputMap = new HashMap();
		HashMap outputMap = new HashMap();

		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, DKSV0080);
		DKSV0080_DKSV0080OPDBMapper mapper = new DKSV0080_DKSV0080OPDBMapper();
		mapper.setDKSV008001SC(paramBean, inputMap, FUNC_CD_1);
		mapper.setDKSV008002SC(paramBean, inputMap, FUNC_CD_2);
		mapper.setDKSV008003SC(paramBean, inputMap, FUNC_CD_2);
		mapper.setDKSV008004SC(paramBean, inputMap, FUNC_CD_1);
		mapper.setDKSV008005SC(paramBean, inputMap, FUNC_CD_1);

		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (X31SRuntimeException e)
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0320_KW);

			String nextScreen = JCCWebCommon.getScreenId(this);
			setNextScreen(nextScreen, "");
			setTransferPageId(nextScreen);
			
			return true;
		}

		mapper.getDKSV008001SC(paramBean, outputMap);
		mapper.getDKSV008002SC(paramBean, outputMap);
		mapper.getDKSV008003SC(paramBean, outputMap);
		mapper.getDKSV008005SC(paramBean, outputMap);

		String contractorAddress = getData(this, HMPIN_KIKI, D_KSH_AD_STATE_01)
								+ getData(this, HMPIN_KIKI, D_KSH_AD_CITY_01)
								+ getData(this, HMPIN_KIKI, D_KSH_AD_OAZTSU_01)
								+ getData(this, HMPIN_KIKI, D_KSH_AD_AZCHO_01)
								+ getData(this, HMPIN_KIKI, D_KSH_AD_BNCHIGO_01)
								+ getData(this, HMPIN_KIKI, D_KSH_AD_ADRTTM_01)
								+ getData(this, HMPIN_KIKI, D_KSH_AD_ADRRM_01);
		setData(this, contractorAddress, HMPIN_KIKI, D_KSH_AD_01);
		
		String senderAddress = getData(this, HMPIN_KIKI, D_SOHUSHA_AD_STATE_01)
								+ getData(this, HMPIN_KIKI, D_SOHUSHA_AD_CITY_01)
								+ getData(this, HMPIN_KIKI, D_SOHUSHA_AD_OAZTSU_01)
								+ getData(this, HMPIN_KIKI, D_SOHUSHA_AD_AZCHO_01)
								+ getData(this, HMPIN_KIKI, D_SOHUSHA_AD_BNCHIGO_01)
								+ getData(this, HMPIN_KIKI, D_SOHUSHA_AD_ADRTTM_01)
								+ getData(this, HMPIN_KIKI, D_SOHUSHA_AD_ADRRM_01);
		setData(this, senderAddress, HMPIN_KIKI, D_SOHUSHA_AD_01);
		
		String kikiNo = getData(this, HMPIN_KIKI, D_TAKNKIKI_MODEL_CD_01);
		if (JDKCommonUtil.isNull(kikiNo))
		{
			kikiNo = getData(this, HMPIN_KIKI, D_HUZOKUHIN_MODEL_CD_01);
		}
		setData(this, kikiNo, HMPIN_KIKI, D_MDL_NO_01);
		setNextScreen(SCREEN_ID_DKW00305, SCREEN_NAME_DKW00305);
		
		return true;
	}
	
	
	/**
	 * 戻るボタン押下処理を行います。
	 * @return 実行結果
	 */
	public boolean returnToSearch()
	{
		
		setNextScreen(JCCWebCommon.getScreenId(this), "");
		return true;
	}

	
	/**
	 * 他画面から受け取った情報をデータビーンに格納します。
	 */
	private void pickRelationDataFromSession()
	{
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
		setData(this, (String)map.get(HMPIN_KIKI_NO), HMPIN_KIKI_NO);
	}

	/**
	 * 画面遷移先を設定します。
	 * @author 富士通
	 * @param nextScreenId 遷移先画面ＩＤ
	 * @param nextScreenName 遷移先画面名
	 */
	private void setNextScreen(String nextScreenId, String nextScreenName)
	{
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
	
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);

		DEBUG_LOG.debug(String.format("遷移先 CD：%s NM：%s", nextScreenId, nextScreenName));
	}
}
