/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatAKSkyPrtDataMdgcYEdit
*	ソースファイル名	：JBSbatAKSkyPrtDataMdgcYEdit.java
*	作成者				：富士通　
*	作成日				：2013年06月14日
*＜機能概要＞
*　請求書印刷データ編集(窓口明細あり)部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2013/06/14   富士通		新規作成
*********************************************************************/
package eo.business.service;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatAKIFM043;
import eo.business.util.file.JBSbatCHIFE211001;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatAKSkyPrtDataMdgcYEdit extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		
		JBSbatOutputItem item = new JBSbatOutputItem();
		
		// 請求書印刷データ(窓口明細なしマージ済)からデータレコードを出力
		
		if (inMap.getString(JBSbatCHIFE211001.REC_SBT).equals("1") &&
					 inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_REC_DIV).equals("100")) {
			this.setOutputItems(inMap, item);
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return item;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**▼▼▼▼▼▼メソッド追加 開始▼▼▼▼▼▼*/

	/**
	 * 読み込まれた請求書印刷データ(窓口明細なしマージ済)をもとに、
	 * 請求書実績情報(窓口明細なし)の出力レコードを作成し、出力情報に設定します。
	 * 
	 * @param outputItem 出力情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	
	private void setOutputItems(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setOutputItems]");

		JBSbatServiceInterfaceMap outRecord = new JBSbatServiceInterfaceMap();
		
		// 請求契約番号
		outRecord.setString(JBSbatAKIFM043.SEIKY_KEY_NO, 	inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_SEIKY_KEY_NO));
		
		// 郵便番号
		outRecord.setString(JBSbatAKIFM043.YUBIN_NO, 		inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_YUBIN_NO));
		
		// 封書区分
		outRecord.setString(JBSbatAKIFM043.FUSHO_KBN, 		inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_FUSHO_KBN));
		
		// 同封物種別１
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT1, 	inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT1));
		
		// 同封物種別１部数
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT1_CNT, inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT1_CNT));
		
		// 同封物種別２
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT2, 	inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT2));
		
		// 同封物種別２部数
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT2_CNT, inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT2_CNT));
		
		// 同封物種別３
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT3, 	inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT3));
		
		// 同封物種別３部数
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT3_CNT, inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT3_CNT));
		
		// 同封物種別４
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT4, 	inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT4));
		
		// 同封物種別４部数
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT4_CNT, inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT4_CNT));
		
		// 同封物種別５
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT5, 	inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT5));
		
		// 同封物種別５部数
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT5_CNT, inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT5_CNT));
		
		// 同封物種別６
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT6, 	inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT6));
		
		// 同封物種別６部数
		outRecord.setString(JBSbatAKIFM043.DOHUBT_SBT6_CNT, inMap.getString(JBSbatCHIFE211001.PRINT_CTRL_DOHUBT_SBT6_CNT));
		
		// 印刷枚数(総合計)
		outRecord.setString(JBSbatAKIFM043.PRINT_CNT_TTL, 	inMap.getString(JBSbatCHIFE211001.PRINT_INFO_PRINT_CNT_TTL));
		
		// 印刷面数(内訳書)
		outRecord.setString(JBSbatAKIFM043.PRINT_CNT_UCWK, 	inMap.getString(JBSbatCHIFE211001.PRINT_INFO_PRINT_CNT_UCWK));
		
		// 印刷面数(明細書)
		outRecord.setString(JBSbatAKIFM043.PRINT_CNT_DTL, 	inMap.getString(JBSbatCHIFE211001.PRINT_INFO_PRINT_CNT_DTL));
		
		// 領収のみフラグ
		outRecord.setString(JBSbatAKIFM043.RECEIPT_NOMI_FLG, inMap.getString(JBSbatCHIFE211001.PRINT_INFO_RECEIPT_NOMI_FLG));
		
		// 金融機関情報(当月)-銀行コード
		outRecord.setString(JBSbatAKIFM043.BANK_CD, 		inMap.getString(JBSbatCHIFE211001.PAY_KANRI_INFO_BANK_CD));
		
		// 金融機関情報(当月)-店舗コード
		outRecord.setString(JBSbatAKIFM043.TENPO_CD, 		inMap.getString(JBSbatCHIFE211001.PAY_KANRI_INFO_TENPO_CD));
		
		// クレジット会社コード
		outRecord.setString(JBSbatAKIFM043.CRDT_COMP_CD, 	inMap.getString(JBSbatCHIFE211001.PAY_KANRI_INFO_CRDT_COMP_CD));
		
		// 領収方法
		outRecord.setString(JBSbatAKIFM043.RECEIPT_WAY, 	inMap.getString(JBSbatCHIFE211001.RECEIPT_INFO_RECEIPT_WAY));
		
		// 領収年月西暦
		outRecord.setString(JBSbatAKIFM043.RECEIPT_YM_SIRK, inMap.getString(JBSbatCHIFE211001.RECEIPT_INFO_RECEIPT_YM_SIRK));
		
		// 領収年月日西暦
		outRecord.setString(JBSbatAKIFM043.RECEIPT_YMD_SIRK, inMap.getString(JBSbatCHIFE211001.RECEIPT_INFO_RECEIPT_YMD_SIRK));
		
		// 領収金額
		outRecord.setString(JBSbatAKIFM043.RECEIPT_AMNT, 	inMap.getString(JBSbatCHIFE211001.RECEIPT_INFO_RECEIPT_AMNT).replaceAll(",", ""));
		
		// 消費税額
		outRecord.setString(JBSbatAKIFM043.STAX_AMNT, 		inMap.getString(JBSbatCHIFE211001.RECEIPT_INFO_STAX_AMNT).replaceAll(",", ""));
		
		// 前月金融機関情報-銀行コード
		outRecord.setString(JBSbatAKIFM043.ZEN_BANK_CD, 	inMap.getString(JBSbatCHIFE211001.RECEIPT_INFO_BANK_CD));
		
		// 前月金融機関情報-店舗コード
		outRecord.setString(JBSbatAKIFM043.ZEN_TENPO_CD, 	inMap.getString(JBSbatCHIFE211001.RECEIPT_INFO_TENPO_CD));
		
		// 請求年月西暦
		outRecord.setString(JBSbatAKIFM043.SEIKY_YM_SIRK, 	inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_SEIKY_YM_SIRK));
		
		// 発行年月日西暦
		outRecord.setString(JBSbatAKIFM043.HAKKO_YMD_SIRK, 	inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_HAKKO_YMD_SIRK));
		
		// 支払期限年月日西暦
		outRecord.setString(JBSbatAKIFM043.PAY_KIGEN_YMD_SIRK, inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_PAY_KIGEN_YMD_SIRK));
		
		// 支払期限日(曜日)
		outRecord.setString(JBSbatAKIFM043.PAY_KIGEN_DAY_DOW, inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_PAY_KIGEN_DAY_DOW));
		
		// 請求金額(編集) ※カンマを削除して設定する。
		//outRecord.setString(JBSbatAKIFM043.SEIKY_AMNT_EDIT, inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_STAX_HENSHU));
		
		String seikyKin = inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_SEIKY_AMNT_DOW).replaceAll(",", "");
		outRecord.setString(JBSbatAKIFM043.SEIKY_AMNT_EDIT, seikyKin);
		
		// 消費税
		outRecord.setString(JBSbatAKIFM043.STAX, 			inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_STAX).replaceAll(",", ""));
		
		// 請求金額
		outRecord.setString(JBSbatAKIFM043.SEIKY_AMNT, 		inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_SEIKY_AMNT).replaceAll(",", ""));
		
		// 請求利用期間FROM
		outRecord.setString(JBSbatAKIFM043.SEIKY_RIYO_PRD_FROM, inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_SEIKY_RIYO_PRD_FROM));
		
		// 請求利用期間TO
		outRecord.setString(JBSbatAKIFM043.SEIKY_RIYO_PRD_TO, inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_SEIKY_RIYO_PRD_TO));
		
		// 月額利用期間FROM
		outRecord.setString(JBSbatAKIFM043.GTGK_RIYO_PRD_FROM, inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_GTGK_RIYO_PRD_FROM));
		
		// 月額利用期間TO
		outRecord.setString(JBSbatAKIFM043.GTGK_RIYO_PRD_TO, inMap.getString(JBSbatCHIFE211001.SEIKY_INFO_GTGK_RIYO_PRD_TO));
		
		// 請求番号＿請求年月西暦
		outRecord.setString(JBSbatAKIFM043.SEIKY_NO_SEIKY_YM_SIRK, inMap.getString(JBSbatCHIFE211001.SEIKY_NO_SEIKY_YM_SIRK));
		
		// 請求番号＿請求先番号
		outRecord.setString(JBSbatAKIFM043.SEIKY_NO_SEIKY_SAKI_NO, inMap.getString(JBSbatCHIFE211001.SEIKY_NO_SEIKY_SAKI_NO));
		
		// 請求番号＿支払方法
		outRecord.setString(JBSbatAKIFM043.SEIKY_NO_PAY_WAY, inMap.getString(JBSbatCHIFE211001.SEIKY_NO_PAY_WAY));
		
		// 請求番号＿シーケンス番号
		outRecord.setString(JBSbatAKIFM043.SEIKY_NO_SEQ_NO, inMap.getString(JBSbatCHIFE211001.SEIKY_NO_SEQ_NO));
		
		// 請求番号＿発行月
		outRecord.setString(JBSbatAKIFM043.SEIKY_NO_HAKKO_MON, inMap.getString(JBSbatCHIFE211001.SEIKY_NO_HAKKO_MON));
		
		// 請求番号＿発行シーケンス
		outRecord.setString(JBSbatAKIFM043.SEIKY_NO_HAKKO_SEQ_NO, inMap.getString(JBSbatCHIFE211001.SEIKY_NO_HAKKO_SEQ_NO));
		
		// 請求番号＿群コード
		outRecord.setString(JBSbatAKIFM043.SEIKY_NO_GUN_CD, inMap.getString(JBSbatCHIFE211001.SEIKY_NO_GUN_CD));
		
		// 請求番号＿請求書区分
		outRecord.setString(JBSbatAKIFM043.SEIKY_NO_SEIKYUS_KBN, inMap.getString(JBSbatCHIFE211001.SEIKY_NO_SEIKYUS_KBN));
		
		// バージョン番号
		outRecord.setString(JBSbatAKIFM043.VSN_NO,  		inMap.getString(JBSbatCHIFE211001.OCR_VSN_NO));
		
		// OCR請求年月
		outRecord.setString(JBSbatAKIFM043.OCR_SEIKY_YM,  	inMap.getString(JBSbatCHIFE211001.OCR_OCR_SEIKY_YM));
		
		// OCR請求先番号
		outRecord.setString(JBSbatAKIFM043.OCR_SEIKY_SAKI_NO, inMap.getString(JBSbatCHIFE211001.OCR_OCR_SEIKY_SAKI_NO));
		
		// OCR発行月
		outRecord.setString(JBSbatAKIFM043.OCR_HAKKO_MON, 	inMap.getString(JBSbatCHIFE211001.OCR_OCR_HAKKO_MON));
		
		// OCR発行シーケンス
		outRecord.setString(JBSbatAKIFM043.OCR_HAKKO_SEQ, 	inMap.getString(JBSbatCHIFE211001.OCR_OCR_HAKKO_SEQ));
		
		// OCR群番号
		outRecord.setString(JBSbatAKIFM043.OCR_GUN_NO, 		inMap.getString(JBSbatCHIFE211001.OCR_OCR_GUN_NO));
		
		// OCR請求金額
		outRecord.setString(JBSbatAKIFM043.OCR_SEIKY_AMNT, 	inMap.getString(JBSbatCHIFE211001.OCR_OCR_SEIKY_AMNT).replaceAll(",", ""));
		
		// OCRチェックデジット
		outRecord.setString(JBSbatAKIFM043.OCR_CHKDGT, 		inMap.getString(JBSbatCHIFE211001.OCR_OCR_CHKDGT));
		
		// インフォメーション１
		outRecord.setString(JBSbatAKIFM043.INFO1, 			inMap.getString(JBSbatCHIFE211001.INFO1));
		
		// インフォメーション２
		outRecord.setString(JBSbatAKIFM043.INFO2, 			inMap.getString(JBSbatCHIFE211001.INFO2));
		
		// インフォメーション３
		outRecord.setString(JBSbatAKIFM043.INFO3, 			inMap.getString(JBSbatCHIFE211001.INFO3));
		
		// インフォメーション４
		outRecord.setString(JBSbatAKIFM043.INFO4, 			inMap.getString(JBSbatCHIFE211001.INFO4));
		
		// 収入印紙マスクフラグ
		outRecord.setString(JBSbatAKIFM043.SYNY_INSHI_MSK_FLG, inMap.getString(JBSbatCHIFE211001.SYNY_INSHI_MSK_FLG));
		
		// カスタマバーコード＿スタートビット
		outRecord.setString(JBSbatAKIFM043.CSTM_BCD_START_BIT, inMap.getString(JBSbatCHIFE211001.CSTM_BCD_START_BIT));
		
		// カスタマバーコード＿郵便番号（主番号）
		outRecord.setString(JBSbatAKIFM043.CSTM_BCD_YUBIN_NO_MAIN_NO, inMap.getString(JBSbatCHIFE211001.CSTM_BCD_YUBIN_NO_MAIN_NO));
		
		// カスタマバーコード＿郵便番号（副番上２桁）
		outRecord.setString(JBSbatAKIFM043.CSTM_BCD_YUBIN_NO_SUB_NO_UE, inMap.getString(JBSbatCHIFE211001.CSTM_BCD_YUBIN_NO_SUB_NO_UE));
		
		// カスタマバーコード＿郵便番号（副番下２桁）
		outRecord.setString(JBSbatAKIFM043.CSTM_BCD_YUBIN_NO_SUB_NO_ST, inMap.getString(JBSbatCHIFE211001.CSTM_BCD_YUBIN_NO_SUB_NO_ST));
		
		// カスタマバーコード＿住所表示番号
		outRecord.setString(JBSbatAKIFM043.CSTM_BCD_AD_DSP_NO, inMap.getString(JBSbatCHIFE211001.CSTM_BCD_AD_DSP_NO));
		
		// カスタマバーコード＿チェックデジット
		outRecord.setString(JBSbatAKIFM043.CSTM_BCD_CHKDGT, inMap.getString(JBSbatCHIFE211001.CSTM_BCD_CHKDGT));
		
		// カスタマバーコード＿ストップビット
		outRecord.setString(JBSbatAKIFM043.CSTM_BCD_STOP_BIT, inMap.getString(JBSbatCHIFE211001.CSTM_BCD_STOP_BIT));
		
		// ＥＡＮバーコード＿識別子
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_SKBTS, 	inMap.getString(JBSbatCHIFE211001.EAN_BCD_SKBTS));
		
		// ＥＡＮバーコード＿メーカーコード
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_MAKER_CD, inMap.getString(JBSbatCHIFE211001.EAN_BCD_MAKER_CD));
		
		// ＥＡＮバーコード＿会社コード
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_COMP_CD, inMap.getString(JBSbatCHIFE211001.EAN_BCD_COMP_CD));
		
		// ＥＡＮバーコード＿請求月
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_SEIKY_YM, inMap.getString(JBSbatCHIFE211001.EAN_BCD_SEIKY_YM));
		
		// ＥＡＮバーコード＿請求年
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_SEIKY_YEAR, inMap.getString(JBSbatCHIFE211001.EAN_BCD_SEIKY_YEAR));
		
		// ＥＡＮバーコード＿群番号
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_GUN_NO, inMap.getString(JBSbatCHIFE211001.EAN_BCD_GUN_NO));
		
		// ＥＡＮバーコード＿発行シーケンス
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_HAKKO_SEQ, inMap.getString(JBSbatCHIFE211001.EAN_BCD_HAKKO_SEQ));
		
		// ＥＡＮバーコード＿請求先番号
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_SEIKY_SAKI_NO, inMap.getString(JBSbatCHIFE211001.EAN_BCD_SEIKY_SAKI_NO));
		
		// ＥＡＮバーコード＿再発行区分
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_RE_HAKKO_KBN, inMap.getString(JBSbatCHIFE211001.EAN_BCD_RE_HAKKO_KBN));
		
		// ＥＡＮバーコード＿支払期限日
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_PAY_KIGEN_DAY, inMap.getString(JBSbatCHIFE211001.EAN_BCD_PAY_KIGEN_DAY));
		
		// ＥＡＮバーコード＿印紙フラグ
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_INSHI_FLG, inMap.getString(JBSbatCHIFE211001.EAN_BCD_INSHI_FLG));
		
		// ＥＡＮバーコード＿支払金額
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_PAY_AMNT, inMap.getString(JBSbatCHIFE211001.EAN_BCD_PAY_AMNT).replaceAll(",", ""));
		
		// ＥＡＮバーコード＿チェックデジット
		outRecord.setString(JBSbatAKIFM043.EAN_BCD_CHKDGT, inMap.getString(JBSbatCHIFE211001.EAN_BCD_CHKDGT));
		
		// インターフェイスＩＤ
		outRecord.setString(JBSbatAKIFM043.INTFACE_ID, "CHIFE211");
		

		outRecord.setOutFlg(true);
		// 出力レコード1件作成
		outputItem.addOutMapList(outRecord);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setOutputItems]");
	}
}
