Puntajes de las categorias (1) - [listCategory]
🧾 Descripción
Obtiene y procesa dinámicamente todas las categorías, preguntas y porcentajes de avance del Check List del Supervisor Nacional 2, basándose en su estructura de campos del DocType y los valores registrados en un documento específico.
Este servicio:
-
Lee la estructura del DocType para identificar:
-
Secciones (categorías).
-
Preguntas tipo Check, Data, Attach Image.
-
-
Recupera los valores reales del documento filtrado por
name. -
Agrupa los campos por categoría.
-
Calcula el avance (%) y puntaje por sección.
-
Devuelve un resumen por categoría con:
-
Total de campos.
-
Campos completados.
-
Progreso (%).
-
Puntaje asignado.
-
🚀 Endpoint
POST /list-category
📥 Request Body
Parámetros
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | ✔ | ID del documento cuyo checklist se evaluará |
🔐 Seguridad
El servicio utiliza autenticación interna mediante: $this->general->ServiceErp()
Por lo tanto, requiere credenciales válidas para consumir el ERP.
🧠 Flujo del Servicio (Explicación Técnica Real)
1️⃣ Obtener estructura del DocType
Se consulta: GET resource/DocType/Check List del Supervisor Nacional 2
Esto trae todos los campos del formulario.
El servicio filtra únicamente:
-
Section Break → marca inicio de categoría
-
Check
-
Data
-
Attach Image
También omite los campos de puntaje global:
-
porcentaje_de_imagen_y_presentación
-
puntaje_de_imagen_y_presentación
2️⃣ Construcción dinámica de categorías y preguntas
Ejemplo de agrupación generada:
3️⃣ Recuperar valores del documento
Se unen todos los fields encontrados y se hace:
Esto trae los valores registrados del documento.
4️⃣ Agrupar los valores por categoría
El servicio arma una estructura:
5️⃣ Calcular puntajes y progreso
Para cada categoría:
-
Se cuenta el total de campos (Check, Data, Imagen)
-
Se cuentan los completados:
-
Check → valor 1
-
-
Se asigna un puntaje:
-
Cada check activo suma 1.82
-
-
Se calcula:
⚠ Nota: El servicio divide el total de campos entre 3 ($maxFields = $maxFields / 3) para compensar que cada pregunta tiene 3 tipos de fields (check, data, image).
📤 Response 200 – Ejemplo
❗ Posibles Errores
1. No se puede obtener el DocType
2. Documento no encontrado
(El servicio devolverá valores vacíos por categoría)
🗃 Estructuras Utilizadas
DocType (GET)
Campos analizados:
No hay comentarios para mostrar
No hay comentarios para mostrar