| name | rollback-factura |
| description | Lista batches de facturacion mensual y revierte uno via rollback-fact-mensual.php tras confirmacion explicita. Usar cuando el usuario diga "revertir factura", "rollback batch", "deshacer facturacion", "anular batch" o similar. |
Skill: rollback-factura
Revierte un batch de facturacion mensual creado por init-fact-mensual.php. Operacion destructiva: borra/anula facturas creadas en ese batch. Requiere confirmacion explicita.
Paso 1 — Listar batches
cd /var/www/ispexperts && php list-fact-batches.php
Muestra los ultimos 10 batches (id, fecha, periodo, cantidad de facturas, estado). Si el usuario quiere ver todos:
cd /var/www/ispexperts && php list-fact-batches.php --all
Paso 2 — Identificar el batch
Si el usuario ya dio el batch_id, salta al paso 3.
Si no, pregunta cual quiere revertir. Antes de proceder, muestra el detalle:
cd /var/www/ispexperts && php list-fact-batches.php <batch_id>
Paso 3 — Confirmar (DOS VECES)
Esta es una operacion destructiva. Muestra al usuario:
- Batch ID
- Periodo
- Cantidad de facturas afectadas
- Total de dinero involucrado (suma de
valorf)
Pregunta dos veces:
- "Vas a revertir el batch #N que afecta X facturas por $Y. ¿Confirmas?"
- Si responde si: "Confirma de nuevo escribiendo el numero del batch: N"
Solo si el usuario tipea correctamente el numero del batch, procede.
Paso 4 — Ejecutar rollback
cd /var/www/ispexperts && php rollback-fact-mensual.php <batch_id>
Paso 5 — Verificar
Tras el rollback, vuelve a correr list-fact-batches.php <batch_id> para confirmar que el estado cambio a revertido. Reporta resultado al usuario.
Reglas estrictas
- Nunca ejecutes rollback sin las dos confirmaciones del paso 3.
- Nunca revertir un batch que ya esta marcado como revertido — el script lo rechaza, pero confirma con
list-fact-batches.php <id> antes.
- Si el rollback falla a mitad, no lo reejecutes: muestra el output, consulta el estado en BD y reporta al usuario antes de cualquier accion adicional.