Skip to main content

Lifecycle · Article 2.6

Estado: Anticipo pagado — el trabajo puede comenzar

El anticipo ha llegado (webhook de Stripe o confirmación manual). Clozo cambia el estado, encola el PDF del recibo del anticipo y arranca un proceso en segundo plano para prerenderizar la factura final. Puede empezar a trabajar.

Where this fits in the lifecycle

Tap any card to open its detail article.

Para la mayoría de autónomos, este es el momento en el que el proyecto arranca oficialmente. Tiene papel firmado, dinero del anticipo en el banco, y el cliente está comprometido. La interfaz de Clozo cambia sutilmente: el banner del panel dice ahora "Anticipo pagado — trabajo en curso", el panel de acciones muestra los botones relevantes para la fase de trabajo (marcar hitos, emitir factura final, marcar como completada) y se pausan los recordatorios programados.

Step by step

  1. Anticipo confirmado.

    O bien llega el webhook de Stripe (automático, ~2 s tras éxito en tarjeta) o usted hace clic en Marcar anticipo como pagado manualmente para SEPA / efectivo / pagos fuera de canal (se le pedirá una nota de referencia y la fecha).

  2. El estado pasa a Anticipo pagado.

    Se registra un evento en la línea de tiempo con el método de pago y el importe. El recibo (REC-) se genera y se envía por correo automáticamente.

  3. En segundo plano: la factura final se prerrenderiza.

    No hace falta ninguna indicación en la interfaz; verá el resultado la próxima vez que pulse Emitir factura final.

  4. El estado avanza automáticamente a En curso.

    Cuando prepare_final_invoice termina con éxito, el estado avanza. Si falla 5 veces, el estado se queda en Anticipo pagado y aparece un botón de recuperación.

  5. Empiece el trabajo.

    Registre tiempos, alcance hitos, comuníquese con el cliente. Clozo no hace seguimiento del trabajo en curso (no somos una herramienta de gestión de proyectos); cuando termine, haga clic en Marcar como completada y emitir factura final.

La insignia ámbar Anticipo pagado pasa a la ámbar En curso automáticamente. La línea de tiempo muestra: evento de pago del anticipo, evento de generación del recibo, evento de prerenderizado de la factura final, evento de cambio de estado. El panel de acciones se transforma: desaparecen los botones relativos al anticipo y aparecen los de fase de trabajo (Emitir factura final, Marcar como completada, Registrar tiempo en este proyecto).

Why this works this way

Aquí entra en juego un flujo asíncrono que la mayoría de usuarios no nota. En el instante en que se dispara el evento de anticipo pagado, Clozo encola una tarea Celery prepare_final_invoice.delay() que renderiza el PDF de la factura final (Schlussrechnung / factura de saldo) en segundo plano y lo guarda en R2. ¿Por qué prerenderizar? Porque cuando más tarde haga clic en Emitir factura final y el correo deba salir, la generación pesada del PDF ya está hecha — la tarea de correo solo adjunta el archivo prerenderizado. Esto evita un retraso de 30 a 60 segundos (y posibles fallos de Gotenberg) en el momento en que el cliente está esperando el correo.

Si prepare_final_invoice falla (p. ej., un fallo puntual de Gotenberg), reintenta 5 veces con backoff exponencial. Si los cinco fallan, la propuesta se queda en Anticipo pagado (en lugar de pasar automáticamente a En curso), y aparece un botón Reintentar factura final en el menú Acciones. Sentry también dispara una alerta a operaciones.

Troubleshooting

Keep reading