Facturas
Exportar contenido
Ruta:
/owner/invoicesCrea, emite, envia y gestiona las facturas de tu negocio.

Vista de lista
Sección titulada «Vista de lista»La pantalla principal de Facturas muestra tres pestanas y tarjetas de resumen:
Pestanas: Facturas | Recurrentes | Albaranes
Tarjetas de resumen:
| Tarjeta | Color | Descripcion |
|---|---|---|
| Total | — | Importe total facturado |
| Pagadas | Verde | Facturas cobradas |
| Pendientes | Amarillo | Facturas por cobrar |
| Vencidas | Rojo | Facturas fuera de plazo |
Columnas de la tabla: Numero, Cliente, Fecha, Estado, VeriFactu, Total, Acciones
Filtros disponibles: numero/cliente/CIF, estado, tipo, fecha
Funciones
Sección titulada «Funciones»| Funcion | Descripcion | Documentacion |
|---|---|---|
| Crear Factura | Crea borrador con cliente, conceptos e importes | Ver |
| Emitir Factura | Asigna numero y pasa a Enviada (+ VeriFactu) | Ver |
| Enviar por Email | Envia PDF al email del cliente | Ver |
| Duplicar Factura | Crea borrador copiando datos existentes | Ver |
| Rectificar / Abonar | Correccion o devolucion vinculada a la original | Ver |
| Cambiar Estado | Marca como pagada, vencida o anulada | Ver |
| Exportar Facturas | Descarga periodo en Excel o ZIP con PDFs | Ver |
| Descargar PDF | Descarga PDF de factura individual | Ver |
Estados y transiciones
Sección titulada «Estados y transiciones» ┌──────────┐ │ Borrador │ └────┬─────┘ │ Emitir ┌────▼─────┐ │ Enviada │───────────────┐ └────┬─────┘ │ │ Vence │ ┌────▼─────┐ │ │ Vencida │ │ └────┬─────┘ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ Pagada │ │ Anulada │ │ FINAL │ │ FINAL │ └──────────┘ └──────────┘Transiciones permitidas:
| Desde | Hacia |
|---|---|
| Borrador | Enviada, Pagada, Anulada |
| Enviada | Pagada, Vencida, Anulada |
| Vencida | Pagada, Anulada |
| Pagada | (estado final) |
| Anulada | (estado final) |
ALERTA: Pagada y Anulada son estados finales irreversibles.
Referencia tecnica
Sección titulada «Referencia tecnica»Detalles técnicos
Tablas de base de datos
Sección titulada «Tablas de base de datos»| Tabla | Columnas principales | FK |
|---|---|---|
invoices | id, business_id, customer_id, invoice_number, status, total_amount | customers, businesses, invoice_series |
invoice_items | id, invoice_id, description, quantity, unit_price, tax_rate, line_total | invoices |
invoice_series | id, business_id, prefix, current_number, padding | businesses |
invoice_payment_methods | — | invoices |
Politicas RLS
Sección titulada «Politicas RLS»| Politica | Regla |
|---|---|
invoices_business_isolation | business_id = usuario autenticado |
invoice_items_via_invoice | Acceso via factura padre |
invoice_series_business | business_id = usuario autenticado |
Edge Functions
Sección titulada «Edge Functions»| Funcion | Trigger | Descripcion |
|---|---|---|
send-invoice-email | Envio email | Genera PDF + envia via SendGrid |
generate-invoice-pdf | Descarga/envio | HTML a PDF (jsPDF + html2canvas) |
verifactu-send-invoice | Emision VeriFactu | CSV, AEAT, QR |
verifactu-retry | Retry | Reintento envio AEAT |
check-overdue-invoices | Cron diario | Marca facturas vencidas |
Queries de diagnostico
Sección titulada «Queries de diagnostico»Factura completa con cliente y serie:
SELECT i.*, c.name, c.cif_nif, s.prefix, s.name as serieFROM invoices iLEFT JOIN customers c ON i.customer_id = c.idLEFT JOIN invoice_series s ON i.invoice_series_id = s.idWHERE i.id = '<invoice_id>';Gaps en numeracion:
SELECT invoice_number, statusFROM invoicesWHERE business_id = '<business_id>' AND invoice_number IS NOT NULLORDER BY invoice_number;Series con conteo de facturas emitidas:
SELECT s.*, COUNT(i.id) as emitidasFROM invoice_series sLEFT JOIN invoices i ON i.invoice_series_id = s.id AND i.status != 'draft'WHERE s.business_id = '<business_id>'GROUP BY s.id;