Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created September 4, 2019 21:42
Show Gist options
  • Save parzibyte/26def275dae69a9f3cb1f997a7f058b7 to your computer and use it in GitHub Desktop.
Save parzibyte/26def275dae69a9f3cb1f997a7f058b7 to your computer and use it in GitHub Desktop.
@PostMapping(value = "/agregar")
public String agregarAlCarrito(@ModelAttribute Producto producto, HttpServletRequest request, RedirectAttributes redirectAttrs) {
ArrayList<ProductoParaVender> carrito = this.obtenerCarrito(request);
Producto productoBuscadoPorCodigo = productosRepository.findFirstByCodigo(producto.getCodigo());
if (productoBuscadoPorCodigo == null) {
redirectAttrs
.addFlashAttribute("mensaje", "El producto con el código " + producto.getCodigo() + " no existe")
.addFlashAttribute("clase", "warning");
return "redirect:/vender/";
}
if (productoBuscadoPorCodigo.sinExistencia()) {
redirectAttrs
.addFlashAttribute("mensaje", "El producto está agotado")
.addFlashAttribute("clase", "warning");
return "redirect:/vender/";
}
boolean encontrado = false;
for (ProductoParaVender productoParaVenderActual : carrito) {
if (productoParaVenderActual.getCodigo().equals(productoBuscadoPorCodigo.getCodigo())) {
productoParaVenderActual.aumentarCantidad();
encontrado = true;
break;
}
}
if (!encontrado) {
carrito.add(new ProductoParaVender(productoBuscadoPorCodigo.getNombre(), productoBuscadoPorCodigo.getCodigo(), productoBuscadoPorCodigo.getPrecio(), productoBuscadoPorCodigo.getExistencia(), productoBuscadoPorCodigo.getId(), 1f));
}
this.guardarCarrito(carrito, request);
return "redirect:/vender/";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment