Bloqueos: PILA, nómina electrónica y firma¶
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 planilla, archivo PILA, documento soporte de nómina electrónica, certificado y firma.
351 mensajes en 43 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 |
|---|---|---|---|
| No se pudo descifrar el material del vault (token o llave maestra invalidos). | Operación (descifrar) |
Operación no permitida | models/firmante_vault.py:114 |
| El certificado PEM no es valido: {} | Operación (metadata_certificado) |
Operación no permitida | models/firmante_x509.py:35 |
| El PKCS#12 esta vacio: cargue el archivo .p12/.pfx. | Operación (inspeccionar_pkcs12) |
Operación no permitida | models/firmante_x509.py:49 |
| No se pudo abrir el PKCS#12: la contrasena es incorrecta o el archivo no es un PKCS#12/PFX valido. | Operación (inspeccionar_pkcs12) |
Operación no permitida | models/firmante_x509.py:59 |
| El PKCS#12 no contiene un certificado: no es utilizable para la firma DIAN. | Operación (inspeccionar_pkcs12) |
Operación no permitida | models/firmante_x509.py:63 |
| No se pudo abrir el PKCS#12 para firmar: contrasena incorrecta o archivo no valido. | Operación (cargar_material_firma) |
Operación no permitida | models/firmante_x509.py:87 |
| El PKCS#12 no contiene certificado y llave privada: no es utilizable para firmar. | Operación (cargar_material_firma) |
Operación no permitida | models/firmante_x509.py:91 |
bps.dsne.certificado¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El certificado solo se registra por el servicio (registrar). | Al crear (create) |
Operación no permitida | models/dsne_certificado.py:98 |
| La metadata del certificado es inmutable: registre uno nuevo. | Al modificar (write) |
Operación no permitida | models/dsne_certificado.py:102 |
| Los certificados no se eliminan (historico HU-087). | Al eliminar (unlink) |
Operación no permitida | models/dsne_certificado.py:106 |
| No puede registrar un certificado de una compania fuera de su contexto. | Operación (registrar) |
Operación no permitida | models/dsne_certificado.py:115 |
| Ambiente invalido (habilitacion/produccion). | Operación (registrar) |
Operación no permitida | models/dsne_certificado.py:118 |
| El certificado debe declarar su fuente. | Operación (registrar) |
Operación no permitida | models/dsne_certificado.py:120 |
bps.dsne.config¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La configuracion DSNE debe declarar su fuente/nota. | Al crear (create) |
Validación | models/dsne_config.py:175 |
| El endpoint DIAN debe ser una URL HTTPS (no se aceptan endpoints en claro ni valores de relleno). | Validación automática (_check_endpoint) |
Validación | models/dsne_config.py:194 |
| El endpoint DIAN exige declarar su fuente oficial exacta (WSDL/contrato tecnico): no se inventan endpoints. | Validación automática (_check_endpoint) |
Validación | models/dsne_config.py:198 |
| La espera máxima SOAP debe estar entre {} y {} segundos. | Validación automática (_check_tiempo_espera_soap) |
Validación | models/dsne_config.py:207 |
| La declaracion de persona juridica exige una fuente administrativa verificable; no se infiere desde campos tecnicos. | Validación automática (_check_naturaleza_participante) |
Validación | models/dsne_config.py:216 |
| No se almacena el SC, el PIN, la contrasena ni la llave en claro: use el vault para PIN/contrasena/llave; el SC estatico fue retirado. | Al modificar (write) |
Operación no permitida | models/dsne_config.py:225 |
| Los campos legados del SoftwareSecurityCode son de solo lectura y solo pueden limpiarse mediante la migracion gobernada. | Al modificar (write) |
Operación no permitida | models/dsne_config.py:230 |
| La configuracion DSNE no se elimina en operacion. | Al eliminar (unlink) |
Operación no permitida | models/dsne_config.py:258 |
| SOFTWARESC_ESTATICO_RETIRADO: el SoftwareSecurityCode se calcula por documento con SoftwareID + PIN + Numero segun el Anexo Tecnico DSNE V1.0 numeral 8.2. | Operación (registrar_sc) |
Operación no permitida | models/dsne_config.py:264 |
| La carga de certificado solo esta disponible para la compania propia en habilitacion; produccion permanece cerrada. | Botón o acción (action_abrir_ingreso_vault_habilitacion) |
Operación no permitida | models/dsne_habilitacion.py:211 |
| El resultado de la habilitacion solo se actualiza con evaluar_habilitacion_dian(): no se escribe directamente. | Al modificar (write) |
Operación no permitida | models/dsne_habilitacion.py:224 |
| El feature gate de transmision solo cambia mediante los servicios gobernados autorizar_transmision_real()/revocar_transmision_real(). | Al modificar (write) |
Operación no permitida | models/dsne_habilitacion.py:229 |
| No puede autorizar transmision para una compania fuera de su contexto. | Operación (autorizar_transmision_real) |
Operación no permitida | models/dsne_habilitacion.py:245 |
| La autorizacion del primer envio aplica solo a habilitacion; produccion permanece segregada y no se habilita desde este flujo. | Operación (autorizar_transmision_real) |
Operación no permitida | models/dsne_habilitacion.py:248 |
| AUTORIZACION_PO_REQUERIDA: indique la referencia de la orden explicita del PO antes de habilitar SendNominaSync. | Operación (autorizar_transmision_real) |
Operación no permitida | models/dsne_habilitacion.py:253 |
| No puede revocar transmision para una compania fuera de su contexto. | Operación (revocar_transmision_real) |
Operación no permitida | models/dsne_habilitacion.py:275 |
| Indique el motivo de la revocacion del feature gate. | Operación (revocar_transmision_real) |
Operación no permitida | models/dsne_habilitacion.py:278 |
| No puede evaluar la habilitacion de una compania fuera de su contexto. | Operación (evaluar_habilitacion_dian) |
Operación no permitida | models/dsne_habilitacion.py:624 |
| No puede leer la habilitacion de una compania fuera de su contexto. | Operación (resumen_habilitacion) |
Operación no permitida | models/dsne_habilitacion.py:661 |
| Los codigos territoriales del NIE exigen una fuente verificable. | Validación automática (_check_fuente_ubicacion_nie) |
Validación | models/nie_oficial.py:163 |
| El pais del NIE debe usar dos letras mayusculas. | Validación automática (_check_fuente_ubicacion_nie) |
Validación | models/nie_oficial.py:169 |
| El departamento del NIE debe usar dos digitos. | Validación automática (_check_fuente_ubicacion_nie) |
Validación | models/nie_oficial.py:171 |
| El municipio del NIE debe usar cinco digitos DANE. | Validación automática (_check_fuente_ubicacion_nie) |
Validación | models/nie_oficial.py:173 |
bps.dsne.devengo.diferido¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El periodo de pago ({}) debe ser posterior al de causacion ({}): si se paga en el mismo periodo no hay devengo diferido. | Validación automática (_check_periodos) |
Validación | models/dsne_devengo_diferido.py:107 |
| Los devengos diferidos no se eliminan: son la relacion entre el pasivo de un periodo y su pago en otro. | Al eliminar (unlink) |
Operación no permitida | models/dsne_devengo_diferido.py:114 |
| No puede declarar un devengo diferido de un trabajador fuera de su contexto multiempresa. | Operación (declarar) |
Operación no permitida | models/dsne_devengo_diferido.py:134 |
| Un devengo diferido debe tener valor positivo: no se reporta un pasivo de cero. | Operación (declarar) |
Operación no permitida | models/dsne_devengo_diferido.py:138 |
| El devengo diferido '{}' ya esta en estado '{}': no se reporta dos veces. | Operación (marcar_reportado) |
Operación no permitida | models/dsne_devengo_diferido.py:206 |
| El cierre de un devengo diferido exige exactamente UN documento DSNE existente: no se declara un pago contra un documento vacio. | Operación (cerrar_por_pago) |
Operación no permitida | models/dsne_devengo_diferido.py:237 |
| El documento {} tiene politica '{}': solo un documento de politica PAGO puede cerrar un devengo causado. Con politica de devengo el pasivo se reporta, no se extingue. | Operación (cerrar_por_pago) |
Operación no permitida | models/dsne_devengo_diferido.py:241 |
| El documento {} no consume un recibo productivo: sin recibo no hay pago que acredite el cierre del pasivo. | Operación (cerrar_por_pago) |
Operación no permitida | models/dsne_devengo_diferido.py:247 |
| El recibo {} esta en estado '{}': un pasivo no se cierra contra un recibo que aun puede cambiar. | Operación (cerrar_por_pago) |
Operación no permitida | models/dsne_devengo_diferido.py:251 |
| El devengo diferido '{}' esta en estado '{}': solo se cierra lo que un documento de devengo reporto antes. | Operación (cerrar_por_pago) |
Operación no permitida | models/dsne_devengo_diferido.py:260 |
| El devengo diferido '{}' es de otra compania que el documento que pretende cerrarlo. | Operación (cerrar_por_pago) |
Operación no permitida | models/dsne_devengo_diferido.py:265 |
| El devengo diferido '{}' es de otro trabajador que el documento que pretende cerrarlo. | Operación (cerrar_por_pago) |
Operación no permitida | models/dsne_devengo_diferido.py:269 |
bps.dsne.documento¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La composicion por naturaleza ({}) no agota el devengado del documento ({}): salarial {}, no salarial {}, sin naturaleza resuelta {}. | Validación automática (_check_ejes_devengado) |
Validación | models/dsne_documento.py:202 |
| El documento DSNE solo se crea por el servicio (consolidar). | Al crear (create) |
Operación no permitida | models/dsne_documento.py:214 |
| El documento DSNE no se edita directamente: use las transiciones de estado. | Al modificar (write) |
Operación no permitida | models/dsne_documento.py:229 |
| Los documentos DSNE no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/dsne_documento.py:235 |
| No puede consolidar un empleado de una compania fuera de su contexto. | Operación (consolidar) |
Operación no permitida | models/dsne_documento.py:265 |
| Debe indicar la politica D-5 (devengo/pago): no tiene default silencioso. | Operación (consolidar) |
Operación no permitida | models/dsne_documento.py:268 |
| El trabajador tiene un documento DSNE en 'pendiente de reenvio': resuelva con NIA antes de generar uno nuevo (regla de integridad 6). | Operación (consolidar) |
Operación no permitida | models/dsne_documento.py:273 |
| Ya existe un documento DSNE para el empleado/compania/periodo. | Operación (consolidar) |
Operación no permitida | models/dsne_documento.py:279 |
| La naturaleza '{}' no tiene mapeo DSNE vigente en {}: no se consolida sin elemento. | Operación (consolidar) |
Operación no permitida | models/dsne_documento.py:290 |
| No hay lineas del trabajador a consolidar: el documento no se genera vacio. | Operación (consolidar) |
Operación no permitida | models/dsne_documento.py:298 |
| Ya existe un documento DSNE para el empleado/compania/periodo (paralelo). | Operación (consolidar) |
Operación no permitida | models/dsne_documento.py:333 |
| El recibo productivo no referencia preliquidacion M12: no se puede trazar fechas/aportes M05 para DSNE. | Operación (consolidar_desde_recibo) |
Operación no permitida | models/dsne_documento.py:373 |
| No puede generar DSNE de una liquidacion fuera de su contexto multiempresa. | Operación (consolidar_desde_liquidacion) |
Operación no permitida | models/dsne_documento.py:496 |
| La liquidacion definitiva debe estar CERRADA para generar DSNE local; estado actual '{}'. | Operación (consolidar_desde_liquidacion) |
Operación no permitida | models/dsne_documento.py:502 |
| La liquidacion cerrada no referencia recibo productivo origen. | Operación (consolidar_desde_liquidacion) |
Operación no permitida | models/dsne_documento.py:507 |
| El recibo de la liquidacion no esta finalizado: DSNE no consume recibos abiertos. | Operación (consolidar_desde_liquidacion) |
Operación no permitida | models/dsne_documento.py:509 |
| La liquidacion y el recibo no pertenecen al mismo empleado/compania/periodo: no se ensambla un DSNE ambiguo. | Operación (consolidar_desde_liquidacion) |
Operación no permitida | models/dsne_documento.py:514 |
| La liquidacion cerrada no tiene total final positivo persistido: no se genera DSNE con un total asumido. | Operación (consolidar_desde_liquidacion) |
Operación no permitida | models/dsne_documento.py:518 |
| El recibo de la liquidacion no referencia preliquidacion M12: no se puede trazar fechas/aportes M05 para DSNE. | Operación (consolidar_desde_liquidacion) |
Operación no permitida | models/dsne_documento.py:535 |
| El documento no pasa las validaciones de negocio: {} | Botón o acción (action_validar) |
Operación no permitida | models/dsne_documento.py:866 |
| Primero debe validar negocio del documento DSNE. Estado actual: '{}'. | Operación (validar_xsd) |
Operación no permitida | models/dsne_documento.py:1075 |
| El documento no tiene lineas (catalogo/mapeo): no hay estructura a validar. | Operación (validar_xsd) |
Operación no permitida | models/dsne_documento.py:1079 |
| No se valida XSD: faltan datos minimos del documento: {} | Operación (validar_xsd) |
Operación no permitida | models/dsne_documento.py:1083 |
| El XSD oficial V1.0.6 no esta disponible en el modulo: no se puede validar la estructura. | Operación (validar_xsd) |
Operación no permitida | models/dsne_documento.py:1090 |
| No puede validar un documento de una compania fuera de su contexto multiempresa. | Operación (validar_xsd_oficial) |
Operación no permitida | models/dsne_documento.py:1129 |
| No hay XML local persistido: genere y valide primero el XML tecnico (validar_xsd) antes de la validacion oficial. | Operación (validar_xsd_oficial) |
Operación no permitida | models/dsne_documento.py:1133 |
| El documento no esta listo para firma (ambiente {}): {} | Operación (validar_pre_firma) |
Operación no permitida | models/dsne_documento_firma.py:320 |
| El CUNE ya fue generado con otros datos. No se recalcula destructivamente; genere el flujo gobernado de ajuste si corresponde. | Operación (generar_cune_productivo) |
Operación no permitida | models/dsne_documento_firma.py:501 |
| El PIN del software en vault debe ser texto UTF-8. | Operación (generar_cune_productivo) |
Operación no permitida | models/dsne_documento_firma.py:509 |
| Vault de secretos incompleto para firma productiva (ambiente {}). PENDIENTE_VAULT: PKCS#12 y su contrasena deben estar 'listo_tecnico' con backend cifrado seguro. Faltan: {}. | Operación (validar_vault) |
Operación no permitida | models/dsne_documento_firma.py:549 |
| PENDIENTE_CUNE_TECNICO_LOCAL: genere primero el CUNE con generar_cune_productivo(). | Operación (firmar_productivo) |
Operación no permitida | models/dsne_documento_firma.py:579 |
| No puede firmar un documento de una compania fuera de su contexto multiempresa. | Operación (firmar_candidato_xades) |
Operación no permitida | models/dsne_documento_firma.py:661 |
| {}: XAdES-EPES exige SignaturePolicyIdentifier con la politica oficial (URI + digest). Configure la politica de firma para la compania/ambiente (bps.dsne.firma.politica) citando la fuente oficial; no se inventa. | Operación (firmar_candidato_xades) |
Operación no permitida | models/dsne_documento_firma.py:673 |
| {}: un candidato de produccion exige politica de firma OFICIAL confirmada. | Operación (firmar_candidato_xades) |
Operación no permitida | models/dsne_documento_firma.py:682 |
| FIRMA_XADES_FALLIDA: no se pudo construir/verificar la firma ({}). No se persiste candidato. | Operación (firmar_candidato_xades) |
Operación no permitida | models/dsne_documento_firma.py:731 |
| FIRMA_NO_VERIFICADA: la verificacion de perfil cerrado del modulo fallo ({}). No se persiste candidato ni ZIP. | Operación (firmar_candidato_xades) |
Operación no permitida | models/dsne_documento_firma.py:742 |
| XSD_OFICIAL_FIRMADO_INVALIDO: el XML firmado no pasa el XSD oficial completo; no se persiste candidato ni ZIP: {} | Operación (firmar_candidato_xades) |
Operación no permitida | models/dsne_documento_firma.py:747 |
| EVIDENCIA_INDEPENDIENTE_INVALIDA: el SHA-256 del XML releido del candidato no coincide con su evidencia. | Operación (firmar_candidato_xades) |
Operación no permitida | models/dsne_documento_firma.py:805 |
| VERIFICADOR_INDEPENDIENTE_BLOQUEA: la verificacion de SEGUNDA FUENTE local sobre el candidato persistido no confirmo la firma ({}): {}. No se persiste candidato ni ZIP. | Operación (firmar_candidato_xades) |
Operación no permitida | models/dsne_documento_firma.py:821 |
| No puede evaluar la firma de un documento de una compania fuera de su contexto multiempresa. | Operación (preflight_firma_xades) |
Operación no permitida | models/dsne_documento_firma.py:913 |
| No hay preflight XAdES persistido: ejecute primero el preflight. | Operación (exportar_preflight_xades_txt) |
Operación no permitida | models/dsne_documento_firma.py:1053 |
| No puede evaluar la transmision de un documento de una compania fuera de su contexto multiempresa. | Operación (preflight_soap_dian) |
Operación no permitida | models/dsne_documento_firma.py:1089 |
| No hay preflight SOAP persistido: ejecute primero el preflight. | Operación (exportar_preflight_soap_txt) |
Operación no permitida | models/dsne_documento_firma.py:1237 |
| PENDIENTE_CUNE_TECNICO_LOCAL: no hay CUNE para empaquetar. | Operación (preparar_zip_productivo) |
Operación no permitida | models/dsne_documento_firma.py:1257 |
| PENDIENTE_ZIP_FIRMADO: no se crea ZIP DIAN sin XML firmado XAdES real. | Operación (preparar_zip_productivo) |
Operación no permitida | models/dsne_documento_firma.py:1258 |
| PENDIENTE_SOAP_REAL / PENDIENTE_SOAP_DIAN: no hay cliente SOAP real configurado con certificado de comunicacion, endpoint del catalogo DIAN, ZIP firmado ni credenciales de habilitacion/produccion. NO_ENVIADO_DIAN. | Operación (enviar_dian_productivo) |
Operación no permitida | models/dsne_documento_firma.py:1281 |
| PENDIENTE_TRACKID_REAL / PENDIENTE_TRACK_ID_DIAN: solo se consulta estado con TrackId real devuelto por DIAN tras un envio real. | Operación (consultar_estado_dian) |
Operación no permitida | models/dsne_documento_firma.py:1306 |
| PENDIENTE_SOAP_REAL / PENDIENTE_GETSTATUS_DIAN: cliente SOAP GetStatus real no implementado; no se marca aceptacion DIAN. | Operación (consultar_estado_dian) |
Operación no permitida | models/dsne_documento_firma.py:1309 |
| No puede generar paquete local de un documento de una compania fuera de su contexto. | Operación (generar_paquete_local_preflight) |
Operación no permitida | models/dsne_preflight.py:653 |
| No puede ejecutar el preflight de un documento de una compania fuera de su contexto. | Operación (ejecutar_preflight_dian) |
Operación no permitida | models/dsne_preflight.py:708 |
| Solo el administrador BPS o el auditor consultan el preflight DIAN. | Operación (resumen_preflight) |
Operación no permitida | models/dsne_preflight.py:739 |
| No puede leer el preflight de un documento de una compania fuera de su contexto. | Operación (resumen_preflight) |
Operación no permitida | models/dsne_preflight.py:742 |
| El PIN del software debe ser texto UTF-8. | Operación (generar_nie_oficial) |
Operación no permitida | models/nie_oficial.py:584 |
| XSD_OFICIAL_NIE_INVALIDO: el NIE generado desde el recibo no pasa el XSD oficial completo: {} | Operación (generar_nie_oficial) |
Operación no permitida | models/nie_oficial.py:593 |
| NIE_OFICIAL_INMUTABLE: ya existe un NIE oficial con otra huella. | Operación (generar_nie_oficial) |
Operación no permitida | models/nie_oficial.py:601 |
| PENDIENTE_NIE_OFICIAL: falta el NIE generado desde recibo. | Operación (validar_integridad_nie_oficial) |
Operación no permitida | models/nie_oficial.py:632 |
| NIE_OFICIAL_HUELLA_DIVERGENTE: el XML cambio despues de validarse. | Operación (validar_integridad_nie_oficial) |
Operación no permitida | models/nie_oficial.py:635 |
| XSD_OFICIAL_NIE_INVALIDO: el XML ya no pasa el XSD oficial. | Operación (validar_integridad_nie_oficial) |
Operación no permitida | models/nie_oficial.py:639 |
| NIE_OFICIAL_ESTRUCTURA_DIVERGENTE: faltan nodos de identidad. | Operación (validar_integridad_nie_oficial) |
Operación no permitida | models/nie_oficial.py:647 |
| NIE_OFICIAL_IDENTIDAD_DIVERGENTE: SoftwareSC, CUNE, ProveedorXML, Numero o CodigoQR no corresponden a la evidencia persistida. | Operación (validar_integridad_nie_oficial) |
Operación no permitida | models/nie_oficial.py:676 |
bps.dsne.documento.linea¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Las lineas DSNE solo se crean por el servicio. | Al crear (create) |
Operación no permitida | models/dsne_documento.py:1201 |
| Las lineas DSNE son inmutables. | Al modificar (write) |
Operación no permitida | models/dsne_documento.py:1205 |
| Las lineas DSNE no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/dsne_documento.py:1209 |
bps.dsne.elemento¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El elemento DSNE '{}' debe declarar su fuente (XSD/anexo). | Al crear (create) |
Validación | models/dsne_elemento.py:70 |
| Los elementos del catalogo DSNE no se eliminan en operacion; desactivelos (activo=False) si dejan de aplicar. | Al eliminar (unlink) |
Operación no permitida | models/dsne_elemento.py:104 |
bps.dsne.firma.candidato¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El candidato de firma XAdES-EPES solo se crea por el servicio gobernado de firma del documento DSNE (firmar_candidato_xades). No se crea por escritura directa. | Al crear (create) |
Operación no permitida | models/dsne_firma_candidato.py:160 |
| El candidato de firma es inmutable: no se edita. Regenere un candidato nuevo desde el documento DSNE. | Al modificar (write) |
Operación no permitida | models/dsne_firma_candidato.py:289 |
| El candidato de firma no se elimina (evidencia probatoria inmutable). | Al eliminar (unlink) |
Operación no permitida | models/dsne_firma_candidato.py:295 |
| Solo un administrador BPS prepara un envio DIAN de habilitacion. | Botón o acción (action_preparar_envio_nomina_habilitacion) |
Operación no permitida | models/dsne_firma_candidato.py:325 |
| No puede preparar un envio para otra compania. | Botón o acción (action_preparar_envio_nomina_habilitacion) |
Operación no permitida | models/dsne_firma_candidato.py:328 |
| CONFIGURACION_HABILITACION_REQUERIDA: debe existir una unica configuracion DSNE de habilitacion para la compania. | Botón o acción (action_preparar_envio_nomina_habilitacion) |
Operación no permitida | models/dsne_firma_candidato.py:333 |
bps.dsne.firma.politica¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El digest de la politica debe ser base64 valido del SHA-256 del documento de politica. | Validación automática (_check_digest_b64) |
Validación | models/dsne_firma_politica.py:76 |
| El digest de la politica debe ser un SHA-256 (32 bytes) en base64. | Validación automática (_check_digest_b64) |
Validación | models/dsne_firma_politica.py:80 |
| No puede configurar una politica de una compania fuera de su contexto multiempresa. | Al crear (create) |
Operación no permitida | models/dsne_firma_politica.py:94 |
bps.dsne.habilitacion.envio¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El expediente de envio DIAN solo se crea por los servicios gobernados HU-089; no se carga ni altera manualmente. | Al crear (create) |
Operación no permitida | models/dsne_habilitacion_envio.py:264 |
| El expediente DIAN es inmutable fuera del servicio gobernado. | Al modificar (write) |
Operación no permitida | models/dsne_habilitacion_envio.py:273 |
| El expediente de envio DIAN no se elimina en operacion. | Al eliminar (unlink) |
Operación no permitida | models/dsne_habilitacion_envio.py:279 |
| CANDIDATO_NO_APTO_HABILITACION: el candidato no pertenece a la misma compania/ambiente de habilitacion. | Operación (preparar_envio_dian) |
Operación no permitida | models/dsne_habilitacion_envio.py:427 |
| PENDIENTE_XADES_COMPATIBLE_DIAN: la firma debe tener politica oficial y evidencia valida del verificador independiente ligada al SHA-256 del XML persistido antes de preparar cualquier envio. | Operación (preparar_envio_dian) |
Operación no permitida | models/dsne_habilitacion_envio.py:433 |
| PENDIENTE_VECTOR_CUNE_DIAN: no existe vector CUNE oficial reproducible validado; no se prepara ni envia el ZIP. | Operación (preparar_envio_dian) |
Operación no permitida | models/dsne_habilitacion_envio.py:438 |
| PENDIENTE_XSD_OFICIAL_VALIDO: el XML debe validar localmente contra el XSD oficial antes de preparar envio. | Operación (preparar_envio_dian) |
Operación no permitida | models/dsne_habilitacion_envio.py:442 |
| ZIP_FIRMADO_INVALIDO: no existe un ZIP candidato integro; no se envia. | Operación (preparar_envio_dian) |
Operación no permitida | models/dsne_habilitacion_envio.py:448 |
| ZIP_FIRMADO_ALTERADO: la huella del ZIP no coincide; no se envia. | Operación (preparar_envio_dian) |
Operación no permitida | models/dsne_habilitacion_envio.py:451 |
| EXPEDIENTE_DIFFERENTE_MISMO_CANDIDATO: la huella del ZIP no coincide con el expediente existente; no se sustituye evidencia. | Operación (preparar_envio_nomina_habilitacion) |
Operación no permitida | models/dsne_habilitacion_envio.py:493 |
| SIMULACION_NO_DISPONIBLE_POR_RPC: use exclusivamente las pruebas locales internas; no es una operacion funcional DIAN. | Operación (registrar_simulacion) |
Operación no permitida | models/dsne_habilitacion_envio.py:557 |
| TRANSPORTE_FAKE_SOLO_PRUEBAS: un fake no puede modificar estado, respuesta ni aceptacion como DIAN real. | Operación (enviar_testset_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:604 |
| PAQUETE_NO_ENVIABLE: el control sintetico no se transmite a DIAN. | Operación (enviar_testset_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:609 |
| TRANSMISION_REAL_DESACTIVADA: falta autorizacion explicita del PO en la configuracion; no se ejecuta SendTestSetAsync. | Operación (enviar_testset_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:613 |
| ZIP_FIRMADO_ALTERADO: la huella no coincide; no se envia. | Operación (enviar_testset_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:618 |
| RESPUESTA_SIN_ZIPKEY: no se puede marcar enviado ni aceptado sin ZipKey DIAN. | Operación (enviar_testset_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:645 |
| TRANSPORTE_FAKE_SOLO_PRUEBAS: un fake no puede consultar ni persistir estado DIAN real. | Operación (consultar_estado_zip_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:661 |
| RESPUESTA_SIN_ESTADOS: GetStatusZip no devolvio estados; no hay aceptacion. | Operación (consultar_estado_zip_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:677 |
| TRANSPORTE_FAKE_SOLO_PRUEBAS: un replay no puede ejecutar ni acreditar un envio DIAN de habilitacion. | Operación (enviar_nomina_habilitacion_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:853 |
| EVIDENCIA_SOLICITUD_DIANA_AUSENTE: no se persiste una respuesta sin la huella de su solicitud exacta. | Operación (enviar_nomina_habilitacion_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:885 |
| CONSULTA_HABILITACION_NO_PERMITIDA: GetStatus solo recupera un intento SendNominaSync ya persistido. | Operación (consultar_estado_habilitacion_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:895 |
| PENDIENTE_CUNE_REAL: el expediente no tiene CUNE para GetStatus. | Operación (consultar_estado_habilitacion_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:899 |
| TRANSPORTE_FAKE_SOLO_PRUEBAS: un replay no puede consultar ni acreditar una respuesta DIAN de habilitacion. | Operación (consultar_estado_habilitacion_real) |
Operación no permitida | models/dsne_habilitacion_envio.py:906 |
| RESULTADO_DIAN_NO_DISPONIBLE: no hay ApplicationResponse persistido para descargar. | Botón o acción (action_descargar_resultado_dian) |
Operación no permitida | models/dsne_habilitacion_envio.py:941 |
bps.dsne.habilitacion.intercambio¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La evidencia SOAP DIAN solo se registra por el servicio gobernado. | Al crear (create) |
Operación no permitida | models/dsne_habilitacion_envio.py:130 |
| La evidencia SOAP DIAN es inmutable fuera del servicio gobernado. | Al modificar (write) |
Operación no permitida | models/dsne_habilitacion_envio.py:138 |
| La evidencia SOAP DIAN no se elimina en operacion. | Al eliminar (unlink) |
Operación no permitida | models/dsne_habilitacion_envio.py:144 |
| No puede descargar evidencia DIAN de otra compania. | Botón o acción (action_descargar_resultado_dian) |
Operación no permitida | models/dsne_habilitacion_envio.py:151 |
| RESULTADO_DIAN_NO_DISPONIBLE: este intercambio no tiene archivo DIAN. | Botón o acción (action_descargar_resultado_dian) |
Operación no permitida | models/dsne_habilitacion_envio.py:153 |
bps.dsne.habilitacion.item¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los items de habilitacion solo se crean por el servicio (evaluar_habilitacion_dian). | Al crear (create) |
Operación no permitida | models/dsne_habilitacion.py:115 |
| Los items de habilitacion no se editan: reevalue la habilitacion (los anteriores quedan como traza). | Al modificar (write) |
Operación no permitida | models/dsne_habilitacion.py:125 |
| Los items de habilitacion no se eliminan (son traza). | Al eliminar (unlink) |
Operación no permitida | models/dsne_habilitacion.py:131 |
bps.dsne.mapeo.concepto¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El mapeo DSNE debe indicar exactamente un concepto BPS o una clave tecnica (no ambos, no ninguno). | Validación automática (_check_clave) |
Validación | models/dsne_mapeo.py:69 |
| La fecha hasta no puede ser anterior a la desde. | Validación automática (_check_fechas) |
Validación | models/dsne_mapeo.py:77 |
| La vigencia del mapeo ({}-{}) se solapa con otra ({}-{}) para la misma clave y compania. | Validación automática (_check_no_solapamiento) |
Validación | models/dsne_mapeo.py:90 |
| Hay mas de un mapeo DSNE vigente para '{}' en {} y compania {}: corrija la configuracion antes de generar XML. | Operación (mapeo_vigente) |
Operación no permitida | models/dsne_mapeo.py:135 |
| Conceptos activos sin mapeo DSNE vigente en {} (compania {}): {}. No se genera el documento hasta mapearlos. | Operación (validar_completitud) |
Operación no permitida | models/dsne_mapeo.py:154 |
bps.dsne.nota.ajuste¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La nota de ajuste solo se crea por el servicio (crear_ajuste). | Al crear (create) |
Operación no permitida | models/dsne_nota_ajuste.py:106 |
| La nota de ajuste tecnica es inmutable. | Al modificar (write) |
Operación no permitida | models/dsne_nota_ajuste.py:111 |
| Las notas de ajuste no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/dsne_nota_ajuste.py:116 |
| No puede ajustar un documento de una compania fuera de su contexto. | Operación (crear_ajuste) |
Operación no permitida | models/dsne_nota_ajuste.py:145 |
| Tipo de ajuste invalido (Reemplazar/Eliminar). | Operación (crear_ajuste) |
Operación no permitida | models/dsne_nota_ajuste.py:148 |
| La nota de ajuste exige un motivo. | Operación (crear_ajuste) |
Operación no permitida | models/dsne_nota_ajuste.py:151 |
| La nota de ajuste exige un soporte. | Operación (crear_ajuste) |
Operación no permitida | models/dsne_nota_ajuste.py:154 |
| Solo se ajusta un documento NIE con XML local validado; el documento esta en estado '{}'. | Operación (crear_ajuste) |
Operación no permitida | models/dsne_nota_ajuste.py:156 |
| Solo se ajusta un documento NIE con XML local valido y persistido. | Operación (crear_ajuste) |
Operación no permitida | models/dsne_nota_ajuste.py:160 |
| Solo se ajusta un documento NIE trazado a recibo productivo origen. | Operación (crear_ajuste) |
Operación no permitida | models/dsne_nota_ajuste.py:163 |
| El documento NIE ya tiene esa nota de ajuste tecnica (mismo tipo y motivo). | Operación (crear_ajuste) |
Operación no permitida | models/dsne_nota_ajuste.py:169 |
| El documento NIE ya tiene esa nota de ajuste (paralelo). | Operación (crear_ajuste) |
Operación no permitida | models/dsne_nota_ajuste.py:186 |
| El XSD NIA V1.0.6 no esta disponible en el modulo: no se puede validar la estructura. | Operación (validar_xsd) |
Operación no permitida | models/dsne_nota_ajuste.py:238 |
bps.dsne.preenvio¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El pre-envio solo se crea por el servicio (preparar_preenvio_habilitacion). | Al crear (create) |
Operación no permitida | models/dsne_preenvio.py:195 |
| El pre-envio DIAN es inmutable fuera del servicio: use preparar_preenvio_habilitacion() para reprepararlo. No se puede escribir directamente su documento, ambiente, compania, matriz, resultado ni evidencia. | Al modificar (write) |
Operación no permitida | models/dsne_preenvio.py:209 |
| El pre-envio no se elimina en operacion (es traza). | Al eliminar (unlink) |
Operación no permitida | models/dsne_preenvio.py:218 |
| Ambiente invalido (habilitacion/produccion). | Operación (preparar) |
Operación no permitida | models/dsne_preenvio.py:595 |
| No puede preparar el pre-envio de un documento de una compania fuera de su contexto. | Operación (preparar) |
Operación no permitida | models/dsne_preenvio.py:597 |
| No puede leer el pre-envio de un documento de una compania fuera de su contexto. | Operación (resumen_preenvio) |
Operación no permitida | models/dsne_preenvio.py:635 |
| {} / {} / {} / {}: el envio real del set de pruebas (SendTestSetAsync) NO esta habilitado. Faltan firma XAdES real, ZIP firmado, cliente SOAP con WSDL/contrato oficial, credenciales de habilitacion reales y autorizacion explicita del PO. NO_ENVIADO_DIAN. | Operación (enviar_testset_habilitacion) |
Operación no permitida | models/dsne_preenvio.py:678 |
bps.dsne.preenvio.item¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los items del pre-envio solo se crean por el servicio (preparar_preenvio_habilitacion). | Al crear (create) |
Operación no permitida | models/dsne_preenvio.py:119 |
| Los items del pre-envio no se editan: reprepare el pre-envio (los anteriores quedan como traza). | Al modificar (write) |
Operación no permitida | models/dsne_preenvio.py:129 |
| Los items del pre-envio no se eliminan (son traza). | Al eliminar (unlink) |
Operación no permitida | models/dsne_preenvio.py:135 |
bps.dsne.preflight.item¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los items del preflight solo se crean por el servicio (ejecutar_preflight_dian). | Al crear (create) |
Operación no permitida | models/dsne_preflight.py:125 |
| Los items del preflight no se editan: reejecute el preflight (los anteriores quedan como traza). | Al modificar (write) |
Operación no permitida | models/dsne_preflight.py:135 |
| Los items del preflight no se eliminan (son traza). | Al eliminar (unlink) |
Operación no permitida | models/dsne_preflight.py:141 |
bps.dsne.respuesta¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La respuesta DIAN solo se registra por el servicio (registrar_respuesta_dian_local). | Al crear (create) |
Operación no permitida | models/dsne_respuesta.py:249 |
| La respuesta DIAN es inmutable fuera del servicio: registre una nueva evidencia o use reparsear(). No se puede sustituir directamente su archivo, huella, documento, ambiente, interpretacion ni evidencia. | Al modificar (write) |
Operación no permitida | models/dsne_respuesta.py:264 |
| La respuesta DIAN no se elimina en operacion (es traza). | Al eliminar (unlink) |
Operación no permitida | models/dsne_respuesta.py:272 |
| Ambiente invalido (habilitacion/produccion). | Operación (registrar) |
Operación no permitida | models/dsne_respuesta.py:529 |
| No puede registrar la respuesta de un documento de una compania fuera de su contexto. | Operación (registrar) |
Operación no permitida | models/dsne_respuesta.py:531 |
| Indique el motivo/soporte del registro de la respuesta (obligatorio). | Operación (registrar) |
Operación no permitida | models/dsne_respuesta.py:535 |
| Adjunte el archivo de respuesta DIAN a registrar. | Operación (registrar) |
Operación no permitida | models/dsne_respuesta.py:538 |
| El pre-envio indicado no corresponde al documento/ambiente de la respuesta. | Operación (registrar) |
Operación no permitida | models/dsne_respuesta.py:543 |
| El archivo de respuesta no es un adjunto valido. | Operación (registrar) |
Operación no permitida | models/dsne_respuesta.py:548 |
| No puede reevaluar la respuesta de un documento de una compania fuera de su contexto. | Operación (reparsear) |
Operación no permitida | models/dsne_respuesta.py:568 |
| No hay archivo de respuesta almacenado que reevaluar. | Operación (reparsear) |
Operación no permitida | models/dsne_respuesta.py:572 |
| No puede leer la respuesta de un documento de una compania fuera de su contexto. | Operación (resumen_respuesta) |
Operación no permitida | models/dsne_respuesta.py:645 |
bps.dsne.respuesta.item¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los items de la respuesta solo se crean por el servicio (registrar_respuesta_dian_local). | Al crear (create) |
Operación no permitida | models/dsne_respuesta.py:144 |
| Los items de la respuesta no se editan: reevalue la respuesta (los anteriores quedan como traza). | Al modificar (write) |
Operación no permitida | models/dsne_respuesta.py:154 |
| Los items de la respuesta no se eliminan (son traza). | Al eliminar (unlink) |
Operación no permitida | models/dsne_respuesta.py:160 |
bps.dsne.respuesta.wizard¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Adjunte el archivo de respuesta DIAN a registrar. | Botón o acción (action_registrar) |
Operación no permitida | models/dsne_respuesta.py:740 |
bps.dsne.secreto¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Las entradas del vault solo se registran por el servicio (registrar_*). | Al crear (create) |
Operación no permitida | models/dsne_secreto.py:170 |
| No se almacena el secreto en claro: use registrar_secreto_cifrado() o registrar_referencia(). | Al modificar (write) |
Operación no permitida | models/dsne_secreto.py:178 |
| La entrada del vault es gobernada: use los servicios registrar_*. | Al modificar (write) |
Operación no permitida | models/dsne_secreto.py:182 |
| Las entradas del vault no se eliminan en operacion. | Al eliminar (unlink) |
Operación no permitida | models/dsne_secreto.py:188 |
| La referencia externa no puede ser vacia. | Operación (registrar_referencia) |
Operación no permitida | models/dsne_secreto.py:255 |
| El secreto no puede ser vacio. | Operación (registrar_secreto_cifrado) |
Operación no permitida | models/dsne_secreto.py:272 |
| Fallo la verificacion del cifrado del vault. | Operación (registrar_secreto_cifrado) |
Operación no permitida | models/dsne_secreto.py:286 |
| Solo un administrador BPS valida el material PKCS#12: la operacion revela el secreto del vault en memoria sin exponerlo. | Operación (validar_material_pkcs12) |
Operación no permitida | models/dsne_secreto.py:329 |
| No puede validar el material de una compania fuera de su contexto. | Operación (validar_material_pkcs12) |
Operación no permitida | models/dsne_secreto.py:333 |
| Ambiente invalido (habilitacion/produccion). | Operación (validar_material_pkcs12) |
Operación no permitida | models/dsne_secreto.py:336 |
| PENDIENTE_VAULT_PKCS12: el material no esta cifrado en el vault para validarlo ({}). Registrelo con registrar_secreto_cifrado() (llave maestra externa; nunca en claro). | Operación (validar_material_pkcs12) |
Operación no permitida | models/dsne_secreto.py:347 |
| La contrasena del PKCS#12 en vault debe ser texto UTF-8. | Operación (validar_material_pkcs12) |
Operación no permitida | models/dsne_secreto.py:357 |
| Solo un administrador BPS consulta el resumen de credenciales DIAN. | Operación (resumen_ingreso_habilitacion) |
Operación no permitida | models/dsne_secreto.py:557 |
bps.pila.archivo.local¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El TXT PILA local no enviable solo se crea por el servicio (generar_local). | Al crear (create) |
Operación no permitida | models/pila_archivo_local.py:258 |
| El TXT PILA local no enviable es inmutable. | Al modificar (write) |
Operación no permitida | models/pila_archivo_local.py:267 |
| Los TXT PILA locales no enviables no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pila_archivo_local.py:271 |
| PENDIENTE_VALIDACION_OPERADOR_PILA: el TXT local no supera la prevalidacion: - {} | Operación (validar_contenido_operador_local) |
Operación no permitida | models/pila_archivo_local.py:1290 |
| PENDIENTE_VALIDACION_OPERADOR_PILA: no se registra resultado de operador mientras la prevalidacion local tenga errores. | Operación (registrar_resultado_operador) |
Operación no permitida | models/pila_archivo_local.py:1599 |
| PENDIENTE_DATO_PILA_TXT_LOCAL: la planilla pertenece a una compania fuera del contexto multiempresa del usuario. | Operación (generar_local) |
Operación no permitida | models/pila_archivo_local.py:1764 |
| PENDIENTE_LAYOUT_PILA: el archivo {} / registro {} no esta completo y contiguo en {}. | Operación (generar_local) |
Operación no permitida | models/pila_archivo_local.py:1781 |
| Ya existe un TXT PILA local para esta planilla/version (creado en paralelo). | Operación (generar_local) |
Operación no permitida | models/pila_archivo_local.py:1857 |
bps.pila.archivo.local.valor¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los valores del TXT PILA local solo se crean por el servicio. | Al crear (create) |
Operación no permitida | models/pila_archivo_local.py:1898 |
| Los valores del TXT PILA local son inmutables. | Al modificar (write) |
Operación no permitida | models/pila_archivo_local.py:1903 |
| Los valores del TXT PILA local no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pila_archivo_local.py:1907 |
bps.pila.archivo.tipo1¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El archivo PILA tipo 1 local solo se crea por el servicio (generar_local). | Al crear (create) |
Operación no permitida | models/pila_archivo_tipo1.py:220 |
| El archivo PILA tipo 1 local es inmutable. | Al modificar (write) |
Operación no permitida | models/pila_archivo_tipo1.py:226 |
| Los archivos PILA tipo 1 locales no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pila_archivo_tipo1.py:230 |
| PENDIENTE_DATO_PILA_ARCHIVO_TIPO1: la planilla pertenece a una compania fuera del contexto multiempresa del usuario. | Operación (generar_local) |
Operación no permitida | models/pila_archivo_tipo1.py:321 |
| PENDIENTE_LAYOUT_PILA_ARCHIVO_TIPO1: el archivo tipo 1 no esta completo y contiguo en la version {}. | Operación (generar_local) |
Operación no permitida | models/pila_archivo_tipo1.py:333 |
| Ya existe un archivo PILA tipo 1 local para esta planilla/version (creado en paralelo). | Operación (generar_local) |
Operación no permitida | models/pila_archivo_tipo1.py:380 |
bps.pila.archivo.tipo1.valor¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los valores del archivo PILA tipo 1 solo se crean por el servicio. | Al crear (create) |
Operación no permitida | models/pila_archivo_tipo1.py:420 |
| Los valores del archivo PILA tipo 1 son inmutables. | Al modificar (write) |
Operación no permitida | models/pila_archivo_tipo1.py:425 |
| Los valores del archivo PILA tipo 1 no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pila_archivo_tipo1.py:429 |
bps.pila.candidato.uat¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El candidato UAT MiPlanilla solo se crea por el flujo gobernado de aprobacion humana. | Al crear (create) |
Operación no permitida | models/pila_candidato_uat.py:160 |
| El candidato UAT MiPlanilla es inmutable; use los flujos gobernados de carga manual o resultado del operador. | Al modificar (write) |
Operación no permitida | models/pila_candidato_uat.py:169 |
| Los candidatos UAT MiPlanilla no se eliminan; son evidencia de una aprobacion y carga manual. | Al eliminar (unlink) |
Operación no permitida | models/pila_candidato_uat.py:176 |
| La aprobacion humana del candidato UAT MiPlanilla exige motivo. | Operación (generar_candidato_uat) |
Operación no permitida | models/pila_candidato_uat.py:316 |
| PENDIENTE_EVIDENCIA_UAT_PILA: el paquete local MiPlanilla ya tiene un resultado ({}); no se reutiliza para un candidato UAT nuevo. | Operación (generar_candidato_uat) |
Operación no permitida | models/pila_candidato_uat.py:323 |
| La carga manual solo puede registrarse para un candidato aprobado; estado actual {}. | Operación (registrar_carga_manual) |
Operación no permitida | models/pila_candidato_uat.py:404 |
| La carga manual UAT exige soporte o referencia. | Operación (registrar_carga_manual) |
Operación no permitida | models/pila_candidato_uat.py:409 |
| El SHA256 confirmado no coincide con el candidato UAT; no se registra carga de un archivo diferente. | Operación (registrar_carga_manual) |
Operación no permitida | models/pila_candidato_uat.py:411 |
| Resultado UAT invalido: use observado, rechazado o validado_estructura. | Operación (registrar_resultado_operador) |
Operación no permitida | models/pila_candidato_uat.py:446 |
| El resultado del operador exige carga manual previamente evidenciada; estado actual {}. | Operación (registrar_resultado_operador) |
Operación no permitida | models/pila_candidato_uat.py:453 |
| El SHA256 de la respuesta no corresponde al candidato UAT cargado. | Operación (registrar_resultado_operador) |
Operación no permitida | models/pila_candidato_uat.py:457 |
| El resultado UAT del operador exige soporte. | Operación (registrar_resultado_operador) |
Operación no permitida | models/pila_candidato_uat.py:460 |
| El resultado UAT observado o rechazado exige describir los errores. | Operación (registrar_resultado_operador) |
Operación no permitida | models/pila_candidato_uat.py:462 |
bps.pila.catalogo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Todo cambio critico del catalogo PILA exige motivo (contexto bps_motivo_cambio). | Al modificar (write) |
Operación no permitida | models/pila_catalogo.py:174 |
| Los catalogos PILA no se eliminan en operacion; desactivelos para conservar trazabilidad. | Al eliminar (unlink) |
Operación no permitida | models/pila_catalogo.py:196 |
| La vigencia final del catalogo PILA no puede ser anterior a la inicial. | Validación automática (_check_fuente_y_vigencia) |
Validación | models/pila_catalogo.py:208 |
| PENDIENTE_DATO_PILA_DETALLE: falta codigo del catalogo PILA tipo {}. | Operación (buscar_unico) |
Operación no permitida | models/pila_catalogo.py:245 |
| PENDIENTE_DATO_PILA_DETALLE: no existe catalogo PILA {}={} vigente/fuenteado para {}. | Operación (buscar_unico) |
Operación no permitida | models/pila_catalogo.py:262 |
| PENDIENTE_DATO_PILA_DETALLE: catalogo PILA {}={} ambiguo; no se elige un registro arbitrariamente. | Operación (buscar_unico) |
Operación no permitida | models/pila_catalogo.py:267 |
| PENDIENTE_FUENTE_AT2: catalogo PILA {}={} identificado, pero no esta oficial_normalizado (estado actual: {}). No se usa para generar detalle PILA local/productivo hasta cerrar la fuente y sus reglas. | Operación (buscar_unico) |
Operación no permitida | models/pila_catalogo.py:271 |
bps.pila.correccion.local¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La correccion local PILA solo se crea por el servicio gobernado (preparar). No se crea directamente. | Al crear (create) |
Operación no permitida | models/pila_correccion_local.py:155 |
| La correccion local PILA es evidencia INMUTABLE. Si el soporte o los datos cambian, prepare una correccion nueva (la original no se edita). | Al modificar (write) |
Operación no permitida | models/pila_correccion_local.py:163 |
| Las correcciones locales PILA no se eliminan (son evidencia). | Al eliminar (unlink) |
Operación no permitida | models/pila_correccion_local.py:169 |
| Correccion bloqueada: requiere una planilla original trazable. | Operación (preparar) |
Operación no permitida | models/pila_correccion_local.py:353 |
| Correccion bloqueada: la planilla original no tiene periodo. | Operación (preparar) |
Operación no permitida | models/pila_correccion_local.py:359 |
| Correccion bloqueada: la planilla original no tiene cotizantes/trazabilidad (lineas) sobre los que corregir. | Operación (preparar) |
Operación no permitida | models/pila_correccion_local.py:362 |
| Correccion bloqueada: el motivo de la correccion es obligatorio (HU-050). | Operación (preparar) |
Operación no permitida | models/pila_correccion_local.py:367 |
| PENDIENTE_SOPORTE_CORRECCION: la correccion requiere al menos un adjunto de soporte (acto administrativo, calculo previo o comunicacion). No se prepara evidencia sin soporte. | Operación (preparar) |
Operación no permitida | models/pila_correccion_local.py:383 |
| No se pudo preparar la correccion local (conflicto de concurrencia). | Operación (preparar) |
Operación no permitida | models/pila_correccion_local.py:437 |
| PENDIENTE_PLANILLA_N_AT2 / PENDIENTE_OPERADOR_PILA: la correccion local es evidencia, NO genera Planilla N productiva ni TXT. Faltan la semantica oficial de correccion (calculo diferencial no normalizado) y la prueba de carga con operador. | Operación (exportar_txt) |
Operación no permitida | models/pila_correccion_local.py:471 |
| PENDIENTE_OPERADOR_PILA: la correccion local no se envia ni se acepta con el operador. El envio/aceptacion productiva de Planilla N sigue bloqueado. | Operación (entregar_operador) |
Operación no permitida | models/pila_correccion_local.py:480 |
| Preflight bloqueado: la planilla pertenece a una compania fuera del contexto multiempresa del usuario. | Validación automática (_check_lectura_preflight) |
Operación no permitida | models/pila_correccion_local.py:492 |
| No tiene permiso para consultar el preflight de correccion PILA. | Validación automática (_check_lectura_preflight) |
Operación no permitida | models/pila_correccion_local.py:497 |
bps.pila.detalle.tipo2¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El detalle PILA tipo 2 local solo se crea por el servicio (generar_desde_recibo). | Al crear (create) |
Operación no permitida | models/pila_catalogo.py:449 |
| El detalle PILA tipo 2 local es inmutable. | Al modificar (write) |
Operación no permitida | models/pila_catalogo.py:455 |
| Los detalles PILA tipo 2 locales no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pila_catalogo.py:459 |
| PENDIENTE_DATO_PILA_DETALLE: la secuencia debe ser un entero positivo. | Operación (generar_desde_recibo) |
Operación no permitida | models/pila_catalogo.py:824 |
| PENDIENTE_DATO_PILA_DETALLE: el usuario debe tener lectura HR para mapear datos maestros del cotizante. | Operación (generar_desde_recibo) |
Operación no permitida | models/pila_catalogo.py:827 |
| PENDIENTE_REGENERACION_PILA_RET: ya existe un detalle tipo 2 local inmutable para este recibo/version con una fuente RET distinta. No se modifica en caliente; genere un nuevo flujo gobernado de reemplazo cuando exista. | Operación (generar_desde_recibo) |
Operación no permitida | models/pila_catalogo.py:841 |
| PENDIENTE_LAYOUT_PILA_DETALLE: el registro tipo 2 no esta completo y contiguo en la version {}. | Operación (generar_desde_recibo) |
Operación no permitida | models/pila_catalogo.py:849 |
| Ya existe un detalle PILA tipo 2 local para este recibo/version (creado en paralelo). | Operación (generar_desde_recibo) |
Operación no permitida | models/pila_catalogo.py:917 |
bps.pila.detalle.tipo2.valor¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los valores del detalle PILA tipo 2 solo se crean por el servicio. | Al crear (create) |
Operación no permitida | models/pila_catalogo.py:957 |
| Los valores del detalle PILA tipo 2 son inmutables. | Al modificar (write) |
Operación no permitida | models/pila_catalogo.py:962 |
| Los valores del detalle PILA tipo 2 no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pila_catalogo.py:966 |
bps.pila.layout.campo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El campo {} ({}-{}) solapa al campo {} ({}-{}) en el mismo registro del layout PILA. | Validación automática (_check_no_solape) |
Validación | models/pila_layout.py:162 |
| Los campos del layout PILA no se eliminan en operacion; desactivelos si una version deja de aplicar. | Al eliminar (unlink) |
Operación no permitida | models/pila_layout.py:189 |
| El registro '{}' del archivo tipo {} no tiene campos normalizados en la version {}: no se genera una linea sin layout. | Operación (validar_registro) |
Operación no permitida | models/pila_layout.py:255 |
| El campo {} del registro no esta OFICIAL_VERIFICADO: no se genera TXT con un campo sin verificar. | Operación (validar_registro) |
Operación no permitida | models/pila_layout.py:262 |
| El campo {} no cita su pagina/seccion oficial: no se normaliza un campo sin fuente. | Operación (validar_registro) |
Operación no permitida | models/pila_layout.py:266 |
| El registro '{}' (archivo {}) no es contiguo: se esperaba la posicion {} y el campo {} inicia en {} (hueco o solape). | Operación (validar_registro) |
Operación no permitida | models/pila_layout.py:270 |
| PENDIENTE_DATO_PILA: no se genera la linea del archivo tipo {} / registro {}. Errores: - {} | Operación (validar_valores) |
Operación no permitida | models/pila_layout.py:366 |
| La linea generada ({}) no coincide con la longitud total del registro ({}): layout inconsistente. | Operación (generar_linea) |
Operación no permitida | models/pila_layout.py:418 |
bps.pila.layout.regla¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Todo cambio de una regla PILA exige motivo (contexto bps_motivo_cambio). | Al modificar (write) |
Operación no permitida | models/pila_layout.py:518 |
| Las reglas del layout PILA no se eliminan en operacion; desactivelas para conservar trazabilidad. | Al eliminar (unlink) |
Operación no permitida | models/pila_layout.py:535 |
| Una regla 'nota_si' exige mensaje funcional: es el texto honesto que ve el area de nomina. | Validación automática (_check_parametros_tipo) |
Validación | models/pila_layout.py:631 |
| Una regla 'no menor que otro campo' exige el campo de referencia. | Validación automática (_check_parametros_tipo) |
Validación | models/pila_layout.py:636 |
| La regla exige 'valor requerido': rango 'min,max' o lista de numeros de campo alternativos. | Validación automática (_check_parametros_tipo) |
Validación | models/pila_layout.py:641 |
bps.pila.miplanilla.carga.local¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La carga local MiPlanilla solo se crea por el servicio gobernado; no se admite alta por RPC ni por formulario. | Al crear (create) |
Operación no permitida | models/pila_miplanilla_carga.py:126 |
| La carga local MiPlanilla es inmutable. | Al modificar (write) |
Operación no permitida | models/pila_miplanilla_carga.py:132 |
| Las cargas locales MiPlanilla no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pila_miplanilla_carga.py:136 |
bps.pila.novedad.dias¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| PENDIENTE_MAPEO_NOVEDAD_PILA: los tipos de novedad {} no declaran como se reportan en PILA. La particion de dias se bloquea: no se elige un codigo AT2 por parecido. | Operación (particionar_lote) |
Operación no permitida | models/pila_novedad_dias.py:151 |
| NOVEDADES_SOLAPADAS: el {} del trabajador {} esta reclamado por '{}' ({}) y por '{}' ({}) a la vez. Un dia solo se reporta una vez en PILA: resuelva el solape antes de consolidar. | Operación (particionar_lote) |
Operación no permitida | models/pila_novedad_dias.py:170 |
bps.pila.novedad.mapeo¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El mapeo de '{}' reporta la novedad PILA {} pero no referencia la entrada del catalogo AT2: el codigo no se escribe suelto. | Validación automática (_check_catalogo) |
Validación | models/pila_novedad_dias.py:73 |
| El mapeo de '{}' declara la novedad {} pero referencia la entrada '{}' del catalogo: deben coincidir. | Validación automática (_check_catalogo) |
Validación | models/pila_novedad_dias.py:78 |
bps.pila.operador.perfil¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El perfil de operador PILA debe declarar la fuente de su configuracion (o la ausencia de especificacion formal). | Validación automática (_check_datos_minimos) |
Validación | models/pila_operador_perfil.py:125 |
| El perfil de operador PILA exige codigo interno y nombre. | Validación automática (_check_datos_minimos) |
Validación | models/pila_operador_perfil.py:129 |
| Todo cambio critico del perfil de operador PILA exige motivo (contexto bps_motivo_cambio). | Al modificar (write) |
Operación no permitida | models/pila_operador_perfil.py:187 |
| Los perfiles de operador PILA no se eliminan en operacion; desactivelos para conservar trazabilidad. | Al eliminar (unlink) |
Operación no permitida | models/pila_operador_perfil.py:209 |
| PENDIENTE_OPERADOR_PILA: falta el codigo del perfil de operador. | Operación (buscar_por_codigo) |
Operación no permitida | models/pila_operador_perfil.py:218 |
| PENDIENTE_OPERADOR_PILA: no existe un perfil activo de operador PILA con codigo {}. | Operación (buscar_por_codigo) |
Operación no permitida | models/pila_operador_perfil.py:222 |
| PENDIENTE_OPERADOR_PILA: perfil de operador {} ambiguo; no se elige uno arbitrariamente. | Operación (buscar_por_codigo) |
Operación no permitida | models/pila_operador_perfil.py:226 |
bps.pila.paquete.miplanilla.wizard¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| PENDIENTE_VALIDACION_MIPLANILLA: seleccione un TXT local que ya este listo_para_validacion_operador. Use primero la prevalidacion MiPlanilla del TXT. | Botón o acción (action_generar_paquete) |
Operación no permitida | models/pila_paquete_operador.py:465 |
| PENDIENTE_VALIDACION_MIPLANILLA: el TXT seleccionado fue prevalidado con {}. Para generar este paquete debe prevalidarse con el perfil MiPlanilla. | Botón o acción (action_generar_paquete) |
Operación no permitida | models/pila_paquete_operador.py:470 |
bps.pila.paquete.operador¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| El paquete de prueba operador solo se crea por el servicio (generar_paquete). | Al crear (create) |
Operación no permitida | models/pila_paquete_operador.py:188 |
| El paquete de prueba con resultado registrado es INMUTABLE (evidencia). No existe anulacion: registre la situacion con el operador en un nuevo TXT/paquete si el archivo cambia. | Al modificar (write) |
Operación no permitida | models/pila_paquete_operador.py:197 |
| El paquete de prueba operador solo se actualiza por el flujo gobernado (registrar_resultado_manual). | Al modificar (write) |
Operación no permitida | models/pila_paquete_operador.py:203 |
| Los paquetes de prueba operador no se eliminan (son evidencia). | Al eliminar (unlink) |
Operación no permitida | models/pila_paquete_operador.py:209 |
| PENDIENTE_VALIDACION_OPERADOR_PILA: el TXT local NO supera la prevalidacion (solo se genero el reporte bloqueante). No se empaqueta un archivo con errores: - {} | Operación (generar_paquete) |
Operación no permitida | models/pila_paquete_operador.py:290 |
| Ya existe un paquete de prueba para ese TXT/operador (paralelo). | Operación (generar_paquete) |
Operación no permitida | models/pila_paquete_operador.py:327 |
| El paquete ya tiene un resultado registrado ({}) y es inmutable. Si el operador emitio un resultado nuevo sobre un archivo corregido, genere el TXT/paquete nuevo. | Operación (registrar_resultado_manual) |
Operación no permitida | models/pila_paquete_operador.py:355 |
| Resultado manual invalido: use aceptado, observado, rechazado, pendiente_revision, aceptado_localmente_por_evidencia o rechazado_por_operador. | Operación (registrar_resultado_manual) |
Operación no permitida | models/pila_paquete_operador.py:361 |
| PENDIENTE_FORMATO_RESPUESTA_MIPLANILLA: para ingestar una respuesta MiPlanilla debe adjuntar el archivo/evidencia manual. Sin formato formal no se interpreta automaticamente. | Operación (registrar_resultado_manual) |
Operación no permitida | models/pila_paquete_operador.py:366 |
| El hash del archivo probado ({}...) no coincide con el TXT empaquetado ({}...): no se registra evidencia de un archivo distinto. | Operación (registrar_resultado_manual) |
Operación no permitida | models/pila_paquete_operador.py:372 |
bps.pila.planilla¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La planilla PILA tecnica solo se crea por el servicio (consolidar). | Al crear (create) |
Operación no permitida | models/pila_planilla.py:130 |
| La planilla PILA tecnica es inmutable. | Al modificar (write) |
Operación no permitida | models/pila_planilla.py:135 |
| Las planillas PILA tecnicas no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pila_planilla.py:139 |
| El periodo de la planilla PILA debe ser el ultimo dia del mes ({}). | Operación (consolidar) |
Operación no permitida | models/pila_planilla.py:152 |
| Ya existe una planilla PILA tecnica para la compania/periodo. | Operación (consolidar) |
Operación no permitida | models/pila_planilla.py:157 |
| No hay preliquidaciones tecnicas persistidas para la compania en el periodo: la planilla PILA solo consolida trazas ya calculadas (M12). | Operación (consolidar) |
Operación no permitida | models/pila_planilla.py:164 |
| Ya existe una planilla PILA tecnica para la compania/periodo (creada en paralelo). | Operación (consolidar) |
Operación no permitida | models/pila_planilla.py:198 |
| Exportacion PILA productiva BLOQUEADA (no se genera TXT). Motivos: - {} No se inventan posiciones ni codigos: normalice completamente la fuente oficial antes de habilitar la exportacion. | Operación (exportar_txt) |
Operación no permitida | models/pila_planilla.py:366 |
| Generador de TXT PILA aun no implementado (M08, fuente oficial pendiente). | Operación (exportar_txt) |
Operación no permitida | models/pila_planilla.py:373 |
| Planilla N bloqueada: requiere planilla original trazable. | Operación (preparar_correccion_n) |
Operación no permitida | models/pila_planilla.py:383 |
| Planilla N bloqueada: la planilla original pertenece a otra compania. | Operación (preparar_correccion_n) |
Operación no permitida | models/pila_planilla.py:389 |
| Planilla N bloqueada: la planilla original no tiene periodo. | Operación (preparar_correccion_n) |
Operación no permitida | models/pila_planilla.py:392 |
| Planilla N bloqueada: la planilla original no tiene cotizantes/trazabilidad (lineas) sobre los que corregir. | Operación (preparar_correccion_n) |
Operación no permitida | models/pila_planilla.py:394 |
| Planilla N bloqueada: el motivo es obligatorio. | Operación (preparar_correccion_n) |
Operación no permitida | models/pila_planilla.py:399 |
Planilla N productiva BLOQUEADA (no se crea correccion ni TXT). Motivos: - {} Para dejar EVIDENCIA LOCAL trazable de la correccion (motivo, soporte y campos AT2 afectados) sin generar TXT ni operador, use preparar_correccion_local(). |
Operación (preparar_correccion_n) |
Operación no permitida | models/pila_planilla.py:409 |
bps.pila.planilla.linea¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los dias de la linea PILA de {} suman {} pero el mes tiene {}: la particion por novedad no agota el periodo. | Validación automática (_check_dias_agotan_el_mes) |
Validación | models/pila_planilla.py:496 |
| Las lineas PILA solo se crean por el servicio. | Al crear (create) |
Operación no permitida | models/pila_planilla.py:504 |
| Las lineas de planilla PILA son inmutables. | Al modificar (write) |
Operación no permitida | models/pila_planilla.py:508 |
| Las lineas de planilla PILA no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pila_planilla.py:512 |
| La secuencia del registro tipo 2 debe ser un entero positivo. | Operación (generar_linea_detalle_tipo2) |
Operación no permitida | models/pila_planilla.py:592 |
| PENDIENTE_DATO_PILA_DETALLE: no se genera registro tipo 2 real. Faltantes: - {} | Operación (generar_linea_detalle_tipo2) |
Operación no permitida | models/pila_planilla.py:598 |
bps.pila.validacion.operador¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| La evidencia de respuesta MiPlanilla solo se registra por el flujo gobernado; no se crea por escritura directa. | Al crear (create) |
Operación no permitida | models/pila_archivo_local.py:2130 |
| La evidencia de respuesta MiPlanilla solo se registra por el flujo gobernado; no se crea por escritura directa (defaults de contexto/ir.default bloqueados: {}). | Al crear (create) |
Operación no permitida | models/pila_archivo_local.py:2136 |
| La evidencia de respuesta MiPlanilla solo se registra por el flujo gobernado; no se edita por escritura directa. | Al modificar (write) |
Operación no permitida | models/pila_archivo_local.py:2170 |
| La validacion operador PILA solo permite actualizar resultado, soporte, hash y observaciones. | Al modificar (write) |
Operación no permitida | models/pila_archivo_local.py:2176 |
| Los resultados de validacion operador PILA no se eliminan; registre una nueva observacion sobre el mismo TXT/hash. | Al eliminar (unlink) |
Operación no permitida | models/pila_archivo_local.py:2226 |
| PENDIENTE_VALIDACION_OPERADOR_PILA: hay resultados duplicados para el mismo TXT/hash; no se elige uno arbitrariamente. | Operación (registrar_resultado) |
Operación no permitida | models/pila_archivo_local.py:2665 |
| La respuesta MiPlanilla ya tiene un adjunto gobernado para este TXT/hash/operador; no se reemplaza destructivamente. | Operación (registrar_resultado) |
Operación no permitida | models/pila_archivo_local.py:2691 |
hr.version¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los codigos DSNE del trabajador exigen una fuente verificable. | Validación automática (_check_fuente_codigos_dsne) |
Validación | models/nie_oficial.py:128 |
| El pais DSNE debe usar dos letras mayusculas. | Validación automática (_check_fuente_codigos_dsne) |
Validación | models/nie_oficial.py:134 |
| El departamento DSNE debe usar dos digitos. | Validación automática (_check_fuente_codigos_dsne) |
Validación | models/nie_oficial.py:136 |
| El municipio DSNE debe usar cinco digitos DANE. | Validación automática (_check_fuente_codigos_dsne) |
Validación | models/nie_oficial.py:138 |
ir.attachment¶
| Mensaje | Cuando aparece | Tipo | Origen |
|---|---|---|---|
| Los adjuntos del candidato UAT MiPlanilla son inmutables. | Al modificar (write) |
Operación no permitida | models/pila_candidato_uat.py:618 |
| Los adjuntos del candidato UAT MiPlanilla no se eliminan. | Al eliminar (unlink) |
Operación no permitida | models/pila_candidato_uat.py:625 |