Appearance
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:
- Modo Prueba: Las transacciones se registran en una base de datos de prueba, sin afectar datos productivos
- Modo Oficial: Las transacciones se registran en la base de datos de produccion
- 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:
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.
Configuracion ignorada: Si un administrador modifica la configuracion
fact-defectoen el servidor, los usuarios que ya tienen un valor en cache no veran reflejado el cambio hasta que limpien manualmente su cache del navegador.Inconsistencia operativa: Diferentes usuarios pueden estar operando en diferentes modos sin que esto sea evidente, generando confusion y potenciales errores en las transacciones.
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.
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:
Control administrativo: Los administradores podran asegurar que las politicas de modo de facturacion se apliquen de forma consistente.
Reduccion de errores operativos: Al forzar el modo correcto, se minimizan las posibilidades de que transacciones se registren en el destino incorrecto.
Consistencia operativa: Todos los usuarios de una sucursal/caja iniciaran sus sesiones de facturacion con el mismo modo configurado.
Agilidad en cambios de politica: Los cambios de modo configurado se aplicaran inmediatamente a todos los usuarios afectados.
Trazabilidad mejorada: Al tener control sobre el modo inicial, es mas facil rastrear y auditar las transacciones.
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):
- El usuario accede a la vista de facturacion
- El sistema verifica si existe un modo guardado en cache local
- Si existe, utiliza el modo de cache; si no existe, consulta la configuracion del servidor
- El usuario opera en el modo determinado
- Cualquier cambio de modo manual se guarda en cache para futuras sesiones
Flujo con modo forzado habilitado:
- El usuario accede a la vista de facturacion
- El sistema consulta la configuracion de "forzar modo defecto"
- Si esta habilitada, consulta la configuracion
fact-defectodel servidor (ignorando cache) - El sistema establece el modo segun la configuracion del servidor
- El usuario puede cambiar de modo manualmente durante la sesion (atajo Alt+M)
- 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:
| Atributo | Descripcion |
|---|---|
| Nombre | Forzar Modo Defecto |
| Clave | forzar-modo-defecto |
| Valores posibles | Deshabilitado (usar cache) o Habilitado (forzar desde servidor) |
| Valor por defecto | Deshabilitado (para compatibilidad con comportamiento actual) |
| Ambito | Por tenant (sucursal/caja) |
| Modificable por | Administradores del sistema |
Relacion con Configuracion de Modo Defecto
Esta configuracion trabaja en conjunto con la configuracion existente fact-defecto:
| Configuracion | Proposito |
|---|---|
fact-defecto | Define cual es el modo de facturacion predeterminado (Prueba/Oficial/Consolidados) |
forzar-modo-defecto | Define si el modo predeterminado se aplica siempre (ignorando cache) o solo cuando no hay cache |
Matriz de comportamiento:
| forzar-modo-defecto | Existe cache local | Resultado |
|---|---|---|
| Deshabilitado | Si | Usa el modo de cache |
| Deshabilitado | No | Usa fact-defecto del servidor |
| Habilitado | Si | Ignora cache, usa fact-defecto del servidor |
| Habilitado | No | Usa 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-defectoesta habilitado: El sistema consultafact-defectodel servidor - Si
forzar-modo-defectoesta 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-defectoesta habilitada para el tenant actual
Accion:
- El sistema obtiene el valor de
fact-defectodesde 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-defectoesta 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-defectodel 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-defectoesta 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-defectodel 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:
- El administrador accede al modulo de configuracion del sistema
- El administrador navega a la configuracion de la sucursal deseada
- El administrador localiza la opcion "Forzar Modo Defecto"
- El administrador activa la opcion (cambia de Deshabilitado a Habilitado)
- El administrador guarda los cambios
- El sistema confirma que la configuracion se ha aplicado exitosamente
Postcondiciones:
- La configuracion
forzar-modo-defectoesta 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-defectohabilitada para el tenant actual - Configuracion
fact-defectoestablecida (ejemplo: Prueba)
Flujo principal:
- El usuario accede a la vista de facturacion (ventas > bases > facturacion)
- El sistema verifica que
forzar-modo-defectoesta habilitado - El sistema consulta el valor de
fact-defectodesde el servidor - El sistema establece el modo de facturacion segun la configuracion (ejemplo: Prueba)
- La interfaz muestra el selector de modo con el valor configurado
- 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-defectohabilitada - Modo actual establecido segun configuracion del servidor
Flujo principal:
- El usuario necesita operar temporalmente en un modo diferente
- El usuario presiona el atajo de teclado Alt+M
- El sistema cambia al siguiente modo disponible
- La interfaz refleja el cambio de modo inmediatamente
- El usuario continua operando en el nuevo modo
- 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-defectohabilitada - Usuario cambio manualmente el modo durante la sesion (de Prueba a Oficial)
- Configuracion
fact-defectoen el servidor: Prueba
Flujo principal:
- El usuario esta operando en modo Oficial (cambiado manualmente)
- El usuario recarga la pagina del navegador (F5 o cierra y vuelve a abrir)
- El sistema carga la vista de facturacion
- El sistema verifica que
forzar-modo-defectoesta habilitado - El sistema consulta
fact-defectodel servidor (Prueba) - El sistema establece el modo en Prueba (ignorando cualquier cache)
- 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-defectodeshabilitada para el tenant actual - Usuario tiene un modo guardado en cache local (ejemplo: Oficial)
- Configuracion
fact-defectoen el servidor: Prueba
Flujo principal:
- El usuario accede a la vista de facturacion
- El sistema verifica que
forzar-modo-defectoesta deshabilitado - El sistema busca un modo en cache local
- El sistema encuentra el modo guardado (Oficial)
- El sistema establece el modo en Oficial (desde cache, ignorando servidor)
- 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:
- El administrador accede a la configuracion de la sucursal
- El administrador establece
fact-defectoen "Prueba" - El administrador habilita
forzar-modo-defecto - El administrador guarda los cambios
- Los usuarios que accedan a facturacion veran modo Prueba
- 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-defectosolo 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-defectodebe usar conexiones seguras
Auditoria
Operaciones que se auditan:
| Operacion | Datos Auditados | Motivo |
|---|---|---|
| Cambio de configuracion | Usuario, tenant, valor anterior, valor nuevo, fecha/hora | Trazabilidad de cambios de politica |
| Acceso a facturacion con modo forzado | Usuario, tenant, modo aplicado | Verificacion 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-defectoesta 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-defectopuede cachearse temporalmente (sesion) - El valor de
fact-defectose 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
| Modulo | Rol en esta Funcionalidad |
|---|---|
| Configuracion | Almacena y gestiona el valor de forzar-modo-defecto |
| Ventas | Modulo 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-defectopuede 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-defectoesta habilitado, la vista de facturacion consultafact-defectodel servidor al cargar - [ ] AC-006: Cuando
forzar-modo-defectoesta 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-defectoesta deshabilitado, se utiliza el cache local si existe - [ ] AC-011: Cuando
forzar-modo-defectoesta deshabilitado y no hay cache, se usafact-defectodel 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-defectose registran en el log de auditoria
Notas Adicionales
Diferencia entre configuraciones
| Configuracion | Proposito | Valores |
|---|---|---|
fact-defecto | Define CUAL es el modo predeterminado | 0=Prueba, 1=Oficial, 2=Consolidados |
forzar-modo-defecto | Define CUANDO se aplica el modo predeterminado | 0=Solo sin cache, 1=Siempre |
Escenarios de uso recomendados
- Entornos de capacitacion: Habilitar modo forzado con
fact-defectoen Prueba - Operaciones criticas: Habilitar modo forzado con
fact-defectoen Oficial - Operaciones flexibles: Deshabilitar modo forzado para permitir preferencias de usuario
Preguntas frecuentes
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)
Puedo forzar un modo diferente al configurado en fact-defecto?
- No directamente. Para cambiar el modo forzado, debe modificarse la configuracion
fact-defecto
- No directamente. Para cambiar el modo forzado, debe modificarse la configuracion
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
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
| Fecha | Version | Autor | Descripcion |
|---|---|---|---|
| 2026-01-13 | 1.1 | Sistema | Implementacion completada. Estado cambiado a Implementado. Feature funcional en produccion. |
| 2026-01-13 | 1.0 | Sistema | Creacion 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. |