/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	カスタムアサイン更新フレームセット表示Actionクラス
//
//		変更履歴
//			2005.02.16  新規作成  氏名 石崎賢太郎
//
//	機能
//
//	カスタムアサイン更新フレームセット表示Actionクラスです。
//
/////////////////////////////////////////////////////////////////
package jp.co.ntt.lms.xmf.actions.xms.assign;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jp.co.ntt.lms.xmf.actions.XmsAction;
import jp.co.ntt.lms.xms.assign.CustomAssignConstant;
import jp.co.ntt.lms.xms.assign.CustomAssignFramesetBean;
import jp.co.ntt.lms.xms.framework.Constant;
import jp.co.ntt.lms.xms.framework.XmsBusinessAction;
import jp.co.ntt.lms.xms.framework.XmsScreenAction;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 * カスタムアサイン更新フレームセット表示Actionクラスです。
 * 
 * @author Kentaro Ishizaki (UNITEC)
 * @version 1.0
 */
public class CustomAssignFramesetAction extends XmsAction
{
	/**
	 * strutsフレームワークから呼ばれるメソッドです。
	 * 
	 * @param mapping マッピングオブジェクト。
	 * @param form アクションフォームオブジェクト。
	 * @param request リクエストオブジェクト。
	 * @param response レスポンスオブジェクト。
	 * @return ActionForward アクションフォワードオブジェクト。
	 * @throws Exception
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
	{
		// BusinessAction, ScreenAction実行
		XmsBusinessAction bizAction = new jp.co.ntt.lms.xms.assign.CustomAssignFirstAction();
		XmsScreenAction scrAction = new jp.co.ntt.lms.xms.assign.CustomAssignFramesetAction();
		ActionForward forward = this.performXmsAction(mapping, request, response, bizAction, scrAction);
		

		// jsp内コードの実行
		if (forward.getName().equals("default"))
		{
			// =========================================================================
			// 入力項目初期値用
			CustomAssignFramesetBean framesetBean = null;
			// メールの使用フラグ
			boolean usableMail = false;
			// アサイン入力フレームのＵＲＬ
			StringBuffer assignFrameUrl = null;
			////////////////////////////////////////////////////////////////////////////
			// データ取得
			//==========================================================================
			// 入力項目
			framesetBean = (CustomAssignFramesetBean)request.getAttribute(
								Constant.KEY_SCREEN_BEAN);
			// メールの使用フラグ
			usableMail = framesetBean.isUsableMail();
			////////////////////////////////////////////////////////////////////////////
			// アサイン入力フレームのＵＲＬ
			assignFrameUrl = new StringBuffer();
			assignFrameUrl.append("/xms2/CustomAssign.input.do");
			/*
			assignFrameUrl.append(Constant.ALIAS_SERVLET);
			// アクションID
			assignFrameUrl.append("?");
			assignFrameUrl.append(Constant.REQUEST_ACTION_ID);
			assignFrameUrl.append("=CustomAssign.input");
			*/
			if ( framesetBean != null ) {
				// 新規／更新区別
				assignFrameUrl.append("?");
				assignFrameUrl.append(CustomAssignConstant.NAME_OPERATE);
				assignFrameUrl.append("=");
				assignFrameUrl.append(framesetBean.getOperation());
				// 親ＬＯＩＤ
				assignFrameUrl.append("&");
				assignFrameUrl.append(CustomAssignConstant.PARENT_LO_ID);
				assignFrameUrl.append("=");
				assignFrameUrl.append(framesetBean.getParentLoId());
				// ＬＯＩＤ
				assignFrameUrl.append("&");
				assignFrameUrl.append(CustomAssignConstant.LO_ID);
				assignFrameUrl.append("=");
				assignFrameUrl.append(framesetBean.getLoId());
				// 親グループＩＤ
				assignFrameUrl.append("&");
				assignFrameUrl.append(CustomAssignConstant.PARENT_GROUP_ID);
				assignFrameUrl.append("=");
				assignFrameUrl.append(framesetBean.getParentGroupId());
				// グループ／人ＩＤ
				assignFrameUrl.append("&");
				assignFrameUrl.append(CustomAssignConstant.PERSONNEL_ID);
				assignFrameUrl.append("=");
				assignFrameUrl.append(framesetBean.getPersonnelId());
				// メール使用フラグ
				assignFrameUrl.append("&");
				assignFrameUrl.append(CustomAssignConstant.NAME_USABLE_MAIL);
				assignFrameUrl.append("=");
				if ( framesetBean.isUsableMail() == true ) {
					assignFrameUrl.append( CustomAssignConstant.USABLE_MAIL_OK );
				} else {
					assignFrameUrl.append( CustomAssignConstant.USABLE_MAIL_NG );
				}
			}
			

			// リクエストに変数をセット
			request.setAttribute("usableMail", new Boolean(usableMail));
			request.setAttribute("assignFrameUrl", assignFrameUrl.toString());
		}

		// forward
		return forward;
	}
}
