Nombre API
ApiRecLockv2
Documentación Synclock
Para consumir todos los servicios de la API es necesario conocer la
siguiente información de responsabilidad del área TI de su empresa:
- La URL base donde fue instalada la API.
- Todos los servicios de la API requieren de un token
que debe ser agregado en el header de la petición. El nombre de este token es:
X-Token. El valor de este header, debe ser configurado en el archivo
“appsettings.json”, parámetro “token”.
- Para aquellos servicios en los que se consume
información, se entregaran como máximo 50 registros o lo que indique el
parámetro: registros_x_lote del archivo “appsettings.json”.
A continuación, se detallan todos los servicios de la API:
/api/AltasPersonal (método GET)
Obtiene altas de personal y posteriores
modificaciones en datos claves de la ficha de personal de WinPer.
El máximo de registros que se pueden
obtener por cada llamada es de 50 registros o lo que indique el parámetro
registros_x_lote del sitio.
La condición para obtener estos
registros es que se encuentren en el estado PENDIENTE.
Una vez enviado los registros son
cambiados a ENPROCESO.
Filtros:
rutEmpresa (opcional), parte numérica
del rut de la empresa del trabajador
codEmpresa (opcional), código de la
empresa del trabajador
codPlanta (opcional), código de planta
del trabajador
codSucursal (opcional), código de la
sucursal del trabajador
tipoTrabajador (opcional), tipo de
trabajador
formaPago (opcional), forma de pago del
trabajador
Salida
401 (No autorizado), se da cuando al
llamar el api no se le entrega el token de seguridad que permite la ejecución
del api.
404 (Bad request), se da cuando no
existen registros que enviar
500 (Internal Error), se da cuando
existe un problema a nivel del api
200 (OK), se da cuando todo estuvo bien.
En este caso el resultado que entrega el api es la siguiente:
{
"coderr": 0,
"msgerr": "",
"total_lote": 50,
"total_trabajadores": 91,
"trabajadores": [
{
"nro_trabajador":
"17",
"dv_trabajador":
"5",
"rut_trabajador":
"17777777",
"dv_rut_trabajador":
"1",
"nombre": "Matias
Ignacio",
"ape_paterno_trabaj":
"Lopez",
"ape_materno_trabaj":
"Jara",
"fec_nacimiento":
"1995-08-05T00:00:00",
"fec_ini_contrato":
"2020-06-08T00:00:00",
"fec_fin_contr_vige": "2024-01-01T00:00:00",
"cod_sexo":
"M",
"casilla_e_mail":
"innovasoft@innovasoft.cl",
"correo_personal":
"",
"codigo_tipo_contra":
"1",
"direccion": "AV.
Bicentenario 1, Depto 81E",
"cod_comuna":
"13132",
"fono": "",
"fono2": "",
"tarjeta_control":
"17",
"cod_centro_costo":
"7",
"centro_costo":
"Abogados y Procuradores",
"cod_area_perten":
"0",
"area_perten": "No
Definida",
"cod_cargo":
"16",
"cargo_trabajador":
"Egresado",
"cod_jornada":
"22",
"jornada": "ART
22",
"cod_unidad_adminis":
"0",
"unidad_administrat":
"No definida",
"convenio":
"0",
"nombre_convenio":
"No Sindicalizado",
"cod_sindicato":
"0",
"sindicato": "No
Sindicalizado",
"cod_lugar_pago":
"0",
"lugar_pago": "No
definida",
"cod_sucursal":
"0",
"sucursal": "Casa
Matriz",
"cod_tipo_trabajado":
"G",
"tipo_trabajador":
"Nivel General",
"cod_forma_pago":
"D",
"forma_pago":
"Deposito Banco",
"tipo_contabilizaci":"N",
"cod_lugprestacion":"0",
"lugar_prestacion":"No
Definido",
"rut_empresa":
"76644630,
"dv_rut_empresa":
"2",
"cod_empresa":
"21",
"cod_planta":
"1",
"codmov":
"D" ,
"cod_vigen_trabajad": "N",
"fecha_novig": "2024-01-01T00:00:00",
"motivo_novig": "CAMBIO DE EMPRESA/PLANTA" ,
},
{
……
}
]
}
/api/AltasPersonal (método PUT)
Deja en estado TRAPASADA todas las
altas enviadas. Debe ser llamada después de cada solicitud de altas (GET).
Salida
401 (No autorizado), se da cuando al
llamar el api no se le entrega el token de seguridad que permite la ejecución
del api.
500 (Internal Error), se da cuando
existe un problema a nivel del api.
200 (OK), se da cuando las altas
enviadas se dejaron en TRASPASADO.
/api/LicenciasMedYFeriados (método
GET)
Obtiene las licencias médicas y comprobantes de
feriados ingresados en WinPer.
El máximo de registros que se pueden
obtener por cada llamada es de 50 registros o lo que indique el parámetro
registros_x_lote del sitio.
La condición para obtener estos
registros es que se encuentren en el estado PENDIENTE.
Una vez enviado los registros son
cambiados a ENPROCESO.
Filtros:
rutEmpresa (opcional), parte numérica
del rut de la empresa del trabajador.
codEmpresa (opcional), código de la
empresa del trabajador.
codPlanta (opcional), código de planta
del trabajador.
codSucursal (opcional), código de la
sucursal del trabajador.
tipoTrabajador (opcional), tipo de
trabajador.
formaPago (opcional), forma de pago del
trabajador.
Salida
401 (No autorizado), se da cuando al
llamar el api no se le entrega el token de seguridad que permite la ejecución
del api.
404 (Bad request), se da cuando no
existen registros que enviar.
500 (Internal Error), se da cuando
existe un problema a nivel del api.
200 (OK), se da cuando todo estuvo bien.
En este caso el resultado que entrega el api es la siguiente:
{
"coderr": 0,
"msgerr": "",
"total_lote": 50,
"total_trabajadores": 91,
"trabajadores": [
{
"nro_trabajador":
"17",
"dv_trabajador":
"5",
"rut_trabajador":
"17777777",
"dv_rut_trabajador":
"1",
"codigo_justificacion": "F0050",
"nro_licencia": "0",
"serie_licencia": "",
"correl_feriados": "2",
" fecha_inicio ":
"2020-06-13T00:00:00",
" fecha_termino ":
"2020-06-15T00:00:00",
"cantidad": 2.00000,
"unidad_medida": "DIAS",
"hora_inicio": "2024-05-15T09:00:00",
"hora_termino": "2024-05-15T13:30:00",
"reposo_licencia": "0",
"reposo_parcial": "",
"cod_tipo_licencia": "",
"rut_empresa":
"76644630,
"dv_empresa":
"2",
"cod_movimiento":
"I"
"cod_empresa": "21",
"cod_planta":
"1",
"id_registro":
"50",
},
{
……
}
]
}
/api/LicenciasMedYFeriados (método
PUT)
Deja en estado TRAPASADA todas las
licencias y ausencias enviadas. Debe ser llamada después de cada solicitud de
licencias y ausencias (GET)
Salida
401 (No autorizado), se da cuando al
llamar el api no se le entrega el token de seguridad que permite la ejecución
del api.
500 (Internal Error), se da cuando
existe un problema a nivel del api.
200 (OK), se da cuando las solicitudes
de licencias y ausencias se dejaron en TRASPASADA.
/api/Permisos (método GET)
Obtiene cualquier tipo de permiso o ausencia
ingresada en WinPer y que debe ser puesta a disposición del reloj para ser
consumida por éste.
El máximo de registros que se pueden
obtener por cada llamada es de 50 registros o lo que indique el parámetro
registros_x_lote del sitio.
La condición para obtener estos
registros es que se encuentren en el estado PENDIENTE.
Una vez enviado los registros son
cambiados a ENPROCESO.
Filtros:
rutEmpresa (opcional), parte numérica
del rut de la empresa del trabajador.
codEmpresa (opcional), código de la
empresa del trabajador.
codPlanta (opcional), código de planta
del trabajador.
codSucursal (opcional), código de la
sucursal del trabajador.
tipoTrabajador (opcional), tipo de
trabajador.
formaPago (opcional), forma de pago del
trabajador.
Salida
401 (No autorizado), se da cuando al
llamar el api no se le entrega el token de seguridad que permite la ejecución
del api.
404 (Bad request), se da cuando no
existen registros que enviar.
500 (Internal Error), se da cuando
existe un problema a nivel del api.
200 (OK), se da cuando todo estuvo bien.
En este caso el resultado que entrega el api es la siguiente:
{
"coderr": 0,
"msgerr": "",
"total_lote": 50,
"total_trabajadores": 91,
"trabajadores": [
{
"nro_trabajador":
"17",
"dv_trabajador":
"5",
"rut_trabajador":
"17777777",
"dv_rut_trabajador":
"1",
“codigo_Permiso”: "PCGSMinutos"
" fecha_inicio ":
"2023-08-04T00:00:00",
" fecha_termino ":
"2023-08-04T00:00:00",
"cantidad": 330.00000,
"unidad_medida": "MIN",
"hora_inicio": "2023-08-04T09:00:00",
"hora_termino": "2023-08-04T14:30:00",
"reposo_licencia": "0",
"reposo_parcial": "",
"cod_tipo_licencia": "",
"rut_empresa":
"76644630",
"dv_empresa":
"2",
"cod_movimiento":
"I"
"cod_empresa":
"21",
"cod_planta":
"1",
"id_registro":
"35,
},
{
……
}
]
}
/api/ Permisos (método PUT)
Deja en estado TRAPASADA todos los
tipos de permiso o ausencia enviadas. Debe ser llamada después de cada
solicitud de tipo de permiso o ausencia (GET)
Salida
401 (No autorizado), se da cuando al
llamar el api no se le entrega el token de seguridad que permite la ejecución
del api.
500 (Internal Error), se da cuando
existe un problema a nivel del api.
200 (OK), se da cuando las solicitudes
de permisos o ausencias se dejaron en TRASPASADA.
/api/Ausencias (método POST)
Permite enviar desde el reloj cualquier tipo de
ausencia que registre el reloj y que deben ser informadas a WinPer, como, por
ejemplo, las faltas, fallas, o atrasos.
Recibe como parámetro en el BODY los
siguientes campos:
{
"nro_trabajador": {
"numero": 17777777,
"dv": "3"
},
"rut_trabajador": {
"numero": 17777777,
"dv": "3"
},
"codigo_ausencia": "TARD",
"fecha_inicio": "2022-12-15T19:50:26.524Z",
"fecha_termino": "2022-12-15T19:50:26.524Z",
"cantidad": 4,
"rut_empresa": {
"numero": 76644630,
"dv": "2"
},
"empresa": {
"codigo": 9
},
"planta": {
"codigo": 1
},
"cod_movimiento": "I"
}
Salida
401 (No autorizado), se da cuando al
llamar el api no se le entrega el token de seguridad que permite la ejecución
del api.
404 (Bad request), se da cuando vienen
datos incorrectos en el Body.
500 (Internal Error), se da cuando
existe un problema a nivel del api.
201 (Created), se da cuando fueron
recepcionados correctamente los datos desde el reloj control.
/api/Sobretiempos (método POST)
Permite enviar desde el reloj cualquier tipo de
sobretiempo que calcule el reloj y que deben ser informadas a WinPer, como por
ejemplo, horas extras al 50%, 100%, etc.
Recibe como parámetro en el BODY los
siguientes campos:
{
"nro_trabajador": {
"numero": 17777777,
"dv": "3"
},
"rut_trabajador": {
"numero": 17777777,
"dv": "3"
},
"codigo_sobretiempo": "HH60",
"fecha_inicio": "2022-05-06",
"fecha_termino": "2022-05-06",
"cantidad": 3.1415,
"rut_empresa": {
"numero": 76644630,
"dv": "2"
},
"empresa": {
"codigo": 9
},
"planta": {
"codigo": 1
},
"cod_movimiento": "I"
}
Salida
401 (No autorizado), se da cuando al llamar
el api no se le entrega el token de seguridad que permite la ejecución del api.
404 (Bad request), se da cuando vienen
datos incorrectos en el Body.
500 (Internal Error), se da cuando
existe un problema a nivel del api.
201 (Created), se da cuando fueron
recepcionados correctamente los datos desde el reloj control.
/api/Sobretiempos Evt (método POST)
Permite enviar desde el reloj cualquier tipo de sobretiempo que calcule el reloj y que deben ser informadas a WinPer, como por ejemplo, horas extras al 50%, 100%, etc.
Recibe como parámetro en el BODY los siguientes campos:
{
"nro_trabajador": {
"numero": 17777777,
"dv": "3"
},
"rut_trabajador": {
"numero": 17777777,
"dv": "3"
},
"codigo_sobretiempo_evt_bt": "HH60",
"fecha_turno": "2022-05-06",
"nro_turno": "2",
"cantidad": 15,
"rut_empresa": {
"numero": 88056400,
"dv": "5"
},
"empresa": {
"codigo": 1
},
"planta": {
"codigo": 3
},
"cod_movimiento": "D"
}
Salida
401 (No autorizado), se da cuando al llamar el api no se le entrega el token de seguridad que permite la ejecución del api.
404 (Bad request), se da cuando vienen datos incorrectos en el Body.
500 (Internal Error), se da cuando existe un problema a nivel del api.
201 (Created), se da cuando fueron recepcionados correctamente los datos desde el reloj control.
Activación Funcionalidad
Componentes para activar funcionalidad
reclock.exe
reasis60.exe
referi60.exe
relice60.exe
remper60.exe
alt6_sql_reclock_001 al 008.sql
Instalación en IIS.
Antes de instalar
en el IIS debe instalar ASP.NET Core Runtime 6.0.11 Hosting bundle en el
servidor donde se encuentra el IIS. Este paquete lo puede descargar desde la
url:
https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-6.0.11-windows-hosting-bundle-installer
Se requerirá
reiniciar el servidor.
(Si el servidor
IIS ya lo tiene instalado olvide este paso.)
1- A
continuación, descomprima el zip enviado por Innovasoft en el directorio donde
instalará el sitio.
Edite el archivo
appsettings.json y en la entrada MyConnectionString coloque el string de
conexión encriptado. El string de conexión ármelo con la semilla que se indica
en la entrada seed.
2- Abra el
administrador de sitios del IIS y cree el sitio RecLock2.0
3- Para probar que la Api haya quedado correctamente instalada, debe ejecutar dos servicios para este efecto:
El token que verifica estos servicios será el que se coloque en el archivo appsettings.json, propiedad
"tokensistema". Si no existe esta tag en el .json, favor agregue ese tag en forma temporal y después de comprobar
que el api opere correctamente lo puede eliminar. En tokensistema pruebe colocar cualquier valor (ejemplo:
sistema). Al invocar el api HolaMundo o TestBd, el api chequeará que ese token sea pasado en el header de la
petición cuya key debe ser: X-TokenSistema y el valor puesto en esa key sea el que se colocó en tokensistema. En
el caso de HolaMundo le mostrará también la versión de la Api.
Para probar estas apis puede utilizar Soap-UI o bien PostMan. HolaMundo testea si está llegando al api TestBD
testea si el api está llegando a la Base de Datos que se configuro en appsettings.json.
Mapeo de la API
1- Descripción Datos a
Consumir (GET):
/api/AltasPersonal Mediante este método es posible consumir las
altas de personal y posteriores modificaciones en datos claves de la ficha de
personal de WinPer. Método válido para trabajadores NO eventuales y Eventuales.
** Desactivación: cod_mov=D, cod_vigen_trabajad=N, fecha_novig=“una fecha x” y motivo_novig “cualquiera distinto de “CAMBIO DE EMPRESA/PLANTA” y “CIERRE MENSUAL” significa que el trabajador fue desactivado por el usuario de WinPer en la empresa / planta que se informa. Puede o no tener informado el campo fec_fin_contr_vige (fecha término de contrato). Este caso siempre tiene fecha_novig. Motivo_novig es opcional en caso de la desactivación, depende si el usuario escribió o no un motivo de desactivación. Los parámetros de filtrado
son rutEmpresa, codEmpresa, codPlanta, codSucursal, tipoTrabajador, formaPago.
2- Descripción Datos a
Consumir (GET): /api/LicenciasMedYFeriados
Mediante este método es posible consumir las licencias médicas y
comprobantes de feriados ingresados en WinPer. Método válido sólo para
trabajadores NO eventuales.
Los parámetros de filtrado son rutEmpresa, codEmpresa, codPlanta, codSucusal, tipoTrajador, formaPago.
3- Descripción Datos a Consumir (GET): /api/Permisos
Mediante este método es posible consumir cualquier tipo
de permiso o ausencia ingresada en WinPer y que debe ser puesta a disposición
del reloj para ser consumida por éste. Método válido sólo para trabajadores NO
eventuales.
Los parámetros de filtrado
son rutEmpresa, codEmpresa, codPlanta, codSucursal, tipoTrabajador, formaPago.
4- Descripción
Datos Proveer (POST): /api/Ausencias
Mediante la invocación de este método es
posible enviar desde el reloj cualquier tipo de ausencia que registre el reloj
y que deben ser informadas a WinPer, como, por ejemplo, las faltas, fallas o
atrasos. Método válido sólo para trabajadores NO eventuales.
Los datos recibidos quedan
en la tabla transitoria clock_estructura.
5- Descripción Datos
Proveer (POST): /api/Sobretiempos
Mediante la invocación de
este método es posible enviar desde el reloj cualquier tipo de sobretiempo que
calcule el reloj y que deben ser informadas a WinPer, como, por ejemplo, horas
extras al 50% o 100%. Método válido sólo para trabajadores NO eventuales.
Los datos recibidos quedan
en la tabla transitoria clock_estructura.
Proyecto Postman
Un ejemplo de llamadas desde postman se
encuentra en RecLock 2.0.postman_collection.json. Esta colección la
puede importar desde Postman como archivo.