This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@PostMapping(value = "/terminar") | |
public String terminarVenta(HttpServletRequest request, RedirectAttributes redirectAttrs) { | |
ArrayList<ProductoParaVender> carrito = this.obtenerCarrito(request); | |
// Si no hay carrito o está vacío, regresamos inmediatamente | |
if (carrito == null || carrito.size() <= 0) { | |
return "redirect:/vender/"; | |
} | |
Venta v = ventasRepository.save(new Venta()); | |
// Recorrer el carrito | |
for (ProductoParaVender productoParaVender : carrito) { | |
// Obtener el producto fresco desde la base de datos | |
Producto p = productosRepository.findById(productoParaVender.getId()).orElse(null); | |
if (p == null) continue; // Si es nulo o no existe, ignoramos el siguiente código con continue | |
// Le restamos existencia | |
p.restarExistencia(productoParaVender.getCantidad()); | |
// Lo guardamos con la existencia ya restada | |
productosRepository.save(p); | |
// Creamos un nuevo producto que será el que se guarda junto con la venta | |
ProductoVendido productoVendido = new ProductoVendido(productoParaVender.getCantidad(), productoParaVender.getPrecio(), productoParaVender.getNombre(), productoParaVender.getCodigo(), v); | |
// Y lo guardamos | |
productosVendidosRepository.save(productoVendido); | |
} | |
// Al final limpiamos el carrito | |
this.limpiarCarrito(request); | |
// e indicamos una venta exitosa | |
redirectAttrs | |
.addFlashAttribute("mensaje", "Venta realizada correctamente") | |
.addFlashAttribute("clase", "success"); | |
return "redirect:/vender/"; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment