/*********************************************************************
 *  All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名	：eo顧客基幹システム
 *	モジュール名	：JBSbatCHTgSeikyusSksiYhHosei
 *	ソースファイル名	：JBSbatCHTgSeikyusSksiYhHosei.java
 *	作成者	：ニール
 *	作成日	：2020年04月21日
 *＜機能概要＞
 *　当月請求書作成要否補正
 *＜修正履歴＞
 *	バージョン		修正日			修正者			修正内容
 *	v49.00.00	2020/04/21		GDC)ニール		【ANK-3853-00-00】 ネットmineo追加時の料金明細発行手数料請求対応
 *********************************************************************/
package eo.business.service;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCHbatSeikyKaknoBusinessUtil;
import eo.business.util.file.JBSbatKKIFM258;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

public class JBSbatCHTgSeikyusSksiYhHosei extends JBSbatBusinessService {
	
	/** テーブル(請求) */
	private static final String D_TBL_NAME_CH_T_SEIKY = "CH_T_SEIKY";

	private static final String CONSTANT_ZERO = "0";

	/** テーブルアクセスクラス(請求) */
	private JBSbatSQLAccess db_CH_T_SEIKY = null;

	/** SQL定義キー(CH_UPDATE_007) */
	private static final String CH_T_SEIKY_CH_UPDATE_007 = "CH_UPDATE_007";

	/** 請求年月 */
	private String seikyYM = null;

	@Override
	public void initial(JBSbatCommonItem commonItem) throws Exception {
		super.setCommonInfo(commonItem);
		super.logPrint.printDebugLog("[S][initial]");
		
		db_CH_T_SEIKY = new JBSbatSQLAccess(super.commonItem, D_TBL_NAME_CH_T_SEIKY);

		// 請求年月取得
		JCHbatSeikyKaknoBusinessUtil seikyBusinessUtil = new JCHbatSeikyKaknoBusinessUtil(super.commonItem);
		seikyYM = seikyBusinessUtil.getSeikyYm(super.opeDate);
		seikyBusinessUtil.close();
		super.logPrint.printDebugLog("[L][initial][seikyYM=" + seikyYM + "]");
	}

	/**
	 * 主処理
	 * 
	 * @param inMap
	 *            　入力電文
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception {
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		String resultCD = inMap.getString(JBSbatKKIFM258.RESULT_CD);

		if (CONSTANT_ZERO.equals(resultCD)) {
			executeCH_T_SEIKY_CH_UPDATE_007(inMap, seikyYM);
		}

		return null;
	}

	@Override
	public void terminal() throws Exception {
		super.logPrint.printDebugLog("[S][terminal]");

		if (db_CH_T_SEIKY != null) {
			db_CH_T_SEIKY.close();
		}
	}

	/**
	 * 請求スキーマの更新
	 * 
	 * @param inMap
	 * @param seikyYM
	 * @return int
	 * @throws Exception
	 */
	private int executeCH_T_SEIKY_CH_UPDATE_007(JBSbatServiceInterfaceMap inMap, String seikyYM) throws Exception {
		// 条件のマップを作成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(inMap.getString(JBSbatKKIFM258.SEIKY_KEI_NO));
		paramList.setValue(seikyYM);

		// DBアクセスを実行します
		int retCnt = db_CH_T_SEIKY.executeBySqlDefine(paramList, CH_T_SEIKY_CH_UPDATE_007);
		return retCnt;
	}
}
