@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;
  }
 /** Test of getPaquete method, of class PaqueteDao. */
 @Test
 public void testObtenerAlumnoPaquete() {
   Usuario usuario = obtieneUsuario();
   Paquete paquete =
       new Paquete(
           "Test",
           "Test1",
           new BigDecimal("1110475"),
           new BigDecimal(12),
           new BigDecimal(12),
           "1",
           usuario.getEmpresa());
   currentSession().save(paquete);
   AlumnoPaquete alumnoPaquete = new AlumnoPaquete();
   alumnoPaquete.setPaquete(paquete);
   alumnoPaquete.setMatricula("1110475");
   alumnoPaquete.setStatus("A");
   currentSession().save(alumnoPaquete);
   assertNotNull(alumnoPaquete.getId());
   AlumnoPaquete alumnoPaquete1 = instance.obtiene(alumnoPaquete.getId());
   assertEquals(alumnoPaquete.getMatricula(), alumnoPaquete1.getMatricula());
 }