Lista de marcaciones generada (1) - [listMarkingsApp45]
🧾 Descripción
Este servicio obtiene y consolida todas las marcaciones de asistencia de un empleado en una fecha específica, combinando información de:
-
Employee Checkin (Entradas, salidas, refrigerios)
-
Attendance (Estado del día)
-
Cortes (Fechas especiales donde cambia el criterio de consulta)
-
Turnos del empleado (Shift Type)
Entrega una estructura lista para mostrar en una app móvil o web con:
-
Entrada
-
Salida a refrigerio
-
Retorno de refrigerio
-
Salida
-
Estado del día (Presente, Ausente, Teletrabajo, etc.)
-
Información del día: nombre, mes, fecha formateada.
El servicio también calcula dinámicamente si debe tomar estado_reporte o status, según si la fecha consultada pertenece al rango generado desde el último corte del mes.
🚀 Endpoint
POST /list-markings-app45
📥 Parámetros de Entrada (Request Body)
| Campo | Tipo | Descripción |
|---|---|---|
| usuario | string | Usuario que solicita información (no se usa en lógica interna). |
| empleado | string | ID del empleado a consultar. |
| cookie | string | Cookie de sesión para consultas al ERP. |
| date | string | Fecha de la marcación. |
🔐 Seguridad
-
dbErp() -
ServiceErp()
🧠 Flujo del Servicio (Resumen Real)
1️⃣ Obtiene filtros según fecha
-
Si la fecha es >= 2022-11-10, consulta por
fecha_consolidado. -
Si es menor, consulta por rango horario (00:00:00 – 23:59:59).
2️⃣ Trae las marcaciones del empleado
Consulta tabEmployee Checkin (Entrada, Refrigerio, Salida).
3️⃣ Consulta estado de asistencia
Desde tabAttendance, validando solo documentos aprobados (docstatus = 1).
4️⃣ Obtiene configuración de cortes del mes
Sirve para determinar si el estado válido es:
-
estado_reporte(cuando está dentro del rango posterior al corte), ó -
status(estado normal de Attendance)
5️⃣ Genera un rango de fechas desde el corte hasta fin de mes
Se usa para validar cambios de lógica.
6️⃣ Procesa marcaciones y las estructura así:
7️⃣ Traduce estados a texto legible
Ejemplo:
| ERP | Texto entregado |
|---|---|
| Present | Presente |
| Absent | Ausente |
| Work From Home | Trabajar desde casa |
| Half Day | Medio día |
📤 Response 200 – Ejemplo
❗ Posibles Errores
1. Error al obtener marcaciones
2. Error al consultar Attendance o Cortes
3. Error interno del servidor
{
"valor": false,
"msn": "Error en listMarkingsApp45: <mensaje>",
"error": "<stacktrace>"
} |
📚 Tablas / Recursos Usados
🔹 tabEmployee Checkin
Campos:
-
name
-
employee
-
employee_name
-
log_type
-
time
-
tardanza
-
salida_temprana
🔹 tabAttendance
-
status
-
estado_reporte
-
attendance_date
-
employee
🔹 tabCortes
-
dia_inicio
-
dia_final
🔹 tabShift Type
-
start_time
-
end_time
No hay comentarios para mostrar
No hay comentarios para mostrar