@Transactional @RequestMapping(value = "/graba", method = RequestMethod.POST) public String graba( HttpServletRequest request, HttpServletResponse response, @Valid AlumnoPaquete alumnoPaquete, BindingResult bindingResult, Errors errors, Model modelo, RedirectAttributes redirectAttributes) { for (String matricula : request.getParameterMap().keySet()) { log.debug("Param: {} : {}", matricula, request.getParameterMap().get(matricula)); } if (bindingResult.hasErrors()) { log.debug("Hubo algun error en la forma, regresando"); Map<String, Object> params = new HashMap<>(); params.put("empresa", request.getSession().getAttribute("empresaId")); return Constantes.PATH_ALUMNOPAQUETE_NUEVO; } try { AlumnoPaquete tmp = null; Usuario usuario = ambiente.obtieneUsuario(); if (alumnoPaquete.getId() != null) { tmp = alumnoPaqueteManager.obtiene(alumnoPaquete.getId()); tmp.setPaquete(paqueteDao.obtiene(alumnoPaquete.getPaquete().getId())); tmp.setMatricula(alumnoPaquete.getMatricula()); tmp.setStatus(alumnoPaquete.getStatus()); alumnoPaqueteManager.graba(tmp, usuario); redirectAttributes.addFlashAttribute( Constantes.CONTAINSKEY_MESSAGE, "alumnoPaquete.actualizado.message"); redirectAttributes.addFlashAttribute( Constantes.CONTAINSKEY_MESSAGE_ATTRS, new String[] {alumnoPaquete.getMatricula()}); } else { alumnoPaquete.setPaquete(paqueteDao.obtiene(alumnoPaquete.getPaquete().getId())); alumnoPaqueteManager.graba(alumnoPaquete, usuario); redirectAttributes.addFlashAttribute( Constantes.CONTAINSKEY_MESSAGE, "alumnoPaquete.creado.message"); redirectAttributes.addFlashAttribute( Constantes.CONTAINSKEY_MESSAGE_ATTRS, new String[] {alumnoPaquete.getMatricula()}); } } catch (ConstraintViolationException e) { log.error("No se pudo crear el tipo de Beca", e); return Constantes.PATH_ALUMNOPAQUETE_NUEVO; } return "redirect:/" + Constantes.PATH_ALUMNOPAQUETE_LISTA + "/"; }
@Transactional @RequestMapping(value = "/elimina", method = RequestMethod.POST) public String elimina( HttpServletRequest request, @RequestParam Long id, Model modelo, @ModelAttribute AlumnoPaquete alumnoPaquete, BindingResult bindingResult, RedirectAttributes redirectAttributes) { log.debug("Elimina cuenta de tipos de becas"); try { alumnoPaqueteManager.elimina(id); redirectAttributes.addFlashAttribute( Constantes.CONTAINSKEY_MESSAGE, "alumnoPaquete.eliminado.message"); redirectAttributes.addFlashAttribute( Constantes.CONTAINSKEY_MESSAGE_ATTRS, new String[] {alumnoPaquete.getMatricula()}); } catch (Exception e) { log.error("No se pudo eliminar el tipo de alumnoPaquete " + id, e); bindingResult.addError( new ObjectError( Constantes.ADDATTRIBUTE_ALUMNOPAQUETE, new String[] {"alumnoPaquete.no.elimina.message"}, null, null)); return Constantes.PATH_ALUMNOPAQUETE_VER; } return "redirect:/" + Constantes.PATH_ALUMNOPAQUETE_LISTA; }
@RequestMapping("/ver/{id}") public String ver(@PathVariable Long id, Model modelo) { log.debug("Mostrando alumnoPaquete {}", id); AlumnoPaquete alumnoPaquete = alumnoPaqueteManager.obtiene(id); modelo.addAttribute("alumnoPaquete", alumnoPaquete); return Constantes.PATH_ALUMNOPAQUETE_VER; }
@RequestMapping("/edita/{id}") public String edita(@PathVariable Long id, Model modelo, HttpServletRequest request) { log.debug("Editar cuenta de tipos de becas {}", id); Map<String, Object> params = new HashMap<>(); params.put("empresa", request.getSession().getAttribute("empresaId")); params.put("reporte", true); AlumnoPaquete alumnoPaquete = alumnoPaqueteManager.obtiene(id); modelo.addAttribute(Constantes.ADDATTRIBUTE_ALUMNOPAQUETE, alumnoPaquete); modelo.addAttribute( Constantes.CONTAINSKEY_PAQUETES, paqueteDao.lista(params).get(Constantes.CONTAINSKEY_PAQUETES)); return Constantes.PATH_ALUMNOPAQUETE_EDITA; }
@RequestMapping({"", "/lista"}) public String lista( HttpServletRequest request, HttpServletResponse response, @RequestParam(required = false) String filtro, @RequestParam(required = false) Long pagina, @RequestParam(required = false) String tipo, @RequestParam(required = false) String correo, @RequestParam(required = false) String order, @RequestParam(required = false) String sort, Usuario usuario, Errors errors, Model modelo) { log.debug("Mostrando lista de tipos de Becas"); Map<String, Object> params = new HashMap<>(); Long empresaId = (Long) request.getSession().getAttribute("empresaId"); params.put("empresa", empresaId); if (StringUtils.isNotBlank(filtro)) { params.put(Constantes.CONTAINSKEY_FILTRO, filtro); } if (pagina != null) { params.put(Constantes.CONTAINSKEY_PAGINA, pagina); modelo.addAttribute(Constantes.CONTAINSKEY_PAGINA, pagina); } else { pagina = 1L; modelo.addAttribute(Constantes.CONTAINSKEY_PAGINA, pagina); } if (StringUtils.isNotBlank(order)) { params.put(Constantes.CONTAINSKEY_ORDER, order); params.put(Constantes.CONTAINSKEY_SORT, sort); } if (StringUtils.isNotBlank(tipo)) { params.put(Constantes.CONTAINSKEY_REPORTE, true); params = alumnoPaqueteManager.lista(params); try { generaReporte( tipo, (List<AlumnoPaquete>) params.get(Constantes.CONTAINSKEY_ALUMNOPAQUETES), response); return null; } catch (JRException | IOException e) { log.error("No se pudo generar el reporte", e); params.remove(Constantes.CONTAINSKEY_REPORTE); // errors.reject("error.generar.reporte"); } } if (StringUtils.isNotBlank(correo)) { params.put(Constantes.CONTAINSKEY_REPORTE, true); params = alumnoPaqueteManager.lista(params); params.remove(Constantes.CONTAINSKEY_REPORTE); try { enviaCorreo( correo, (List<AlumnoPaquete>) params.get(Constantes.CONTAINSKEY_ALUMNOPAQUETES), request); modelo.addAttribute(Constantes.CONTAINSKEY_MESSAGE, "lista.enviada.message"); modelo.addAttribute( Constantes.CONTAINSKEY_MESSAGE_ATTRS, new String[] { messageSource.getMessage("alumnoPaquete.lista.label", null, request.getLocale()), ambiente.obtieneUsuario().getUsername() }); } catch (JRException | MessagingException e) { log.error("No se pudo enviar el reporte por correo", e); } } params = alumnoPaqueteManager.lista(params); log.debug("params{}", params.get(Constantes.CONTAINSKEY_ALUMNOPAQUETES)); modelo.addAttribute( Constantes.CONTAINSKEY_ALUMNOPAQUETES, params.get(Constantes.CONTAINSKEY_ALUMNOPAQUETES)); // inicia paginado Long cantidad = (Long) params.get(Constantes.CONTAINSKEY_CANTIDAD); Integer max = (Integer) params.get(Constantes.CONTAINSKEY_MAX); Long cantidadDePaginas = cantidad / max; List<Long> paginas = new ArrayList<>(); long i = 1; do { paginas.add(i); } while (i++ < cantidadDePaginas); List<AlumnoPaquete> alumnoPaquetes = (List<AlumnoPaquete>) params.get(Constantes.CONTAINSKEY_ALUMNOPAQUETES); Long primero = ((pagina - 1) * max) + 1; log.debug("primero {}", primero); Long ultimo = primero + (alumnoPaquetes.size() - 1); String[] paginacion = new String[] {primero.toString(), ultimo.toString(), cantidad.toString()}; modelo.addAttribute(Constantes.CONTAINSKEY_PAGINACION, paginacion); log.debug("Paginacion{}", paginacion); modelo.addAttribute(Constantes.CONTAINSKEY_PAGINAS, paginas); log.debug("paginas{}", paginas); modelo.addAttribute(Constantes.CONTAINSKEY_PAGINA, pagina); log.debug("Pagina{}", pagina); // termina paginado return Constantes.PATH_ALUMNOPAQUETE_LISTA; }