RecLock: Manual Técnico ApiRecLockv2.2

RecLock: Manual Técnico ApiRecLockv2.2


Nombre API

ApiRecLockv2

Documentación ApiReclockv2

Para consumir todos los servicios de la API es necesario conocer la siguiente información de responsabilidad del área TI de su empresa:
  1.  La URL base donde fue instalada la API.
  2. 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”.
  1. 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": 50,

      "trabajadores": [

           {

            "nro_trabajador": "17",

            "dv_trabajador": "5",

            "rut_trabajador": "19081161",

            "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": null,

            "cod_sexo": "M",

            "casilla_e_mail": "clundstedt@innovasoft.cl",

            "correo_personal": "",

            "codigo_tipo_contra": "1",

            "direccion": "AV. Bicentenario 4063, 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": "76940700",

            "dv_rut_empresa": "6",

            "cod_empresa": "21",

            "cod_planta": "1",

            "codmov": "I"        

            "cod_vigen_trabajad": "N",

            "fecha_novig": "2023-12-20T00:00:00",

            "motivo_novig": "CIERRE MENSUAL"        

           },

           {

               ……

            }

      ]

}

/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": 50,

      "trabajadores": [

           {

            "nro_trabajador": "17",

            "dv_trabajador": "5",

            "rut_trabajador": "19081161",

            "dv_rut_trabajador": "1",

            “codigo_justificacion”: “123”,

            “nro_licencia”: “0”,

            “serie_licencia”: “”,

            “correl_feriados”: “123”,

            " fecha_inicio ": "2020-06-08T00:00:00",

            " fecha_termino ": "2020-06-09T00:00:00",

            "cantidad": 2,

            “reposo_licencia”: “0”,

            “cod_tipo_licencia”: “”,

            "rut_empresa": "76940700",

            "dv_empresa": "6",

            "cod_movimiento": "I"                

            "cod_empresa": "21",

            "cod_planta": "1",

            "id_registro": "1",

 
           },

           {

               ……

            }

      ]

}


/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": 50,

      "trabajadores": [

           {

            "nro_trabajador": "17",

            "dv_trabajador": "5",

            "rut_trabajador": "19081161",

            "dv_rut_trabajador": "1",

            “codigo_Permiso”: “123”,

            " fecha_inicio ": "2020-06-08T00:00:00",

            " fecha_termino ": "2020-06-09T00:00:00",

            "cantidad": 2,

            "rut_empresa": "76940700",

            "dv_empresa": "6",

            "cod_movimiento": "I"                

            "cod_empresa": "21",

            "cod_planta": "1",

            "id_registro": "1",

           },

           {

               ……

            }

      ]

}


/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 o fallas no.

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": 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.

Uso de la modificación

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

Administrador de Sitios del IIS

3-  Para probar que el api haya quedado correctamente debe ejecutar 2 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 prueba 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.




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.



6- Descripción Datos Proveer (POST): /api/Sobretiempos Evt 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 eventuales y BT  

 


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.



    • Related Articles

    • Informes de Liquidación: Informe INE 2023 Estándar y Coyuntural

      Resumen: Winper contaba con la opción para generar el informe INE con la estructura definida hasta el año 2017, dicho informe a sido actualizado con 2 nuevos informes (INE Estándar e INE Coyuntural) por ende, fueron incluidos en la versión actual de ...