Ir al contenido principal

Respuestas (1) - [missing_questions]

🧾 Descripción

Este servicio obtiene las preguntas incompletas y completas de una categoría específica del Doctype “Check List del Supervisor Nacional 2”, basándose en un registro identificado por su name.

El servicio:

  1. Obtiene toda la estructura de campos del Doctype.

  2. Identifica qué campos pertenecen a cada categoría (Section Break).

  3. Filtra únicamente los campos tipo:

    • Check

    • Data (comentado actualmente)

    • Attach Image (comentado actualmente)

  4. Consulta los valores reales del formulario (0 o 1).

  5. Determina qué preguntas están completas o incompletas.

  6. Devuelve solo la categoría solicitada.

Es un servicio orientado a auditorías y evaluación operacional.


🚀 Endpoint

POST /missing-questions


📥 Parámetros (Request Body)

Campo Tipo Obligatorio Descripción
name string ✔️ Identificador del documento del Doctype “Check List del Supervisor Nacional 2”.
category string ✔️ Nombre de la categoría (Section Break) a analizar.

Ejemplo:


{ "name": "CHK-SUP-00045", "category": "Gestión Documentaria" }

🔐 Seguridad

Requiere autenticación ERP válida, manejada internamente por ServiceErp().


🧠 Flujo del Servicio (Resumen)

  1. Validación de parámetros
    Si name o category vienen vacíos → error inmediato.

  2. Obtener estructura del Doctype
    GET /resource/DocType/Check List del Supervisor Nacional 2

    • Extrae los campos agrupados por sección (Section Break).

    • Identifica solo campos tipo Check.

  3. Agrupar preguntas por categoría

    • Mapea category → lista de campos (fieldname → label).

  4. Construir lista total de fields para consultar sus valores
    Ejemplo:


    ["documentos_autoridades", "imagen_14", "comentario_14", ...]
  5. Consultar valores reales del registro
    GET /resource/Check List del Supervisor Nacional 2?fields=[...]&filters=[["name","=",name]]

  6. Clasificar por categoría:

    • Si campo = 0Incompleta

    • Si campo = 1Completa

  7. Retornar solo la categoría solicitada.


📤 Response 200 – Ejemplo


{ "valor": true, "msn": "Missing Questions", "data": { "Incompletas": [ "Falta documento de autoridades", "Informe integrado no subido" ], "Completas": [ "Imagen de fachada", "Checklist SST completado" ] } }

❗ Posibles Errores

1. Parámetro vacío


{ "valor": false, "msn": "El campo name es obligatorio" }

2. Error al consultar el DocType


{ "value": false, "msn": "Ocurrio un error al consultar" }

3. Error consultando los valores del registro


{ "valor": false, "msn": "Ocurrio un error durante el proceso", "error": { ... } }

📚 Estructuras utilizadas

✔️ Doctype: Check List del Supervisor Nacional 2

Campos relevantes:

Tipo Uso
Section Break Agrupar preguntas por categoría
Check Representa preguntas de Sí/No
Data (comentado, no procesado actualmente)
Attach Image (comentado, no procesado actualmente)

Ejemplo de estructura procesada:


[ "Gestión Documentaria" => [ "documentos_autoridades" => "1. Documentos de autoridades", "informativo_integrado" => "2. Informativo integrado", ], "Seguridad Operacional" => [ "extintores" => "1. Extintores en regla", ] ]

🧠 Pseudocódigo Real


validate name, category doctypeFields = GET DocType Check List questions = group fields by Section Break (only Check fields) allFields = extract all fieldnames used in questions values = GET Check List record where name = request.name For each category: For each field: if value == 0 → add to Incompletas if value == 1 → add to Completas return data of selected category