Class VentaController
java.lang.Object
com.deusto.coffeestack.controller.VentaController
REST controller para el registro y consulta de ventas.
Endpoints:
POST /api/ventas– registrar venta (EMPLEADO, PROPIETARIO, ROOT)GET /api/ventas– listar todas las ventas (cualquier autenticado)GET /api/ventas/{id}– detalle de una venta (cualquier autenticado)
-
Constructor Summary
ConstructorsConstructorDescriptionVentaController(VentaService ventaService, CsvExportService csvExportService) -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.http.ResponseEntity<byte[]> Descarga el reporte de ventas como fichero CSV.listar()Devuelve todas las ventas registradas, de más reciente a más antigua.Devuelve el detalle completo de una venta por su id.Genera el reporte simple de ventas por día y por producto para análisis de demanda.org.springframework.http.ResponseEntity<VentaResponse> registrar(@Valid VentaRequest request, org.springframework.security.core.userdetails.UserDetails userDetails) Registra una nueva venta, descuenta el inventario y genera los movimientos de trazabilidad correspondientes.
-
Constructor Details
-
VentaController
-
-
Method Details
-
registrar
@PostMapping @PreAuthorize("hasAnyRole(\'EMPLEADO\', \'PROPIETARIO\', \'ROOT\')") public org.springframework.http.ResponseEntity<VentaResponse> registrar(@Valid @RequestBody @Valid VentaRequest request, @AuthenticationPrincipal org.springframework.security.core.userdetails.UserDetails userDetails) Registra una nueva venta, descuenta el inventario y genera los movimientos de trazabilidad correspondientes. Devuelve 201 Created con la venta en el body. -
obtenerReporte
@GetMapping("/reporte") @PreAuthorize("hasAnyRole(\'PROPIETARIO\', \'ROOT\')") public List<ReporteVentasDTO> obtenerReporte()Genera el reporte simple de ventas por día y por producto para análisis de demanda. -
descargarReporteCsv
@GetMapping("/reporte/csv") @PreAuthorize("hasAnyRole(\'PROPIETARIO\', \'ROOT\')") public org.springframework.http.ResponseEntity<byte[]> descargarReporteCsv()Descarga el reporte de ventas como fichero CSV. El fichero incluye BOM UTF-8 para compatibilidad con Microsoft Excel. -
listar
Devuelve todas las ventas registradas, de más reciente a más antigua. -
obtener
@GetMapping("/{id}") @PreAuthorize("isAuthenticated()") public VentaResponse obtener(@PathVariable Long id) Devuelve el detalle completo de una venta por su id.
-