/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JCKSV901101CC
*   ソースファイル名：JCKSV901101CC.java
*   作成者          ：富士通
*   日付            ：2012年01月19日
*＜機能概要＞
*  指定された条件からコンテンツISP課金分請求書情報を取得します。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/01/19   FJ）眞方    新規作成
*   v8.00.00    2014/01/08   FJ）塚田    ANK-1585-00-00(LaLaCall対応)
*	v65.00.00	2023/12/23	FJ)吉田		【ANK-4346-00-00】【eo定期】CCMG再構築対応
*	v65.00.01	2024/03/06	FJ)吉田		【ANK-4346-16-00】【eo定期】CCMG再構築対応
**********************************************************************/

package com.fujitsu.futurity.bp.custom.common;

import static eo.common.constant.JCKStrConst.*;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.*;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.*;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.CKSV9011_CKSV9011OP_CKSV901101CC;
import com.fujitsu.futurity.bp.custom.constant.CKSV9011_CKSV9011OP_CKSV901101CC_dataList1;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.ICommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.constant.JKKStrConst;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCDateUtil;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B003CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B003CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B006CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B006CBSMsg1List;

/**
 * 指定された条件からコンテンツISP課金分請求書情報を取得します。
 * <BR>
 * @ author 富士通
 */
public class JCKSV901101CC extends AbstractCommonComponent implements ICommonComponent
{
	/** 当CCの内部でしか使わないエラーコード */
	private static final String PMP_ERR_OTHER = "OTHER";

	/**
	 * PMP連携コンテンツISP課金分請求書情報取得メイン処理。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite executeMain(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		// 入力パラメータ取得
		Map inMap = (Map)param.getData(fixedText);
		String keySysid = (String)inMap.get(CKSV9011_CKSV9011OP_CKSV901101CC.KEY_SYSID);
		String keyChrgTrgtYm = (String)inMap.get(CKSV9011_CKSV9011OP_CKSV901101CC.KEY_CHRG_TRGT_YM);
		String keySeikyKeiNo = (String)inMap.get(CKSV9011_CKSV9011OP_CKSV901101CC.KEY_SEIKY_KEI_NO);

		// 返却値を初期化
		String returnCd = PMP_NORMAL_END;
		List dataList = new ArrayList();
		// ANK-4346-00-00 ADD START
		// 照会対象データ格納用リスト
		ArrayList<HashMap<String, Object>> serchTgDataList = new ArrayList<HashMap<String, Object>>();
		
		// 会員種別
		String memberSbtCd = JKKStrConst.KARA;
		// お客様名
		String custNm = JKKStrConst.KARA;
		// ANK-4346-00-00 ADD END
		
		// ANK-4346-00-00 20240118 ADD START
		//***************************************************
		// 実行前チェック
		//***************************************************
		// 運用日 <= リクエスト請求年月の翌月2日
		if(JPCBPCommon.getOpeDate(null).compareTo(getConSettlementPrcDate(keyChrgTrgtYm)) <= 0)
		{
			// ANK-4346-16-00 20240306 MOD START
//			returnCd = PMP_ERR_PARAM;   // パラメータエラー
			returnCd = PMP_ERR_NODATA;   // データなし
			// ANK-4346-16-00 20240306 MOD END
			Map<String, Object> resultMap = new HashMap();
			resultMap.put(CKSV9011_CKSV9011OP_CKSV901101CC.DATALIST1, dataList);
			resultMap.put(CKSV9011_CKSV9011OP_CKSV901101CC.RETURN_CD, returnCd);
			setResultUserData(param, fixedText, resultMap);
			return param;
		}
		// ANK-4346-00-00 20240118 ADD END

		//***************************************************
		// コンテンツISP課金分請求書情報取得
		//***************************************************
		// ANK-4346-00-00 MOD START
//		CAANMsg[] caanMsgList = null;
//		Map result = callECN0081B002(handle, param, "1", keySysid, keyChrgTrgtYm, keySeikyKeiNo);
//		if (isSuccess(result))
//		{
//			caanMsgList = getResultMsgList(result, ECN0081B002CBSMsg.ECN0081B002CBSMSG1LIST);
//			if ((caanMsgList == null) || (caanMsgList.length == 0))
//			{
//				returnCd = PMP_ERR_NODATA;   // データなし
//			}
//		}
//		else
//		{
//			returnCd = PMP_ERR_OTHER;   // その他のエラー
//		}
		
		// お客様一意照会
		CAANMsg[] eck0011A010MsgList = null;
		Map result = callECK0011A010(handle, param, "2", keySysid, JPCBPCommon.getOpeDate(null));
		if (isSuccess(result))
		{
			eck0011A010MsgList = getResultMsgList(result, ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST);
			if ((eck0011A010MsgList == null) || (eck0011A010MsgList.length == 0))
			{
				returnCd = PMP_ERR_PARAM;   // パラメータエラー
			}
			else
			{
				// 会員種別コード
				memberSbtCd = eck0011A010MsgList[0].getString(ECK0011A010CBSMsg1List.MEMBER_SBT_CD);
				// お客様名
				custNm = eck0011A010MsgList[0].getString(ECK0011A010CBSMsg1List.CUST_NM);
				
				// 会員種別がマスター会員でなければエラー
				if(!JKKStrConst.CD00039_10.equals(memberSbtCd)
					&& !JKKStrConst.CD00039_20_TRIM.equals(memberSbtCd)
				)
				{
					returnCd = PMP_ERR_PARAM;   // パラメータエラー
				}
				HashMap<String, Object> serchTgDataMap = new HashMap<String, Object>();
				serchTgDataMap.put("sysid", keySysid);
				serchTgDataMap.put("out_sysid", JKKStrConst.KARA);
				serchTgDataMap.put("custNm", JKKStrConst.KARA);
				serchTgDataMap.put("userDiv", "0");
				
				serchTgDataList.add(serchTgDataMap);
			}
		}
		else
		{
			returnCd = PMP_ERR_OTHER;   // その他のエラー
		}
		
		// マスター会員に紐づくファミリー会員を取得する。
		// お客様一意照会
		if (PMP_NORMAL_END.equals(returnCd))
		{
			CAANMsg[] ECK0011B003MsgList = null;
			result = callECK0011B003(handle, param, "1", keySysid);
			if (isSuccess(result))
			{
				ECK0011B003MsgList = getResultMsgList(result, ECK0011B003CBSMsg.ECK0011B003CBSMSG1LIST);
				if (ECK0011B003MsgList != null && ECK0011B003MsgList.length > 0)
				{
					for(CAANMsg ECK0011B003MsgListMap : ECK0011B003MsgList)
					{
						// 親SYSIDは既に取得済みなので対象外とする。
						if(keySysid.equals(ECK0011B003MsgListMap.getString(ECK0011B003CBSMsg1List.SYSID)))
						{
							continue;
						}
						HashMap<String, Object> serchTgDataMap = new HashMap<String, Object>();
						serchTgDataMap.put("sysid", ECK0011B003MsgListMap.getString(ECK0011B003CBSMsg1List.SYSID));
						serchTgDataMap.put("out_sysid", ECK0011B003MsgListMap.getString(ECK0011B003CBSMsg1List.SYSID));
						serchTgDataMap.put("custNm", ECK0011B003MsgListMap.getString(ECK0011B003CBSMsg1List.CONT_CUST_NM));
						serchTgDataMap.put("userDiv", "1");
						
						serchTgDataList.add(serchTgDataMap);
					}
				}
			}
			else
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}
		// ANK-4346-00-00 MOD END
		
		// ANK-4346-00-00 ADD START
		String svcKeiNoHosting = JKKStrConst.KARA;
		// SYSIDに紐づくサービスを抽出し、
		// リクエスト．請求契約番号に紐づくサービスコード["05":ホスティング]のサービス契約番号を取得する。
		if (PMP_NORMAL_END.equals(returnCd))
		{
			CAANMsg[] ekk0081b006MsgList = null;
			
			result = callEKK0081B006(handle, param, "1", keySysid);
			if (isSuccess(result))
			{
				ekk0081b006MsgList = getResultMsgList(result, EKK0081B006CBSMsg.EKK0081B006CBSMSG1LIST);
				if (ekk0081b006MsgList != null && ekk0081b006MsgList.length > 0)
				{
					for(CAANMsg EKK0081B006MsgListMap : ekk0081b006MsgList)
					{
						// 請求契約番号がリクエストと同じものを抽出する
						if(
							keySeikyKeiNo.equals(EKK0081B006MsgListMap.getString(EKK0081B006CBSMsg1List.SEIKY_KEI_NO))
						)
						{
							svcKeiNoHosting = EKK0081B006MsgListMap.getString(EKK0081B006CBSMsg1List.SVC_KEI_NO);
							break;
						}
					}
				}
				
				if(JKKStringUtil.isNullEmpty(svcKeiNoHosting))
				{
					returnCd = PMP_ERR_PARAM;   // パラメータエラー
				}
			}
			else
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}
		
		for(HashMap<String, Object> serchTgDataMap : serchTgDataList)
		{
			if (PMP_NORMAL_END.equals(returnCd))
			{
				
				JCNChrgSnshoCCMGCC chrgSnshoCCMGCC = new JCNChrgSnshoCCMGCC();
				String fixedTextCCMG = "CKSV901101CC_JCNChrgSnshoCCMGCC";
				HashMap ccParamCCMG = new HashMap<String, Object>();
				ccParamCCMG.put(JCNChrgSnshoCCMGCC.FUNC_CODE, "4");
				ccParamCCMG.put(JCNChrgSnshoCCMGCC.SYSID, serchTgDataMap.get("sysid"));
				ccParamCCMG.put(JCNChrgSnshoCCMGCC.TARGET_DATE, keyChrgTrgtYm);
				ccParamCCMG.put(JCNChrgSnshoCCMGCC.SETTLEMENT_WAY_NUMBER, "2");
				param.setData(fixedTextCCMG, ccParamCCMG);
				
				chrgSnshoCCMGCC.execute(handle, param, fixedTextCCMG);
				
				HashMap<String, Object> ccmgResult = (HashMap<String, Object>)param.getData(fixedTextCCMG);
				
				if(!"00000".equals(ccmgResult.get("return_code")))
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
				else
				{
					serchTgDataMap.put("cont_sei_list", (List<Map<String, Object>>)ccmgResult.get("cont_sei_list"));
				}
			}
		}
		// ANK-4346-00-00 ADD END
		
		//***************************************************
		// 返却データ設定
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			
			// ANK-4346-00-00 MOD START
//			for (CAANMsg rec1 : ECK0011A010MsgList)
			for(HashMap<String, Object> serchTgDataMap : serchTgDataList)
			{
				List<Map<String, Object>> contKeiList = (List<Map<String, Object>>)serchTgDataMap.get("cont_sei_list");
				
				if(contKeiList == null)
				{
					continue;
				}
				
				for (Map rec1 : contKeiList)
				// ANK-4346-00-00 MOD END
				{
					// コンテンツ名(nullの場合ブランクに変換)
					// ANK-4346-00-00 MOD START
					//					String contNm = rec1.getString(ECN0081B002CBSMsg1List.CONT_NM);
					String contNm = (String)rec1.get(JCNChrgSnshoCCMGCC.CONT_NM);
					// ANK-4346-00-00 MOD END
					if (JCKBPCommon.isNullOrBlank(contNm))
					{
						contNm = "";
					}
					
					// 050電話番号にハイフンを設定
					// ANK-4346-00-00 MOD START
					//					String n050Telno = rec1.getString(ECN0081B002CBSMsg1List.N_050_TELNO);
					String n050Telno = (String)rec1.get(JCNChrgSnshoCCMGCC.N_050_TELNO);
					// ANK-4346-00-00 MOD END
					if (JCKBPCommon.isNullOrBlank(n050Telno))
					{
						n050Telno = "";
					}
					else
					{
						if (n050Telno.length() == 10)
						{
							n050Telno = "(" + JCKBPCommon.formatTelNoAdd1(n050Telno) + ")";
						} 
						else
						{
							n050Telno = "(" + JCKBPCommon.formatTelNoAdd2(n050Telno) + ")";
						}
					}
					
					String taxarea = JKKStrConst.KARA;
					// ANK-4346-00-00 ADD START
					if (!"0".equals((String)rec1.get(JCNChrgSnshoCCMGCC.TAX_RT)))
					{
						taxarea = "1";
					}
					if ("0".equals((String)rec1.get(JCNChrgSnshoCCMGCC.TAX_RT)))
					{
						taxarea = "3";
					}
					// ANK-4346-00-00 ADD END
					
					Map resMap = new HashMap();
					// ANK-4346-00-00 MOD START
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CUST_NM, rec1.getString(ECN0081B002CBSMsg1List.CUST_NM));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.USER_DIV, rec1.getString(ECN0081B002CBSMsg1List.USER_DIV));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_SVC_NM, rec1.getString(ECN0081B002CBSMsg1List.CONT_SVC_NM));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_NM, contNm + n050Telno);
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_CAMPAIGN_NM, rec1.getString(ECN0081B002CBSMsg1List.CONT_CAMPAIGN_NM));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_TANKA, rec1.getString(ECN0081B002CBSMsg1List.CONT_TANKA));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_BUY_CNT, rec1.getString(ECN0081B002CBSMsg1List.CONT_BUY_CNT));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.AMNT, rec1.getString(ECN0081B002CBSMsg1List.AMNT));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.TAX_RT, rec1.getString(ECN0081B002CBSMsg1List.TAX_RT));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.TAXAREA, rec1.getString(ECN0081B002CBSMsg1List.TAXAREA));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CHRG_STAT_CD, rec1.getString(ECN0081B002CBSMsg1List.CHRG_STAT_CD));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.TEISE_DIV, rec1.getString(ECN0081B002CBSMsg1List.TEISE_DIV));
//					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.SYSID, rec1.getString(ECN0081B002CBSMsg1List.SYSID));
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CUST_NM, (String)serchTgDataMap.get("custNm"));
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.USER_DIV, (String)serchTgDataMap.get("userDiv"));
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_SVC_NM, (String)rec1.get(JCNChrgSnshoCCMGCC.CONT_SVC_NM));
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_NM, contNm + n050Telno);
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_CAMPAIGN_NM, (String)rec1.get(JCNChrgSnshoCCMGCC.CONT_CAMPAIGN_NM));
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_TANKA, (String)rec1.get(JCNChrgSnshoCCMGCC.CONT_TANKA));
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_BUY_CNT, (String)rec1.get(JCNChrgSnshoCCMGCC.CONT_BUY_CNT));
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.AMNT, (String)rec1.get(JCNChrgSnshoCCMGCC.CHRG_AMNT));
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.TAX_RT, (String)rec1.get(JCNChrgSnshoCCMGCC.TAX_RT));
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.TAXAREA, taxarea);
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CHRG_STAT_CD, (String)rec1.get(JCNChrgSnshoCCMGCC.CHARGE_FLG));
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.TEISE_DIV, "0");
					resMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.SYSID, (String)serchTgDataMap.get("out_sysid"));
					// ANK-4346-00-00 MOD END
					dataList.add(resMap);
					
					String teiseIKbn = (String)rec1.get(JCNChrgSnshoCCMGCC.CONTCHRGTESEI_DIV);
					// 訂正区分が設定されている場合は、訂正分のレコードをさらに生成する。
					if(!JKKStringUtil.isNullEmpty((String)rec1.get(JCNChrgSnshoCCMGCC.CONTCHRGTESEI_DIV)))
					{
						String amnt = JKKStrConst.KARA;
						amnt = Long.toString(-Long.parseLong((String)rec1.get(JCNChrgSnshoCCMGCC.DISCOUNT_AMOUNT)));
						Map resTeiseiMap = new HashMap();
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CUST_NM, 			(String)serchTgDataMap.get("custNm"));
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.USER_DIV, 		(String)serchTgDataMap.get("userDiv"));
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_SVC_NM, 		(String)rec1.get(JCNChrgSnshoCCMGCC.CONT_SVC_NM));
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_NM, 			contNm + n050Telno);
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_CAMPAIGN_NM, JKKStrConst.KARA);
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_TANKA, 		JKKStrConst.KARA);
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CONT_BUY_CNT, 	JKKStrConst.KARA);
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.AMNT, 			amnt);
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.TAX_RT, 			JKKStrConst.KARA);
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.TAXAREA, 			JKKStrConst.KARA);
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.CHRG_STAT_CD, 	JKKStrConst.KARA);
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.TEISE_DIV, 		"1");
						resTeiseiMap.put(CKSV9011_CKSV9011OP_CKSV901101CC_dataList1.SYSID, 			(String)serchTgDataMap.get("out_sysid"));
						dataList.add(resTeiseiMap);
					}
				}
			// ANK-4346-00-00 ADD START
			}
			
			if(dataList == null || dataList.size() == 0)
			{
				returnCd = PMP_ERR_NODATA;   // データなし
			}
			
			// ANK-4346-00-00 ADD END
		}

		//***************************************************
		// 返却パラメータ設定
		//***************************************************

		// 最後に実行したSCの実行結果を取得
		result = getLastResult(param);

		// 下りコントロールマップのセット
		setResultCtrlData(param, result, fixedText);

		// SC実行エラーの場合は、結果に応じてリターンコードを設定
		if (PMP_ERR_OTHER.equals(returnCd)) {
			String scReturnCd = getReturnCode(result).toString();
			String scStatusCd = getStatus(result).toString();
			returnCd = ("0".equals(scReturnCd) && "1000".equals(scStatusCd)) ? PMP_ERR_PARAM : PMP_ERR_SYSTEM;
		}

		// 下りユーザデータマップのセット
		Map<String, Object> resultMap = new HashMap();
		resultMap.put(CKSV9011_CKSV9011OP_CKSV901101CC.DATALIST1, dataList);
		resultMap.put(CKSV9011_CKSV9011OP_CKSV901101CC.RETURN_CD, returnCd);
		setResultUserData(param, fixedText, resultMap);

		//*************************************************
		// 処理結果の判定
		//*************************************************
		if (isError(result))
		{
			String errMsg = "PMP連携コンテンツISP課金分請求書情報取得CCでエラーが発生しました。(PMP連携用リターンコード：" + returnCd + ")";
			throw new CCException(errMsg, new Exception(errMsg));
		}

		return param;
	}

	/**
	 * BPチェック用パラメータ作成。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return BPチェック用パラメータ
	 */
	@SuppressWarnings("unchecked")
	public HashMap getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	{
		// BPチェックはスキップする
		return JCKPmpScParamHenshu.createBpNotCheckParam();
	}

	/**
	 * ＢＰチェック結果を編集する。<br />
	 * @param param リクエストパラメータ
	 * @param caanMsgs サービスインターフェイス用のパラメータ配列
	 * @param returnCode リターンコード
	 * @return リクエストパラメータ
	 * @throws Throwable 
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] caanMsgs, Integer returnCode) throws Throwable
	{
		return JCKPmpScParamHenshu.editErrorInfo(param, caanMsgs, returnCode);
	}
	
	// ANK-4346-00-00 20240118 ADD START
	/**
	 * コンテンツ決済処理日を取得します。
	 * （請求年月の翌月2日を返却）
	 * 
	 * @param seikyYm 請求年月
	 * @return
	 * @throws ParseException 
	 */
	public String getConSettlementPrcDate(String seikyYm) throws ParseException
	{
		String result = JKKStrConst.KARA;
		
		// 請求年月の二日に1ヵ月加算する。
		result = JPCDateUtil.addMonth(seikyYm + "02", 1);
		
		return result;
	}
	// ANK-4346-00-00 20240118 ADD END
}
