Convertir a Factura
Exportar contenido
Transforma un presupuesto aceptado o una factura proforma en una factura definitiva con VeriFactu.
- Abre el presupuesto o proforma que deseas convertir.
- Clic en el botón “Convertir a Factura” (icono de FileText).
- Se abre un modal con:
- Fecha de Factura (por defecto: hoy)
- Fecha de Vencimiento (por defecto: +30 días)
- Serie de Facturación (selector de series activas)
- Revisa los datos y clic en “Convertir a Factura” o “Convertir como Borrador” (si no tienes VeriFactu).
- El sistema:
- Copia todas las líneas del presupuesto
- Crea una factura nueva
- Marca el presupuesto como “Aceptado”
- Vincula el presupuesto a la factura creada
¿Cómo sé que lo hice bien?
Sección titulada «¿Cómo sé que lo hice bien?»- Toast de confirmación: “Factura creada” con botón “Ver Factura”.
- El presupuesto muestra estado “Aceptado” con icono de vínculo a factura.
- La factura aparece en el módulo de Facturas con estado “Borrador” o “Enviada” (según VeriFactu).
Comportamiento con VeriFactu
Sección titulada «Comportamiento con VeriFactu»| VeriFactu | Estado factura | Proceso |
|---|---|---|
| Activado | Enviada | Factura emitida directamente con registro AEAT |
| No activado | Borrador | Factura guardada como borrador, editable |
ALERTA: Si VeriFactu está activado, la factura se emite directamente y es inmutable. Solo podrás crear facturas rectificativas.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa | Solución |
|---|---|---|
| ”Selecciona un negocio” | No hay negocio activo | Selecciona un negocio en el selector superior |
| ”No se recibió la factura del servidor” | Error en edge function | Revisa logs de Supabase Functions |
| ”No se pudo convertir el presupuesto” | Error de permisos o datos faltantes | Verifica que el presupuesto tiene todos los campos completos |
Información técnica
Validaciones:
| Código | Regla |
|---|---|
| VAL-01 | quote.customer_id NOT NULL |
| VAL-02 | invoice_date >= quote.issue_date |
| VAL-03 | due_date >= invoice_date |
| VAL-04 | business_id NOT NULL |
| VAL-05 | quote_items count >= 1 |
Componente principal: ConvertToInvoiceModal.tsx
Flujo de conversión:
- Obtener líneas del presupuesto (
quote_items) - Preparar datos de factura con fechas nuevas y serie seleccionada
- Llamar a Edge Function
create-invoice - Actualizar presupuesto:
status= ‘accepted’,converted_to_invoice_id= invoice.id
Queries de diagnóstico:
-- Presupuestos convertidos a facturaSELECT q.quote_number, q.status, i.invoice_number, i.status as invoice_statusFROM quotes qINNER JOIN invoices i ON q.converted_to_invoice_id = i.idWHERE q.business_id = '<business_id>';Edge Functions:
create-invoice- Crear factura con VeriFactuwhatsapp-convert-quote-to-invoice- Conversión vía WhatsApp