use of sic.modelo.ItemCarritoCompra in project sic by belluccifranco.
the class CarritoCompraController method generarPedidoConItemsDelCarrito.
@PostMapping("/carrito-compra")
@ResponseStatus(HttpStatus.CREATED)
public Pedido generarPedidoConItemsDelCarrito(@RequestBody Pedido pedido) {
Pageable pageable = new PageRequest(0, Integer.MAX_VALUE, new Sort(Sort.Direction.DESC, "idItemCarritoCompra"));
List<ItemCarritoCompra> items = carritoCompraService.getAllItemsDelUsuario(pedido.getUsuario().getId_Usuario(), pageable).getContent();
pedido.setRenglones(new ArrayList<>());
items.forEach(i -> {
pedido.getRenglones().add(new RenglonPedido(0, i.getProducto(), i.getCantidad(), 0, 0, i.getImporte()));
});
Pedido p = pedidoService.guardar(pedido);
carritoCompraService.eliminarTodosLosItems(pedido.getUsuario().getId_Usuario());
return p;
}
use of sic.modelo.ItemCarritoCompra in project sic by belluccifranco.
the class CarritoCompraServiceImpl method agregarOrModificarItem.
@Override
public void agregarOrModificarItem(long idUsuario, long idProducto, double cantidad) {
Usuario usuario = usuarioService.getUsuarioPorId(idUsuario);
Producto producto = productoService.getProductoPorId(idProducto);
ItemCarritoCompra item = carritoCompraRepository.findByUsuarioAndProducto(usuario, producto);
if (item == null) {
double importe = producto.getPrecioLista() * cantidad;
carritoCompraRepository.save(new ItemCarritoCompra(null, cantidad, producto, importe, usuario));
} else {
double nuevaCantidad = item.getCantidad() + cantidad;
if (nuevaCantidad < 0) {
item.setCantidad(0);
} else {
item.setCantidad(nuevaCantidad);
}
item.setImporte(producto.getPrecioLista() * nuevaCantidad);
carritoCompraRepository.save(item);
}
}
Aggregations