Skip to content

Forzar Modo de Facturacion por Defecto

Modulo: General (Configuracion) Tipo: Resource Estado: Implementado Fecha Creacion: 2026-01-13 Fecha Implementacion: 2026-01-13


Descripcion

Problema de Negocio Actual

El sistema de facturacion opera en tres modos distintos que determinan el destino y comportamiento de las transacciones:

  1. Modo Prueba: Las transacciones se registran en una base de datos de prueba, sin afectar datos productivos
  2. Modo Oficial: Las transacciones se registran en la base de datos de produccion
  3. Modo Consolidados: Las transacciones se procesan de forma consolidada

Actualmente, existe una configuracion llamada fact-defecto que establece cual de estos modos debe ser el predeterminado cuando un usuario ingresa a las vistas de facturacion. Sin embargo, esta configuracion presenta las siguientes limitaciones:

  1. Cache local persistente: El sistema guarda el modo seleccionado en almacenamiento local del navegador y utiliza este valor de forma indefinida, incluso si la configuracion del servidor ha cambiado.

  2. Configuracion ignorada: Si un administrador modifica la configuracion fact-defecto en el servidor, los usuarios que ya tienen un valor en cache no veran reflejado el cambio hasta que limpien manualmente su cache del navegador.

  3. Inconsistencia operativa: Diferentes usuarios pueden estar operando en diferentes modos sin que esto sea evidente, generando confusion y potenciales errores en las transacciones.

  4. Dificultad de control: Los administradores no tienen forma de asegurar que todos los usuarios inicien sus sesiones de facturacion en el modo correcto segun las politicas de la organizacion.

  5. Riesgo de operacion incorrecta: Un usuario podria estar trabajando en modo Prueba cuando deberia estar en Oficial (o viceversa), sin darse cuenta, lo que podria resultar en transacciones registradas en el lugar incorrecto.

Necesidad del Negocio

La organizacion requiere un mecanismo que permita a los administradores forzar que las vistas de facturacion siempre utilicen el modo configurado en el servidor como punto de partida, ignorando cualquier valor almacenado en cache local. Esto es especialmente importante en escenarios como:

  • Periodos de auditoria: Donde se requiere que todos operen en modo Oficial
  • Capacitacion de personal: Donde se requiere que todos operen en modo Prueba
  • Cambios de politica operativa: Donde se necesita aplicar un cambio de modo de forma inmediata a todos los usuarios
  • Control de calidad: Para asegurar consistencia en las operaciones diarias

La solucion debe ser configurable por sucursal o caja, permitiendo que algunas operaciones requieran el modo forzado mientras otras pueden mantener el comportamiento actual basado en cache.

Valor de Negocio

La implementacion de esta funcionalidad aportara los siguientes beneficios:

  1. Control administrativo: Los administradores podran asegurar que las politicas de modo de facturacion se apliquen de forma consistente.

  2. Reduccion de errores operativos: Al forzar el modo correcto, se minimizan las posibilidades de que transacciones se registren en el destino incorrecto.

  3. Consistencia operativa: Todos los usuarios de una sucursal/caja iniciaran sus sesiones de facturacion con el mismo modo configurado.

  4. Agilidad en cambios de politica: Los cambios de modo configurado se aplicaran inmediatamente a todos los usuarios afectados.

  5. Trazabilidad mejorada: Al tener control sobre el modo inicial, es mas facil rastrear y auditar las transacciones.

  6. Flexibilidad: La configuracion por tenant permite adaptar el comportamiento segun las necesidades especificas de cada sucursal o caja.

Contexto en el Proceso de Negocio

Esta funcionalidad se integra en el flujo de trabajo de facturacion de la siguiente manera:

Flujo actual (sin forzar modo):

  1. El usuario accede a la vista de facturacion
  2. El sistema verifica si existe un modo guardado en cache local
  3. Si existe, utiliza el modo de cache; si no existe, consulta la configuracion del servidor
  4. El usuario opera en el modo determinado
  5. Cualquier cambio de modo manual se guarda en cache para futuras sesiones

Flujo con modo forzado habilitado:

  1. El usuario accede a la vista de facturacion
  2. El sistema consulta la configuracion de "forzar modo defecto"
  3. Si esta habilitada, consulta la configuracion fact-defecto del servidor (ignorando cache)
  4. El sistema establece el modo segun la configuracion del servidor
  5. El usuario puede cambiar de modo manualmente durante la sesion (atajo Alt+M)
  6. Los cambios manuales son temporales y se pierden al recargar la pagina

Entidades de Negocio

Configuracion de Forzar Modo Defecto

Representa una opcion de configuracion que determina si las vistas de facturacion deben ignorar el cache local y siempre utilizar el modo configurado en el servidor.

Caracteristicas de negocio:

AtributoDescripcion
NombreForzar Modo Defecto
Claveforzar-modo-defecto
Valores posiblesDeshabilitado (usar cache) o Habilitado (forzar desde servidor)
Valor por defectoDeshabilitado (para compatibilidad con comportamiento actual)
AmbitoPor tenant (sucursal/caja)
Modificable porAdministradores del sistema

Relacion con Configuracion de Modo Defecto

Esta configuracion trabaja en conjunto con la configuracion existente fact-defecto:

ConfiguracionProposito
fact-defectoDefine cual es el modo de facturacion predeterminado (Prueba/Oficial/Consolidados)
forzar-modo-defectoDefine si el modo predeterminado se aplica siempre (ignorando cache) o solo cuando no hay cache

Matriz de comportamiento:

forzar-modo-defectoExiste cache localResultado
DeshabilitadoSiUsa el modo de cache
DeshabilitadoNoUsa fact-defecto del servidor
HabilitadoSiIgnora cache, usa fact-defecto del servidor
HabilitadoNoUsa fact-defecto del servidor

Reglas de Negocio

RN-001: Valor por defecto para compatibilidad

Descripcion: La configuracion forzar-modo-defecto tiene como valor por defecto "Deshabilitado" para mantener el comportamiento actual del sistema.

Condicion: Se crea una nueva sucursal/caja o la configuracion no ha sido establecida explicitamente.

Accion: El sistema asume el valor "Deshabilitado", permitiendo que las vistas de facturacion utilicen el cache local si existe.

Fundamento: Garantiza que los tenants existentes no experimenten cambios de comportamiento inesperados tras la implementacion de esta funcionalidad.


RN-002: Aplicacion exclusiva a vistas de facturacion

Descripcion: La configuracion solo afecta a las vistas de entrada de facturacion del modulo de ventas.

Condicion: El usuario accede a la vista de facturacion (ventas > bases > facturacion).

Accion:

  • Si forzar-modo-defecto esta habilitado: El sistema consulta fact-defecto del servidor
  • Si forzar-modo-defecto esta deshabilitado: El sistema utiliza el cache local si existe

Fundamento: Limita el alcance de la configuracion a las areas donde el modo de facturacion es relevante, sin afectar otras funcionalidades del sistema.


RN-003: Consulta al servidor cuando modo forzado esta habilitado

Descripcion: Cuando forzar-modo-defecto esta habilitado, el sistema siempre consulta la configuracion fact-defecto del servidor al cargar la vista de facturacion.

Condicion:

  • Usuario accede a vista de facturacion
  • Configuracion forzar-modo-defecto esta habilitada para el tenant actual

Accion:

  • El sistema obtiene el valor de fact-defecto desde el servidor
  • Se aplica el modo correspondiente (Prueba, Oficial o Consolidados)
  • El cache local es ignorado para la determinacion del modo inicial

Fundamento: Asegura que la configuracion del servidor siempre prevalezca, permitiendo control centralizado del modo de operacion.


RN-004: Uso de cache cuando modo forzado esta deshabilitado

Descripcion: Cuando forzar-modo-defecto esta deshabilitado, el sistema utiliza el cache local si existe, manteniendo el comportamiento actual.

Condicion:

  • Usuario accede a vista de facturacion
  • Configuracion forzar-modo-defecto esta deshabilitada para el tenant actual

Accion:

  • El sistema verifica si existe un modo guardado en cache local
  • Si existe cache: utiliza el modo almacenado
  • Si no existe cache: consulta fact-defecto del servidor

Fundamento: Preserva el comportamiento actual para tenants que no requieren control centralizado del modo.


RN-005: Cambio manual de modo durante la sesion

Descripcion: Independientemente de la configuracion de forzar-modo-defecto, los usuarios pueden cambiar el modo de facturacion manualmente durante la sesion utilizando el atajo de teclado.

Condicion: Usuario utiliza el atajo de teclado Alt+M durante una sesion de facturacion.

Accion:

  • El sistema cambia al siguiente modo disponible (Prueba -> Oficial -> Consolidados -> Prueba)
  • El cambio se aplica inmediatamente a la sesion actual
  • La interfaz refleja el nuevo modo seleccionado

Fundamento: Permite flexibilidad operativa para situaciones excepcionales donde el usuario necesita operar temporalmente en un modo diferente.


RN-006: Temporalidad de cambios manuales con modo forzado

Descripcion: Cuando forzar-modo-defecto esta habilitado, los cambios manuales de modo son temporales y se pierden al recargar la pagina.

Condicion:

  • forzar-modo-defecto esta habilitado
  • Usuario cambio manualmente el modo durante la sesion
  • Usuario recarga la pagina o cierra y vuelve a abrir la vista de facturacion

Accion:

  • El cambio manual no se persiste en cache local
  • Al recargar, el sistema consulta nuevamente fact-defecto del servidor
  • El modo se restablece al configurado en el servidor

Fundamento: Asegura que los cambios manuales no violen las politicas de la organizacion de forma permanente; los administradores mantienen el control del modo predeterminado.


RN-007: Aislamiento multi-tenant

Descripcion: La configuracion forzar-modo-defecto se almacena y aplica de forma independiente para cada tenant (sucursal/caja).

Condicion: Multiples sucursales o cajas operan en el mismo sistema.

Accion:

  • Cada tenant tiene su propia configuracion de forzar-modo-defecto
  • Un cambio en la configuracion de un tenant no afecta a otros tenants
  • La configuracion se aplica segun el contexto del tenant activo del usuario

Fundamento: Respeta la arquitectura multi-tenant del sistema, permitiendo que cada operacion tenga sus propias politicas.


RN-008: Dependencia de configuracion fact-defecto

Descripcion: Para que forzar-modo-defecto sea efectivo, debe existir una configuracion valida de fact-defecto.

Condicion: forzar-modo-defecto esta habilitado pero fact-defecto no esta configurado.

Accion:

  • El sistema utiliza el modo por defecto del sistema (generalmente Oficial)
  • Se registra una advertencia para revision administrativa

Fundamento: Garantiza que el sistema siempre tenga un modo de operacion definido, incluso si la configuracion esta incompleta.


Casos de Uso

CU-001: Administrador habilita modo forzado para una sucursal

Actor: Administrador del Sistema

Objetivo: Configurar una sucursal para que siempre inicie las sesiones de facturacion en el modo configurado en el servidor.

Precondiciones:

  • Usuario autenticado con permisos de administracion
  • Acceso al modulo de configuracion del sistema
  • Sucursal existente en el sistema

Flujo principal:

  1. El administrador accede al modulo de configuracion del sistema
  2. El administrador navega a la configuracion de la sucursal deseada
  3. El administrador localiza la opcion "Forzar Modo Defecto"
  4. El administrador activa la opcion (cambia de Deshabilitado a Habilitado)
  5. El administrador guarda los cambios
  6. El sistema confirma que la configuracion se ha aplicado exitosamente

Postcondiciones:

  • La configuracion forzar-modo-defecto esta habilitada para la sucursal
  • Todos los usuarios de esa sucursal, al acceder a facturacion, veran el modo configurado en fact-defecto
  • Los cambios manuales de modo seran temporales para esa sucursal

Flujos alternativos:

  • Error de permisos: Si el usuario no tiene permisos de administracion, el sistema muestra un mensaje de acceso denegado
  • Sucursal no existe: Si la sucursal fue eliminada durante la operacion, el sistema muestra un error

CU-002: Usuario accede a facturacion con modo forzado habilitado

Actor: Usuario de Ventas

Objetivo: Iniciar una sesion de facturacion donde el modo es determinado por la configuracion del servidor.

Precondiciones:

  • Usuario autenticado con permisos de facturacion
  • Configuracion forzar-modo-defecto habilitada para el tenant actual
  • Configuracion fact-defecto establecida (ejemplo: Prueba)

Flujo principal:

  1. El usuario accede a la vista de facturacion (ventas > bases > facturacion)
  2. El sistema verifica que forzar-modo-defecto esta habilitado
  3. El sistema consulta el valor de fact-defecto desde el servidor
  4. El sistema establece el modo de facturacion segun la configuracion (ejemplo: Prueba)
  5. La interfaz muestra el selector de modo con el valor configurado
  6. El usuario puede proceder con las operaciones de facturacion

Postcondiciones:

  • La sesion de facturacion inicia en el modo configurado en el servidor
  • El cache local no influye en el modo inicial
  • El usuario puede ver claramente en que modo esta operando

Flujos alternativos:

  • fact-defecto no configurado: El sistema utiliza el modo por defecto (Oficial) y registra una advertencia

CU-003: Usuario cambia modo manualmente durante sesion con modo forzado

Actor: Usuario de Ventas

Objetivo: Cambiar temporalmente el modo de facturacion durante una sesion de trabajo.

Precondiciones:

  • Usuario en sesion de facturacion activa
  • Configuracion forzar-modo-defecto habilitada
  • Modo actual establecido segun configuracion del servidor

Flujo principal:

  1. El usuario necesita operar temporalmente en un modo diferente
  2. El usuario presiona el atajo de teclado Alt+M
  3. El sistema cambia al siguiente modo disponible
  4. La interfaz refleja el cambio de modo inmediatamente
  5. El usuario continua operando en el nuevo modo
  6. El sistema no persiste este cambio en cache local

Postcondiciones:

  • El usuario opera en el modo seleccionado manualmente
  • El cambio es temporal para esta sesion unicamente
  • Si el usuario recarga la pagina, el modo volvera al configurado en el servidor

Flujos alternativos:

  • Multiples cambios: El usuario puede presionar Alt+M varias veces para ciclar entre todos los modos disponibles

CU-004: Usuario recarga pagina despues de cambio manual con modo forzado

Actor: Usuario de Ventas

Objetivo: Verificar que los cambios manuales no persisten cuando el modo forzado esta habilitado.

Precondiciones:

  • Usuario en sesion de facturacion
  • Configuracion forzar-modo-defecto habilitada
  • Usuario cambio manualmente el modo durante la sesion (de Prueba a Oficial)
  • Configuracion fact-defecto en el servidor: Prueba

Flujo principal:

  1. El usuario esta operando en modo Oficial (cambiado manualmente)
  2. El usuario recarga la pagina del navegador (F5 o cierra y vuelve a abrir)
  3. El sistema carga la vista de facturacion
  4. El sistema verifica que forzar-modo-defecto esta habilitado
  5. El sistema consulta fact-defecto del servidor (Prueba)
  6. El sistema establece el modo en Prueba (ignorando cualquier cache)
  7. El usuario ve la interfaz con modo Prueba

Postcondiciones:

  • El modo de facturacion vuelve al configurado en el servidor (Prueba)
  • El cambio manual previo no tuvo efecto permanente
  • El usuario puede cambiar manualmente nuevamente si lo necesita

CU-005: Usuario accede a facturacion con modo forzado deshabilitado

Actor: Usuario de Ventas

Objetivo: Iniciar una sesion de facturacion donde se respeta el cache local (comportamiento actual).

Precondiciones:

  • Usuario autenticado con permisos de facturacion
  • Configuracion forzar-modo-defecto deshabilitada para el tenant actual
  • Usuario tiene un modo guardado en cache local (ejemplo: Oficial)
  • Configuracion fact-defecto en el servidor: Prueba

Flujo principal:

  1. El usuario accede a la vista de facturacion
  2. El sistema verifica que forzar-modo-defecto esta deshabilitado
  3. El sistema busca un modo en cache local
  4. El sistema encuentra el modo guardado (Oficial)
  5. El sistema establece el modo en Oficial (desde cache, ignorando servidor)
  6. El usuario opera en modo Oficial

Postcondiciones:

  • La sesion inicia con el modo guardado en cache local
  • La configuracion del servidor no afecta el modo inicial
  • El comportamiento es identico al sistema antes de esta funcionalidad

CU-006: Cambio de politica - Forzar modo Prueba para capacitacion

Actor: Administrador del Sistema

Objetivo: Preparar el sistema para una sesion de capacitacion donde todos los usuarios deben operar en modo Prueba.

Precondiciones:

  • Usuario autenticado como administrador
  • Sucursal configurada para capacitacion
  • Usuarios de la sucursal pueden tener diferentes modos en cache

Flujo principal:

  1. El administrador accede a la configuracion de la sucursal
  2. El administrador establece fact-defecto en "Prueba"
  3. El administrador habilita forzar-modo-defecto
  4. El administrador guarda los cambios
  5. Los usuarios que accedan a facturacion veran modo Prueba
  6. Los usuarios existentes en sesion, al recargar, cambiaran a modo Prueba

Postcondiciones:

  • Todos los usuarios de la sucursal inician en modo Prueba
  • Las transacciones de capacitacion no afectan datos productivos
  • Al finalizar la capacitacion, el administrador puede revertir la configuracion

Consideraciones

Seguridad

Control de acceso:

  • La configuracion forzar-modo-defecto solo debe ser modificable por usuarios con rol de administrador
  • Los usuarios regulares pueden ver la configuracion pero no modificarla
  • Los intentos de modificacion no autorizada deben registrarse en el log de auditoria

Proteccion de datos:

  • La configuracion hereda el aislamiento multi-tenant del sistema
  • Un administrador de una sucursal no puede modificar configuraciones de otras sucursales
  • La consulta al servidor para obtener fact-defecto debe usar conexiones seguras

Auditoria

Operaciones que se auditan:

OperacionDatos AuditadosMotivo
Cambio de configuracionUsuario, tenant, valor anterior, valor nuevo, fecha/horaTrazabilidad de cambios de politica
Acceso a facturacion con modo forzadoUsuario, tenant, modo aplicadoVerificacion de cumplimiento de politica

Informacion preservada:

  • Historial de cambios en la configuracion
  • Usuario que realizo el cambio
  • Fecha y hora del cambio
  • Valor anterior y nuevo

Rendimiento

Impacto en tiempos de respuesta:

  • Cuando forzar-modo-defecto esta habilitado, la vista de facturacion realiza una consulta adicional al servidor
  • Esta consulta deberia completarse en menos de 100 milisegundos
  • El impacto en la experiencia del usuario debe ser imperceptible

Estrategia de cache:

  • La configuracion forzar-modo-defecto puede cachearse temporalmente (sesion)
  • El valor de fact-defecto se consulta cada vez que se carga la vista (cuando modo forzado esta habilitado)

Multi-Tenancy

Aislamiento:

  • Cada sucursal/caja tiene su propia configuracion independiente
  • Los cambios en un tenant no afectan a otros
  • La propagacion de cambios es inmediata dentro del mismo tenant

Jerarquia de configuracion:

  • La configuracion se almacena a nivel de tenant (sucursal o caja)
  • No existe herencia de configuracion entre niveles
  • Cada tenant debe configurarse explicitamente si se desea comportamiento diferente al predeterminado

Compatibilidad

Retrocompatibilidad:

  • El valor por defecto (Deshabilitado) garantiza que el comportamiento actual se preserve
  • No hay cambios para tenants que no activen explicitamente la funcionalidad
  • Los usuarios no experimentaran cambios inesperados tras la implementacion

Navegadores:

  • La funcionalidad debe operar correctamente en todos los navegadores soportados por el sistema
  • El cache local utiliza mecanismos estandar de almacenamiento del navegador

Dependencias

Funcionalidades Relacionadas

  • Configuracion de Modo Defecto (fact-defecto): Esta funcionalidad complementa y depende de la configuracion existente de modo por defecto. Sin una configuracion valida de fact-defecto, el forzar modo defecto no tendra un valor que aplicar.

  • Sistema de Modos de Facturacion: El sistema de tres modos (Prueba, Oficial, Consolidados) es la base sobre la cual opera esta configuracion.

  • Atajo de Teclado Alt+M: El mecanismo de cambio manual de modo durante la sesion permanece funcional y complementa esta funcionalidad.

Modulos de Negocio Involucrados

ModuloRol en esta Funcionalidad
ConfiguracionAlmacena y gestiona el valor de forzar-modo-defecto
VentasModulo afectado - las vistas de facturacion consultan esta configuracion

Criterios de Aceptacion

La funcionalidad se considera completa cuando se cumplan los siguientes criterios:

Criterios de configuracion

  • [ ] AC-001: La configuracion forzar-modo-defecto puede almacenarse con valores Habilitado o Deshabilitado
  • [ ] AC-002: El valor por defecto de la configuracion es Deshabilitado
  • [ ] AC-003: La configuracion se almacena de forma independiente por tenant (sucursal/caja)
  • [ ] AC-004: Solo usuarios administradores pueden modificar la configuracion

Criterios de comportamiento con modo forzado habilitado

  • [ ] AC-005: Cuando forzar-modo-defecto esta habilitado, la vista de facturacion consulta fact-defecto del servidor al cargar
  • [ ] AC-006: Cuando forzar-modo-defecto esta habilitado, el cache local es ignorado para determinar el modo inicial
  • [ ] AC-007: Los cambios manuales de modo (Alt+M) funcionan correctamente durante la sesion
  • [ ] AC-008: Los cambios manuales de modo no se persisten en cache cuando modo forzado esta habilitado
  • [ ] AC-009: Al recargar la pagina, el modo se restablece al configurado en fact-defecto

Criterios de comportamiento con modo forzado deshabilitado

  • [ ] AC-010: Cuando forzar-modo-defecto esta deshabilitado, se utiliza el cache local si existe
  • [ ] AC-011: Cuando forzar-modo-defecto esta deshabilitado y no hay cache, se usa fact-defecto del servidor
  • [ ] AC-012: El comportamiento es identico al sistema actual cuando modo forzado esta deshabilitado

Criterios de multi-tenancy

  • [ ] AC-013: Cambios de configuracion en un tenant no afectan a otros tenants
  • [ ] AC-014: Cada tenant puede tener su propia configuracion independiente

Criterios de auditoria

  • [ ] AC-015: Los cambios en la configuracion forzar-modo-defecto se registran en el log de auditoria

Notas Adicionales

Diferencia entre configuraciones

ConfiguracionPropositoValores
fact-defectoDefine CUAL es el modo predeterminado0=Prueba, 1=Oficial, 2=Consolidados
forzar-modo-defectoDefine CUANDO se aplica el modo predeterminado0=Solo sin cache, 1=Siempre

Escenarios de uso recomendados

  1. Entornos de capacitacion: Habilitar modo forzado con fact-defecto en Prueba
  2. Operaciones criticas: Habilitar modo forzado con fact-defecto en Oficial
  3. Operaciones flexibles: Deshabilitar modo forzado para permitir preferencias de usuario

Preguntas frecuentes

  1. Que pasa si cambio manualmente el modo y luego recargo la pagina?

    • Si modo forzado esta habilitado: El modo vuelve al configurado en el servidor
    • Si modo forzado esta deshabilitado: El cambio manual puede haberse guardado en cache (comportamiento actual)
  2. Puedo forzar un modo diferente al configurado en fact-defecto?

    • No directamente. Para cambiar el modo forzado, debe modificarse la configuracion fact-defecto
  3. Como afecta esto a usuarios que ya estan en sesion?

    • Los cambios de configuracion se aplican cuando el usuario recarga la pagina o accede nuevamente a la vista de facturacion
  4. Que sucede si hay un error al consultar la configuracion del servidor?

    • El sistema deberia tener un mecanismo de fallback, utilizando el ultimo valor conocido o el modo por defecto del sistema

Historial de Cambios

FechaVersionAutorDescripcion
2026-01-131.1SistemaImplementacion completada. Estado cambiado a Implementado. Feature funcional en produccion.
2026-01-131.0SistemaCreacion del documento de requerimientos de negocio para la configuracion de forzar modo defecto en facturacion. Incluye reglas de negocio, casos de uso, y criterios de aceptacion.