Ir al contenido

Generar Factura Manualmente

Genera una factura desde una plantilla recurrente fuera del calendario programado, sin alterar la proxima fecha de generacion automatica.

  1. Ve a Facturas y selecciona la pestana Recurrentes.
  2. Localiza la plantilla desde la que deseas generar la factura.
  3. Clic en el boton “Generar Ahora” en la columna Acciones.
  4. Confirma la accion en el dialogo de confirmacion.
  5. La factura se genera con los datos actuales de la plantilla.
Caso de usoDescripcion
Facturacion adelantadaEl cliente solicita la factura antes de la fecha programada
Prueba de plantillaVerificar que la plantilla genera correctamente antes de la primera ejecucion automatica
Facturacion irregularNecesitas una factura adicional fuera del ciclo habitual
Plantilla pausadaGenerar una factura puntual desde una plantilla que esta temporalmente pausada
  • Toast de confirmacion: “Factura generada correctamente”.
  • La factura aparece en la pestana Facturas (como borrador o emitida, segun la configuracion de la plantilla).
  • En el historial de la plantilla aparece la nueva entrada con la fecha de generacion manual.
  • La proxima fecha de generacion no ha cambiado.
MensajeCausaSolucion
”La plantilla esta finalizada”La plantilla alcanzo su fecha de finCrea una nueva plantilla o elimina la fecha de fin
”Error al generar factura”Problema temporal del servidorEspera unos segundos y reintenta
”Cliente inactivo”El cliente de la plantilla fue desactivadoReactiva el cliente o actualiza la plantilla con otro cliente
Detalles técnicos

Proceso de generacion manual:

  1. Se leen los datos de recurring_invoices y recurring_invoice_items.
  2. Se crea un registro en invoices con status = 'draft' (o status = 'sent' si auto_emit = true).
  3. Se copian los items a invoice_items.
  4. Se registra la generacion en recurring_invoice_history.
  5. No se modifica next_generation_date en recurring_invoices.

Query de diagnostico:

-- Ultima factura generada manualmente
SELECT rih.generated_at, i.invoice_number, i.status
FROM recurring_invoice_history rih
JOIN invoices i ON rih.invoice_id = i.id
WHERE rih.recurring_invoice_id = '<recurring_invoice_id>'
ORDER BY rih.generated_at DESC
LIMIT 1;