# Integración de Gestión de Planillas La integración permite acceder desde **SICOF**, específicamente desde el módulo de **Nómina**, a una aplicación web de **Gestión de planillas**. La ventana web permite realizar diferentes operaciones relacionadas con las planillas, entre ellas: - Generar plano. - Cargar plano. - Consultar planillas. - Realizar pagos. - Consultar información asociada a las planillas. > **Nota:** El acceso se recomienda identificar como **Gestión de planillas**, ya que la ventana no se limita únicamente a la carga de archivos. --- ## Paso 1. Ingreso a SICOF Ingresar a la aplicación **SICOF** con un usuario válido. Luego ingresar al módulo: `Nómina` --- ## Paso 2. Generar plano **Ruta:** `Nómina > Generar plano` Desde esta ventana se determina si el usuario puede utilizar la integración con la aplicación web de Gestión de planillas. Antes de habilitar la integración se validan: - La empresa seleccionada. - El usuario logueado. - El operador de pago configurado para la integración. --- ## Paso 3. Validación del operador de pago de la empresa El sistema valida si la empresa tiene **activo el operador de pago de la integración, es decir, debe estar con anterioridad registrada en el operador de pago con el usuario autorizado**. ### Empresa sin operador activo Si la empresa **no tiene activo** el operador de pago: - No se muestra el botón **Gestión de planillas**. - El usuario continúa utilizando el proceso normal de SICOF. - Los demás controles mantienen su comportamiento habitual. > **Regla:** Cuando la empresa no tiene habilitada la integración, el proceso tradicional no debe verse afectado. --- ## Paso 4. Validación del usuario Si la empresa tiene activo el operador de pago, se valida si el **usuario logueado** está habilitado para utilizar la integración. ### Empresa con operador activo y usuario no habilitado Si la empresa tiene el operador activo, pero el usuario **no está habilitado**: - El botón **Gestión de planillas** queda bloqueado. - Los demás botones de la ventana también quedan bloqueados. - El usuario no puede ejecutar ninguna acción desde la ventana. > **Regla:** La habilitación del operador para la empresa no implica automáticamente que todos los usuarios puedan utilizar la integración. ### Empresa con operador activo y usuario habilitado Si tanto la empresa como el usuario están habilitados: - Se habilita el botón **Gestión de planillas**. - Los demás botones de la ventana se deshabilitan. - El usuario debe continuar el proceso mediante la aplicación web integrada. --- ## Paso 5. Matriz de validaciones | Operador empresa | Usuario habilitado | Gestión de planillas | Otros botones | Resultado | |---|---|---|---|---| | No | No aplica | No aparece | Habilitados según proceso normal | Continúa proceso tradicional | | Sí | No | Bloqueado | Bloqueados | No se permite ninguna acción | | Sí | Sí | Habilitado | Deshabilitados | Se utiliza la integración | --- ## Paso 6. Construcción del contexto Cuando el usuario está autorizado, PowerBuilder construye el contexto que será enviado a la aplicación web. La estructura utilizada es: ```text idUser=&idCompany=&operatorCode=&token= ``` Por ejemplo: ```text idUser=5078&idCompany=6040&operatorCode=86&token=ada-prod ``` Los valores utilizados en el desarrollo corresponden a: - `idUser`: usuario logueado. - `idCompany`: empresa. - `operatorCode`: código del operador. - `token`: token de conexión. --- ## Paso 7. Codificación Base64 El contexto se convierte a **Base64** mediante la función `wf_base64encode` desarrollada en PowerBuilder 12.5. El flujo es: ```text Datos originales ↓ Construcción de parámetros ↓ UTF-8 / Blob ↓ Base64 ↓ ctx ``` La URL final se construye agregando el contexto: ```text URL_BASE?ctx= ``` > **Importante:** Base64 es una codificación y no un mecanismo de cifrado. Si el contexto contiene información sensible, debe utilizarse HTTPS y controles adicionales de seguridad. --- ## Paso 8. Apertura de la aplicación web PowerBuilder obtiene el servicio de Internet y abre la URL mediante `HyperlinkToURL`. La lógica general es: ```text PowerBuilder ↓ Construcción de datos ↓ Base64 ↓ Construcción de URL ↓ GetContextService("Internet") ↓ HyperlinkToURL() ↓ Aplicación web ``` Se debe validar: - Que el servicio de Internet esté disponible. - Que la URL sea construida correctamente. - Que `HyperlinkToURL` permita abrir la aplicación. - Que la aplicación web pueda procesar el parámetro `ctx`. --- ## Paso 9. Recepción del contexto en la aplicación web La aplicación web recibe el parámetro: ```text ctx ``` El flujo esperado es: ```text ctx ↓ Decodificación Base64 ↓ Datos originales ↓ Identificación de usuario ↓ Identificación de empresa ↓ Identificación del operador ↓ Validación del token ↓ Acceso a Gestión de planillas ``` El resultado esperado es que la aplicación web pueda recuperar exactamente la información enviada desde PowerBuilder. --- ## Paso 10. Consulta del token Para obtener el token de conexión se consulta: `PRESUP01.PARAMETROS_SISTEMA` La consulta utilizada contempla que el NIT almacenado pueda contener información adicional, como el dígito de verificación separado por coma. ```sql SELECT token_bd INTO :ls_token_conect FROM presup01.parametros_sistema WHERE INSTR(nit_empresa, :gd_nit_empresa) > 0 USING SQLCA; ``` > **Nota:** La búsqueda mediante `INSTR` debe revisarse si existen NIT similares, ya que una búsqueda por contenido puede producir coincidencias parciales. --- ## Paso 11. Funcionalidades de Gestión de planillas Una vez abierta la aplicación web, el usuario puede acceder a las funcionalidades disponibles para la gestión de planillas, entre ellas: - Generación de plano. - Carga de plano. - Consulta de planillas. - Pago. - Otras operaciones relacionadas con la gestión. --- ## Flujo técnico ```text SICOF │ └── Nómina │ └── Generar plano │ ├── Validar empresa │ ├── Validar operador de pago │ └── Validar usuario │ ├── Empresa sin operador │ └── Proceso normal │ ├── Empresa con operador │ ├── Usuario no habilitado │ │ └── Bloquear controles │ │ │ └── Usuario habilitado │ └── Habilitar Gestión de planillas │ └── Construir contexto │ ├── idUser ├── idCompany ├── operatorCode └── token │ ↓ Base64 │ ↓ URL + ctx │ ↓ Aplicación Web │ ↓ Gestión de planillas ``` --- ## Reglas principales 1. La integración depende de que la **empresa tenga activo el operador de pago**. 2. La habilitación del operador para la empresa no autoriza automáticamente a todos los usuarios. 3. El **usuario logueado también debe estar habilitado**. 4. Si la empresa no tiene operador activo, el botón **Gestión de planillas no aparece**. 5. Si la empresa tiene operador activo y el usuario no está habilitado, se bloquean los controles de la ventana. 6. Si empresa y usuario están habilitados, se habilita **Gestión de planillas** y se deshabilitan los demás botones. 7. El backend debe validar nuevamente la autorización y no depender únicamente del bloqueo de la interfaz. 8. El contexto enviado mediante `ctx` debe ser procesado y validado antes de permitir operaciones. --- ## Seguridad - Utilizar HTTPS para la comunicación. - No considerar Base64 como cifrado. - No registrar tokens completos en logs. - No mostrar tokens mediante mensajes al usuario. - Validar el contexto en el backend. - Validar nuevamente la autorización del usuario y la empresa. - Utilizar tokens con vigencia y alcance controlados. --- {{:ada:sicoferp:gestionhumana:nomina:wiki1.png?400|}} {{:ada:sicoferp:gestionhumana:nomina:wiki2.png?400|}} [← Volver atrás](../nomina.md)