/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：契約管理システム
*   モジュール名    ：NHK団体一括支払詳細情報照会
*   ソースファイル名：KKW02533SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年07月13日
*＜機能概要＞
*   NHK団体一括支払詳細情報を表示する。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/07/13   FJ）砂川    新規作成
*	v2.00.00	2012/05/13   FJ) 砂川	【IT1-2012-0000433】利用終了日が最大年月日の場合は表示しないように修正
*
**********************************************************************/
package eo.web.webview.KKW02533SF;

import eo.web.webview.JCCWebBusinessLogic;

import java.util.HashMap;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JPCEditString;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW02533SF.KKW02533SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0147_KKSV0147OPDBMapper;


/**
 * NHK団体一括支払詳細情報を表示する。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW02533SFLogic extends JCCWebBusinessLogic
{

	
	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionInit() throws Exception
	{

		// 引き継ぎの情報MAPを取得する。 
		JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 運用日付取得してDataBeanにセットする
		bean.sendMessageString(KKW02533SFConst.STA_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
			
		// NHK団体一括支払詳細情報取得サービス
		paramMap = new HashMap<String, Object>();		//パラメタ設定用マップ
		inputMap = new HashMap<String, Object>();		//データマップ
		outputMap = new HashMap<String, Object>();		//結果格納用マップ
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0147");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0147_KKSV0147OPDBMapper mapper = new KKSV0147_KKSV0147OPDBMapper();
		mapper.setKKSV014701SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);	// オプションサービス契約一意照会SC
		mapper.setKKSV014702SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);	// オプションサービス契約＜TV＞一意照会SC
		
		// NHK団体一括支払詳細表示サービス
		invokeService(paramMap, inputMap, outputMap);
		
		// 下りマッピング
		mapper.getKKSV014701SC(paramBean, outputMap);	// オプションサービス契約一意照会情報
		mapper.getKKSV014702SC(paramBean, outputMap);	// オプションサービス契約＜TV＞一意照会情報
		
		//課金開始年月日を課金開始年月に変換
		editChrgStaYmd(paramBean);
		
		//請求間隔の先頭の"0"を取り除く
		editSeikyPrd(paramBean);
		
		// IT1-2012-0000433 ADD START
		//契約期間（ＴＯ）が最大年月日の場合、空文字に置換
		editKeiEndYmd(paramBean);
		// IT1-2012-0000433 ADD END
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 戻るボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionBack() throws Exception
	{
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先画面IDを取得し、設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, 
				JCCWebCommon.getScreenId(this));
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
			
		return true;
	}
	
	/**
	 * 課金開始年月日から課金開始年月を取得する。
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	public void editChrgStaYmd(X31SDataBeanAccess[] paramBean)
	{
		// 課金開始年月日を取得
		String edit_chrg_sta_ymd = paramBean[0].sendMessageString(KKW02533SFConst.CHRG_STA_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(edit_chrg_sta_ymd.length() == 8)
		{
			// 課金開始年月日（yyyymmdd）から課金開始年月（yyyymm）を作成
			String edit_chrg_sta_ym = edit_chrg_sta_ymd.substring(0, 6);
			
			// 作成した課金開始年月をBeanに格納
			paramBean[0].sendMessageString(KKW02533SFConst.CHRG_STA_YM, X31CWebConst.DATABEAN_SET_VALUE, edit_chrg_sta_ym);
		}
		else
		{
			paramBean[0].sendMessageString(KKW02533SFConst.CHRG_STA_YM, X31CWebConst.DATABEAN_SET_VALUE, null);
		}
	}

	// IT1-2012-0000433 ADD START
	/**
	 * 契約期間（ＴＯ）が最大年月日の場合、空文字に置換。
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	public void editKeiEndYmd(X31SDataBeanAccess[] paramBean)
	{
		// 契約期間（ＴＯ）を取得
		String edit_kei_sta_ymd = paramBean[0].sendMessageString(KKW02533SFConst.KEI_PRD_TO, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(JKKCommonConst.MAX_YMD.equals(edit_kei_sta_ymd))
		{
			// 契約期間（ＴＯ）を空文字に置換
			paramBean[0].sendMessageString(KKW02533SFConst.KEI_PRD_TO, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
	}
	// IT1-2012-0000433 ADD END

	/**
	 * 請求間隔の先頭の"0"を取り除く。
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	public void editSeikyPrd(X31SDataBeanAccess[] paramBean)
	{
		// 請求間隔を取得
		String seiky_prd = paramBean[0].sendMessageString(KKW02533SFConst.SEIKY_PRD, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(seiky_prd.length() == 2)
		{
			if("0".equals(seiky_prd.substring(0, 1)))
			{
				// 請求間隔の先頭の"0"を取り除く
				seiky_prd = seiky_prd.substring(1, 2);
				
				// 作成した課金開始年月をBeanに格納
				paramBean[0].sendMessageString(KKW02533SFConst.SEIKY_PRD, X31CWebConst.DATABEAN_SET_VALUE, seiky_prd);
			}
		}
	}
}
