Ir al contenido principal

Denuncias(Url Demanda PDF (1)) - [pdf]

🧾 Descripción

Este servicio obtiene la información completa de una denuncia registrada en el ERP (Frappe/ERPNext), validando primero que exista una denuncia cuyo código aleatorio coincida con el parámetro enviado.

Una vez encontrada:

  1. Obtiene la información principal de la denuncia.

  2. Consulta nuevamente la denuncia para traer sus tablas hijas (por ejemplo table_16).

  3. Construye un array final con los datos completos.

  4. Genera un PDF oficial de la denuncia usando una plantilla Blade.

  5. Retorna el archivo descargable Demanda.pdf.

Este servicio se utiliza para permitir a los usuarios descargar un reporte o constancia oficial de la denuncia registrada.


🚀 Endpoint

GET /pdf/{codigo}

📌 El parámetro {codigo} corresponde al campo codigo_aleatorio de la denuncia.


📥 Parámetros

URL Params

Parámetro Tipo Obligatorio Descripción
codigo string Código aleatorio que identifica la denuncia

📌 No recibe parámetros en el body.


🔐 Seguridad

El servicio realiza llamadas internas al ERP a través de ServiceErp(), por lo que requiere autenticación válida configurada internamente.
No necesita token desde el cliente.


🧠 Flujo del Servicio (Resumen real)

1️⃣ Buscar denuncia por código aleatorio

Realiza un GET al recurso: GET Denuncias?filters=[["codigo_aleatorio","=",<codigo>]]

Si no encuentra coincidencias → retorna error.


2️⃣ Para cada denuncia encontrada

Hace un GET para traer la información completa del documento con sus tablas hijas: GET Denuncias/{name}

Guarda el contenido de la tabla table_16 y arma un arreglo final.


3️⃣ Generar el PDF

Usa: PDF::loadView("pdf/demanda", ["data" => $demandas_final[0]])

Lo genera en tamaño A5, orientación portrait, y lo retorna como descarga: Demanda.pdf


📤 Response – Ejemplo exitoso (PDF descargable)

El navegador descargará directamente: Demanda.pdf

Con el contenido renderizado desde la vista pdf/demanda.blade.php.


❗ Posibles Errores

1. No existe la denuncia

{ "success": false, "message": "No se encontró la denuncia" }

2. Error consultando el ERP

{ "success": false, "message": "<mensaje de la excepción>" }

3. La denuncia existe, pero falla la obtención completa

(No rompe el flujo; simplemente ignora la denuncia afectada.)


📚 Schemas utilizados

Denuncias (GET)

Campos utilizados:

{ "name": "string", "codigo_aleatorio": "string", "table_16": [ ... ], ...otros campos }

PDF Output

Basado en la vista: resources/views/pdf/demanda.blade.php


🗃 Lógica en Pseudo-código

body = { filters: [["codigo_aleatorio", "=", codigo]], fields: ["*"] } demandas = GET Denuncias WHERE codigo_aleatorio=codigo if demandas is empty: return error foreach denuncia in demandas: detalle = GET Denuncias/{name} agregar table_16 al resultado final generar PDF usando vista "pdf/demanda" retornar archivo: Demanda.pdf