public ActionForward updateWeekEnd( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, SessionAPI session) throws Exception { // Comprobar si el usuario tiene asignadas las funciones adecuadas FunctionHelper.checkFunctions( request, session.getClientContext(), new int[] {ISecurityAPI.FUNC_COMP_CALENDARS_EDIT}); // Comprobar si el usuario tiene asignadas las funciones adecuadas FunctionHelper.checkFunctions( request, session.getClientContext(), new int[] {ISecurityAPI.FUNC_COMP_CALENDARS_EDIT}); CalendarForm defaultForm = (CalendarForm) form; IItem item = (IItem) request.getSession().getAttribute("CALENDAR"); String calendarioXML = (String) item.getString("CALENDARIO"); CalendarDef calendarDef = new CalendarDef(calendarioXML); String[] daysSelected = defaultForm.getWeekDaysSelect(); calendarDef.addWeekEnd(daysSelected); item.set("CALENDARIO", calendarDef.getXmlValues()); item.store(session.getClientContext()); String entityId = request.getParameter("entityId"); if (entityId == null) { entityId = defaultForm.getEntity(); } String regId = request.getParameter("regId"); if (regId == null) { regId = defaultForm.getKey(); } return getActionForwardShow(entityId, regId); }
public ActionForward show( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, SessionAPI session) throws Exception { // Comprobar si el usuario tiene asignadas las funciones adecuadas FunctionHelper.checkFunctions( request, session.getClientContext(), new int[] {ISecurityAPI.FUNC_COMP_CALENDARS_READ, ISecurityAPI.FUNC_COMP_CALENDARS_EDIT}); CalendarForm defaultForm = (CalendarForm) form; String parameter = request.getParameter("entityId"); if (parameter == null) { parameter = defaultForm.getEntity(); } int entityId = Integer.parseInt(parameter); parameter = request.getParameter("regId"); if (parameter == null) { parameter = defaultForm.getKey(); } int keyId = Integer.parseInt(parameter); // Indica si se viene de añadir un nuevo dia festivo o no Boolean save = new Boolean(request.getParameter("save")); IInvesflowAPI invesFlowAPI = session.getAPI(); ICatalogAPI catalogAPI = invesFlowAPI.getCatalogAPI(); String strURL = null; EntityApp entityapp = catalogAPI.getCTDefaultEntityApp(entityId, keyId, getRealPath("")); try { if (entityapp == null) throw new ISPACNullObject(); // Si se debe crear una entrada cuando se guarden los datos del registro, // se marca debidamente el campo clave del registro como nulo. if (keyId == ISPACEntities.ENTITY_NULLREGKEYID) { entityapp.getItem().setKey(ISPACEntities.ENTITY_NULLREGKEYID); } } catch (ISPACNullObject e) { ISPACRewrite ispacPath = new ISPACRewrite(getServlet().getServletContext()); strURL = ispacPath.rewriteRelativePath("common/missingapp.jsp"); } catch (ISPACException eie) { throw new ISPACInfo(eie.getMessage()); } if (strURL == null) { strURL = entityapp.getURL(); } // Visualiza los datos de la entidad // Si hay errores no se recargan los datos de la entidad // manteniéndose los datos introducidos que generan los errores if (((defaultForm.getActions() == null) || (defaultForm.getActions().equals("success"))) && (request.getAttribute(Globals.ERROR_KEY) == null)) { defaultForm.setEntity(Integer.toString(entityId)); defaultForm.setKey(Integer.toString(keyId)); defaultForm.setReadonly("false"); defaultForm.setEntityApp(entityapp); } else { // Establecer la aplicación para acceder a los valores extra en el formulario defaultForm.setValuesExtra(entityapp); } if (save.booleanValue()) defaultForm.setProperty("NOMBRE", request.getParameter("nombre")); // Lista de festivos y fin de semana List holydaysList = null; List allDayList = null; IItem item = defaultForm.getEntityApp().getItem(); if (keyId > 0) { CalendarDef caldef = new CalendarDef(item.getString("CALENDARIO")); // Dias festivos holydaysList = caldef.getHolydays(); // Dias de la semana allDayList = caldef.getAllWeekDays(); // Dias de la semana if (save.booleanValue()) { String dias = request.getParameter("weekDaysSelect"); String[] diasSeleccionados = new String[dias.length()]; if (!dias.equals("")) diasSeleccionados = dias.split(","); caldef.addWeekEnd(diasSeleccionados); } defaultForm.setWeekDaysSelect(caldef.getWeekEndDays()); } else { item.set("CALENDARIO", (new CalendarDef()).getXmlValues()); } request.setAttribute("HOLYDAYS_LIST", holydaysList); request.setAttribute("WEEKDAYS_LIST", allDayList); // Página jsp asociada a la presentación de la entidad request.setAttribute("application", strURL); request.setAttribute("EntityId", Integer.toString(entityId)); request.setAttribute("KeyId", Integer.toString(keyId)); // Generamos la ruta de navegación hasta la pantalla actual. BreadCrumbsContainer bcm = BreadCrumbsManager.getInstance(catalogAPI).getBreadCrumbs(request); request.setAttribute("BreadCrumbs", bcm.getList()); // poner el item en session request.getSession().setAttribute("CALENDAR", entityapp.getItem()); return mapping.findForward("success_show"); }