/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW13301SFLogic
*   ソースファイル名：KKW13301SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年04月19日
*＜機能概要＞
*   NHK団体一括解約データ抽出画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/04/19   FJ）古谷    新規作成
*  v11.00.00	2014/10/06   FJ)藤田     【ANK-2248-00-00】対応
*
**********************************************************************/
package eo.web.webview.KKW13301SF;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0557_KKSV0557OPDBMapper;

@SuppressWarnings("serial")
public class KKW13301SFLogic extends JCCWebBusinessLogic
{
	
	// CSVファイル名_接頭詞
	// ANK-2248-00-00対応 2014/10/06 藤田 MOD START
//	private static final String FILEMAME_HEAD = "eo光テレビ団体一括解約抽出_";
	private static final String FILEMAME_HEAD = "NHK団体一括解約抽出_";
	// ANK-2248-00-00対応 2014/10/06 藤田 MOD END
	// CSVファイル名_拡張子
	private static final String FILEMAME_PREFIX =".csv";
	// 実行サービスID(KKSV0557)
	private static final String NHK_DNT_IKT_DSL_INFO = "KKSV0557";
	
	/**
	 * 初期表示処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean init() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		if (commoninfoBean == null)
		{
			return false;
		}
		
		// 遷移先の指定
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13301);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13301);
		
		return true;
	}
	
	/**
	 * ファイル作成ボタン押下時の処理を行います。
	 * <br>
	 * @return 成否
	 * @throws Exception
	 */
	public boolean createCsvFile() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 入力項目の編集を行う
		setData(srvBean);
		
		String opreDate = JCCWebCommon.getOpeDateTime(this, null);
		// 出力時のファイル名
		String fileName = FILEMAME_HEAD + opreDate + FILEMAME_PREFIX;
		
		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, NHK_DNT_IKT_DSL_INFO);
		
		X31SDataBeanAccess[] bean = {srvBean};
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		KKSV0557_KKSV0557OPDBMapper mappar = new KKSV0557_KKSV0557OPDBMapper();
		// サービスの入力情報転記
		mappar.setKKSV055701CC(bean, inputMap, JKKCommonConst.FUNC_CODE_1, fileName, JCCWebCommon.getOpeDateTimeStamp(this, null));
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// 出力対象データが存在する場合
		if (mappar.getKKSV055701CC(bean, outputMap))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[]{"ファイル作成処理"});
		}
		else
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0740_KW, new String[]{"指定されたデータ"});
		}
		
		// 遷移先の指定
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13301);
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13301);
		
		return true;
	}
	
	/**
	 * 入力値の編集処理を行います。
	 * <br>
	 * @param サービスBean
	 */	
	private void setData(X31SDataBeanAccess srvBean)
	{
		String fromY = srvBean.sendMessageString(KKW13301SFConst.KN_TRGT_YEAR_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String fromM = srvBean.sendMessageString(KKW13301SFConst.KN_TRGT_MON_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String fromD = srvBean.sendMessageString(KKW13301SFConst.KN_TRGT_DAY_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		
		String toY = srvBean.sendMessageString(KKW13301SFConst.KN_TRGT_YEAR_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String toM = srvBean.sendMessageString(KKW13301SFConst.KN_TRGT_MON_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String toD = srvBean.sendMessageString(KKW13301SFConst.KN_TRGT_DAY_TO, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 対象年月日(from)
		srvBean.sendMessageString(KKW13301SFConst.TRGT_YMD_FROM, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.concatYmd(fromY, fromM, fromD));
		// 対象年月日(to)
		srvBean.sendMessageString(KKW13301SFConst.TRGT_YMD_TO, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.concatYmd(toY, toM, toD));
	}
}
