/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0192_KKSV0192OPDBMapper
*	ソースファイル名：KKSV0192_KKSV0192OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2011年08月09日
*＜機能概要＞
*	BP（eo光テレビオプションチャンネル登録登録OP）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/09	Fujitsu		新規作成
*	v4.00.00	2012/08/29	Fujitsu		ANK-0524-00-00対応
*	v7.00.00    2014/01/15  FJ)石橋		【ANK-1673-00-00】コース変更後の不要オプション登録確認を追加
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.util.JPCDateUtil;
import eo.web.webview.KKW00831SF.KKW00831SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 * @author 富士通
 */
public class KKSV0192_KKSV0192OPDBMapper
{
	
	/**
	 * コンストラクタ
	 */
	public KKSV0192_KKSV0192OPDBMapper()
	{
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：eo光テレビオプションチャンネル登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV0192SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

//		X31SDataBeanAccess beanTemp = bean[0];
//		X31SDataBeanAccessArray arraybean = beanTemp.getDataBeanArray("サービス契約情報");
//		if(arraybean.getCount() > 0)
//		{
//			X31SDataBeanAccess subbean = arraybean.getDataBean(0);
//			// サービス契約情報.ＳＹＳＩＤ → 支払方法情報請求契約一覧照会マップ.ＫＥＹ＿SYSID
//			parentMap.put("key_sysid", subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
//		}
		
		// 機器製造番号取得
//		X31SDataBeanAccessArray kiki = bean[0].getDataBeanArray(KKW00831SFConst.KIKI_SEIZO_NO_CMB);
//		X31SDataBeanAccess kikibean = kiki.getDataBean(0);
//		String selectIndex = kikibean.sendMessageString(KKW00831SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
//		String selectName = "";
//		if (selectIndex != null && !"".equals(selectIndex))
//		{
//			selectName = kikibean.sendMessageString(KKW00831SFConst.KIKI_SEIZO_NO_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectIndex));
//		}
		/* ++++++++++ v4.00.00 変更開始 ++++++++++ */
//		// 検索ボタン押下時に設定した機器製造番号のサービス契約情報を取得する
//		String selectName = bean[0].sendMessageString(KKW00831SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE);
//		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray("機器提供サービス契約情報");
//		if(arraybean.getCount() > 0)
//		{
//			for(int i = 0; i < arraybean.getCount(); i++)
//			{
//				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
//				// 選択した機器製造番号の機器提供サービス契約情報を設定
//				if (selectName.equals(subbean.sendMessageString("機器製造番号", X31CWebConst.DATABEAN_GET_VALUE)))
//				{
//					// ＫＥＹ＿サービス契約番号
//					parentMap.put("key_svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
//					break;
//				}
//			}
//		}
		
		// ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("ＫＥＹ＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v4.00.00 変更終了 ++++++++++ */
		
		outputMap.put("KKSV0192SC", parentMap);
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：eo光テレビオプションチャンネル登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV019203CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 検索ボタン押下時に設定した機器製造番号のサービス契約情報を取得する
		String selectName = bean[0].sendMessageString(KKW00831SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray("機器提供サービス契約情報");
		if(arraybean.getCount() > 0)
		{
			for(int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				// 選択した機器製造番号の機器提供サービス契約情報を設定
				if (selectName.equals(subbean.sendMessageString("機器製造番号", X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// サービス契約内訳番号
					parentMap.put("kk0351_svc_kei_ucwk_no", subbean.sendMessageString("サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
					break;
				}
			}
		}
		// ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV019203CC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：eo光テレビオプションチャンネル登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 * @throws  throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV0192CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) throws Exception
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		StringBuilder prgTkjk = new StringBuilder();

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ＫＥＹ＿ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 異動理由コード
		ArrayList<HashMap<String, Object>> idoRsnList = new ArrayList<HashMap<String, Object>>();
		int idoRsnCount = (Integer)bean[0].sendMessage("異動理由コード", X31CWebConst.DATABEAN_GET_COUNT);
		for (int i = 0; i < idoRsnCount; i++)
		{
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			childMap.put("ido_rsn_cd", bean[0].sendMessageString("異動理由コード", X31CWebConst.DATABEAN_GET_VALUE, i));
			idoRsnList.add(childMap);
		}
		parentMap.put("EKK1091D010CBSMsg1List", idoRsnList);
		
		// 機器製造番号取得
//		X31SDataBeanAccessArray kiki = bean[0].getDataBeanArray(KKW00831SFConst.KIKI_SEIZO_NO_CMB);
//		X31SDataBeanAccess kikibean = kiki.getDataBean(0);
//		String selectIndex = kikibean.sendMessageString(KKW00831SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
//		String selectName = "";
//		if (selectIndex != null && !"".equals(selectIndex))
//		{
//			selectName = kikibean.sendMessageString(KKW00831SFConst.KIKI_SEIZO_NO_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectIndex));
//		}
		// 検索ボタン押下時に設定した機器製造番号のサービス契約情報を取得する
		String selectName = bean[0].sendMessageString(KKW00831SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE);
		arraybean = bean[0].getDataBeanArray("機器提供サービス契約情報");
		/* ++++++++++ v4.00.00 追加開始 ++++++++++ */

		/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
		// 機器製造番号
		parentMap.put("kiki_seizo_no", selectName);
		/* ++++++++++ v7.00.00 追加終了 ++++++++++ */

		// STBなしのオプションチャンネル登録の場合
		if("".equals(selectName))
		{
			// ＫＥＹ＿サービス契約番号
			parentMap.put("svc_kei_no", bean[0].sendMessageString("ＫＥＹ＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 親契約識別コード(01：サービス契約)
			parentMap.put("oya_kei_skbt_cd", "01");
		}
		/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
		else if(arraybean.getCount() > 0)
		{
			for(int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				// 選択した機器製造番号の機器提供サービス契約情報を設定
				if (selectName.equals(subbean.sendMessageString("機器製造番号", X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 機器提供サービス契約情報.サービス契約番号
					parentMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
					// 機器提供サービス契約情報.サービス契約内訳番号
					parentMap.put("svc_kei_ucwk_no", subbean.sendMessageString("サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
					/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
					// 親契約識別コード(03：サービス契約内訳)
					parentMap.put("oya_kei_skbt_cd", "03");
					/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
					
					break;
				}
			}
		}
		
		// 進捗特記事項のチャンネル情報以外の文言を設定
		arraybean = bean[0].getDataBeanArray("設置済ＳＴＢリスト");
		prgTkjk.append("オプションチャンネル情報登録　STB-ID：");
		// STBなしのオプションチャンネル登録の場合
		if("".equals(selectName))
		{
			prgTkjk.append("なし");
		}
		else if(arraybean.getCount() > 0)
		{
			for(int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				// 選択した機器製造番号のＳＴＢ-ＩＤを設定
				if (selectName.equals(subbean.sendMessageString("機器製造番号＿ＳＴＢ", X31CWebConst.DATABEAN_GET_VALUE)))
				{
					prgTkjk.append(subbean.sendMessageString("ＳＴＢ−ＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
					break;
				}
			}
		}
		
		// 運用日
		String opeDate = bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE);
		/* ++++++++++ v4.00.00 変更開始 ++++++++++ */
//		// 運用日の次月1日
//		String ymd = JPCDateUtil.addMonth(opeDate, 1);
//		ymd = ymd.substring(0,6) + "01";// 運用日付から1ヶ月加算した日付の年月（6桁）＋ "01"を設定
		// 運用日の次月1日
		String jigetu = JPCDateUtil.addMonth(opeDate, 1);
		jigetu = jigetu.substring(0,6) + "01";// 運用日付から1ヶ月加算した日付の年月（6桁）＋ "01"を設定
		// 運用日の次々月1日
		String jijigetu = JPCDateUtil.addMonth(opeDate, 2);
		jijigetu = jijigetu.substring(0,6) + "01";// 運用日付から2ヶ月加算した日付の年月（6桁）＋ "01"を設定
		/* ++++++++++ v4.00.00 変更終了 ++++++++++ */
		// 異動年月日時分秒 ← サービス課金開始年月日（運用年月日時分秒）
//		parentMap.put("ido_dtm", bean[0].sendMessageString("サービス課金開始年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 申込受付年月日時分秒
		parentMap.put("mskm_uk_dtm", bean[0].sendMessageString("申込受付年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// 申込年月日
		parentMap.put("mskm_ymd", opeDate);
		// 後続業務依頼年月日
		parentMap.put("kzkwrk_reqymd", opeDate);

		beanTemp = bean[0];
		
		arraybean = beanTemp.getDataBeanArray("サービス契約情報");
		if(arraybean.getCount() > 0)
		{
			X31SDataBeanAccess svcbean = arraybean.getDataBean(0);
			// 更新年月日時分秒（更新前）
			parentMap.put("upd_dtm_bf", svcbean.sendMessageString("最終更新年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
			/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
			// ＫＥＹ＿料金コースコード
			parentMap.put("key_pcrs_cd", svcbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_GET_VALUE));
			/* ++++++++++ v7.00.00 追加終了 ++++++++++ */
		}
		
		arraybean = beanTemp.getDataBeanArray("ｅｏ光テレビオプションチャンネル情報リスト");
		ArrayList list = new ArrayList();
		if(arraybean.getCount() > 0)
		{
			HashMap childMap = null;
			for(int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				if(subbean.sendMessageBoolean("選択", X31CWebConst.DATABEAN_GET_VALUE))
				{
					childMap = new HashMap();
					// オプションサービスコード
					childMap.put("op_svc_cd", subbean.sendMessageString("オプションサービスコード", X31CWebConst.DATABEAN_GET_VALUE));
					// サービス課金開始年月日
					//childMap.put("svc_chrg_staymd", opeDate);
					// デジタルティアグループコード
					childMap.put("dgtia_grp_cd", subbean.sendMessageString("デジタルティアグループコード", X31CWebConst.DATABEAN_GET_VALUE));
					// オプションチャンネルオペレーション方法コード
					childMap.put("op_channel_oprtn_way_cd", 
							subbean.sendMessageString("オプションチャンネルオペレーション方法コード", X31CWebConst.DATABEAN_GET_VALUE));
					/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
					// 赤Ｂ−ＣＡＳ番号
					childMap.put("red_bcas_no", subbean.sendMessageString("赤Ｂ−ＣＡＳ番号", X31CWebConst.DATABEAN_GET_VALUE));
					/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
					
					if ("即時".equals(subbean.sendMessageString(KKW00831SFConst.USE_STAYMD_02, X31CWebConst.DATABEAN_GET_VALUE)))
					{
						// 運用日 → オプションサービス契約＜TV＞開始マップ.サービス開始年月日
						childMap.put("svc_staymd", opeDate);
						// eo光テレビオプションチャンネル情報リスト.利用開始日指定 → オプションサービス契約＜TV＞開始マップ.利用開始日指定
						childMap.put("staymd", "0");
					}
					/* ++++++++++ v4.00.00 変更開始 ++++++++++ */
//					else
					else if("次月より".equals(subbean.sendMessageString(KKW00831SFConst.USE_STAYMD_02, X31CWebConst.DATABEAN_GET_VALUE)))
					/* ++++++++++ v4.00.00 変更終了 ++++++++++ */
					{
						// 運用日の次月1日 → オプションサービス契約＜TV＞開始マップ.サービス開始年月日
						/* ++++++++++ v4.00.00 変更開始 ++++++++++ */
//						childMap.put("svc_staymd", ymd);
						childMap.put("svc_staymd", jigetu);
						/* ++++++++++ v4.00.00 変更終了 ++++++++++ */
						// eo光テレビオプションチャンネル情報リスト.利用開始日指定 → オプションサービス契約＜TV＞開始マップ.利用開始日指定
						childMap.put("staymd", "1");
					}
					/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
					else if("次々月より".equals(subbean.sendMessageString(KKW00831SFConst.USE_STAYMD_02, X31CWebConst.DATABEAN_GET_VALUE)))
					{
						// 運用日の次々月1日 → オプションサービス契約＜TV＞開始マップ.サービス開始年月日
						childMap.put("svc_staymd", jijigetu);
						// eo光テレビオプションチャンネル情報リスト.利用開始日指定 → オプションサービス契約＜TV＞開始マップ.利用開始日指定
						childMap.put("staymd", "2");
					}
					/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
					list.add(childMap);
					
					// 進捗特記事項のチャンネル情報の文言を設定（登録されたチャンネル分）
					prgTkjk.append("　チャンネル名：");
					prgTkjk.append(subbean.sendMessageString("チャンネル名", X31CWebConst.DATABEAN_GET_VALUE));
					prgTkjk.append("　利用開始日：");
					prgTkjk.append(subbean.sendMessageString(KKW00831SFConst.USE_STAYMD_02, X31CWebConst.DATABEAN_GET_VALUE));
				}
			}
		}
		parentMap.put("eo_op_list", list);
		
		// 進捗特記事項1,進捗特記事項2
		if(prgTkjk.length() < 129)
		{
			parentMap.put("prg_tkjk_1", prgTkjk.toString());
			parentMap.put("prg_tkjk_2", "");
		}
		else if(prgTkjk.length() < 257)
		{
			parentMap.put("prg_tkjk_1", prgTkjk.substring(0, 128));
			parentMap.put("prg_tkjk_2", prgTkjk.substring(128));
		}
		else
		{
			parentMap.put("prg_tkjk_1", prgTkjk.substring(0, 128));
			parentMap.put("prg_tkjk_2", prgTkjk.substring(128, 256));
		}
		
		outputMap.put("KKSV0192CC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：eo光テレビオプションチャンネル登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 * @throws  throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV019201CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) throws Exception
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// 運用日
		String opeDate = bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE);
		// 運用日の次月1日
		String jigetu = JPCDateUtil.addMonth(opeDate, 1).substring(0,6) + "01";
		/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
		// 検索ボタン押下時に設定した機器製造番号のサービス契約情報を取得する
		String selectName = bean[0].sendMessageString(KKW00831SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE);
		/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
		X31SDataBeanAccessArray kikiInfoAry = bean[0].getDataBeanArray(KKW00831SFConst.KKTK_SVC_INFO);
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 機器製造番号取得
//		X31SDataBeanAccessArray kiki = bean[0].getDataBeanArray(KKW00831SFConst.KIKI_SEIZO_NO_CMB);
//		X31SDataBeanAccess kikibean = kiki.getDataBean(0);
//		parentMap.put("tn0810_key_kiki_seizo_no", kikibean.sendMessageString(KKW00831SFConst.KIKI_SEIZO_NO_NM_01, X31CWebConst.DATABEAN_GET_VALUE));

		parentMap.put("wc0011d_sysid", bean[0].sendMessageString(KKW00831SFConst.KEY_SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		parentMap.put("wc0011d_svc_kei_no", bean[0].sendMessageString(KKW00831SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		/* ++++++++++ v4.00.00 変更開始 ++++++++++ */
//		parentMap.put("wc0011d_svc_kei_ucwk_no",kikiInfoAry.getDataBean(0).sendMessageString(KKW00831SFConst.SVC_KEI_UCWK_NO_05, X31CWebConst.DATABEAN_GET_VALUE));
		if(kikiInfoAry.getCount() > 0)
		{
			for(int i = 0; i < kikiInfoAry.getCount(); i++)
			{
				X31SDataBeanAccess subbean = kikiInfoAry.getDataBean(i);
				// 選択した機器製造番号の機器提供サービス契約情報を設定
				if (selectName.equals(subbean.sendMessageString("機器製造番号", X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 機器提供サービス契約情報.サービス契約内訳番号
					parentMap.put("wc0011d_svc_kei_ucwk_no", subbean.sendMessageString("サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
					// 機器提供サービス契約情報.宅内機器型式コード
					parentMap.put("wca001_key_tk_mdl_cd", subbean.sendMessageString("宅内機器型式コード", X31CWebConst.DATABEAN_GET_VALUE));
					
					break;
				}
			}
		}
		/* ++++++++++ v4.00.00 変更終了 ++++++++++ */
		
		parentMap.put("wca001_key_kk_seizo_no", bean[0].sendMessageString(KKW00831SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		parentMap.put("wc0011d_wctrl_req_trn_cd", "30");
		
		arraybean = bean[0].getDataBeanArray("ｅｏ光テレビオプションチャンネル情報リスト");
		ArrayList dgtiaList = new ArrayList<HashMap<String, Object>>();
		parentMap.put("wc", "0");
		/* ++++++++++ v4.00.00 変更開始 ++++++++++ */
//		if(arraybean.getCount() > 0)
		if(arraybean.getCount() > 0 && !"".equals(selectName))
		/* ++++++++++ v4.00.00 変更終了 ++++++++++ */
		{
			HashMap dgtiaMap = null;
			for(int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				if ("即時".equals(subbean.sendMessageString(KKW00831SFConst.USE_STAYMD_02, X31CWebConst.DATABEAN_GET_VALUE)) || 
						("次月より".equals(subbean.sendMessageString(KKW00831SFConst.USE_STAYMD_02, X31CWebConst.DATABEAN_GET_VALUE)) && 
								JPCDateUtil.subtractDay(jigetu, opeDate) <= 2))
				{
					/* ++++++++++ v4.00.00 変更開始 ++++++++++ */
//					// オプションチャンネルオペレーション方法が自動の場合
//					if ("1".equals(subbean.sendMessageString("オプションチャンネルオペレーション方法コード", X31CWebConst.DATABEAN_GET_VALUE)))
					// オプションチャンネルオペレーション方法が自動かつデジタルティアグループコードが空でない場合
					if ("1".equals(subbean.sendMessageString("オプションチャンネルオペレーション方法コード", X31CWebConst.DATABEAN_GET_VALUE))
							&& !"".equals(subbean.sendMessageString("デジタルティアグループコード", X31CWebConst.DATABEAN_GET_VALUE)))
					/* ++++++++++ v4.00.00 変更終了 ++++++++++ */
					{
						dgtiaMap = new HashMap<String, Object>();
						dgtiaMap.put("wc01611_dgtia_grp_cd", subbean.sendMessageString("デジタルティアグループコード", X31CWebConst.DATABEAN_GET_VALUE));
						parentMap.put("wc", "1");
						dgtiaList.add(dgtiaMap);
					}
				}
			}
		}
		parentMap.put("wc01611_EWC0161D010CBSMsg1List", dgtiaList);
		outputMap.put("WctrlOrderSendMap", parentMap);
		return outputMap;
	}

	/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：eo光テレビオプションチャンネル登録　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV019202CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ＫＥＹ＿サービス契約番号 → ワンストップ対応履歴登録マップ.サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("ＫＥＹ＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// ユーザーＩＤ → ワンストップ対応履歴登録マップ.ユーザーＩＤ
		parentMap.put("user_id", bean[1].sendMessageString("ユーザーＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// ユーザー名 → ワンストップ対応履歴登録マップ.ユーザー名
		parentMap.put("user_nm", bean[1].sendMessageString("ユーザー名", X31CWebConst.DATABEAN_GET_VALUE));

		beanTemp = bean[1];
		if(beanTemp.getDataBeanArray("権限リスト").getCount() >= 2)
		{
			X31SDataBeanAccess kggrpCdListBean = beanTemp.getDataBeanArray("権限リスト").getDataBean(1);
			// 権限リスト.組織コード → ワンストップ対応履歴登録マップ.組織コード
			parentMap.put("org_cd", kggrpCdListBean.sendMessageString("組織コード", X31CWebConst.DATABEAN_GET_VALUE));
			// 権限リスト.組織名 → ワンストップ対応履歴登録マップ.組織名
			parentMap.put("org_nm", kggrpCdListBean.sendMessageString("組織名", X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		// "KK_TV_OPCH_AD_TITLE" → ワンストップ対応履歴登録マップ.タイトルパラメータＩＤ
		parentMap.put("title_param_id", "KK_TV_OPCH_AD_TITLE");
		// ワンストップフラグ → ワンストップ対応履歴登録マップ.ワンストップフラグ
		parentMap.put("onestop_flg", bean[0].sendMessageString("ワンストップフラグ", X31CWebConst.DATABEAN_GET_VALUE));
		
		// ワンストップ対応履歴登録マップ.回答内容編集リストを回答内容の行数分作成する
		list = new ArrayList();
		HashMap childMap = null;
		
		// １行目「■回答内容」
		childMap = new HashMap();
		// "KK_TV_OPCH_AD_NYO_01" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
		childMap.put("ans_param_id", "KK_TV_OPCH_AD_NYO_01");
		list.add(childMap);
		
		// ２行目「ワンストップによるオプションチャネル申込」
		childMap = new HashMap();
		// "KK_TV_OPCH_AD_NYO_02" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
		childMap.put("ans_param_id", "KK_TV_OPCH_AD_NYO_02");
		list.add(childMap);
		
		// ３行目「・・・オプションチャンネル数分(START)・・・」
		childMap = new HashMap();
		// "KK_TV_OPCH_AD_NYO_03" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
		childMap.put("ans_param_id", "KK_TV_OPCH_AD_NYO_03");
		list.add(childMap);
		
		// ４行目〜８行目は登録したオプションチャンネル数分設定する
		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("ｅｏ光テレビオプションチャンネル情報リスト");
		
		String ccasId = editCasId(bean[0].sendMessageString("ＣＣＡＳ−ＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		String bcasId = editCasId(bean[0].sendMessageString("ＢＣＡＳ−ＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		
		for(int i = 0; i < arraybean.getCount(); i++)
		{
			X31SDataBeanAccess subbean = arraybean.getDataBean(i);
			if(subbean.sendMessageBoolean("選択", X31CWebConst.DATABEAN_GET_VALUE))
			{
				// ４行目「オプションサービスコード：[@]」
				childMap = new HashMap();
				// "KK_TV_OPCH_AD_NYO_04" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
				childMap.put("ans_param_id", "KK_TV_OPCH_AD_NYO_04");
				// "@" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列１
				childMap.put("replace_mae1", "@");
				// オプションサービスコード → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列１
				childMap.put("replace_ato1", subbean.sendMessageString("オプションサービスコード", X31CWebConst.DATABEAN_GET_VALUE));
				list.add(childMap);
				
				// ５行目「オプションチャンネル名：[A]」
				childMap = new HashMap();
				// "KK_TV_OPCH_AD_NYO_05" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
				childMap.put("ans_param_id", "KK_TV_OPCH_AD_NYO_05");
				// "A" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列１
				childMap.put("replace_mae1", "A");
				// チャンネル名 → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列１
				childMap.put("replace_ato1", subbean.sendMessageString("チャンネル名", X31CWebConst.DATABEAN_GET_VALUE));
				list.add(childMap);
				
				// ６行目「C-CAS番号：[B]」
				childMap = new HashMap();
				// "KK_TV_OPCH_AD_NYO_06" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
				childMap.put("ans_param_id", "KK_TV_OPCH_AD_NYO_06");
				// "B" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列１
				childMap.put("replace_mae1", "B");
				// ＣＣＡＳ−ＩＤ → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列１
				childMap.put("replace_ato1", ccasId);
				list.add(childMap);
				
				// ７行目「B-CAS番号：[C]」
				childMap = new HashMap();
				// "KK_TV_OPCH_AD_NYO_07" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
				childMap.put("ans_param_id", "KK_TV_OPCH_AD_NYO_07");
				// "C" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列１
				childMap.put("replace_mae1", "C");
				// ＢＣＡＳ−ＩＤ → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列１
				if(!"".equals(subbean.sendMessageString("赤Ｂ−ＣＡＳ番号", X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 赤Ｂ−ＣＡＳ番号が空白でない場合、そちらを設定する
					bcasId = editCasId(subbean.sendMessageString("赤Ｂ−ＣＡＳ番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				childMap.put("replace_ato1", bcasId);
				list.add(childMap);
				
				// ８行目「利用開始日：[D]」
				childMap = new HashMap();
				// "KK_TV_OPCH_AD_NYO_08" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
				childMap.put("ans_param_id", "KK_TV_OPCH_AD_NYO_08");
				// "D" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列１
				childMap.put("replace_mae1", "D");
				// 利用開始日表示 → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列１
				childMap.put("replace_ato1", subbean.sendMessageString("利用開始日表示", X31CWebConst.DATABEAN_GET_VALUE));
				list.add(childMap);
			}
		}
		
		// ９行目「・・・オプションチャンネル数分(END)・・・」
		childMap = new HashMap();
		// "KK_TV_OPCH_AD_NYO_09" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
		childMap.put("ans_param_id", "KK_TV_OPCH_AD_NYO_09");
		list.add(childMap);
		
		// １０行目「[E]:[F]」
		childMap = new HashMap();
		// "KK_TV_OPCH_AD_NYO_10" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
		childMap.put("ans_param_id", "KK_TV_OPCH_AD_NYO_10");
		// "E" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列１
		childMap.put("replace_mae1", "E");
		// ユーザーＩＤ → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列１
		childMap.put("replace_ato1", bean[1].sendMessageString("ユーザーＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// "F" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列２
		childMap.put("replace_mae2", "F");
		// ユーザー名 → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列２
		childMap.put("replace_ato2", bean[1].sendMessageString("ユーザー名", X31CWebConst.DATABEAN_GET_VALUE));
		list.add(childMap);
		
		parentMap.put("ans_list", list);

		outputMap.put("OnestopRirekiAddMap", parentMap);
						
		return outputMap;
	}

	/**
	 * ＣＡＳ−ＩＤを「9999-9999-9999-9999-9999」形式に編集します。
	 * @param casId ＣＡＳ−ＩＤ
	 * @return 編集したＣＡＳ−ＩＤ
	 */
	private String editCasId(String casId)
	{
		if(casId.length() == 20)
		{
			// 「9999-9999-9999-9999-9999」編集
			casId = casId.substring(0, 4) + "-" + 
					casId.substring(4, 8) + "-" + 
					casId.substring(8, 12) + "-" + 
					casId.substring(12, 16) + "-" + 
					casId.substring(16);
		}
		return casId;
	}
	/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
}
