@Transactional
  @RequestMapping(value = "/actualiza", method = RequestMethod.POST)
  public String actualiza(
      HttpServletRequest request,
      @Valid Almacen almacen,
      BindingResult bindingResult,
      Errors errors,
      Model modelo,
      RedirectAttributes redirectAttributes) {
    if (bindingResult.hasErrors()) {
      log.error("Hubo algun error en la forma, regresando");
      for (ObjectError error : bindingResult.getAllErrors()) {
        log.debug("Error: {}", error);
      }
      return "inventario/almacen/edita";
    }

    try {
      Usuario usuario = ambiente.obtieneUsuario();
      almacen = almacenDao.actualiza(almacen, usuario);

      ambiente.actualizaSesion(request, usuario);
    } catch (ConstraintViolationException e) {
      log.error("No se pudo crear la almacen", e);
      errors.rejectValue("nombre", "campo.duplicado.message", new String[] {"nombre"}, null);
      return "inventario/almacen/edita";
    }

    redirectAttributes.addFlashAttribute("message", "almacen.actualizado.message");
    redirectAttributes.addFlashAttribute("messageAttrs", new String[] {almacen.getNombre()});

    return "redirect:/inventario/almacen/ver/" + almacen.getId();
  }
Beispiel #2
0
 @Override
 public String elimina(Long id, Long empresaId) throws UltimoException {
   Criteria criteria = currentSession().createCriteria(Almacen.class);
   criteria.createCriteria("empresa").add(Restrictions.idEq(empresaId));
   criteria.setProjection(Projections.rowCount());
   Long cantidad = (Long) criteria.list().get(0);
   if (cantidad > 1) {
     Almacen almacen = obtiene(id);
     String nombre = almacen.getNombre();
     currentSession().delete(almacen);
     return nombre;
   } else {
     throw new UltimoException("No se puede eliminar porque es el ultimo");
   }
 }