Respuestas formulario (1) - [missing_questions_form]

🧾 Descripción

Este servicio identifica qué preguntas no han sido completadas dentro de un formulario del DocType:

Check List del Supervisor Nacional 2

El servicio analiza:

Se usa principalmente para:

✔ Validar formularios incompletos
✔ Mostrar al usuario qué preguntas faltan llenar
✔ Controlar flujos de supervisión/inspecciones


🚀 Endpoint

POST /missing-questions-form


📥 Parámetros del Request

Campo Tipo Obligatorio Descripción
category string ✔ Sí Nombre de la sección del formulario (label del Section Break).
name string ✔ Sí ID del documento del Doctype "Check List del Supervisor Nacional 2".

Ejemplo de request:

{ "category": "Limpieza y Orden", "name": "CHK-SUP-00015" }


🔐 Seguridad

Utiliza autenticación interna a través de:


$this->general->ServiceErp()

No requiere autenticación externa del usuario final.
Toda la data se obtiene desde el ERP.


🧠 Flujo del Servicio (Resumen Técnico)

1️⃣ Validaciones iniciales

Si falta un campo → retorna error inmediato.


2️⃣ Obtiene estructura del formulario

GET al Doctype: GET /resource/DocType/Check List del Supervisor Nacional 2

De ahí obtiene:

Y construye un arreglo organizado por secciones:

{ "Nombre de Sección": { "fields_name": { fieldname : label }, "data_name": { fieldname : label }, "img_name": { fieldname : label } } }

Se excluyen automáticamente:


3️⃣ Filtra solo la categoría solicitada

Busca dentro de todas las secciones y selecciona solo: questions[category]

Si no existe → retorna vacío.


4️⃣ Obtiene valores del documento filtrado por name


GET /resource/Check List del Supervisor Nacional 2?filters=[["name","=",<name>]]

Aquí obtiene los valores reales del formulario.


5️⃣ Determina qué preguntas faltan completar

Compara para cada campo: si campo == 0 → está incompleto → se agrega a la lista

Guarda:


6️⃣ Retorna solo las preguntas faltantes


📤 Response 200 – Ejemplo Real

{ "valor": true, "msn": "Missing Questions", "data": { "Limpieza y Orden": [ "pregunta_1", "pregunta_3" ], "questions": [ "¿Los ambientes se encuentran limpios?", "¿El personal cumple con el orden establecido?" ] } }


❗ Posibles Errores

1️⃣ category vacío

{ "valor": false, "msn": "El campo category es requerido" }


2️⃣ name vacío

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


3️⃣ El Doctype no responde

{ "valor": false, "msn": "Ocurrio un error al consular" }


4️⃣ Error en consulta de valores del documento

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


🗃 Estructuras Usadas

📌 DocType: Check List del Supervisor Nacional 2

Campos analizados:

Se ignoran:


🧩 Algoritmo en Pseudocódigo

validar(category) validar(name) doctype = GET DocType structure preguntas = extraer_secciones_y_campos(doctype) selectedCategory = preguntas[category] campos = obtener_fieldnames(selectedCategory) valores = GET Documento ERP con esos campos missing = [] para cada campo en selectedCategory: si valor == 0: agregar a missing return missing


Revisión #3
Creado 2025-11-26 17:37:38 -05 por Elian
Actualizado 2025-11-26 17:44:12 -05 por Elian