Ir al contenido

Facturas

Ruta: /owner/invoices Crea, emite, envia y gestiona las facturas de tu negocio.

Vista general de la sección de Facturas en Factux — tabla de facturas, tarjetas de resumen y controles de gestión


La pantalla principal de Facturas muestra tres pestanas y tarjetas de resumen:

Pestanas: Facturas | Recurrentes | Albaranes

Tarjetas de resumen:

TarjetaColorDescripcion
TotalImporte total facturado
PagadasVerdeFacturas cobradas
PendientesAmarilloFacturas por cobrar
VencidasRojoFacturas fuera de plazo

Columnas de la tabla: Numero, Cliente, Fecha, Estado, VeriFactu, Total, Acciones

Filtros disponibles: numero/cliente/CIF, estado, tipo, fecha


FuncionDescripcionDocumentacion
Crear FacturaCrea borrador con cliente, conceptos e importesVer
Emitir FacturaAsigna numero y pasa a Enviada (+ VeriFactu)Ver
Enviar por EmailEnvia PDF al email del clienteVer
Duplicar FacturaCrea borrador copiando datos existentesVer
Rectificar / AbonarCorreccion o devolucion vinculada a la originalVer
Cambiar EstadoMarca como pagada, vencida o anuladaVer
Exportar FacturasDescarga periodo en Excel o ZIP con PDFsVer
Descargar PDFDescarga PDF de factura individualVer

┌──────────┐
│ Borrador │
└────┬─────┘
│ Emitir
┌────▼─────┐
│ Enviada │───────────────┐
└────┬─────┘ │
│ Vence │
┌────▼─────┐ │
│ Vencida │ │
└────┬─────┘ │
│ │
┌────▼─────┐ ┌────▼─────┐
│ Pagada │ │ Anulada │
│ FINAL │ │ FINAL │
└──────────┘ └──────────┘

Transiciones permitidas:

DesdeHacia
BorradorEnviada, Pagada, Anulada
EnviadaPagada, Vencida, Anulada
VencidaPagada, Anulada
Pagada(estado final)
Anulada(estado final)

ALERTA: Pagada y Anulada son estados finales irreversibles.


Detalles técnicos
TablaColumnas principalesFK
invoicesid, business_id, customer_id, invoice_number, status, total_amountcustomers, businesses, invoice_series
invoice_itemsid, invoice_id, description, quantity, unit_price, tax_rate, line_totalinvoices
invoice_seriesid, business_id, prefix, current_number, paddingbusinesses
invoice_payment_methodsinvoices
PoliticaRegla
invoices_business_isolationbusiness_id = usuario autenticado
invoice_items_via_invoiceAcceso via factura padre
invoice_series_businessbusiness_id = usuario autenticado
FuncionTriggerDescripcion
send-invoice-emailEnvio emailGenera PDF + envia via SendGrid
generate-invoice-pdfDescarga/envioHTML a PDF (jsPDF + html2canvas)
verifactu-send-invoiceEmision VeriFactuCSV, AEAT, QR
verifactu-retryRetryReintento envio AEAT
check-overdue-invoicesCron diarioMarca facturas vencidas

Factura completa con cliente y serie:

SELECT i.*, c.name, c.cif_nif, s.prefix, s.name as serie
FROM invoices i
LEFT JOIN customers c ON i.customer_id = c.id
LEFT JOIN invoice_series s ON i.invoice_series_id = s.id
WHERE i.id = '<invoice_id>';

Gaps en numeracion:

SELECT invoice_number, status
FROM invoices
WHERE business_id = '<business_id>'
AND invoice_number IS NOT NULL
ORDER BY invoice_number;

Series con conteo de facturas emitidas:

SELECT s.*, COUNT(i.id) as emitidas
FROM invoice_series s
LEFT JOIN invoices i ON i.invoice_series_id = s.id AND i.status != 'draft'
WHERE s.business_id = '<business_id>'
GROUP BY s.id;