Search in sources :

Example 1 with ItemCarritoCompra

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;
}
Also used : ItemCarritoCompra(sic.modelo.ItemCarritoCompra) PageRequest(org.springframework.data.domain.PageRequest) Pageable(org.springframework.data.domain.Pageable) RenglonPedido(sic.modelo.RenglonPedido) RenglonPedido(sic.modelo.RenglonPedido) Pedido(sic.modelo.Pedido) Sort(org.springframework.data.domain.Sort) PostMapping(org.springframework.web.bind.annotation.PostMapping) ResponseStatus(org.springframework.web.bind.annotation.ResponseStatus)

Example 2 with ItemCarritoCompra

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);
    }
}
Also used : ItemCarritoCompra(sic.modelo.ItemCarritoCompra) Usuario(sic.modelo.Usuario) Producto(sic.modelo.Producto)

Aggregations

ItemCarritoCompra (sic.modelo.ItemCarritoCompra)2 PageRequest (org.springframework.data.domain.PageRequest)1 Pageable (org.springframework.data.domain.Pageable)1 Sort (org.springframework.data.domain.Sort)1 PostMapping (org.springframework.web.bind.annotation.PostMapping)1 ResponseStatus (org.springframework.web.bind.annotation.ResponseStatus)1 Pedido (sic.modelo.Pedido)1 Producto (sic.modelo.Producto)1 RenglonPedido (sic.modelo.RenglonPedido)1 Usuario (sic.modelo.Usuario)1