---
# System prepended metadata

title: Dcoumentación Marcaciones

---


# Documentación API de Gestión de Jornada Laboral

## Índice
- [Obtener información de las jornadas por fechas](#obtener-jornada)
- [Obtener el detalle de la jornada específica](#obtener-detalle)
- [Vista Previa del Formulario de Gestión](#vista-previa-del-formulario-de-registro)
- [Guardar Gestión](#guardar-justificación)
- [Obtener Disponibilidad Empleado](#obtener-informacion)
- [Obtener Información Estado Jornada](#obtener-informacion)

## Links
- DATOSPERSONALES_URL: "http://192.168.253.6:8012/api/",
- APIMARCACIONES_URL: "http://192.168.253.6:8181/",

## Obtener información por fechas de la jornada

Este endpoint permite recuperar la información de las jornadas laborales de un empleado especificado por su identificación, filtrado por fechas de inicio y fin.

#### HTTP Request

`GET ${APIMARCACIONES_URL}/GetJornadaLaboral/{identificacion}`

#### URL Parameters

| Parameter       | Type      | Description                                            |
|-----------------|-----------|--------------------------------------------------------|
| `identificacion`| `string`  | Identificación del empleado cuya jornada se consulta.  |
| `start`         | `DateTime`| Fecha de inicio del rango para consultar la jornada.   |
| `end`           | `DateTime`| Fecha de fin del rango para consultar la jornada.      |

### Response

El endpoint responde con una lista de objetos `JornadaLaboralDTO`, cada uno representando un día de trabajo dentro del rango especificado, incluyendo detalles sobre la jornada laboral, recesos, y si se trata de un fin de semana o día festivo.

#### JornadaLaboralDTO Object

| Field              | Type          | Description                                                    |
|--------------------|---------------|----------------------------------------------------------------|
| `idJornada`        | `int`         | Identificador de la jornada laboral.                           |
| `Fecha`            | `DateTime`    | Fecha de la jornada laboral.                                   |
| `FechaPlazoSolicitud` | `DateTime` | Fecha límite para solicitudes relacionadas con la jornada.     |
| `Jornada`          | `JornadaDTO`  | Detalles de la jornada laboral.                                |
| `Receso`           | `RecesoDTO`   | Detalles de los recesos durante la jornada.                    |
| `FinSemanaFeriado` | `bool`        | Indica si la jornada cae en un fin de semana o día festivo.    |
| `Tipo`             | `int`         | -1 = error , 0= neutro, 1=positivo.    |

### Errors

En caso de error, el servidor devuelve un código de estado HTTP 500 y un mensaje descriptivo del error.

### Example

```http
GET ${APIMARCACIONES_URL}/GetJornadaLaboral/12345678?start=2023-01-01&end=2023-03-31

[
  {
    "idJornada": 52080,
    "fecha": "2024-09-11T00:00:00",
    "fechaPlazoSolicitud": "2024-09-13T00:00:00",
    "jornada": {
      "inicio": "07:42",
      "fin": "16:34",
      "duracion": null,
      "estadoIngreso": "Ingreso normal",
      "estadoSalida": "Salida normal",
      "estadoJornada": "Jornada completa de labores",
      "estado": "Jornada completa de labores",
      "tipo": 1,
      "tipoIngreso": 1,
      "tipoSalida": 1,
      "iniciorecuperar": 0,
      "finrecuperar": 0,
      "accion": "",
      "gestionJ": null,
      "gestionR": null,
      "justificacion": null,
      "recuperacion": null
    },
    "receso": {
      "inicio": "12:44",
      "fin": "13:07",
      "duracion": "00:23",
      "codigo": null,
      "estado": "Jornada completa de receso",
      "tipo": 1,
      "tiempoRecuperar": 0,
      "accion": "",
      "gestionJ": null,
      "gestionR": null,
      "justificacion": null,
      "recuperacion": null
    },
    "horario": null,
    "tipo": 1,
    "finSemanaFeriado": false
  },
  {
    "idJornada": 28130,
    "fecha": "2024-07-30T00:00:00",
    "fechaPlazoSolicitud": "2024-07-31T00:00:00",
    "jornada": {
      "inicio": "07:52",
      "fin": "17:32",
      "duracion": null,
      "estadoIngreso": "Ingreso normal",
      "estadoSalida": "Salida normal",
      "estadoJornada": "Jornada completa de labores",
      "estado": "Jornada completa de labores",
      "tipo": 1,
      "tipoIngreso": 1,
      "tipoSalida": 1,
      "iniciorecuperar": 0,
      "finrecuperar": 0,
      "accion": "",
      "gestionJ": null,
      "gestionR": null,
      "justificacion": null,
      "recuperacion": null
    },
    "receso": {
      "inicio": "12:42",
      "fin": "13:05",
      "duracion": "00:23",
      "codigo": null,
      "estado": "Jornada completa de receso",
      "tipo": 1,
      "tiempoRecuperar": 0,
      "accion": "",
      "gestionJ": null,
      "gestionR": null,
      "justificacion": null,
      "recuperacion": null
    },
    "horario": null,
    "tipo": 1,
    "finSemanaFeriado": false
  },
  
```

## Obtener detalle específico de la jornada laboral

Este endpoint proporciona información detallada sobre la jornada laboral de un empleado en un día específico, incluyendo horarios, recesos, justificaciones y posibles gestiones asociadas.

### HTTP Request

`GET ${APIMARCACIONES_URL}/GetDetalleJornadaLaboral/{idJornada}`

### URL Parameters

| Parameter   | Type | Description                                       |
|-------------|------|---------------------------------------------------|
| `idJornada` | `int`| Identificador de la jornada laboral a consultar.  |

### Response

El endpoint responde con un objeto `JornadaLaboralDTO` que contiene información completa sobre la jornada laboral, recesos, horarios, y las justificaciones o recuperaciones necesarias si existen problemas o modificaciones requeridas en la jornada.

#### JornadaDTO Object

| Field            | Type          | Description                                                 |
|------------------|---------------|-------------------------------------------------------------|
| `Inicio`         | `string`      | Hora de inicio de la jornada laboral.                       |
| `Fin`            | `string`      | Hora de fin de la jornada laboral.                          |
| `Duracion`       | `string`      | Duración total de la jornada laboral.                       |
| `EstadoIngreso`  | `string`      | Estado del ingreso (ej. "Ingreso atrasado").                |
| `EstadoSalida`   | `string`      | Estado de la salida (ej. "Salida normal").                  |
| `EstadoJornada`  | `string`      | Estado general de la jornada (ej. "Jornada completa").      |
| `Estado`         | `string`      | Estado general adicional de la jornada.                     |
| `Tipo`           | `int`         | Tipo numérico que representa el estado general de la jornada.|
| `TipoIngreso`    | `int`         | Tipo numérico que representa el estado del ingreso.         |
| `TipoSalida`     | `int`         | Tipo numérico que representa el estado de la salida.        |
| `Iniciorecuperar`| `int`         | Minutos a recuperar al inicio de la jornada.                |
| `Finrecuperar`   | `int`         | Minutos a recuperar al final de la jornada.                 |
| `gestionJ`       | `GestionDTO`  | Gestión relacionada con la justificación de la jornada.     |
| `gestionR`       | `GestionDTO`  | Gestión relacionada con la recuperación de la jornada.      |
| `Justificacion`  | `SolicitudDTO`| Detalles de la justificación de la jornada.                 |
| `Recuperacion`   | `SolicitudDTO`| Detalles de la recuperación de la jornada.                  |

#### RecesoDTO Object

| Field              | Type          | Description                                                     |
|--------------------|---------------|-----------------------------------------------------------------|
| `Inicio`           | `string`      | Hora de inicio del receso.                                      |
| `Fin`              | `string`      | Hora de fin del receso.                                         |
| `Duracion`         | `string`      | Duración total del receso.                                      |
| `Codigo`           | `string`      | Código identificador del receso.                                |
| `Estado`           | `string`      | Estado general del receso (ej. "Receso no utilizado").          |
| `Tipo`             | `int`         | Tipo numérico que representa el estado general del receso.      |
| `TiempoRecuperar`  | `int`         | Minutos a recuperar del receso.                                 |
| `gestionJ`         | `GestionDTO`  | Gestión relacionada con la justificación del receso.            |
| `gestionR`         | `GestionDTO`  | Gestión relacionada con la recuperación del receso.             |
| `Justificacion`    | `SolicitudDTO`| Detalles de la justificación del receso.                        |
| `Recuperacion`     | `SolicitudDTO`| Detalles de la recuperación del receso.                         |

### Errores

Si la jornada especificada no se encuentra o si hay errores en la recuperación de los datos, se devuelve un error HTTP 500 con un mensaje descriptivo.

### Example

```http
GET ${DATOSPERSONALES_URL}/GetDetalleJornadaLaboral/65310

{
  "idJornada": 65310,
  "fecha": "2024-10-04T00:00:00",
  "fechaPlazoSolicitud": "2024-10-08T00:00:00",
  "jornada": {
    "inicio": "09:39",
    "fin": "19:06",
    "duracion": null,
    "estadoIngreso": "Ingreso atrasado",
    "estadoSalida": "Salida normal",
    "estadoJornada": "Jornada incompleta de labores",
    "tipo": -1,
    "gestionR": {
      "id": 7,
      "descripcion": "Entrada tardía laboral",
      "metodo": "INGRESO",
      "tipo": "L"
    }
  },
  "receso": {
    "inicio": "12:44",
    "fin": "13:07",
    "duracion": "00:23",
    "estado": "Jornada completa de receso",
    "tipo": 1
  },
  "horario": {
    "horaInicio": "09:30",
    "horaFin": "18:00",
    "recesoInicio": "12:00",
    "recesoFin": "15:00"
  },
  "tipo": -1,
  "finSemanaFeriado": false
}
```

## Vista Previa del Formulario de Gestión

### HTTP Request

`POST ${APIMARCACIONES_URL}/RegistroEntradaSalida/AppVistaPreviaFormulario`

#### Descripción
Este endpoint procesa los datos de gestión de jornda labora y genera el PDF de la justificación/recuperación.

#### Cuerpo de la Petición
```json
{
  "idpersona": int, //id de tbl_persona
  "entrada": "string",  // Hora de inicio
  "salida": "string",  // Hora fin
  "fecha": "string",  // Fecha del evento
  "fechar": "string?",  // Fecha de recuperación (opcional)
  "tipo": "string",  // Tipo de registro (J = Justificación, R = Recuperación)
  "subtipo": int,  // Subtipo del registro, enviado desde el frontend
  "observacion": "string"  // Observaciones adicionales
}
```

#### Respuestas
- **200 OK**: La solicitud fue procesada correctamente y el contenido en PDF ha sido insertado.
- **409 Conflict**: Error en el procesamiento de la solicitud. Devuelve un mensaje de error.

## Guardar Gestión

### POST ${DATOSPERSONALES_URL}/api/RegistroEntradaSalida/AppPostGuardarJustificacion

#### Descripción
Este endpoint acepta datos de justificación/recuperación y los almacena en la nueva estructura. Además, envía correos electrónicos de notificación sobre la solicitud ingresada.

#### Cuerpo de la Petición
```json
{
  "idpersona": int,
  "entrada": "string",  // Hora de inicio
  "salida": "string",  // Hora fin
  "fecha": "string",  // Fecha del evento
  "fechar": "string?",  // Fecha de recuperación (opcional)
  "tipo": "string",  // Tipo de registro (J = Justificación, R = Recuperación)
  "subtipo": int,  // Subtipo del registro, enviado desde el frontend
  "observacion": "string"  // Motivo de la no marcación
}
```

#### Respuestas
- **200 OK**: La solicitud fue procesada correctamente. La respuesta incluye detalles del registro almacenado y un mensaje de éxito.
```json
{
  "JornaLaboral": {
    "idpersona": int,
    "entrada": "string",
    "salida": "string",
    "fecha": "string",
    "fechar": "string?",
    "tipo": "string",
    "subtipo": int,
    "observacion": "string"
  },
  "strEstado": "EXITO",
  "strMensaje": "Solicitud de justificación realizada con éxito."
}
```
- **409 Conflict**: Error en el procesamiento de la solicitud. Devuelve un mensaje de error con detalles adicionales.
```json
{
  "strEstado": "NOEXITO",
  "strMensaje": "Error en AppPostGuardarJustificación: [detalle del error]"
}
```
## Obtener Disponibilidad Empleado

### HTTP Request

`POST GET ${APIMARCACIONES_URL}/Horario/GetHorariosRangoFechas/{identificacion}/{fechaInicio}/{fechaFin}`


#### Descripción
Este endpoint recibir la identificación de una persona, una fecha de inicio y una fecha de fin y obtener sus horarios por cada día y conocer si tal día tiene vacación.

#### Parámetros de Entrada
- `identificacion`: String. Identificación del empleado cuyo horario y estado de vacaciones se desea consultar.
- `fechaInicio`: DateTime. Fecha de inicio del rango para consultar horarios y vacaciones.
- `fechaFin`: DateTime. Fecha de fin del rango para consultar horarios y vacaciones.

### Validaciones
- El rango entre `fechaInicio` y `fechaFin` no debe exceder los 30 días.
#### Respuestas
- **200 OK**: La respuesta retorna una lista de objetos, donde cada objeto representa un día dentro del rango especificado y contiene la siguiente información.
```json
 {
    "fecha": "2024-10-01",
    "horario": {
      "horaInicio": "08:00:00",
      "horaFin": "16:30:00",
      "recesoInicio": "12:00:00",
      "recesoFin": "15:00:00"
    },
    "vacacion": false
  },
  {
    "fecha": "2024-10-02",
    "horario": {
      "horaInicio": "08:00:00",
      "horaFin": "16:30:00",
      "recesoInicio": "12:00:00",
      "recesoFin": "15:00:00"
    },
    "vacacion": true
  },
```

### Consideraciones Generales

- Prueba exhaustivamente todos los endpoints para asegurar que manejan correctamente tanto los casos de éxito como los de error.
## Obtener Información de Tipos de Jornada

Este endpoint proporciona la información sobre los diferentes tipos de jornadas disponibles, incluyendo su identificador, descripción y el color asociado.

### HTTP Request

`GET ${APIMARCACIONES_URL}/Gestion/GetTipoJornadaInfo`

### Headers

No se requieren headers especiales para esta solicitud.

### Response

La respuesta es un array de objetos, donde cada objeto representa un tipo de jornada con su correspondiente identificador, descripción y color asociado.

```json
[
  {
    "id": -1,
    "descripcion": "Error",
    "color": "#EF4444"
  },
  {
    "id": 0,
    "descripcion": "Neutral",
    "color": "#6B7278"
  },
  {
    "id": 1,
    "descripcion": "Correcto",
    "color": "#22C55E"
  },
  {
    "id": 2,
    "descripcion": "Procesando",
    "color": "#fc8a31"
  },
  {
    "id": 3,
    "descripcion": "Ejecutando",
    "color": "#FDE047"
  },
  {
    "id": 4,
    "descripcion": "Gestionado",
    "color": "#14B8A6"
  }
]