Ayuda sobre productos BOLD:
Generación de documentos vinculados a la contratación
Las empleadas y empleados tienen la opción de consultar sus contratos y de firmarlos desde la App.
Para habilitar esta funcionalidad es necesario tener una serie de requisitos:
- Aplicación de móvil actualizada
- Aplicación web actualizada
- Definir estados de contratos
- Habilitar propiedad DocumentAppSet o DocumentSet
- Añadir en queryCustom.xml reglas, query, atributos, boldActions necesarias
- Añadir variable de activación en el json de la App del cliente que corresponda
- Creación de juegos de documentos
Definir estados de contratos
Las usuarias y usuarios de la App pueden consultar sus contratos en forma de listado, en la lista de contratos hay posibilidad de firmarlos y/o descargarlos. Esto dependerá del estado del contrato.
Los estados van asignados a números, dependiendo de la configuración del cliente.
Para configurar los números de estado hay que acceder a Configuración general , dentro del menú Configuración.
Asignamos los estados correspondientes al estado Firmados y Pendientes de firmar, los selectores contienen la lista de estados y clicamos Guardar.
Añadir variable DocumentAppSet o DocumentSet
En la pantalla del contrato de la persona empleada (se puede acceder desde la ficha del empleado > Historial de contratos o desde Datos maestros), accedemos a la pantalla «Auxiliares» y añadimos la «Propiedad alfanumérica» en Nombre DocumentAppSet o DocumentSet, es importante que se escriba tal como aparece en esta documentación, y finalmente como Valor le ponemos el nº de Juego de documentos que queremos asociar al contrato.
Configuración en queryCustom.xml
Configuración de queryCustom.xml (esto se simplificará más en un futuro, obtendremos los estados Firmado y Pendiente definidos en la base de datos):
<DefaultObjectValues>
...
...
...
<DefaultValue EventName="OnUpdateObject" Class="ContractWorker" Attribute="SystemProps.TokenSMS">
<![CDATA[
If(State==6 AND ID_VERSION > 1,
If(Object(ID,"ContractWorker").State != 6 ,GetRandomNumber(5))
)
]]>
</DefaultValue>
<DefaultValue EventName="OnUpdateObject" Class="ContractWorker" Attribute="SystemProps.SignByAppDate">
<![CDATA[
If(State == 15 AND ID_VERSION > 1,
If(Object(ID,"ContractWorker").State == 6 ,TodayTime())
)
]]>
</DefaultValue>
<DefaultValue EventName="OnUpdateObject" Class="ContractWorker" Attribute="SystemProps.SignByAppDate">
<![CDATA[
If(ID_VERSION > 1 && State == 6,
If(Object(ID,"ContractWorker").State != 6 , GetFromEverDate())
)
]]>
</DefaultValue>
</DefaultObjectValues>
<PredefinedQueries>
...
...
...
<Query Name='AppContractWorkerForWorkerList'>
<Return>1</Return>
<ORACLE>
<MSSQL>
<![CDATA[
select * from (
SELECT ROW_NUMBER() OVER ( ORDER BY Z.ContractStart desc ) AS RowNum, * FROM (
select ID, convert (varchar, cw.STARTCONTRACT, 126) as ContractStart, convert (varchar, cw.AdminEnd, 126) as AdminEnd,
case cw.state when 6 then 1 else 0 end as SignPending, case cw.state when 15 then 1 when 6 then 1 else 0 end as CanDownload
from WPCONTRACTWORKER_TB cw
where cw.ACTIVO=1 and cw.ID_WPAdminCW is null
and cw.ID_WPWORKER=@pIdWorker and cw.state in (6,15)
) Z
) AS RowConstrainedResult WHERE RowNum >= @pPageIni AND RowNum < @pPageEnd ORDER BY RowNum
]]>
</MSSQL>
</ORACLE>
</Query>
</PredefinedQueries>
<DynamicClasses>
...
...
...
<DynamicClass Name="ContractWorkerBean" ShowName="Firma de contratos" Description="Campos para firma de contratos" AllowOverride="true">
<!-- CAMPOS PARA FIRMA de CONTRATOS -->
<Attribute Type="string" Name="TokenSMS" ShowName="TokenSMS" Description="" Default="" ReadOnly="1" Visible="false"/>
<Attribute Type="dateTime" Name="SignByAppDate" ShowName="Fecha firma APP" Description="" Default="GetFromEverDate" ReadOnly="1" Visible="false"/>
</DynamicClass>
</DynamicClasses>
<TBoldActionConfigList>
...
...
...
<TBoldAction Name="Act_MenuMasterDocTemplateCollection_Web" ShowName="Juegos de documentos" UserAccess="u_Administrador, u_Parametrizador, u_Planificador, u_Integrador, u_Consultor, u_Supervisor" Visible="true" Enabled="true"/>
<TBoldAction Name="Act_MenuMasterDocTemplate_Web" ShowName="Plantillas de documentos" UserAccess="u_Administrador, u_Parametrizador, u_Planificador, u_Integrador, u_Consultor, u_Supervisor" Visible="true" Enabled="true"/>
<TBoldAction Name="Act_ConfigShowButtonDownloadContract_Web" ShowName="Descargar contrato" UserAccess="u_Administrador, u_Parametrizador, u_Planificador, u_Integrador, u_Consultor, u_Supervisor" Visible="true" Enabled="true"/>
</TBoldActionConfigList>
Añadir variable en JSON del cliente en la APP
Para poder visualizar el listado de contratos en la App, es necesario añadir la siguiente variable al JSON que utiliza la App (ftp) del cliente:
"isContractListEnabled": true,
Hay posibilidad de poder firmar con la cámara del móvil, si el cliente desea deshabilitar la función hay que añadir la siguiente variable:
"isContractSignWithCameraEnabled": false
Creación de juegos de documentos
Un juego de documentos es un conjunto de plantillas en formato pdf. Para crear un juego de documentos, se tendrá que subir el conjunto de plantillas que necesitamos.
Crear plantillas
Activando la BoldAction Act_MenuMasterDocTemplate_Web nos permite acceder a la opción ‘Plantillas de documentos’ dentro del menú de ‘Configuración’.
Para introducir una nueva plantilla:
1 – Nueva
2 – Seleccionar archivo
3 – Procesar nueva plantilla
Una vez procesada nos aparecen los campos del formulario pdf, se pueden asignar
expresiones a cada uno y evaluarlas, y finalmente Grabar la plantilla.
Existen dos campos clave que tienen que existir en el pdf en caso de:
– Querer ocultar la plantilla en el juego de documentos: Invisible
– Querer añadir la posibilidad de firmar desde la App: Signature
El uso de Invisible es sencillo, mientras el campo exista con valor true, el documento será ocultado.
El campo Signature de los documentos pdf tiene 4 parámetros por defecto: ancho,alto,posX,posY
- Si se añaden N parámetros a los 4 originales, se indican las hojas que queremos firmar del documento
Formato:
ancho,alto,posX,posY,numPag,numPag
Ejemplo:
60,60,425,650,1,3
esto indica que se va a firmar la primera y tercera hoja, dejando la segunda sin firmar
- Si se introducen los 4 parámetros, la firma aparece en todas las hojas del documento
Ejemplo 2:
ancho,alto,posX,posY
60,60,425,650
así se firma todas las hojas del documento
Se puede hacer una prueba en «Generar PDF» seleccionando una persona empleada y el tipo de contrato.
Crear Juego de documentos
Con la BoldAction Act_MenuMasterDocTemplateCollection_Web activada, se puede acceder en el menú de configuración a Juegos de documentos.
Se ofrece una interfaz sencilla donde se nombra el Juego de documentos, se añade la serie de plantillas que se desee y se clica al botón Guardar.
Se puede hacer una prueba en «Generar PDF» seleccionando una persona empleada y el tipo de contrato.
Descargar contratos
Con la BoldAction Act_ConfigShowButtonDownloadContract_Web activada, una vez estamos en la ficha de la empleada desde el Gantt, Historial de contratos, aparece un nuevo botón por cada contrato para descargar contrato en cuestión.
Se descargará el contrato firmado(si lo está) de lo contrario se descarga el contrato sin firmar.
Definir carpeta de documentos
Por defecto se guardarán los documentos firmados en el directorio de BoldWebcfg.xml de la instalación, dentro de la carpeta EmployeeFiles, ejemplo:
C:\Program Files (x86)\Global Planning Solutions\Custom_Files\Integration\configuration\production\boldweb\config\EmployeeFiles\{WorkerID}\contratos\{contractWID}\
Es posible personalizar la configuración si introduce la siguiente variable en BoldWebcfg.xml:
<UploadConfigDir>c:\Ficheros_Adjuntos\</UploadConfigDir>
También en el arranque de node con la variable de entorno process.env.SIGNATURE_DIR podemos asignar la ruta deseada.
El código prioriza la variable de entorno en primer lugar, en segundo la etiqueta en BoldWebcfg y si no existe ninguna, se utiliza la ruta por defecto.