The Kantuta POS Reports Center provides five distinct PDF report types, each rendered entirely in the browser usingDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Eleazarguitar18/kantuta_pos_front/llms.txt
Use this file to discover all available pages before exploring further.
@react-pdf/renderer. No server-side PDF generation is involved: data is fetched from the API, passed into a React PDF component, converted to a Blob, and immediately triggered as a browser download. All report routes sit under /reportes and are protected by ProtectedRoute allowedRoles={['Administrador']}.
All report routes — including the
/reportes index — are accessible to the Administrador role only. Cajero users who attempt to navigate to any /reportes path will be silently redirected to the dashboard home (/).Available Reports
Movimientos de Caja
Session-level cash movement audit. Shows every ingreso and egreso logged against a specific caja session, plus the opening balance and theoretical closing balance.Route:
/reportes/cajaReporte de Ventas
Consolidated sales audit for a custom or quick-select date range. Includes all sale transactions and their line-item detail processed by any cashier.Route:
/reportes/ventasReporte de Compras
Purchase history and merchandise intake by date range. Covers all supplier orders registered through the purchases module.Route:
/reportes/comprasInventario de Productos
Snapshot of current stock levels across all products, with semaphore color coding and projected investment and profit calculations. No date selection required.Route:
/reportes/inventarioProductividad por Operador
Individual operator performance evaluation for a selected date range. Optionally scoped to a single operator by choosing from the registered user list.Route:
/reportes/productividadReport 1 — Movimientos de Caja
This two-step wizard walks the administrator from selecting a physical cash drawer to picking a specific session before downloading the PDF.Select a caja
The component loads all registered cajas via
CajasService.getCajas() and displays them in a paginated data table. Each row shows the caja name, specialty type, and current active/inactive status. Click Ver Sesiones to advance.Select a session
The selected caja’s full record is fetched with
CajasService.getCajaById(id). Its sesiones array is displayed in a second table with apertura/cierre timestamps, initial balance (monto_inicial), and session state (ABIERTA / CERRADA). Sessions still in progress display an EN CURSO badge.MovimientosCajaPdf component — an A4 document with a totals summary box that breaks down ingresos, egresos, and net cash flow. The CajaHistorialPdf component shares the same data shape and is used for standalone historical extracts:
Report 2 — Reporte de Ventas
A date-range selector with built-in quick-pick presets generates a consolidated sales PDF. The auditor name is automatically populated from the authenticated user’sname field and embedded in the document.
Quick-range presets available
Quick-range presets available
The component ships five one-click presets that auto-fill both date inputs:
| Label | Range |
|---|---|
| Hoy | Today’s date only |
| Esta Semana | Monday of the current week → today |
| Este Mes | First day of the current month → today |
| Mes Pasado | Full previous calendar month |
| Últimos 3 Meses | First day, three months ago → today |
<ReporteVentasPDF datos={datosReporte} rango={rangoTexto} /> and saved as ventas-rango-{fechaInicio}-a-{fechaFin}.pdf.
Report 3 — Reporte de Compras
Identical UX pattern to the sales report — quick-range presets (Hoy, Esta Semana, Este Mes, Mes Pasado) plus manual date pickers. The endpoint and PDF component differ:<ComprasRangoPdf data={response.data} /> and saved as compras-rango-{fechaInicio}-a-{fechaFin}.pdf.
Report 4 — Inventario de Productos
The inventory report is an instant snapshot — no date range is required. A single button initiates the download.<ReporteInventarioPDF datos={datosReporte} /> and is saved as inventario-actual-{YYYY-MM-DD}.pdf.
Semaphore Color Coding
The inventory PDF uses a three-color stock-level indicator:| Color | Meaning |
|---|---|
| 🔴 Red | Stock is below the product’s defined minimum threshold |
| 🟡 Yellow | Stock is near the minimum (approaching the threshold) |
| 🟢 Green | Stock level is healthy — above the near-minimum band |
Report 5 — Productividad por Operador
The productivity report adds an operator filter on top of the standard date-range picker. By default the report covers all operators; selecting a specific user from the dropdown scopes the data to that individual.Select a date range
Use the quick-range buttons (Hoy, Esta Semana, Este Mes, Mes Pasado) or fill in custom
Fecha Inicio / Fecha Fin values.Optionally filter by operator
The dropdown is populated via
GET /usuario and lists every registered user as {nombres} {p_apellido} ({email}). Leave the selection on Todos los operadores to include all staff.Point-of-Sale Sale Ticket (TicketVentaPdf)
In addition to the five admin reports, Kantuta POS generates a sale ticket PDF immediately after each successful POS transaction. This PDF is rendered client-side using theTicketVentaPdf component and sized for A5 paper:
PDF Technology Reference
All PDF documents in Kantuta POS are built with@react-pdf/renderer. The library compiles React component trees into a PDF byte stream entirely in the browser:
/reportes/data/* endpoints.