Skip to content

Configuración de Límites de Período de Facturación

Módulo: Membresias Tipo: Process Estado: Implementado Fecha Creación: 2026-03-19


Descripción

Problema que resuelve

El proceso de facturación por lotes permite indicar cualquier período (mes y año) al ejecutarse. Sin restricciones, un operador podría facturar por error un período muy alejado del esperado — por ejemplo, facturar el mes de junio del año anterior cuando en realidad debería facturar el mes actual.

Adicionalmente, algunas organizaciones trabajan bajo la modalidad de mes vencido: cobran a sus socios en el mes corriente por el servicio consumido el mes anterior. En este modelo, el período de facturación habitual no es el mes actual sino el mes anterior, y el sistema debe reflejarlo automáticamente.

Sin esta configuración, el sistema no tiene forma de:

  • Sugerir el período correcto al abrir el formulario de facturación
  • Restringir la selección a un rango razonable de períodos
  • Rechazar períodos claramente fuera de lo esperado antes de procesar el lote

Solución implementada

Se implementó un mecanismo de configuración de límites de período que permite:

  1. Definir el período base: la organización configura si opera en "mes actual" o "mes vencido" (mes anterior). Este valor determina el período que el sistema sugiere por defecto al abrir el formulario de facturación.
  2. Definir la tolerancia: se configura cuántos meses hacia atrás y hacia adelante del período base son válidos para facturar. Los períodos fuera de este rango son rechazados.
  3. Restricción visual en el formulario: el selector de período se limita automáticamente al rango permitido, impidiendo que el operador seleccione meses fuera del margen configurado.
  4. Validación en el servidor: el backend rechaza con un mensaje descriptivo cualquier solicitud de facturación cuyo período esté fuera del rango calculado.
  5. Configuración por sucursal: cada sucursal puede tener sus propios parámetros, de forma independiente.

Valor de negocio

  • Reducción de errores operativos: el operador ya no puede facturar accidentalmente un período incorrecto o muy alejado del esperado
  • Soporte para modalidad mes vencido: organizaciones que cobran por el mes anterior tienen el período correcto sugerido por defecto
  • Feedback claro ante errores: si se intenta facturar un período inválido, el sistema indica explícitamente cuál es el rango permitido
  • Configuración flexible: el administrador puede ajustar los límites según las necesidades operativas de cada sucursal

Proceso de Negocio

Concepto: Período Base

El período base es el mes de referencia para calcular el rango de períodos válidos. Se determina en el momento en que el operador abre el formulario de facturación (no en el momento de la configuración).

ConfiguraciónPeríodo base calculadoEjemplo (hoy = marzo 2026)
Mes actual (0)El mes en cursoMarzo 2026
Mes vencido (1)El mes inmediatamente anterior al actualFebrero 2026

Concepto: Rango Permitido

A partir del período base, el sistema calcula un rango de períodos válidos aplicando la tolerancia configurada:

Período mínimo = período base - N meses
Período máximo = período base + N meses

Donde N es la tolerancia configurada (en meses).

Ejemplo completo:

  • Configuración: mes vencido, tolerancia 2 meses
  • Fecha actual: marzo 2026
  • Período base: febrero 2026
  • Rango permitido: diciembre 2025 a abril 2026
  • Períodos aceptados: 12/2025, 01/2026, 02/2026, 03/2026, 04/2026
  • Períodos rechazados: noviembre 2025 o anteriores; mayo 2026 o posteriores

Flujo: Configuración por el Administrador

mermaid
flowchart TD
    A["Administrador accede a\nConfig > Membresias"] --> B["Localiza sección de\nlímites de período"]
    B --> C["Selecciona modalidad:\nMes actual o Mes vencido"]
    C --> D["Ingresa tolerancia\n(cantidad de meses)"]
    D --> E["Guarda la configuración"]
    E --> F["El sistema persiste los\nparámetros para la sucursal"]
    F --> G["Los nuevos parámetros\naplicarán al próximo\nproceso de facturación"]

Flujo: Uso por el Operador de Facturación

mermaid
flowchart TD
    A["Operador abre el formulario\nde Facturación por Lotes"] --> B["Sistema consulta la configuración\nde límites de período"]
    B --> C["Sistema calcula período base\nsegún modalidad configurada"]
    C --> D["Campo período se inicializa\ncon el período base"]
    D --> E["Selector de período restringido\nal rango permitido"]
    E --> F{"Operador selecciona\nun período"}
    F -->|Dentro del rango| G["Proceso continúa\nnormalmente"]
    F -->|Fuera del rango| H["Sistema rechaza con mensaje:\nindica el rango permitido"]

Reglas de Negocio

RN-001: Cálculo del período base según modalidad

Descripción: El período base se determina en el momento de uso (no en el de configuración) según la modalidad activa.

Modalidades:

  • Mes actual (0): el período base es el mes en que se ejecuta el proceso
  • Mes vencido (1): el período base es el mes inmediatamente anterior al mes en que se ejecuta el proceso

Ejemplo:

  • Fecha de ejecución: marzo 2026
  • Mes actual → período base: marzo 2026
  • Mes vencido → período base: febrero 2026

RN-002: Rango de períodos válidos

Descripción: Solo se pueden facturar períodos dentro del rango [base - N, base + N], siendo N la tolerancia configurada. El rango es inclusivo en ambos extremos.

Condición: El operador indica un período en el formulario de facturación.

Acción:

  • Si el período está dentro del rango: el sistema permite continuar
  • Si el período está fuera del rango: el sistema rechaza la operación e informa el rango válido

Ejemplo (base = febrero 2026, tolerancia = 2 meses):

  • Diciembre 2025 → aceptado (límite inferior)
  • Enero 2026 → aceptado
  • Febrero 2026 → aceptado (período base)
  • Marzo 2026 → aceptado
  • Abril 2026 → aceptado (límite superior)
  • Noviembre 2025 → rechazado
  • Mayo 2026 → rechazado

RN-003: La restricción aplica tanto para facturación como para refacturación

Descripción: Los límites de período se aplican de igual forma independientemente de si la operación es facturación nueva o refacturación.

Justificación: Una refacturación errónea en un período muy alejado es tan problemática como una facturación nueva en ese período. La configuración protege ambas operaciones.


RN-004: Valores por defecto

Descripción: Cuando la configuración no ha sido establecida explícitamente, el sistema opera con valores por defecto conservadores.

Valores por defecto:

  • Modalidad: mes actual (0)
  • Tolerancia: 2 meses

Resultado con defaults (fecha: marzo 2026):

  • Período base: marzo 2026
  • Rango permitido: enero 2026 a mayo 2026

RN-005: Configuración independiente por sucursal

Descripción: Cada sucursal puede tener su propia configuración de límites de período, independiente de otras sucursales de la misma empresa.

Justificación: Distintas sucursales pueden operar con modalidades de cobro diferentes. Una sucursal que cobra por adelantado (mes actual) y otra que cobra el mes vencido pueden coexistir en la misma empresa con configuraciones distintas.


Casos de Uso

UC-001: Administrador configura la empresa para modalidad mes vencido

Actor: Administrador del sistema

Objetivo: Configurar la sucursal para que el formulario de facturación sugiera por defecto el mes anterior y restrinja el rango de períodos válidos.

Precondiciones:

  • Usuario autenticado con permisos de administración de configuración
  • La sucursal opera bajo modalidad mes vencido (cobra lo consumido el mes anterior)

Flujo principal:

  1. El administrador accede a Config > Membresias
  2. El administrador localiza la sección de configuración de límites de período
  3. El administrador selecciona "Mes anterior" en el campo de modalidad
  4. El administrador establece la tolerancia (ejemplo: 2 meses)
  5. El administrador guarda la configuración
  6. El sistema confirma que los parámetros fueron guardados

Postcondiciones:

  • La próxima vez que un operador abra el formulario de facturación, el campo período tendrá por defecto el mes anterior al actual
  • Solo se podrán seleccionar períodos dentro del rango calculado

UC-002: Operador intenta facturar un período fuera del rango

Actor: Operador de facturación

Objetivo: (No deseado) El operador selecciona manualmente un período incorrecto, fuera del rango permitido.

Precondiciones:

  • Configuración: mes vencido, tolerancia 2 meses
  • Fecha actual: marzo 2026
  • Rango permitido: diciembre 2025 a abril 2026

Flujo:

  1. El operador abre el formulario de facturación por lotes
  2. El campo período muestra por defecto febrero 2026
  3. El operador cambia manualmente el período a octubre 2025
  4. El sistema detecta que octubre 2025 está fuera del rango permitido
  5. El sistema rechaza la operación e informa: "El período seleccionado no está dentro del rango permitido. Rango válido: 12/2025 a 04/2026"
  6. La facturación no se ejecuta

Postcondiciones:

  • No se genera ningún lote de facturación
  • El operador recibe un mensaje claro indicando el rango válido

UC-003: Operador factura dentro del rango permitido

Actor: Operador de facturación

Objetivo: Ejecutar la facturación mensual con el período sugerido por el sistema.

Precondiciones:

  • Configuración: mes vencido, tolerancia 2 meses
  • Fecha actual: marzo 2026

Flujo:

  1. El operador abre el formulario de facturación por lotes
  2. El campo período muestra automáticamente febrero 2026 (mes vencido)
  3. El operador ingresa el rango de socios
  4. El operador confirma la ejecución sin modificar el período
  5. El sistema valida que febrero 2026 está dentro del rango (diciembre 2025 a abril 2026)
  6. La facturación se procesa normalmente

UC-004: Administrador amplía la tolerancia para permitir facturación de períodos históricos

Actor: Administrador del sistema

Objetivo: Permitir temporalmente la facturación de un período más lejano de lo usual para corregir una omisión histórica.

Flujo:

  1. El administrador detecta que no se facturó a un grupo de socios en un período anterior
  2. El administrador accede a Config > Membresias
  3. El administrador aumenta la tolerancia de 2 a 5 meses
  4. El operador puede ahora facturar ese período histórico
  5. Una vez corregida la omisión, el administrador restablece la tolerancia a 2 meses

Criterios de Aceptación

Configuración

  • [ ] AC-001: El administrador puede acceder a la configuración de límites de período desde Config > Membresias
  • [ ] AC-002: El sistema permite seleccionar entre "Mes actual" y "Mes anterior" como modalidad
  • [ ] AC-003: El sistema permite ingresar un número entero positivo como tolerancia en meses
  • [ ] AC-004: El sistema rechaza valores de tolerancia de 0 o negativos con un mensaje de validación
  • [ ] AC-005: Los cambios se persisten correctamente y aplican a la próxima apertura del formulario de facturación

Formulario de facturación

  • [ ] AC-006: Al abrir el formulario de facturación, el campo período muestra el período base calculado según la modalidad configurada
  • [ ] AC-007: Con modalidad "Mes actual", el campo período muestra el mes en curso
  • [ ] AC-008: Con modalidad "Mes vencido", el campo período muestra el mes anterior al actual
  • [ ] AC-009: El selector de período no permite seleccionar meses fuera del rango [base - N, base + N]

Validación en el proceso

  • [ ] AC-010: Un período dentro del rango es aceptado y el proceso de facturación continúa normalmente
  • [ ] AC-011: Un período fuera del rango es rechazado con un mensaje que indica el rango válido
  • [ ] AC-012: La restricción aplica tanto para facturación nueva como para refacturación

Dependencias

Funcionalidades relacionadas

  • Facturación por Lotes: proceso principal al que aplica esta configuración
  • Config > Membresias: sección de configuración del sistema donde se editan los parámetros

Historial de Cambios

FechaVersiónAutorDescripción
2026-03-191.0SistemaCreación del documento — funcionalidad nueva