Interface VentaService

All Known Implementing Classes:
VentaServiceImpl

public interface VentaService
Contrato de servicio para el registro y consulta de ventas.
  • Method Details

    • registrarVenta

      VentaResponse registrarVenta(VentaRequest request, String usuarioLogin)
      Registra una nueva venta descontando el inventario de cada insumo implicado mediante la receta de cada producto, en orden FIFO de lotes.
      Parameters:
      request - datos de la venta (lista de líneas con item + unidades)
      usuarioLogin - login del empleado autenticado
      Returns:
      la venta registrada con sus líneas de detalle
      Throws:
      IllegalStateException - si el stock de algún insumo es insuficiente
      IllegalArgumentException - si algún item no tiene receta definida
    • listarVentas

      List<VentaResponse> listarVentas()
      Devuelve todas las ventas, de más reciente a más antigua.
    • obtenerVenta

      VentaResponse obtenerVenta(Long id)
      Devuelve el detalle de una venta por su id.
    • obtenerReporteVentas

      List<ReporteVentasDTO> obtenerReporteVentas()
      Genera un reporte agregado de ventas por día y producto.