Bloqueos: Banco, contabilidad, conciliación y cierre¶
Catálogo histórico; no es el comportamiento vigente completo
Mensajes extraídos de 4073760e, no errores provocados en el build actual. La línea de origen solo corresponde a ese árbol. Para el corte 067ec7a21cf049451cd349ae473e872883f98e77, prevalecen las guías actualizadas por cambio integrado y sus recuperaciones. No usar una frase histórica de “no implementado” para negar una capacidad incorporada después (FSP, F220, conector nominal o asistentes).
Ficha de verificación
Catalogo generado el 2026-08-17 por lectura del arbol congelado 4073760e880a de dev-fase3 en xdiegob/PayrollBPS. Cada fila corresponde a un raise real localizado en el código, con su archivo y linea. No hay mensajes redactados para esta wiki.
Bloqueos de orden de pago, archivo bancario, causación contable, conciliación, reportes y cierre de período.
349 mensajes en 55 modelos. Pegue el texto del mensaje en el buscador para llegar directamente a su fila.
Como leer una fila
Cuando aparece dice en qué momento se dispara: al pulsar un botón, al crear, al modificar o por una validación automática. Origen es el archivo y la línea exactos del árbol congelado, para que cualquiera pueda comprobar el texto sin creerle a esta wiki. Las llaves {} marcan dónde el sistema inserta un valor concreto (un nombre, una fecha, un importe).
(sin modelo declarado)¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La ratificacion no se ejecuta con privilegios de superusuario ni en modo elevado: es un acto humano identificable, no una operacion de servicio. | Operación (verificar_ratificador_humano) |
Operación no permitida | models/ratificacion_po.py:45 |
| Solo el rol de ratificacion de alcance (PO) puede ratificar. Ningun rol operativo, contable, juridico ni administrador de nomina lo implica. | Operación (verificar_ratificador_humano) |
Operación no permitida | models/ratificacion_po.py:50 |
| El usuario '{}' es el ejecutor de una accion planificada: una identidad de servicio no ratifica decisiones de alcance. | Operación (verificar_ratificador_humano) |
Operación no permitida | models/ratificacion_po.py:60 |
| El acta exige una referencia de ratificacion del PO (formato PO-AAAA-IDENTIFICADOR): sin ella el bloque de aprobaciones no autoriza ningun caso. | Operación (normalizar_referencia_po) |
Operación no permitida | models/ratificacion_po.py:88 |
| '{}' es la marca de PROPUESTA pendiente, no una ratificacion: el validador del inventario la rechaza de forma expresa. | Operación (normalizar_referencia_po) |
Operación no permitida | models/ratificacion_po.py:93 |
| La referencia '{}' no cumple el formato que el validador del inventario acepta: PO-AAAA-IDENTIFICADOR en mayusculas (por ejemplo PO-2026-RC1-001). | Operación (normalizar_referencia_po) |
Operación no permitida | models/ratificacion_po.py:97 |
account.move¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Publicar un asiento productivo de nomina BPS exige el rol contable de Odoo (Contabilidad: administrador): la publicacion es un acto contable y no se omiten los permisos contables. | Botón o acción (action_post) |
Operación no permitida | models/account_move_productivo.py:151 |
| Publicar un asiento productivo de nomina exige el rol contable de Odoo (Contabilidad: administrador), no solo la capacidad BPS. | Botón o acción (action_publicar_bps) |
Operación no permitida | models/account_move_productivo.py:190 |
| Esta accion solo publica asientos productivos de nomina BPS. | Botón o acción (action_publicar_bps) |
Operación no permitida | models/account_move_productivo.py:195 |
| El asiento ya no esta en borrador: no se vuelve a publicar. | Botón o acción (action_publicar_bps) |
Operación no permitida | models/account_move_productivo.py:198 |
bps.asiento.nomina¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El asiento tecnico solo se crea por el servicio. | Al crear (create) |
Operación no permitida | models/asiento_nomina.py:167 |
| El asiento tecnico de nomina es inmutable. | Al modificar (write) |
Operación no permitida | models/asiento_nomina.py:171 |
| Los asientos tecnicos no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/asiento_nomina.py:175 |
bps.asiento.nomina.linea¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Las lineas de asiento solo se crean por el servicio. | Al crear (create) |
Operación no permitida | models/asiento_nomina.py:534 |
| Las lineas de asiento tecnico son inmutables. | Al modificar (write) |
Operación no permitida | models/asiento_nomina.py:538 |
| Las lineas de asiento tecnico no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/asiento_nomina.py:542 |
bps.auditoria.bitacora¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| No tiene permiso para consultar la bitacora de auditoria. | Validación automática (_check_lectura) |
Operación no permitida | models/control_cierre.py:363 |
| La bitacora solo se genera por el servicio (generar). | Al crear (create) |
Operación no permitida | models/control_cierre.py:368 |
| La bitacora es una consolidacion de solo lectura: no se edita. | Al modificar (write) |
Operación no permitida | models/control_cierre.py:372 |
| La bitacora no se elimina manualmente (limpieza tecnica). | Al eliminar (unlink) |
Operación no permitida | models/control_cierre.py:376 |
| No puede consolidar una compania fuera de su contexto. | Operación (generar) |
Operación no permitida | models/control_cierre.py:397 |
| No puede leer la bitacora de una compania fuera de su contexto. | Operación (resumen_tecnico) |
Operación no permitida | models/control_cierre.py:430 |
| No puede abrir los eventos de una bitacora de una compania fuera de su contexto. | Botón o acción (action_ver_eventos) |
Operación no permitida | models/control_cierre.py:501 |
bps.banco.formato¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Una plantilla bancaria aprobada exige fuente bancaria formal. | Validación automática (_check_fuente_aprobada) |
Validación | models/pago_banco.py:191 |
| El motivo de alta de la plantilla bancaria es obligatorio. | Al crear (create) |
Validación | models/pago_banco.py:200 |
| El estado de la plantilla se cambia por acciones gobernadas. | Al modificar (write) |
Operación no permitida | models/pago_banco.py:218 |
Todo cambio de plantilla bancaria exige motivo en contexto bps_motivo_cambio. |
Al modificar (write) |
Operación no permitida | models/pago_banco.py:222 |
| Las plantillas bancarias no se eliminan: retire la plantilla con motivo. | Al eliminar (unlink) |
Operación no permitida | models/pago_banco.py:243 |
| Aprobar una plantilla bancaria exige motivo. | Botón o acción (action_aprobar) |
Operación no permitida | models/pago_banco.py:257 |
| Solo una plantilla en borrador puede aprobarse. | Botón o acción (action_aprobar) |
Operación no permitida | models/pago_banco.py:259 |
| PENDIENTE_BANCO_TEMPLATE: no se aprueba una plantilla bancaria sin fuente formal del banco/cliente. | Botón o acción (action_aprobar) |
Operación no permitida | models/pago_banco.py:262 |
| Retirar una plantilla bancaria exige motivo. | Botón o acción (action_retirar) |
Operación no permitida | models/pago_banco.py:281 |
| Solo una plantilla aprobada puede retirarse. | Botón o acción (action_retirar) |
Operación no permitida | models/pago_banco.py:283 |
| El perfil declarativo nace en borrador y su aprobacion solo se registra mediante la accion gobernada. | Al crear (create) |
Operación no permitida | models/pago_banco_lote.py:207 |
| Los metadatos de aprobacion del perfil solo cambian mediante acciones gobernadas. | Al modificar (write) |
Operación no permitida | models/pago_banco_lote.py:221 |
| Un perfil de lote aprobado o retirado es inmutable. Retirelo y cree una version nueva con su manual y motivo. | Al modificar (write) |
Operación no permitida | models/pago_banco_lote.py:228 |
| Aprobar el perfil bancario exige motivo. | Botón o acción (action_aprobar) |
Operación no permitida | models/pago_banco_lote.py:337 |
| Solo un perfil en borrador puede aprobarse. | Botón o acción (action_aprobar) |
Operación no permitida | models/pago_banco_lote.py:339 |
bps.banco.formato.campo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los campos solo se crean en perfiles declarativos en borrador. | Al crear (create) |
Operación no permitida | models/pago_banco_lote.py:469 |
| Los campos de un perfil aprobado o retirado son inmutables. | Al modificar (write) |
Operación no permitida | models/pago_banco_lote.py:484 |
Cambiar un campo del perfil exige bps_motivo_cambio. |
Al modificar (write) |
Operación no permitida | models/pago_banco_lote.py:488 |
| Los campos de un perfil aprobado o retirado no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pago_banco_lote.py:506 |
bps.banco.lote¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los lotes solo se crean desde el servicio gobernado. | Al crear (create) |
Operación no permitida | models/pago_banco_lote.py:776 |
| El lote bancario es inmutable; use acciones gobernadas. | Al modificar (write) |
Operación no permitida | models/pago_banco_lote.py:781 |
| Los lotes bancarios no se eliminan: conservan archivo, hash y evidencia. | Al eliminar (unlink) |
Operación no permitida | models/pago_banco_lote.py:786 |
| No puede crear un lote de una compania fuera de su contexto. | Operación (crear_lote) |
Operación no permitida | models/pago_banco_lote.py:795 |
| No hay ordenes preparadas para el lote solicitado. | Operación (crear_lote) |
Operación no permitida | models/pago_banco_lote.py:807 |
| El intento identico fue anulado. Cree una nueva version del perfil para que el reintento conserve una clave y trazabilidad diferentes. | Operación (crear_lote) |
Operación no permitida | models/pago_banco_lote.py:815 |
| Una o mas ordenes ya pertenecen a otro lote vigente; no se duplican. | Operación (crear_lote) |
Operación no permitida | models/pago_banco_lote.py:822 |
| El lote fue creado en paralelo y no pudo resolverse de forma segura. | Operación (crear_lote) |
Operación no permitida | models/pago_banco_lote.py:853 |
| El perfil vigente cambio antes de generar. Cree un lote nuevo para conservar una resolucion trazable. | Botón o acción (action_generar_archivo) |
Operación no permitida | models/pago_banco_lote.py:1038 |
| No puede operar un lote de otra compania. | Validación automática (_check_compania) |
Operación no permitida | models/pago_banco_lote.py:1097 |
| La carga manual solo se registra desde archivo_generado_local. | Operación (registrar_carga_portal) |
Operación no permitida | models/pago_banco_lote.py:1124 |
| Resultado manual de portal no permitido. | Operación (registrar_resultado_portal) |
Operación no permitida | models/pago_banco_lote.py:1145 |
| El resultado solo se registra despues de la carga con evidencia. | Operación (registrar_resultado_portal) |
Operación no permitida | models/pago_banco_lote.py:1150 |
| El resultado manual ya fue registrado y es inmutable. | Operación (registrar_resultado_portal) |
Operación no permitida | models/pago_banco_lote.py:1153 |
| Anular un lote exige motivo. | Botón o acción (action_anular) |
Operación no permitida | models/pago_banco_lote.py:1222 |
| Solo se anula un lote antes de validarlo o despues de un resultado observado/rechazado. El resultado pendiente debe resolverse primero. | Botón o acción (action_anular) |
Operación no permitida | models/pago_banco_lote.py:1231 |
| Un lote con ordenes confirmadas no puede anularse. | Botón o acción (action_anular) |
Operación no permitida | models/pago_banco_lote.py:1235 |
bps.banco.lote.portal.wizard¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Registrar resultado exige seleccionar un resultado. | Botón o acción (action_registrar) |
Operación no permitida | models/pago_banco_lote.py:1369 |
bps.cadena.periodo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La cadena solo se construye por el servicio (construir). | Al crear (create) |
Operación no permitida | models/cadena_periodo.py:98 |
| La cadena del periodo es inmutable. | Al modificar (write) |
Operación no permitida | models/cadena_periodo.py:103 |
| Las cadenas de periodo no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/cadena_periodo.py:108 |
| El encadenamiento del periodo exige un rol de nomina BPS. | Operación (construir) |
Operación no permitida | models/cadena_periodo.py:237 |
| No puede encadenar un periodo de una compania fuera de su contexto. | Operación (construir) |
Operación no permitida | models/cadena_periodo.py:242 |
bps.cadena.periodo.eslabon¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los eslabones solo los crea el servicio de cadena. | Al crear (create) |
Operación no permitida | models/cadena_periodo.py:302 |
| Los eslabones de la cadena son inmutables. | Al modificar (write) |
Operación no permitida | models/cadena_periodo.py:306 |
| Los eslabones de la cadena no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/cadena_periodo.py:310 |
bps.cierre.checklist¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| No tiene permiso para consultar el checklist de cierre. | Validación automática (_check_lectura) |
Operación no permitida | models/control_cierre.py:54 |
| El checklist solo se genera por el servicio (generar). | Al crear (create) |
Operación no permitida | models/control_cierre.py:59 |
| El checklist es una consolidacion de solo lectura: no se edita. | Al modificar (write) |
Operación no permitida | models/control_cierre.py:63 |
| El checklist no se elimina manualmente (limpieza tecnica). | Al eliminar (unlink) |
Operación no permitida | models/control_cierre.py:67 |
| No puede consolidar una compania fuera de su contexto. | Operación (generar) |
Operación no permitida | models/control_cierre.py:84 |
| No puede leer un checklist de una compania fuera de su contexto. | Operación (resumen_tecnico) |
Operación no permitida | models/control_cierre.py:252 |
| No puede exportar un checklist de una compania fuera de su contexto. | Operación (secciones_export) |
Operación no permitida | models/control_cierre.py:265 |
bps.cierre.checklist.item¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los gates del checklist solo se crean por el servicio. | Al crear (create) |
Operación no permitida | models/control_cierre.py:328 |
| Los gates del checklist son de solo lectura. | Al modificar (write) |
Operación no permitida | models/control_cierre.py:332 |
| Los gates del checklist no se eliminan manualmente. | Al eliminar (unlink) |
Operación no permitida | models/control_cierre.py:336 |
bps.cierre.periodo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| No se puede cerrar productivamente el periodo: la conciliacion local bloquea ({}). Justifique o resuelva las diferencias de la conciliacion (HU-104) antes de intentar el cierre productivo. | Operación (intentar_cerrar_productivo) |
Operación no permitida | models/cierre_periodo_conciliacion.py:67 |
| El cierre tecnico solo se crea por el servicio (generar). | Al crear (create) |
Operación no permitida | models/cierre_periodo.py:88 |
| El cierre tecnico es inmutable (regenerelo si cambia el periodo). | Al modificar (write) |
Operación no permitida | models/cierre_periodo.py:92 |
| Los cierres tecnicos no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/cierre_periodo.py:96 |
| No puede generar el cierre de una compania fuera de su contexto. | Operación (generar) |
Operación no permitida | models/cierre_periodo.py:197 |
| Ya existe un cierre tecnico para la compania/periodo. | Operación (generar) |
Operación no permitida | models/cierre_periodo.py:201 |
| Ya existe un cierre tecnico para la compania/periodo (paralelo). | Operación (generar) |
Operación no permitida | models/cierre_periodo.py:223 |
| No se puede cerrar productivamente el periodo: hay items no cumplidos ({}). El cierre productivo (PILA, pago, DSNE, conciliacion) no esta disponible en esta fase. | Operación (intentar_cerrar_productivo) |
Operación no permitida | models/cierre_periodo.py:244 |
bps.cierre.periodo.item¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los items de cierre solo se crean por el servicio. | Al crear (create) |
Operación no permitida | models/cierre_periodo.py:270 |
| Los items de cierre son inmutables. | Al modificar (write) |
Operación no permitida | models/cierre_periodo.py:274 |
| Los items de cierre no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/cierre_periodo.py:278 |
bps.composicion.costo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La composicion de costo solo se genera por el servicio (generar). | Al crear (create) |
Operación no permitida | models/composicion_centro_costo.py:103 |
| La composicion de costo es inmutable. | Al modificar (write) |
Operación no permitida | models/composicion_centro_costo.py:108 |
| Las composiciones de costo no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/composicion_centro_costo.py:112 |
| Solo un administrador de nomina BPS genera la composicion de costo. | Operación (generar) |
Operación no permitida | models/composicion_centro_costo.py:169 |
| No puede componer el costo de una compania fuera de su contexto. | Operación (generar) |
Operación no permitida | models/composicion_centro_costo.py:172 |
| No hay recibos finalizados del periodo: no se compone un costo sobre fuentes que no existen. | Operación (generar) |
Operación no permitida | models/composicion_centro_costo.py:183 |
bps.composicion.costo.linea¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Las lineas de composicion solo las crea el servicio. | Al crear (create) |
Operación no permitida | models/composicion_centro_costo.py:262 |
| Las lineas de composicion de costo son inmutables. | Al modificar (write) |
Operación no permitida | models/composicion_centro_costo.py:266 |
| Las lineas de composicion de costo no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/composicion_centro_costo.py:270 |
bps.conciliacion.cerrar.wizard¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El cierre exige un motivo. | Botón o acción (action_confirmar) |
Operación no permitida | models/conciliacion_wizard.py:74 |
bps.conciliacion.corrida¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| No tiene permiso para operar la conciliacion. | Validación automática (_check_operar) |
Operación no permitida | models/conciliacion_corrida.py:160 |
| Justificar y cerrar la conciliacion exige el rol supervisor o administrador. | Validación automática (_check_supervisar) |
Operación no permitida | models/conciliacion_corrida.py:165 |
| La corrida solo se crea por el servicio (ejecutar). | Al crear (create) |
Operación no permitida | models/conciliacion_corrida.py:171 |
| La corrida cerrada es inmutable (evidencia historica). | Al modificar (write) |
Operación no permitida | models/conciliacion_corrida.py:177 |
| La corrida no se edita directamente: use el flujo gobernado. | Al modificar (write) |
Operación no permitida | models/conciliacion_corrida.py:179 |
| Las corridas no se eliminan (evidencia historica HU-105). | Al eliminar (unlink) |
Operación no permitida | models/conciliacion_corrida.py:184 |
| No puede conciliar una compania fuera de su contexto. | Operación (ejecutar) |
Operación no permitida | models/conciliacion_corrida.py:196 |
| Otra corrida del mismo periodo se creo en paralelo: vuelva a ejecutar para tomar la siguiente version. | Operación (ejecutar) |
Operación no permitida | models/conciliacion_corrida.py:211 |
| La diferencia no pertenece a esta corrida. | Operación (justificar_diferencia) |
Operación no permitida | models/conciliacion_corrida.py:704 |
| La corrida cerrada es inmutable: no se justifica. | Operación (justificar_diferencia) |
Operación no permitida | models/conciliacion_corrida.py:706 |
| Solo se justifican diferencias materiales o temporales. | Operación (justificar_diferencia) |
Operación no permitida | models/conciliacion_corrida.py:708 |
| Esa fila es el DESGLOSE por concepto de una diferencia agregada: justifique la fila agregada del trabajador, no su detalle. | Operación (justificar_diferencia) |
Operación no permitida | models/conciliacion_corrida.py:711 |
| La justificacion exige un motivo. | Operación (justificar_diferencia) |
Operación no permitida | models/conciliacion_corrida.py:716 |
| La decision de la justificacion no es valida. | Operación (justificar_diferencia) |
Operación no permitida | models/conciliacion_corrida.py:718 |
| La politica de la compania exige un soporte para justificar la diferencia. | Operación (justificar_diferencia) |
Operación no permitida | models/conciliacion_corrida.py:722 |
| La corrida cerrada es inmutable. | Operación (reclasificar_diferencia) |
Operación no permitida | models/conciliacion_corrida.py:745 |
| Solo se confirma temporal o material. | Operación (reclasificar_diferencia) |
Operación no permitida | models/conciliacion_corrida.py:747 |
| La reclasificacion exige un motivo. | Operación (reclasificar_diferencia) |
Operación no permitida | models/conciliacion_corrida.py:750 |
| La corrida ya esta cerrada. | Operación (cerrar) |
Operación no permitida | models/conciliacion_corrida.py:768 |
| El cierre de la corrida exige un motivo. | Operación (cerrar) |
Operación no permitida | models/conciliacion_corrida.py:771 |
| Politica de BLOQUEO: hay {} diferencia(s) material(es) sin justificar. El periodo no cierra hasta justificarlas. | Operación (cerrar) |
Operación no permitida | models/conciliacion_corrida.py:775 |
bps.conciliacion.diferencia¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los resultados de conciliacion solo se crean por la corrida. | Al crear (create) |
Operación no permitida | models/conciliacion_corrida.py:948 |
| El resultado de conciliacion es inmutable: use justificar/reclasificar. | Al modificar (write) |
Operación no permitida | models/conciliacion_corrida.py:953 |
| Los resultados de conciliacion no se eliminan (evidencia). | Al eliminar (unlink) |
Operación no permitida | models/conciliacion_corrida.py:959 |
bps.conciliacion.tolerancia¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La vigencia 'hasta' no puede ser anterior a 'desde'. | Validación automática (_check_no_solape) |
Validación | models/conciliacion_tolerancia.py:79 |
| La tolerancia de '{}' solapa su vigencia con otra: no puede haber mas de una tolerancia vigente por comparacion/compania. | Validación automática (_check_no_solape) |
Validación | models/conciliacion_tolerancia.py:87 |
bps.control.tablero¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El tablero solo se genera por el servicio (generar). | Al crear (create) |
Operación no permitida | models/control_tablero.py:117 |
| El tablero es una consolidacion de solo lectura: no se edita. | Al modificar (write) |
Operación no permitida | models/control_tablero.py:121 |
| El tablero no se elimina manualmente (limpieza tecnica automatica). | Al eliminar (unlink) |
Operación no permitida | models/control_tablero.py:125 |
| No tiene permiso para consultar el tablero de control. | Validación automática (_check_lectura) |
Operación no permitida | models/control_tablero.py:139 |
| No puede consolidar una compania fuera de su contexto. | Operación (generar) |
Operación no permitida | models/control_tablero.py:149 |
| No puede leer el resumen de una compania fuera de su contexto. | Operación (resumen_tecnico) |
Operación no permitida | models/control_tablero.py:405 |
| No puede exportar un tablero de una compania fuera de su contexto. | Operación (secciones_export) |
Operación no permitida | models/control_tablero.py:446 |
bps.control.tablero.linea¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El detalle del tablero solo se crea por el servicio (generar). | Al crear (create) |
Operación no permitida | models/control_tablero.py:572 |
| El detalle del tablero es de solo lectura: no se edita. | Al modificar (write) |
Operación no permitida | models/control_tablero.py:576 |
| El detalle del tablero no se elimina manualmente. | Al eliminar (unlink) |
Operación no permitida | models/control_tablero.py:580 |
bps.control.tablero.semaforo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El semaforo del tablero solo se crea por el servicio (generar). | Al crear (create) |
Operación no permitida | models/control_tablero.py:611 |
| El semaforo del tablero es de solo lectura: no se edita. | Al modificar (write) |
Operación no permitida | models/control_tablero.py:615 |
| El semaforo del tablero no se elimina manualmente. | Al eliminar (unlink) |
Operación no permitida | models/control_tablero.py:619 |
bps.correlacion.efecto¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los efectos solo los crea el servicio de correlacion. | Al crear (create) |
Operación no permitida | models/correlacion.py:383 |
| El efecto de correlacion es inmutable. | Al modificar (write) |
Operación no permitida | models/correlacion.py:388 |
| Los efectos de correlacion no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/correlacion.py:393 |
bps.correlacion.hecho¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los hechos de correlacion solo los emite el servicio (registrar). | Al crear (create) |
Operación no permitida | models/correlacion.py:135 |
| El hecho de correlacion es inmutable. | Al modificar (write) |
Operación no permitida | models/correlacion.py:141 |
| Los hechos de correlacion no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/correlacion.py:146 |
| La correlacion de impacto es una verificacion gobernada: exige un rol de nomina BPS. | Operación (correlacionar) |
Operación no permitida | models/correlacion.py:316 |
| Compania fuera del contexto del usuario: no se correlaciona. | Operación (correlacionar) |
Operación no permitida | models/correlacion.py:321 |
bps.costo.laboral¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| No tiene permiso para consultar el costo laboral. | Validación automática (_check_lectura) |
Operación no permitida | models/costo_laboral.py:71 |
| El costo laboral solo se genera por el servicio (generar). | Al crear (create) |
Operación no permitida | models/costo_laboral.py:76 |
| El costo laboral es una consolidacion de solo lectura: no se edita. | Al modificar (write) |
Operación no permitida | models/costo_laboral.py:82 |
| El costo laboral no se elimina manualmente (limpieza tecnica). | Al eliminar (unlink) |
Operación no permitida | models/costo_laboral.py:86 |
| No puede consolidar una compania fuera de su contexto. | Operación (generar) |
Operación no permitida | models/costo_laboral.py:122 |
| No puede leer un costo laboral de una compania fuera de su contexto. | Operación (resumen_tecnico) |
Operación no permitida | models/costo_laboral.py:229 |
| No puede exportar un costo laboral de una compania fuera de su contexto. | Operación (secciones_export) |
Operación no permitida | models/costo_laboral.py:268 |
bps.costo.laboral.criterio¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La vigencia final no puede ser anterior a la vigencia inicial. | Validación automática (_check_fechas) |
Validación | models/costo_prorrateo.py:75 |
| Un criterio nuevo debe iniciar en borrador. | Al crear (create) |
Operación no permitida | models/costo_prorrateo.py:84 |
| No puede configurar criterios para una compania fuera de su contexto. | Al crear (create) |
Operación no permitida | models/costo_prorrateo.py:88 |
| El estado del criterio solo cambia por la accion gobernada. | Al modificar (write) |
Operación no permitida | models/costo_prorrateo.py:104 |
| Un criterio vigente o superado no se edita; cree una nueva version. | Al modificar (write) |
Operación no permitida | models/costo_prorrateo.py:109 |
| Un criterio vigente o superado no se elimina; su historial se conserva. | Al eliminar (unlink) |
Operación no permitida | models/costo_prorrateo.py:126 |
| Solo se puede aprobar un criterio en borrador. | Operación (accion_aprobar) |
Operación no permitida | models/costo_prorrateo.py:151 |
| Ya existe un criterio vigente que se superpone con esta vigencia. | Operación (accion_aprobar) |
Operación no permitida | models/costo_prorrateo.py:161 |
| Hay mas de un criterio de prorrateo vigente para la compania y periodo. | Operación (vigente_para) |
Operación no permitida | models/costo_prorrateo.py:178 |
bps.costo.laboral.criterio.linea¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los pesos solo se crean en criterios en borrador. | Al crear (create) |
Operación no permitida | models/costo_prorrateo.py:210 |
bps.costo.laboral.linea¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El detalle del costo laboral solo se crea por el servicio. | Al crear (create) |
Operación no permitida | models/costo_laboral.py:373 |
| El detalle del costo laboral es de solo lectura: no se edita. | Al modificar (write) |
Operación no permitida | models/costo_laboral.py:377 |
| El detalle del costo laboral no se elimina manualmente. | Al eliminar (unlink) |
Operación no permitida | models/costo_laboral.py:381 |
bps.costo.laboral.prorrateo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| No tiene permiso para consultar snapshots de prorrateo. | Validación automática (_check_lectura) |
Operación no permitida | models/costo_prorrateo.py:263 |
| El snapshot de prorrateo solo se crea por el servicio gobernado. | Al crear (create) |
Operación no permitida | models/costo_prorrateo.py:268 |
| El snapshot de prorrateo es inmutable; genere una nueva version si cambian las fuentes. | Al modificar (write) |
Operación no permitida | models/costo_prorrateo.py:272 |
| El snapshot de prorrateo no se elimina manualmente. | Al eliminar (unlink) |
Operación no permitida | models/costo_prorrateo.py:276 |
| Solo el administrador BPS puede generar el prorrateo gobernado. | Operación (generar) |
Operación no permitida | models/costo_prorrateo.py:283 |
| No puede prorratear una compania fuera de su contexto. | Operación (generar) |
Operación no permitida | models/costo_prorrateo.py:285 |
| sin_criterio_prorrateo: no existe un criterio vigente para la compania y periodo. | Operación (generar) |
Operación no permitida | models/costo_prorrateo.py:289 |
| No hay recibos finalizados para prorratear; no se inventan valores fuente. | Operación (generar) |
Operación no permitida | models/costo_prorrateo.py:295 |
| La suma prorrateada no cuadra con las fuentes persistidas. | Operación (generar) |
Operación no permitida | models/costo_prorrateo.py:317 |
bps.costo.laboral.prorrateo.linea¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Las lineas de prorrateo solo se crean por el servicio gobernado. | Al crear (create) |
Operación no permitida | models/costo_prorrateo.py:363 |
| Las lineas de prorrateo son inmutables. | Al modificar (write) |
Operación no permitida | models/costo_prorrateo.py:367 |
| Las lineas de prorrateo no se eliminan manualmente. | Al eliminar (unlink) |
Operación no permitida | models/costo_prorrateo.py:371 |
bps.decision.alcance¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El codigo de la familia es obligatorio. | Validación automática (_check_codigo) |
Validación | models/decision_alcance.py:158 |
| La familia ya esta ratificada: su contenido es inmutable (el acta quedaria referida a un texto distinto del que se decidio). | Al modificar (write) |
Operación no permitida | models/decision_alcance.py:164 |
| El estado de la decision no se edita directamente: se fija al ratificar. | Al modificar (write) |
Operación no permitida | models/decision_alcance.py:168 |
| Una decision ratificada no se elimina (es traza). | Al eliminar (unlink) |
Operación no permitida | models/decision_alcance.py:175 |
| La familia {} ya tiene un acta de ratificacion: no se ratifica dos veces (el acta es inmutable). | Operación (ratificar) |
Operación no permitida | models/decision_alcance.py:197 |
| La decision debe ser explicita: abrir el carril RC1 o excluirlo del alcance. No hay opcion por omision. | Operación (ratificar) |
Operación no permitida | models/decision_alcance.py:201 |
| La justificacion debe explicar la decision (minimo {} caracteres): un acta sin razones no permite auditar por que se abrio o se cerro un frente. | Operación (ratificar) |
Operación no permitida | models/decision_alcance.py:206 |
| Para ratificar hay que repetir el codigo de la familia ({}). La confirmacion existe para que un acto irreversible no ocurra por descuido. | Operación (ratificar) |
Operación no permitida | models/decision_alcance.py:211 |
| La familia no tiene casos: no se ratifica una decision vacia. | Operación (ratificar) |
Operación no permitida | models/decision_alcance.py:216 |
| La familia {} no tiene acta: no hay nada que subsanar. | Botón o acción (action_abrir_wizard_subsanacion) |
Operación no permitida | models/decision_alcance.py:259 |
bps.decision.alcance.caso¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El caso '{}' no tiene el formato del inventario (B00-C000). | Validación automática (_check_caso_csv) |
Validación | models/decision_alcance.py:319 |
| El caso {} se clasifico como que requiere construccion: hay que nombrar el hueco exacto, no basta con decir que falta algo. | Validación automática (_check_hueco) |
Validación | models/decision_alcance.py:328 |
| El caso {} no puede quedar como 'ya alcanzable' en la agenda de decision: si es alcanzable se certifica con un runner real en su carril, no se lleva a la sesion del PO. | Validación automática (_check_hueco) |
Validación | models/decision_alcance.py:333 |
bps.decision.alcance.ratificacion¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El acta exige una referencia de ratificacion del PO en el formato que el validador del inventario acepta (PO-AAAA-IDENTIFICADOR). | Validación automática (_check_referencia_po) |
Validación | models/decision_alcance.py:479 |
| El acta no se crea directamente: se produce al ratificar la familia, que es donde se verifica que quien decide es una persona autorizada. | Al crear (create) |
Operación no permitida | models/decision_alcance.py:486 |
| El acta de ratificacion es inmutable: si la decision cambia, se documenta una decision nueva, no se reescribe la anterior. | Al modificar (write) |
Operación no permitida | models/decision_alcance.py:492 |
| Las actas de ratificacion no se eliminan (son traza). | Al eliminar (unlink) |
Operación no permitida | models/decision_alcance.py:498 |
| El acta {} ya tiene su propia referencia ({}): la subsanacion es solo para las actas anteriores a que la referencia existiera. | Operación (subsanar_referencia) |
Operación no permitida | models/decision_alcance.py:546 |
| El acta {} ya fue subsanada con la referencia {}: no se subsana dos veces. | Operación (subsanar_referencia) |
Operación no permitida | models/decision_alcance.py:551 |
| La subsanacion debe explicar de que acto administrativo sale la referencia (minimo {} caracteres): sin eso la referencia seria un numero inventado. | Operación (subsanar_referencia) |
Operación no permitida | models/decision_alcance.py:557 |
| El acta {} ya tiene una referencia efectiva ({}). | Botón o acción (action_abrir_wizard_subsanacion) |
Operación no permitida | models/decision_alcance.py:584 |
bps.decision.alcance.subsanacion¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La subsanacion exige una referencia que el validador del inventario indexe (PO-AAAA-IDENTIFICADOR). Sin eso no libera nada. | Validación automática (_check_referencia_po) |
Validación | models/decision_alcance.py:637 |
La subsanacion no se crea directamente: se produce con subsanar_referencia, que es donde se verifica que quien la firma es una persona autorizada. |
Al crear (create) |
Operación no permitida | models/decision_alcance.py:644 |
| La subsanacion es inmutable, igual que el acta que complementa. | Al modificar (write) |
Operación no permitida | models/decision_alcance.py:651 |
| Las subsanaciones no se eliminan (son traza). | Al eliminar (unlink) |
Operación no permitida | models/decision_alcance.py:656 |
bps.dependencia.externa¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El caso CSV '{}' no cumple el formato del inventario HU-117 (B00-C000). | Validación automática (_check_caso_csv) |
Validación | models/dependencia_externa.py:225 |
| {}: una dependencia de FUENTE exige identificar la fuente oficial requerida. | Validación automática (_check_declaracion_completa) |
Validación | models/dependencia_externa.py:238 |
| {}: una dependencia de VALIDACION exige {}. | Validación automática (_check_declaracion_completa) |
Validación | models/dependencia_externa.py:250 |
La evidencia de una dependencia externa solo se registra con registrar_evidencia: no se edita a mano. |
Al modificar (write) |
Operación no permitida | models/dependencia_externa.py:268 |
El acta del PO solo se registra con ratificar_po, que es donde se verifica que quien decide es una persona autorizada. |
Al modificar (write) |
Operación no permitida | models/dependencia_externa.py:272 |
| Las dependencias externas no se eliminan: son el registro de lo que el release espera de terceros. | Al eliminar (unlink) |
Operación no permitida | models/dependencia_externa.py:279 |
| Resultado de evidencia invalido: use conforme, observado o no_conforme. | Operación (registrar_evidencia) |
Operación no permitida | models/dependencia_externa.py:315 |
| El registro de evidencia externa exige soporte o referencia del tercero (radicado, oficio, acuse). | Operación (registrar_evidencia) |
Operación no permitida | models/dependencia_externa.py:320 |
| El registro de evidencia externa exige el archivo recibido: sin el binario no hay nada que probar. | Operación (registrar_evidencia) |
Operación no permitida | models/dependencia_externa.py:324 |
| No se pudo leer el archivo de evidencia externa. | Operación (registrar_evidencia) |
Validación | models/dependencia_externa.py:330 |
| El archivo de evidencia externa esta vacio. | Operación (registrar_evidencia) |
Validación | models/dependencia_externa.py:333 |
| Una evidencia observada o no conforme exige describir el motivo: es lo unico que permite corregir y volver a intentarlo. | Operación (registrar_evidencia) |
Operación no permitida | models/dependencia_externa.py:336 |
| La dependencia {} ya tiene acta del PO ({}): no se ratifica dos veces. | Operación (ratificar_po) |
Operación no permitida | models/dependencia_externa.py:390 |
| La decision debe ser explicita: reconocer la dependencia como externa gobernada o mantener el caso como saldo interno. No hay opcion por omision. | Operación (ratificar_po) |
Operación no permitida | models/dependencia_externa.py:394 |
| La justificacion debe explicar la decision (minimo {} caracteres): un acta sin razones no permite auditar por que un caso dejo de contarse como saldo interno. | Operación (ratificar_po) |
Operación no permitida | models/dependencia_externa.py:400 |
| Para ratificar hay que repetir el caso ({}). La confirmacion existe para que un acto irreversible no ocurra por descuido. | Operación (ratificar_po) |
Operación no permitida | models/dependencia_externa.py:405 |
| La dependencia {} ya tiene evidencia registrada. | Botón o acción (action_abrir_wizard_evidencia) |
Operación no permitida | models/dependencia_externa.py:440 |
| La dependencia {} ya tiene acta del PO. | Botón o acción (action_abrir_wizard_ratificacion) |
Operación no permitida | models/dependencia_externa.py:457 |
bps.liquidacion.definitiva¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Solo un administrador de nomina BPS puede generar el asiento de la liquidacion. | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:139 |
| No puede contabilizar una liquidacion de una compania fuera de su contexto. | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:143 |
| Solo se contabiliza una liquidacion CERRADA: cierre la liquidacion (con la indemnizacion y la moratoria resueltas) antes de contabilizar. | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:146 |
| Componente extraordinario invalido: use 'indemnizacion' o 'moratoria'. | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:150 |
| No hay indemnizacion (art. 64 CST) calculada con valor para contabilizar (estado {}, valor {}). | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:154 |
| No hay sancion moratoria (art. 65 CST) APROBADA con valor para contabilizar (estado {}, valor {}). La moratoria requiere decision juridica aprobada. | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:161 |
| El componente '{}' de esta liquidacion ya tiene un asiento productivo: no se duplica. | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:172 |
| Falta mapeo contable vigente para '{}' en {} (compania {}): no se contabiliza sin cuenta. | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:178 |
| El mapeo de '{}' requiere cuenta de gasto (debito) y de pasivo por pagar (credito). | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:182 |
| El empleado no tiene un tercero (contacto) confiable: no se contabiliza el pasivo por pagar de la liquidacion sin tercero y no se inventa. | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:190 |
| El componente '{}' ya tiene un asiento (concurrencia): no se duplica. | Operación (contabilizar_extraordinario) |
Operación no permitida | models/liquidacion_contable.py:216 |
bps.liquidacion.paquete.cierre¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El paquete de cierre solo se crea por el servicio (generar_desde_liquidacion). | Al crear (create) |
Operación no permitida | models/cierre_liquidacion.py:253 |
| El paquete de cierre interno es un snapshot INMUTABLE: no se modifica. Si una fuente cambio, la evidencia viva sigue en la liquidacion (M09/M14). | Al modificar (write) |
Operación no permitida | models/cierre_liquidacion.py:262 |
| Los paquetes de cierre no se eliminan (son evidencia). | Al eliminar (unlink) |
Operación no permitida | models/cierre_liquidacion.py:268 |
| Solo un administrador de nomina genera el paquete de cierre interno. | Operación (generar_desde_liquidacion) |
Operación no permitida | models/cierre_liquidacion.py:336 |
| La liquidacion ya tiene un paquete de cierre interno: no se duplica (idempotencia). | Operación (generar_desde_liquidacion) |
Operación no permitida | models/cierre_liquidacion.py:340 |
| La liquidacion ya tiene un paquete de cierre interno (creado en paralelo): no se duplica. | Operación (generar_desde_liquidacion) |
Operación no permitida | models/cierre_liquidacion.py:398 |
bps.mapeo.contable¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El mapeo contable debe indicar exactamente un concepto BPS o una clave tecnica (no ambos, no ninguno). | Validación automática (_check_clave) |
Validación | models/mapeo_contable.py:147 |
| La cuenta {} no pertenece a la compania {} del mapeo. | Validación automática (_check_compania) |
Validación | models/mapeo_contable.py:157 |
| El diario {} no pertenece a la compania {} del mapeo. | Validación automática (_check_compania) |
Validación | models/mapeo_contable.py:161 |
| La vigencia del mapeo ({}–{}) se solapa con otra ({}–{}) para la misma clave y compania. | Validación automática (_check_no_solapamiento) |
Validación | models/mapeo_contable.py:178 |
| La fecha hasta no puede ser anterior a la desde. | Validación automática (_check_fechas) |
Validación | models/mapeo_contable.py:188 |
| Conceptos activos sin mapeo contable vigente en {} (compania {}): {}. No se contabiliza hasta mapearlos. | Operación (validar_completitud) |
Operación no permitida | models/mapeo_contable.py:243 |
bps.niif.agrupacion¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| No puede agrupar beneficios NIC 19 de una compania fuera de su contexto multiempresa. | Operación (agrupar) |
Operación no permitida | models/niif_agrupacion.py:48 |
bps.orden.pago.nomina¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La orden de pago exige monto mayor que cero. | Validación automática (_check_monto) |
Validación | models/pago_banco.py:395 |
| La orden de pago solo se crea desde el servicio gobernado. | Al crear (create) |
Operación no permitida | models/pago_banco.py:400 |
| La orden de pago es inmutable; use acciones gobernadas. | Al modificar (write) |
Operación no permitida | models/pago_banco.py:406 |
| Las ordenes de pago no se eliminan: anule con motivo. | Al eliminar (unlink) |
Operación no permitida | models/pago_banco.py:411 |
| No puede ordenar pago de un recibo de una compania fuera de su contexto. | Operación (generar_desde_recibo) |
Operación no permitida | models/pago_banco.py:422 |
| Solo se ordena pago desde un recibo FINALIZADO. | Operación (generar_desde_recibo) |
Operación no permitida | models/pago_banco.py:425 |
| No se ordena pago con neto pagable cero o negativo. | Operación (generar_desde_recibo) |
Operación no permitida | models/pago_banco.py:427 |
| El recibo ya tiene una orden de pago: no se duplica. | Operación (generar_desde_recibo) |
Operación no permitida | models/pago_banco.py:429 |
| El recibo ya tiene una orden de pago (creada en paralelo). | Operación (generar_desde_recibo) |
Operación no permitida | models/pago_banco.py:451 |
| Solo una orden preparada puede exportarse. | Botón o acción (action_exportar) |
Operación no permitida | models/pago_banco.py:525 |
| Confirmar una orden de pago exige motivo. | Botón o acción (action_confirmar) |
Operación no permitida | models/pago_banco.py:562 |
| Confirmar una orden de pago exige un soporte adjunto unico. | Botón o acción (action_confirmar) |
Operación no permitida | models/pago_banco.py:566 |
| Solo una orden exportada puede confirmarse. | Botón o acción (action_confirmar) |
Operación no permitida | models/pago_banco.py:569 |
| Anular una orden de pago exige motivo. | Botón o acción (action_anular) |
Operación no permitida | models/pago_banco.py:586 |
| No tiene permiso para consultar el preflight de pago. | Validación automática (_check_lectura_preflight) |
Operación no permitida | models/pago_banco.py:609 |
| No puede consultar el preflight de pago de una compania fuera de su contexto. | Operación (preflight_pago) |
Operación no permitida | models/pago_banco.py:661 |
| La orden ya pertenece a un lote: descargue el archivo gobernado desde el lote. | Botón o acción (action_exportar) |
Operación no permitida | models/pago_banco_lote.py:1310 |
bps.paz.salvo.tecnico¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El paz y salvo tecnico solo se crea por el servicio (generar_desde_liquidacion). | Al crear (create) |
Operación no permitida | models/cierre_liquidacion.py:786 |
| El paz y salvo tecnico APROBADO es inmutable: no se modifica (evidencia interna). | Al modificar (write) |
Operación no permitida | models/cierre_liquidacion.py:795 |
| El paz y salvo tecnico no se edita directamente: use reevaluar/aprobar. | Al modificar (write) |
Operación no permitida | models/cierre_liquidacion.py:800 |
| El paz y salvo tecnico no se elimina (es traza). | Al eliminar (unlink) |
Operación no permitida | models/cierre_liquidacion.py:805 |
| Solo un administrador de nomina genera el paz y salvo tecnico interno. | Operación (generar_desde_liquidacion) |
Operación no permitida | models/cierre_liquidacion.py:818 |
| La liquidacion ya tiene un paz y salvo tecnico interno: no se duplica. Use 'reevaluar' para refrescar el checklist. | Operación (generar_desde_liquidacion) |
Operación no permitida | models/cierre_liquidacion.py:823 |
| La liquidacion ya tiene un paz y salvo tecnico (creado en paralelo): no se duplica. | Operación (generar_desde_liquidacion) |
Operación no permitida | models/cierre_liquidacion.py:850 |
| Solo un administrador de nomina reevalua el paz y salvo tecnico. | Operación (reevaluar) |
Operación no permitida | models/cierre_liquidacion.py:867 |
| El paz y salvo tecnico APROBADO es inmutable: no se reevalua. | Operación (reevaluar) |
Operación no permitida | models/cierre_liquidacion.py:870 |
| Aprobar el paz y salvo tecnico exige el rol supervisor o administrador BPS. | Operación (aprobar) |
Operación no permitida | models/cierre_liquidacion.py:1033 |
| No puede aprobar un paz y salvo de una compania fuera de su contexto. | Operación (aprobar) |
Operación no permitida | models/cierre_liquidacion.py:1036 |
| El paz y salvo tecnico ya esta aprobado (inmutable). | Operación (aprobar) |
Operación no permitida | models/cierre_liquidacion.py:1039 |
| No se aprueba el paz y salvo tecnico: el estado es '{}'. Pendientes internos: {}. Resuelva y reevalue antes de aprobar. | Operación (aprobar) |
Operación no permitida | models/cierre_liquidacion.py:1044 |
| La aprobacion del paz y salvo tecnico exige un motivo. | Operación (aprobar) |
Operación no permitida | models/cierre_liquidacion.py:1052 |
| La aprobacion del paz y salvo tecnico exige un soporte interno (referencia documental: acta, radicado, expediente). | Operación (aprobar) |
Operación no permitida | models/cierre_liquidacion.py:1054 |
| No tiene permiso para consultar el paz y salvo tecnico interno. | Operación (resumen_paz_salvo) |
Operación no permitida | models/cierre_liquidacion.py:1093 |
| No puede leer un paz y salvo de una compania fuera de su contexto. | Operación (resumen_paz_salvo) |
Operación no permitida | models/cierre_liquidacion.py:1096 |
bps.paz.salvo.tecnico.item¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los items del paz y salvo solo se crean por la evaluacion del servicio. | Al crear (create) |
Operación no permitida | models/cierre_liquidacion.py:1147 |
| El checklist de un paz y salvo APROBADO es inmutable. | Al modificar (write) |
Operación no permitida | models/cierre_liquidacion.py:1155 |
| Los items del paz y salvo no se editan: use reevaluar (los anteriores quedan como traza). | Al modificar (write) |
Operación no permitida | models/cierre_liquidacion.py:1159 |
| Los items del paz y salvo no se eliminan (son traza). | Al eliminar (unlink) |
Operación no permitida | models/cierre_liquidacion.py:1165 |
bps.preuat.corrida¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La corrida Pre-UAT solo se crea por el wizard gobernado. | Al crear (create) |
Operación no permitida | models/preuat.py:432 |
| Solo puede actualizar la observacion de la corrida. Los resultados se registran por frente. | Al modificar (write) |
Operación no permitida | models/preuat.py:443 |
| La corrida Pre-UAT no se elimina: conserva evidencia manual. | Al eliminar (unlink) |
Operación no permitida | models/preuat.py:450 |
| No tiene permiso para consultar corridas Pre-UAT. | Validación automática (_check_lectura) |
Operación no permitida | models/preuat.py:464 |
| No tiene permiso para operar corridas Pre-UAT. | Validación automática (_check_operacion) |
Operación no permitida | models/preuat.py:468 |
| No puede operar una corrida Pre-UAT de compania ajena. | Validación automática (_check_companias_propias) |
Operación no permitida | models/preuat.py:474 |
| No puede crear corrida Pre-UAT para una compania ajena. | Operación (crear_corrida) |
Operación no permitida | models/preuat.py:480 |
bps.preuat.corrida.linea¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los frentes de corrida Pre-UAT solo se crean por el servicio. | Al crear (create) |
Operación no permitida | models/preuat.py:804 |
| Solo puede registrar resultado y evidencia manual. | Al modificar (write) |
Operación no permitida | models/preuat.py:821 |
| Los frentes Pre-UAT no se eliminan: conservan evidencia. | Al eliminar (unlink) |
Operación no permitida | models/preuat.py:832 |
bps.preuat.escenario¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los escenarios Pre-UAT solo se crean por el servicio. | Al crear (create) |
Operación no permitida | models/preuat.py:890 |
| Los escenarios Pre-UAT son de solo lectura. | Al modificar (write) |
Operación no permitida | models/preuat.py:894 |
| Los escenarios Pre-UAT no se eliminan manualmente. | Al eliminar (unlink) |
Operación no permitida | models/preuat.py:898 |
bps.preuat.paquete¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El paquete Pre-UAT solo se genera por el servicio. | Al crear (create) |
Operación no permitida | models/preuat.py:91 |
| El paquete Pre-UAT es de solo lectura: no se edita. | Al modificar (write) |
Operación no permitida | models/preuat.py:95 |
| El paquete Pre-UAT no se elimina manualmente. | Al eliminar (unlink) |
Operación no permitida | models/preuat.py:99 |
| No tiene permiso para consultar paquetes Pre-UAT. | Validación automática (_check_lectura) |
Operación no permitida | models/preuat.py:120 |
| No tiene permiso para generar paquetes Pre-UAT. | Validación automática (_check_generacion) |
Operación no permitida | models/preuat.py:124 |
| No puede generar Pre-UAT para una compania ajena. | Operación (generar) |
Operación no permitida | models/preuat.py:133 |
| No puede leer Pre-UAT de una compania ajena. | Operación (resumen_tecnico) |
Operación no permitida | models/preuat.py:309 |
| No puede exportar Pre-UAT de una compania ajena. | Operación (secciones_export) |
Operación no permitida | models/preuat.py:330 |
bps.provision.prestacion¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Solo un administrador de nomina BPS puede generar el asiento de provisiones. | Operación (generar_asiento_provision_productivo) |
Operación no permitida | models/account_move_productivo.py:379 |
| No puede contabilizar una provision de una compania fuera de su contexto. | Operación (generar_asiento_provision_productivo) |
Operación no permitida | models/account_move_productivo.py:383 |
| La provision tiene la traza de vacaciones PENDIENTE: no se contabiliza una provision incompleta. | Operación (generar_asiento_provision_productivo) |
Operación no permitida | models/account_move_productivo.py:386 |
| La provision ya tiene un asiento productivo: no se duplica. | Operación (generar_asiento_provision_productivo) |
Operación no permitida | models/account_move_productivo.py:391 |
| Falta mapeo contable vigente para '{}' en {} (compania {}): no se provisiona sin cuenta. | Operación (generar_asiento_provision_productivo) |
Operación no permitida | models/account_move_productivo.py:401 |
| El mapeo de '{}' no tiene cuenta de pasivo (credito): la provision productiva requiere gasto (debito) y pasivo por prestacion (credito). | Operación (generar_asiento_provision_productivo) |
Operación no permitida | models/account_move_productivo.py:405 |
bps.reapertura.periodo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La reapertura solo se crea por el servicio (solicitar). | Al crear (create) |
Operación no permitida | models/reapertura_periodo.py:91 |
| La reapertura tecnica es inmutable. | Al modificar (write) |
Operación no permitida | models/reapertura_periodo.py:95 |
| Las reaperturas tecnicas no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/reapertura_periodo.py:99 |
| La reapertura tecnica requiere la capacidad dedicada de reapertura de periodo (grupo reapertura BPS). | Operación (solicitar) |
Permiso insuficiente | models/reapertura_periodo.py:114 |
| No puede reabrir un cierre de una compania fuera de su contexto. | Operación (solicitar) |
Operación no permitida | models/reapertura_periodo.py:118 |
| La reapertura exige un motivo (auditoria reforzada). | Operación (solicitar) |
Operación no permitida | models/reapertura_periodo.py:122 |
| El cierre ya tiene una reapertura tecnica. | Operación (solicitar) |
Operación no permitida | models/reapertura_periodo.py:124 |
| El cierre ya tiene una reapertura tecnica (paralelo). | Operación (solicitar) |
Operación no permitida | models/reapertura_periodo.py:140 |
bps.recibo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Solo un administrador de nomina BPS puede generar el asiento productivo. | Operación (generar_asiento_productivo) |
Operación no permitida | models/account_move_productivo.py:262 |
| No puede contabilizar un recibo de una compania fuera de su contexto. | Operación (generar_asiento_productivo) |
Operación no permitida | models/account_move_productivo.py:266 |
| El asiento productivo de nomina solo se genera desde un recibo FINALIZADO (autoritativo). Finalice el recibo antes de contabilizar. | Operación (generar_asiento_productivo) |
Operación no permitida | models/account_move_productivo.py:269 |
| El recibo ya tiene un asiento productivo de nomina: no se duplica. | Operación (generar_asiento_productivo) |
Operación no permitida | models/account_move_productivo.py:273 |
| Falta mapeo contable vigente para '{}' en {} (compania {}): no se contabiliza sin cuenta. | Operación (generar_asiento_productivo) |
Operación no permitida | models/account_move_productivo.py:292 |
| Falta el tercero (res.partner) en el mapeo de '{}': un pasivo a terceros (deduccion/retencion) no se contabiliza sin tercero y no se inventa. Configure el tercero del mapeo. | Operación (generar_asiento_productivo) |
Operación no permitida | models/account_move_productivo.py:302 |
| Falta el mapeo del neto por pagar (clave 'nomina_neto_por_pagar') en {} (compania {}): no se contabiliza el neto sin cuenta. | Operación (generar_asiento_productivo) |
Operación no permitida | models/account_move_productivo.py:314 |
| El empleado no tiene un tercero (contacto) confiable: no se contabiliza el neto por pagar sin tercero y no se inventa. Configure el contacto del empleado. | Operación (generar_asiento_productivo) |
Operación no permitida | models/account_move_productivo.py:322 |
bps.uat.extremos.corrida¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| No tiene permiso para ejecutar la conciliacion de extremos UAT. | Validación automática (_check_operar) |
Operación no permitida | models/uat_extremos.py:156 |
| La conciliacion de extremos solo se crea por el servicio (ejecutar). | Al crear (create) |
Operación no permitida | models/uat_extremos.py:162 |
| La conciliacion de extremos es inmutable (evidencia); ejecute una nueva version en su lugar. | Al modificar (write) |
Operación no permitida | models/uat_extremos.py:170 |
| Las conciliaciones de extremos no se eliminan (evidencia historica). | Al eliminar (unlink) |
Operación no permitida | models/uat_extremos.py:177 |
| No puede conciliar extremos de una compania fuera de su contexto. | Operación (ejecutar) |
Operación no permitida | models/uat_extremos.py:192 |
| Otra conciliacion de extremos del mismo periodo se creo en paralelo: vuelva a ejecutar para tomar la siguiente version. | Operación (ejecutar) |
Operación no permitida | models/uat_extremos.py:206 |
| UAT_EXTREMOS_SIN_CORRIDA: ejecute la conciliacion de extremos del periodo antes de iniciar la prueba manual. | Operación (validar_para_uat) |
Operación no permitida | models/uat_extremos.py:229 |
| UAT_EXTREMOS_NO_APTO: la ultima conciliacion de extremos (v{}) quedo en '{}' con hallazgos [{}]. Resuelva los hallazgos y vuelva a ejecutar antes de la prueba manual. | Operación (validar_para_uat) |
Operación no permitida | models/uat_extremos.py:234 |
| No puede operar una corrida de otra compania. | Botón o acción (action_descargar_checklist) |
Operación no permitida | models/uat_extremos.py:871 |
| La corrida no tiene checklist exportado. | Botón o acción (action_descargar_checklist) |
Operación no permitida | models/uat_extremos.py:873 |
bps.uat.extremos.hallazgo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los hallazgos de extremos solo se crean por la verificacion. | Al crear (create) |
Operación no permitida | models/uat_extremos.py:907 |
| Los hallazgos de extremos son inmutables (evidencia). | Al modificar (write) |
Operación no permitida | models/uat_extremos.py:914 |
| Los hallazgos de extremos no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/uat_extremos.py:918 |
ir.attachment¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La evidencia externa recibida de un tercero es inmutable: su SHA-256 dejaria de corresponder al archivo. | Al modificar (write) |
Operación no permitida | models/dependencia_externa.py:504 |
| La evidencia externa recibida de un tercero no se elimina. | Al eliminar (unlink) |
Operación no permitida | models/dependencia_externa.py:512 |
| El manual, archivo o soporte bancario enlazado es inmutable. | Al modificar (write) |
Operación no permitida | models/pago_banco_lote.py:1423 |
| El manual, archivo o soporte bancario enlazado no se elimina. | Al eliminar (unlink) |
Operación no permitida | models/pago_banco_lote.py:1430 |
| El checklist exportado de extremos UAT es inmutable. | Al modificar (write) |
Operación no permitida | models/uat_extremos.py:953 |
| El checklist exportado de extremos UAT no se elimina. | Al eliminar (unlink) |
Operación no permitida | models/uat_extremos.py:960 |
res.bank¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El codigo de compensacion del banco '{}' solo admite digitos 0-9, sin espacios, signos ni digitos de otros alfabetos. | Validación automática (_check_bps_codigo_compensacion) |
Validación | models/res_bank.py:52 |
| El codigo de compensacion del banco '{}' no puede exceder 10 digitos. | Validación automática (_check_bps_codigo_compensacion) |
Validación | models/res_bank.py:57 |
| El codigo de compensacion del banco '{}' exige el soporte formal (manual o tabla de bancos) del que se transcribio. | Validación automática (_check_bps_codigo_soporte) |
Validación | models/res_bank.py:67 |
| No se da de baja un banco con codigo de compensacion o soporte formal enlazado ({}). Retire primero ambos datos con motivo mediante la accion gobernada; la baja no borra evidencia bancaria. | Al eliminar (unlink) |
Operación no permitida | models/res_bank.py:270 |