/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCNYkRsltTrkm
*	ソースファイル名	：JBSbatCNYkRsltTrkm.java
*	作成者				：富士通　
*	作成日				：2011年08月03日
*＜機能概要＞
*　クレジットカード有効性結果データ取込処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/03	富士通		新規作成
*	v5.00.00	2013/08/16	富士通:味岡	KT1-2013-0000814:有効性結果にて同一クレカ番号が複数件返却されるデータ対応
*	v20.00.00   2015/11/24   FJ)李擇臣  【IT1-2015-0000128】クレジットカード番号預かりサービス導入（Step2：売上／有効性チェック経路変更）
*	v20.00.01	2015/11/26	FJ) 李雪飛	【ANK-2565-00-00】クレジットカード番号預かりサービス導入（Step3：預かり番号化）
*	v27.00.00	2016/10/27	FJ) 清原	【OM-2016-0001654】入力ファイルを指定バイトで改行する処理を削除（shellにて編集に変更）
*	v58.00.00   2022/04/05  GDC)j.lawsin 【ANK-3846-00-00】【クレカ】クリアパス→ペイジェント移行
*********************************************************************/
package eo.business.service;

import java.io.IOException;
import java.util.ArrayList;
import java.text.ParseException;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCNBatCommon;
import eo.common.constant.JCNStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.util.JBSbatAplConst;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatInputFileUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCNYkRsltTrkm extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(処理日付情報)*/
	private static final String D_TBL_NAME_CN_T_TRAN_YMD_INFO = "CN_T_TRAN_YMD_INFO";

	/** テーブル(コンテンツ事業クレジットカード)*/
	private static final String D_TBL_NAME_CN_T_CONTJIGYO_CRECA = "CN_T_CONTJIGYO_CRECA";

	/** SQL定義キー(CN_SELECT_002)*/
	private static final String CN_T_TRAN_YMD_INFO_CN_SELECT_002 = "CN_SELECT_002";

	/** SQL定義キー(CN_DELETE_002)*/
	private static final String CN_T_CONTJIGYO_CRECA_CN_DELETE_002 = "CN_DELETE_002";

	/** SQL定義キー(CN_SELECT_003)*/
	private static final String CN_T_CONTJIGYO_CRECA_CN_SELECT_003 = "CN_SELECT_003";

	/** SQL定義キー(CN_INSERT_001)*/
	private static final String CN_T_CONTJIGYO_CRECA_CN_INSERT_001 = "CN_INSERT_001";

	/** SQL定義キー(CN_SELECT_005)*/
	private static final String CN_T_CONTJIGYO_CRECA_CN_SELECT_005 = "CN_SELECT_005";

	/** SQL定義キー(CN_UPDATE_001)*/
	private static final String CN_T_CONTJIGYO_CRECA_CN_UPDATE_001 = "CN_UPDATE_001";

	/** テーブルアクセスクラス(処理日付情報)*/
	private JBSbatSQLAccess db_CN_T_TRAN_YMD_INFO = null;

	/** テーブルアクセスクラス(コンテンツ事業クレジットカード)*/
	private JBSbatSQLAccess db_CN_T_CONTJIGYO_CRECA = null;

	/** テーブルアクセスクラス(コンテンツ事業クレジットカード)*/
	private JBSbatSQLAccess db_CN_T_CONTJIGYO_CRECA_1 = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 西暦埋め込み用*/
	private static final String S_YEAR_20 = "20";
	
	/** 月初日付埋め込み用*/
	private static final String S_DAY_01 = "01";
	
	/** 更新サイン*/
	private static final String S_UPDATE_SIGN = "1";
	
	/** メッセージキー*/
	private static final String ECNB0070AI = JPCBatchMessageConstant.ECNB0070AI;
	
	/** メッセージキー*/
	private static final String ECNB0190AI = JPCBatchMessageConstant.ECNB0190AI;
	
	/** メッセージキー*/
	private static final String ECNB0220AI = JPCBatchMessageConstant.ECNB0220AI;
	
	/** メッセージキー*/
	private static final String ECNB0230KE = JPCBatchMessageConstant.ECNB0230KE;
// ANK-3846-00-00 DEL START	
	/** メッセージキー*/
	// private static final String ECNB0200KE = JPCBatchMessageConstant.ECNB0200KE;
	
	/** ファイル名(有効性チェック結果データファイル)*/
	// private static final String S_INFILE_NM = "有効性チェック結果データファイル";
// ANK-3846-00-00 DEL END
	
	// v27.00.00 OM-2016-0001654 Del Start
//	/** レコードバイト数*/
//	private static final int I_REC_BYTE = 125;
	// v27.00.00 OM-2016-0001654 Del End
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		// FREEパラメータ取得
		String strFreeParam = commonItem.getFreeItem();
		
		// パラメータを区切り文字で分割する
		String[] lines = strFreeParam.split(JCNStrConst.S_PARAM_DELIM);
		// パラメータチェック
		if(lines.length != 1 || ("").equals(lines[0]))
		{
			throw new JBSbatBusinessException(ECNB0230KE);
		}
		
		// DBアクセスクラスを生成します
		db_CN_T_TRAN_YMD_INFO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_TRAN_YMD_INFO);
		db_CN_T_CONTJIGYO_CRECA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_CONTJIGYO_CRECA);
		db_CN_T_CONTJIGYO_CRECA_1 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_CONTJIGYO_CRECA);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 処理日付情報を取得
		JBSbatCommonDBInterface dbList1 = new JBSbatCommonDBInterface();
		dbList1. setValue(JCNStrConst.S_BAT_TRAN_CD_CINT_UPD);
		executeCN_T_TRAN_YMD_INFO_CN_SELECT_002(dbList1.getList().toArray());

		// SQL実行結果を取得
		JBSbatCommonDBInterface map = new JBSbatCommonDBInterface();
		String strTran_tg_ymd_next = "";
		// 20.0.0 IT1-2015-0000128 ADD START
		String strTran_tg_ym = "";
		// 20.0.0 IT1-2015-0000128 ADD END
		for(map = db_CN_T_TRAN_YMD_INFO.selectNext(); null != map; map = db_CN_T_TRAN_YMD_INFO.selectNext())
		{
			// 処理日付の翌月を取得
			strTran_tg_ymd_next = map.getString("TRAN_TG_YMD_NEXTM");

			// 20.0.0 IT1-2015-0000128 ADD START
			strTran_tg_ym = map.getString("SIKY_YM");
			// 20.0.0 IT1-2015-0000128 ADD END
		}
		
		// 処理日付の翌月の年と月を取得
		String strTranTgYm = strTran_tg_ymd_next.substring(0, 6);
		
		// コンテンツ事業クレジットカード翌月レコード物理削除(リラン用処理)
		JBSbatCommonDBInterface dbList2 = new JBSbatCommonDBInterface();
		dbList2.setValue(strTranTgYm);
		// 20.0.0 IT1-2015-0000128 ADD START
		dbList2.setValue(strTran_tg_ym);
		// 20.0.0 IT1-2015-0000128 ADD END
		int iDelCnt = executeCN_T_CONTJIGYO_CRECA_CN_DELETE_002(dbList2.getList().toArray());
		
		// FREEパラメータ取得
		String strFreeParam = commonItem.getFreeItem();
		// パラメータを区切り文字で分割する
		String[] lines = strFreeParam.split(JCNStrConst.S_PARAM_DELIM);
		// パラメータ取得
		String strFreeParam1 = lines[0];	// 有効性チェック結果データファイル
		
		// 有効性チェック結果データファイル読込
		ArrayList<String> cardResultList = new ArrayList<String>();
		
// v27.00.00 OM-2016-0001654 Mod Start
//		cardResultList = createList(readFile(strFreeParam1).get(0), I_REC_BYTE);
		cardResultList = readFile(strFreeParam1);
// v27.00.00 OM-2016-0001654 Mod End
		
		// 登録件数カウンター
		int iInsCnt = 0;
		int iUpdCnt = 0;
		
		// コミットカウント
		int iCmtCnt = 1;
		
// v20.00.01 ANK-2565-00-00 MOD START
		// カード預りID(前レコードとの比較用)
		//String strTaihiCreNo = "";
		String strTaihiAzkriId = "";
// v20.00.01 ANK-2565-00-00 MOD END
		
// ANK-3846-00-00 ADD START
		for(int i = 0; i < cardResultList.size(); i++)
		{
			String[] data = cardResultList.get(i).split(JCNStrConst.S_SEP_CAM, -1);
			// 顧客IDを取得する
			String custId = data[2];
			// 有効性判定結果を取得する
			String strJcnYkRsult = data[4];
			// カード番号更新サインを取得する
			String cardNoUpdateSign = data[5];
			// 有効期限更新サインを取得する
			String expDtUpdateSign = data[6];
			// マスクされたカード番号を取得する
			String maskCardNo = data[7];
			// カード有効期限を取得する
			String expirationDt = data[8];
			
			// コンテンツ事業クレジットカード取得
			JBSbatCommonDBInterface dbList3 = new JBSbatCommonDBInterface();
			dbList3.setValue(JCNStrConst.S_CONT_JIGYO_CD);
			dbList3.setValue(custId);
			dbList3.setValue(JCNStrConst.S_MK_FLG);
			dbList3.setValue(strTranTgYm + S_DAY_01);
			dbList3.setValue(strTranTgYm + S_DAY_01);
			dbList3.setValue(strTranTgYm + S_DAY_01);
			executeCN_T_CONTJIGYO_CRECA_CN_SELECT_003(dbList3.getList().toArray());
			
			// 登録項目変数生成
			String strCreStatus = "";      // クレジットカードステータス
			String strYkRsult = "";			// 有効性確認結果
			String strCreCardId = "";		    // クレジットカードID
			String strSysId = "";			    // SYSID
			String strJigyoCd = "";		// クレジットカード事業コード
			String strCardCoCd = "";		// クレジットカード会社コード
			String strCreKokanCd = "";		// クレジット交換コード
			String strCustNm = "";			    // お客さま名（ローマ字）
			String strShimCoCd = "";    // 仕向先会社コード
			String strFlmt = "";			// フロアリミット初回金額
			String strCreNo = "";          // クレジットカード番号
			String strYukuKegn = "";     // 有効期限
			String strAzkriId = "";	    // カード預かりID
			
			for(map = db_CN_T_CONTJIGYO_CRECA.selectNext(); null != map; map = db_CN_T_CONTJIGYO_CRECA.selectNext())
			{
				strCreCardId = map.getString("CRECARD_ID");
				strSysId = map.getString("SYSID");
				strJigyoCd = map.getString("CRECARD_JIGYO_CD");
				strCardCoCd = map.getString("CRECARD_COMP_CD");
				strCreKokanCd = map.getString("CREDIT_KOKAN_CD");
				strCustNm = map.getString("CUST_NM_ROMAJI");
				strShimCoCd = map.getString("SHIKOSAKI_COMP_CD");
				strFlmt = map.getString("FLRLMT_FIRST");
				strCreNo = JCNBatCommon.getDecryptResult(commonItem, map.getString("CRECARD_NO"));
				strYukuKegn = map.getString("CRECARD_YK_KIGEN");
				strAzkriId = map.getString("CRECARD_NO_AZKRI_ID");
				
				// クレジットカード番号更新チェック
				if(S_UPDATE_SIGN.equals(cardNoUpdateSign))
				{
					strCreNo = maskCardNo.replaceAll("\\*", "0");
					strYukuKegn = dateConversion(expirationDt);
				}
				
				// 有効期限更新チェック
				if (S_UPDATE_SIGN.equals(expDtUpdateSign))
				{
					strYukuKegn = dateConversion(expirationDt);
				}
				
				// 有効性チェック結果データファイル.有効性確認結果が「0:有効性OK」または「5:有効性チェック非対応カード会社」の場合、「002:有効」 と「1:有効性OK」を設定する。
				if (JCNStrConst.S_JCN_YK_CFM_RSLT_DIV_OK.equals(strJcnYkRsult) 
					|| JCNStrConst.S_JCN_YK_CFM_RSLT_DIV_NO_SUPPORT.equals(strJcnYkRsult) 
					|| "".equals(strJcnYkRsult.trim()) )
				{
					strCreStatus = JCNStrConst.S_CRECARD_STAT_YUKU;
					strYkRsult = JCNStrConst.S_YK_CFM_RSLT_DIV_OK;
				}
				// 有効性チェック結果データファイル.有効性確認結果が「1:有効性NG」または「3:請求停止」または「4:カード会社契約無し」または「9:ペイジェント照合エラー」の場合、「004:無効」と「2:有効性NG」を設定する。
				else if (JCNStrConst.S_JCN_YK_CFM_RSLT_DIV_NG.equals(strJcnYkRsult)
						|| JCNStrConst.S_JCN_YK_CFM_RSLT_DIV_SUSPENSION.equals(strJcnYkRsult)
						|| JCNStrConst.S_JCN_YK_CFM_RSLT_DIV_NO_CRD_COMP_CONTRACT.equals(strJcnYkRsult)
						|| JCNStrConst.S_JCN_YK_CFM_RSLT_DIV_COL_ERR.equals(strJcnYkRsult))
				{
					strCreStatus = JCNStrConst.S_CRECARD_STAT_MUKU;
					strYkRsult = JCNStrConst.S_YK_CFM_RSLT_DIV_NG;
				}
				// 有効性チェック結果データファイル.有効性確認結果が　「2:カード会社照合エラー」の場合、「004:無効」 と「3:照合エラー」を設定する。
				else if (JCNStrConst.S_JCN_YK_CFM_RSLT_DIV_ERR.equals(strJcnYkRsult))
				{
					strCreStatus = JCNStrConst.S_CRECARD_STAT_MUKU;
					strYkRsult = JCNStrConst.S_YK_CFM_RSLT_DIV_ERR;
				}
				
				// 処理済の前レコードのカード預りIDと今回読込のカード預りID比較し、同一カード預りIDの場合はコミットする
				if (strAzkriId.equals(strTaihiAzkriId))
				{
					super.commit();
				}
				
				// 登録対象の翌月データを検索し、データが存在しない場合は登録、データが存在する場合は更新を行う。
				JBSbatCommonDBInterface dbList5 = new JBSbatCommonDBInterface();
				dbList5.setValue(strCreCardId);
				dbList5.setValue(strTranTgYm);
				executeCN_T_CONTJIGYO_CRECA_CN_SELECT_005(dbList5.getList().toArray());
				String strCnt = db_CN_T_CONTJIGYO_CRECA_1.selectNext().getString("CNT");
				
				// SELECT結果が取得できた場合は更新、取得できない場合は登録を行う。
				if(JCNStrConst.S_ZERO.equals(strCnt))
				{
					// コンテンツ事業クレジットカード翌月データ登録
					JBSbatCommonDBInterface dbList4 = new JBSbatCommonDBInterface();
					// INSERTパラメータの設定
					dbList4.setValue(strCreCardId);												// クレジットカードID
					dbList4.setValue(strTranTgYm);												// 課金対象年月
					dbList4.setValue(strCreStatus);											// クレジットカードステータス
					dbList4.setValue(strSysId);													// SYSID
					dbList4.setValue(strJigyoCd);											// クレジットカード事業コード
					dbList4.setValue(strCardCoCd);											// クレジットカード会社コード
					dbList4.setValue(JCNBatCommon.getEncryptResult(commonItem, strCreNo));	// クレジットカード番号
					dbList4.setValue(strYukuKegn);											// クレジットカード有効期限
					dbList4.setValue(strCreKokanCd);											// クレジット交換コード
					dbList4.setValue(strCustNm);												    // お客さま名（ローマ字）
					dbList4.setValue("");														// オーソリ確認年月日時分秒
					dbList4.setValue("");														// オーソリ結果区分
					dbList4.setValue("");														// オーソリ承認番号
					dbList4.setValue(JCNBatCommon.getSysDate().substring(0, 6) + S_DAY_01);		// 有効性要求年月日
					dbList4.setValue(strYkRsult);												    // 有効性確認結果区分
					dbList4.setValue(JCNBatCommon.getSysDate());								// 有効性確認年月日
					dbList4.setValue(strFlmt);											    // フロアリミットチェック済金額
					dbList4.setValue(strShimCoCd);											// 仕向先会社コード
					dbList4.setValue(strAzkriId);											// カード預りID
					dbList4.setValue("");														// 決済ID
					dbList4.setValue("");														// マーチャント取引ID
					
					executeCN_T_CONTJIGYO_CRECA_CN_INSERT_001(dbList4.getList().toArray());
					
					// インサート件数
					iInsCnt++;
				}
				else
				{
					// コンテンツ事業クレジットカード翌月データ更新
					JBSbatCommonDBInterface dbList4 = new JBSbatCommonDBInterface();
					// UPDATEパラメータの設定
					dbList4.setValue(strCreStatus);											// クレジットカードステータス
					dbList4.setValue(strSysId);													// SYSID
					dbList4.setValue(strJigyoCd);											// クレジットカード事業コード
					dbList4.setValue(strCardCoCd);											// クレジットカード会社コード
					dbList4.setValue(JCNBatCommon.getEncryptResult(commonItem, strCreNo));	// クレジットカード番号
					dbList4.setValue(strYukuKegn);											// クレジットカード有効期限
					dbList4.setValue(strCreKokanCd);											// クレジット交換コード
					dbList4.setValue(strCustNm);												    // お客さま名（ローマ字）
					dbList4.setValue("");														// オーソリ確認年月日時分秒
					dbList4.setValue("");														// オーソリ結果区分
					dbList4.setValue("");														// オーソリ承認番号
					dbList4.setValue(JCNBatCommon.getSysDate().substring(0, 6) + S_DAY_01);		// 有効性要求年月日
					dbList4.setValue(strYkRsult);												    // 有効性確認結果区分
					dbList4.setValue(JCNBatCommon.getSysDate());								// 有効性確認年月日
					dbList4.setValue(strFlmt);											    // フロアリミットチェック済金額
					dbList4.setValue(strShimCoCd);											// 仕向先会社コード
					dbList4.setValue(strAzkriId);											// カード預りID
					dbList4.setValue("");														// 決済ID
					dbList4.setValue("");														// マーチャント取引ID
					// 更新条件
					dbList4.setValue(strCreCardId);												// クレジットカードID
					dbList4.setValue(strTranTgYm);												// 課金対象年月
					
					executeCN_T_CONTJIGYO_CRECA_CN_UPDATE_001(dbList4.getList().toArray());
					
					// インサート件数
					iUpdCnt++;
				}
				
				strTaihiAzkriId = strAzkriId; // 比較用にカード預りIDを退避保持する
				
				// コミット処理
				if(iCmtCnt == Integer.valueOf(JBSbatAplConst.getAplConstValue(JCNStrConst.S_PROP_COMIT_UNIT)))
				{
					super.commit();
					// コミットしたらカウンターを初期化
					iCmtCnt = 1;
				}
				// コミットカウント
				iCmtCnt++;
			}
		}
// ANK-3846-00-00 ADD END

// ANK-3846-00-00 DEL START		
		// クレジットカード情報翌月データ作成
//		for(int i = 0; i < cardResultList.size(); i++)
//		{
//			String strData = cardResultList.get(i);
//			// データレコードチェック
//			if(JCNStrConst.S_TTL_REC_ID_CARDCO.equals(strData.substring(0, 5))
//					&& JCNStrConst.S_DATA_KBN_DATA.equals(strData.substring(5, 6))
//					&& JCNStrConst.S_SHUBETSU_CD.equals(strData.substring(29, 31)))
//			{
//				// コンテンツ事業クレジットカード取得
//				JBSbatCommonDBInterface dbList3 = new JBSbatCommonDBInterface();
//				dbList3.setValue(JCNStrConst.S_CONT_JIGYO_CD);
//// v20.00.01 ANK-2565-00-00 MOD START
//				//dbList3.setValue(JCNBatCommon.getEncryptResult(commonItem, strData.substring(9, 25)));
//				dbList3.setValue(strData.substring(9, 25));
//// v20.00.01 ANK-2565-00-00 MOD END
//				dbList3.setValue(S_YEAR_20 + strData.substring(25, 29));
//				dbList3.setValue(JCNStrConst.S_MK_FLG);
//				dbList3.setValue(strTranTgYm + S_DAY_01);
//				dbList3.setValue(strTranTgYm + S_DAY_01);
//				dbList3.setValue(strTranTgYm + S_DAY_01);
//				executeCN_T_CONTJIGYO_CRECA_CN_SELECT_003(dbList3.getList().toArray());
//				
//				// 登録項目変数生成
//				String strCreStatus = "";		// クレジットカードステータス
//				String strYkRsult = "";			// 有効性確認結果
//				String strCreCardId = "";		// クレジットカードID
//				String strSysId = "";			// SYSID
//				String strJigyoCd = "";			// クレジットカード事業コード
//				String strCardCoCd = "";		// クレジットカード会社コード
//				String strCreKokanCd = "";		// クレジット交換コード
//				String strCustNm = "";			// お客さま名（ローマ字）
//				String strShimCoCd = "";		// 仕向先会社コード
//				String strFlmt = "";			// フロアリミット初回金額
//				String strCreNo = "";			// クレジットカード番号
//				String strYukuKegn = "";		// 有効期限
//// v20.00.01 ANK-2565-00-00 ADD START
//				String strAzkriId = "";			// カード預りID
//// v20.00.01 ANK-2565-00-00 ADD END
//				
//				for(map = db_CN_T_CONTJIGYO_CRECA.selectNext(); null != map; map = db_CN_T_CONTJIGYO_CRECA.selectNext())
//				{
//					strCreCardId = map.getString("CRECARD_ID");
//					strSysId = map.getString("SYSID");
//					strJigyoCd = map.getString("CRECARD_JIGYO_CD");
//					strCardCoCd = map.getString("CRECARD_COMP_CD");
//					strCreKokanCd = map.getString("CREDIT_KOKAN_CD");
//					strCustNm = map.getString("CUST_NM_ROMAJI");
//					strShimCoCd = map.getString("SHIKOSAKI_COMP_CD");
//					strFlmt = map.getString("FLRLMT_FIRST");
//					strCreNo = JCNBatCommon.getDecryptResult(commonItem, map.getString("CRECARD_NO"));
//					strYukuKegn = map.getString("CRECARD_YK_KIGEN");
//// v20.00.01 ANK-2565-00-00 ADD START
//					strAzkriId = map.getString("CRECARD_NO_AZKRI_ID");
//// v20.00.01 ANK-2565-00-00 ADD END
//				
//					// クレジットカード番号更新チェック
//					if(S_UPDATE_SIGN.equals(strData.substring(64, 65)))
//					{
//						strCreNo = strData.substring(69, 85);
//						strYukuKegn = S_YEAR_20 + strData.substring(85, 89);
//					}
//				
//					// 有効期限更新チェック
//					if(S_UPDATE_SIGN.equals(strData.substring(65, 66)))
//					{
//						strYukuKegn = S_YEAR_20 + strData.substring(85, 89);
//					}
//				
//					// コンテンツ事業クレジットカードステータス、有効性判定結果設定
//					String strJcnYkRsult = strData.substring(89, 90);
//					// 有効性OKの場合はコンテンツ事業クレジットカードステータス「有効」有効性確認結果区分「OK」
//					if(JCNStrConst.S_JCN_YK_CFM_RSLT_DIV_OK.equals(strJcnYkRsult)
//							|| "".equals(strData.substring(89, 90).trim()))
//					{
//						strCreStatus = JCNStrConst.S_CRECARD_STAT_YUKU;
//						strYkRsult = JCNStrConst.S_YK_CFM_RSLT_DIV_OK;
//					}
//					// 有効性NGの場合はコンテンツ事業クレジットカードステータス「無効」有効性確認結果区分「NG」
//					else if(JCNStrConst.S_JCN_YK_CFM_RSLT_DIV_NG.equals(strJcnYkRsult))
//					{
//						strCreStatus = JCNStrConst.S_CRECARD_STAT_MUKU;
//						strYkRsult = JCNStrConst.S_YK_CFM_RSLT_DIV_NG;
//					}
//					// 有効性照査エラーの場合はコンテンツ事業クレジットカードステータス「無効」有効性確認結果区分「照査エラー」
//					else if(JCNStrConst.S_JCN_YK_CFM_RSLT_DIV_ERR.equals(strJcnYkRsult))
//					{
//						strCreStatus = JCNStrConst.S_CRECARD_STAT_MUKU;
//						strYkRsult = JCNStrConst.S_YK_CFM_RSLT_DIV_ERR;
//					}
//					
//// v20.00.01 ANK-2565-00-00 MOD START
//					//// 処理済の前レコードのカード番号と今回読込のカード番号比較し、同一カード番号の場合はコミットする
//					//if(strCreNo.equals(strTaihiCreNo))
//					//{
//					//	super.commit();
//					//}
//					
//					// 処理済の前レコードのカード預りIDと今回読込のカード預りID比較し、同一カード預りIDの場合はコミットする
//					if(strAzkriId.equals(strTaihiAzkriId))
//					{
//						super.commit();
//					}
//// v20.00.01 ANK-2565-00-00 MOD END
//					
//					// 登録実施前にキー項目にて検索を行い、データが存在しない場合は登録、データが有件の場合は更新を行う
//					JBSbatCommonDBInterface dbList5 = new JBSbatCommonDBInterface();
//					dbList5. setValue(strCreCardId);
//					dbList5. setValue(strTranTgYm);
//					executeCN_T_CONTJIGYO_CRECA_CN_SELECT_005(dbList5.getList().toArray());
//					String strCnt = db_CN_T_CONTJIGYO_CRECA_1.selectNext().getString("CNT");
//					
//					// SELECT結果が取得できた場合は更新、取得できない場合は登録を行う。
//					if(JCNStrConst.S_ZERO.equals(strCnt))
//					{					
//						// コンテンツ事業クレジットカード翌月データ登録
//						JBSbatCommonDBInterface dbList4 = new JBSbatCommonDBInterface();
//						// INSERTパラメータの設定
//						dbList4.setValue(strCreCardId);												// クレジットカードID
//						dbList4.setValue(strTranTgYm);												// 課金対象年月
//						dbList4.setValue(strCreStatus);												// クレジットカードステータス
//						dbList4.setValue(strSysId);													// SYSID
//						dbList4.setValue(strJigyoCd);												// クレジットカード事業コード
//						dbList4.setValue(strCardCoCd);												// クレジットカード会社コード
//						dbList4.setValue(JCNBatCommon.getEncryptResult(commonItem, strCreNo));		// クレジットカード番号
//						dbList4.setValue(strYukuKegn);												// クレジットカード有効期限
//						dbList4.setValue(strCreKokanCd);											// クレジット交換コード
//						dbList4.setValue(strCustNm);												// お客さま名（ローマ字）
//						dbList4.setValue("");														// オーソリ確認年月日時分秒
//						dbList4.setValue("");														// オーソリ結果区分
//						dbList4.setValue("");														// オーソリ承認番号
//						dbList4.setValue(JCNBatCommon.getSysDate().substring(0, 6) + S_DAY_01);		// 有効性要求年月日
//						dbList4.setValue(strYkRsult);												// 有効性確認結果区分
//						dbList4.setValue(JCNBatCommon.getSysDate());								// 有効性確認年月日
//						dbList4.setValue(strFlmt);													// フロアリミットチェック済金額
//						dbList4.setValue(strShimCoCd);												// 仕向先会社コード
////						dbList4.setValue(JCNBatCommon.getSysDateTimeStamp());						// 登録年月日時分秒
////						dbList4.setValue(commonItem.getBatchUserId());								// 登録オペレータアカウント
////						dbList4.setValue(JCNBatCommon.getSysDateTimeStamp());						// 更新年月日時分秒
////						dbList4.setValue(commonItem.getBatchUserId());								// 更新オペレータアカウント
////						dbList4.setValue("");														// 削除年月日時分秒
////						dbList4.setValue("");														// 削除オペレータアカウント
////						dbList4.setValue(JCNStrConst.S_MK_FLG);										// 無効フラグ
//// v20.00.01 ANK-2565-00-00 ADD START
//						dbList4.setValue(strAzkriId);												// カード預りID
//// v20.00.01 ANK-2565-00-00 ADD END
//						executeCN_T_CONTJIGYO_CRECA_CN_INSERT_001(dbList4.getList().toArray());
//						
//						// インサート件数
//						iInsCnt++;
//					}
//					else
//					{
//						// コンテンツ事業クレジットカード翌月データ更新
//						JBSbatCommonDBInterface dbList4 = new JBSbatCommonDBInterface();
//						// UPDATEパラメータの設定
//						dbList4.setValue(strCreStatus);												// クレジットカードステータス
//						dbList4.setValue(strSysId);													// SYSID
//						dbList4.setValue(strJigyoCd);												// クレジットカード事業コード
//						dbList4.setValue(strCardCoCd);												// クレジットカード会社コード
//						dbList4.setValue(JCNBatCommon.getEncryptResult(commonItem, strCreNo));		// クレジットカード番号
//						dbList4.setValue(strYukuKegn);												// クレジットカード有効期限
//						dbList4.setValue(strCreKokanCd);											// クレジット交換コード
//						dbList4.setValue(strCustNm);												// お客さま名（ローマ字）
//						dbList4.setValue("");														// オーソリ確認年月日時分秒
//						dbList4.setValue("");														// オーソリ結果区分
//						dbList4.setValue("");														// オーソリ承認番号
//						dbList4.setValue(JCNBatCommon.getSysDate().substring(0, 6) + S_DAY_01);		// 有効性要求年月日
//						dbList4.setValue(strYkRsult);												// 有効性確認結果区分
//						dbList4.setValue(JCNBatCommon.getSysDate());								// 有効性確認年月日
//						dbList4.setValue(strFlmt);													// フロアリミットチェック済金額
//						dbList4.setValue(strShimCoCd);												// 仕向先会社コード
//// v20.00.01 ANK-2565-00-00 ADD START
//						dbList4.setValue(strAzkriId);												// カード預りID
//// v20.00.01 ANK-2565-00-00 ADD END
//						dbList4.setValue(strCreCardId);												// クレジットカードID
//						dbList4.setValue(strTranTgYm);												// 課金対象年月
//						executeCN_T_CONTJIGYO_CRECA_CN_UPDATE_001(dbList4.getList().toArray());
//						
//						// インサート件数
//						iUpdCnt++;
//					}
//// v20.00.01 ANK-2565-00-00 MOD START
//					//strTaihiCreNo = strCreNo;	// 比較用にクレジットカード番号を退避保持する
//					strTaihiAzkriId = strAzkriId;	// 比較用にカード預りIDを退避保持する
//// v20.00.01 ANK-2565-00-00 MOD END
//				
//					// コミット処理
//					if(iCmtCnt == Integer.valueOf(JBSbatAplConst.getAplConstValue(JCNStrConst.S_PROP_COMIT_UNIT)))
//					{
//						super.commit();
//						// コミットしたらカウンターを初期化
//						iCmtCnt = 1;
//					}
//					// コミットカウント
//					iCmtCnt++;
//				}
//			}
//		}
// ANK-3846-00-00 DEL END
		
		// 処理結果ログ出力
		super.logPrint.printBusinessErrorLog(ECNB0190AI, new String[] {D_TBL_NAME_CN_T_CONTJIGYO_CRECA, String.valueOf(iDelCnt)});		// 翌月データ削除件数
		super.logPrint.printBusinessErrorLog(ECNB0220AI, new String[] {D_TBL_NAME_CN_T_CONTJIGYO_CRECA, String.valueOf(iInsCnt)});		// 翌月データ登録件数
		super.logPrint.printBusinessErrorLog(ECNB0070AI, new String[] {D_TBL_NAME_CN_T_CONTJIGYO_CRECA, String.valueOf(iUpdCnt)});		// 翌月データ更新件数
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CN_T_TRAN_YMD_INFO.close();
		db_CN_T_CONTJIGYO_CRECA.close();
		db_CN_T_CONTJIGYO_CRECA_1.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(CN_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	バッチ処理コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_TRAN_YMD_INFO_CN_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CN_T_TRAN_YMD_INFO.selectBySqlDefine(paramList, CN_T_TRAN_YMD_INFO_CN_SELECT_002);
	}

	/**
	 * SQLKEY(CN_DELETE_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 * 
	 * 4.削除件数を返却します。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	課金対象年月
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @return iDelCnt 削除件数
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private int executeCN_T_CONTJIGYO_CRECA_CN_DELETE_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		// 20.0.0 IT1-2015-0000128 ADD START
		paramList.setValue(param[1].toString());
		// 20.0.0 IT1-2015-0000128 ADD END

		// DBアクセスを実行します
		int iDelCnt = db_CN_T_CONTJIGYO_CRECA.executeBySqlDefine(paramList, CN_T_CONTJIGYO_CRECA_CN_DELETE_002);
		return iDelCnt;
	}

	/**
	 * SQLKEY(CN_INSERT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	クレジットカードID
	 *		 	課金対象年月
	 *		 	コンテンツ事業クレジットカードステータス
	 *		 	SYSID
	 *		 	クレジットカード事業コード
	 *		 	クレジットカード会社コード
	 *		 	クレジットカード番号
	 *		 	クレジットカード有効期限
	 *		 	クレジット交換コード
	 *		 	お客様名(ローマ字)
	 *		 	オーソリ確認年月日時分秒
	 *		 	オーソリ結果区分
	 *		 	オーソリ承認番号
	 *		 	有効性要求年月日
	 *		 	有効性確認結果区分
	 *		 	有効性確認年月日
	 *		 	フロアリミットチェック済金額
	 *		 	仕向先会社コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_CONTJIGYO_CRECA_CN_INSERT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());
		paramList.setValue(param[12].toString());
		paramList.setValue(param[13].toString());
		paramList.setValue(param[14].toString());
		paramList.setValue(param[15].toString());
		paramList.setValue(param[16].toString());
		paramList.setValue(param[17].toString());
// v20.00.01 ANK-2565-00-00 ADD START
		paramList.setValue(param[18].toString());
// v20.00.01 ANK-2565-00-00 ADD END
// ANK-3846-00-00 ADD START
		paramList.setValue(param[19].toString());
		paramList.setValue(param[20].toString());
// ANK-3846-00-00 ADD END

		// DBアクセスを実行します
		db_CN_T_CONTJIGYO_CRECA.executeBySqlDefine(paramList, CN_T_CONTJIGYO_CRECA_CN_INSERT_001);
	}

	/**
	 * SQLKEY(CN_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	クレジットカード事業コード
	 *		 	クレジットカード番号
	 *		 	クレジットカード有効期限
	 *		 	無効フラグ
	 *		 	クレジットカード会社適用開始年月日
	 *		 	クレジットカード会社適用終了年月日
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_CONTJIGYO_CRECA_CN_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
// ANK-3846-00-00 DEL START
		// paramList.setValue(param[6].toString());
// ANK-3846-00-00 DEL END

		// DBアクセスを実行します
		db_CN_T_CONTJIGYO_CRECA.selectBySqlDefine(paramList, CN_T_CONTJIGYO_CRECA_CN_SELECT_003);
	}

	/**
	 * SQLKEY(CN_SELECT_005)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	クレジットカードID
	 *		 	課金対象年月
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_CONTJIGYO_CRECA_CN_SELECT_005(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CN_T_CONTJIGYO_CRECA_1.selectBySqlDefine(paramList, CN_T_CONTJIGYO_CRECA_CN_SELECT_005);
	}

	/**
	 * SQLKEY(CN_UPDATE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コンテンツ事業クレジットカードステータス
	 *		 	SYSID
	 *		 	クレジットカード事業コード
	 *		 	クレジットカード会社コード
	 *		 	クレジットカード番号
	 *		 	クレジットカード有効期限
	 *		 	クレジット交換コード
	 *		 	お客様名(ローマ字)
	 *		 	オーソリ確認年月日時分秒
	 *		 	オーソリ結果区分
	 *		 	オーソリ承認番号
	 *		 	有効性要求年月日
	 *		 	有効性確認結果区分
	 *		 	有効性確認年月日
	 *		 	フロアリミットチェック済金額
	 *		 	仕向先会社コード
	 *		 	クレジットカードID
	 *		 	課金対象年月
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_CONTJIGYO_CRECA_CN_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());
		paramList.setValue(param[12].toString());
		paramList.setValue(param[13].toString());
		paramList.setValue(param[14].toString());
		paramList.setValue(param[15].toString());
		paramList.setValue(param[16].toString());
		paramList.setValue(param[17].toString());
// v20.00.01 ANK-2565-00-00 ADD START
		paramList.setValue(param[18].toString());
// v20.00.01 ANK-2565-00-00 ADD END
// ANK-3846-00-00 ADD START
		paramList.setValue(param[19].toString());
		paramList.setValue(param[20].toString());
// ANK-3846-00-00 ADD END

		// DBアクセスを実行します
		db_CN_T_CONTJIGYO_CRECA.executeBySqlDefine(paramList, CN_T_CONTJIGYO_CRECA_CN_UPDATE_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * ファイル読み込み処理を行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で読込ファイルディレクトリ(フルパス)を設定します。<br>
	 *
	 * 2.引数を元にファイル読込を行い、行をListへ格納します。<br>
	 * 
	 * </pre>
	 * <p>
	 * @param strFileDir    出力ディレクトリ(フルパス)。
	 * @return resultList   返却用List
	 * @throws Exception    業務サービス内で発生した例外全般。
	 */
	private static ArrayList<String> readFile(String strFileDir) throws Exception
	{
		ArrayList<String> resultList = new  ArrayList<String>();
		
		// 外部出力ファイルパス
		JBSbatInputFileUtil inFile = new JBSbatInputFileUtil(strFileDir);
		inFile.setEncode(JCNStrConst.SJIS);						// 文字コード
// ANK-3846-00-00 MOD START
//		inFile.setLine(JCNStrConst.S_LINE_SEPARAOR_LF);			// 改行コード
		inFile.setLine(JCNStrConst.S_LINE_SEPARAOR_CR_LF);			// 改行コード
// ANK-3846-00-00 MOD END
		inFile.createReader();
		
		try
		{
			while(true)
			{
				String line = inFile.readLine();
				if(line == null)
				{
					inFile.close();
					break;
				}
				resultList.add(line);
			}
			
			return resultList;
		}
		catch (IOException e)
		{
			throw e;
		}
		finally
		{
			inFile.close();
		}
	}
	
// v27.00.00 OM-2016-0001654 Del Start
//	/**
//	 * 指定バイト数単位に分割しリストを作成します。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数で分割対象文字列、分割桁数を設定します。<br>
//	 *
//	 * 2.引数を元に指定桁数にて分割しリスト作成を行います。<br>
//	 * 
//	 * </pre>
//	 * <p>
//	 * @param  strInData    分割対象文字列。
//	 * @param  iByte        分割桁数。
//	 * @return resultList   分割文字列リスト。
//	 * @throws Exception    業務サービス内で発生した例外全般。
//	 */
//	public static ArrayList<String> createList(String strInData, int iByte) throws Exception
//	{
//		ArrayList<String> resultList = new  ArrayList<String>();
//		
//		int i = 0;
//		
//		try
//		{
//			while(true)
//			{
//				if(i >= strInData.getBytes("Shift-JIS").length)
//				{
//					break;
//				}
//				resultList.add(strInData.substring(i, i + iByte));
//				i = i + iByte;
//			}
//		}
//		catch(StringIndexOutOfBoundsException e)
//		{
//			throw new JBSbatBusinessException(ECNB0200KE, new String[] {S_INFILE_NM, String.valueOf(resultList.size() + 1), strInData});
//		}
//		return resultList;
//	}
// v27.00.00 OM-2016-0001654 Del End
// ANK-3846-00-00 ADD START
	/**
	 * <br>
	 * @param cardYkKigen (MMYY)
	 * @return cardYkKigenFormatted (YYYYMM)
	 * @throws ParseException
	 */
	private String dateConversion(String cardYkKigen) throws ParseException
	{
		 String MM = cardYkKigen.substring(0, 2);
		 String YY = cardYkKigen.substring(2, 4);
		 String cardYkKigenFormatted = S_YEAR_20 + YY + MM;
		 return cardYkKigenFormatted;
	}
// ANK-3846-00-00 ADD END
}
