@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;
 }
  @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 + "/";
  }