Mosce ERP · Centro de ayuda
Contabilidad

Plantillas recurrentes

Programa transacciones contables para que se publiquen automáticamente en una cadencia fija - alquileres, salarios, depreciaciones manuales y similares.

Una plantilla recurrente vincula una plantilla de asientos a un calendario. Cada vez que vence el período, Mosce ERP materializa un asiento contable nuevo a partir de la plantilla y avanza al próximo período.

Tiempo de lectura: ~6 min

Cuándo usar esto

Usa Transacciones recurrentes para asientos que se repiten con regularidad: alquileres mensuales, primas de seguros, pagos de licencias anuales, provisiones trimestrales, salarios fijos. Cualquier asiento donde las cuentas y los montos sean estables a lo largo del tiempo es candidato.

Para depreciación de activos fijos, no uses plantillas recurrentes - ese módulo tiene su propia tarea programada.

Antes de empezar

  • Necesitas el permiso recurring-template:manage para crear y editar, y recurring-template:run para ejecutar manualmente. recurring-template:read para consultar.
  • Debe existir una plantilla de asientos con las cuentas y variables ya definidas. La plantilla recurrente la referencia y le pasa valores a sus variables.

Paso a paso

  1. Entra a Transacciones Recurrentes desde el menú de contabilidad.

  2. Pulsa Nueva plantilla. Completa:

    • Nombre (requerido) - ej. Alquiler oficina principal.
    • Descripción (opcional).
    • Plantilla de asiento (requerida) - selector que carga las plantillas existentes y muestra sus variables.
    • Variables - para cada {{variable}} definida en la plantilla, ingresa el valor que se va a usar (puede ser un monto, una cuenta, un texto). Estos valores son los defaults que se aplican en cada corrida.
    • Cadencia (requerida) - Diaria, Semanal, Mensual, Trimestral o Anual.
    • Intervalo (opcional, 1 - 12, por defecto 1) - combinado con la cadencia. Ej. Mensual + intervalo 2 = cada 2 meses.
    • Fecha de inicio (requerida) - la primera ejecución.
    • Fecha de fin (opcional) - última ejecución inclusive. Si no se especifica, corre indefinidamente.
    • Modo de publicación (opcional, por defecto Publicar automáticamente):
      • Publicar automáticamente - el asiento generado se crea con estado POSTED y entra al libro mayor de inmediato.
      • Solo borrador - el asiento queda en DRAFT para que alguien lo revise y publique a mano.
    • Nota (opcional) - memo aplicado a cada asiento generado.
  3. Pulsa Crear. La plantilla nace en estado Activa y su próxima ejecución (nextRunAt) se fija en la fecha de inicio.

Cómo se ejecuta

Una tarea programada barre todos los días las plantillas activas cuyo nextRunAt ya venció. Por cada una:

  • Carga las variables actuales y materializa un asiento desde la plantilla de asientos subyacente.
  • Si el modo es AUTO_POST, publica el asiento; si es DRAFT_ONLY, lo deja en borrador.
  • Registra una corrida (RecurringRun) con el resultado: Exitosa, Fallida, Omitida (período bloqueado), Omitida (sin período) u Omitida (pausada).
  • Avanza nextRunAt al siguiente período.

Cada corrida es idempotente por período: si por algún motivo se repite el barrido, el sistema bloquea la doble publicación con la combinación única (plantilla, períodoProgramado).

Ejecutar ahora

Si necesitas adelantar una corrida, abre el detalle y pulsa Ejecutar ahora. El diálogo te muestra el período programado y las variables actuales; debes marcar la casilla de confirmación y aceptar. El sistema usa el scheduledFor actual para preservar la idempotencia - si ya corrió ese período, te avisa que existe duplicado.

Pausar, reanudar, finalizar

  • Pausar: detiene las ejecuciones automáticas pero no mueve nextRunAt. Útil si vas de vacaciones o quieres congelar temporalmente.
  • Reanudar: si reanudas después de la fecha programada, Mosce ERP recalcula nextRunAt al máximo entre ahora y el original - así no se publican retroactivamente todos los períodos perdidos.
  • Finalizar: estado terminal e irreversible. La plantilla queda como Finalizada y no vuelve a correr.

Resultado esperado

En el detalle de la plantilla puedes ver:

  • Resumen - cadencia, próxima ejecución, última ejecución, estado, modo de publicación.
  • Historial de ejecuciones - una fila por corrida con su período, fecha de ejecución, estado y enlace al asiento generado (si aplica).
  • Vista previa - cómo quedaría el próximo asiento si se ejecutara ahora con las variables actuales.

Errores comunes

  • Las variables no aparecen en el formulario - la plantilla de asiento subyacente no tiene variables definidas o no se ha cargado todavía. Espera al mensaje "Cargando variables..." o revisa la plantilla de asientos.
  • No se puede cambiar la cadencia - una vez la plantilla tiene su primera corrida exitosa, los campos cadencia, intervalo y fecha de inicio quedan bloqueados para preservar el calendario histórico. Solo nombre, descripción, variables, fecha de fin, modo y memo siguen editables.
  • Omitida (período bloqueado) - el período fiscal de esa fecha está cerrado. Abre el período si aplica.
  • Omitida (sin período) - no existe un período fiscal que cubra la fecha programada.
  • El asiento generado salió en borrador - la plantilla está en modo DRAFT_ONLY. Cámbialo a AUTO_POST si quieres publicación inmediata.

Relacionados