@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(); }
@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"); } }