Reconocimiento de deuda( Url Reconocimiento de deuda PDF (1) ) - [debtRecognition]

🧾 Descripción

Este servicio valida si un empleado tiene un Reconocimiento de Deuda pendiente de firma, y en caso afirmativo, genera y descarga el archivo PDF del documento, incluyendo el detalle de cuotas asociadas.

El servicio consume directamente información del ERP, consultando tanto el documento principal como sus tablas hijas (detalles de deuda por mes).


🚀 Endpoint

POST /debt-recognition

📥 Parámetros

Recibe como parámetro directo el ID del empleado:

{ "employee": "EMP-0001" }

🔐 Seguridad

El servicio requiere autenticación interna vía dbErp() para consultas SQL y usa PDF::loadView() para generar el documento final.


🧠 Flujo del Servicio (resumen real)

1. Verifica si existe un Reconocimiento de Deuda pendiente

Consulta en el ERP:

Si no encuentra ningún registro:

{ "valor": false, "msn": "Usted no cuenta con un reconocimiento de deuda pendiente de firmar." }

2. Obtiene los datos del Reconocimiento de Deuda

Si existe un documento pendiente:


3. Obtiene el detalle (tabla hija) del reconocimiento

Consulta:

Los campos recuperados:

{ "ano": "", "mes": "", "monto": "" }

4. Construye la data final

Une:


5. Genera el documento PDF

Renderiza la vista:

pdf/Doctype/ReconocimientoDeDeuda/reconocimiento_de_deuda.blade.php

Y retorna la descarga del PDF.


📤 Response – Archivo PDF

El servicio retorna directamente un PDF generado con domPDF:


Content-Type: application/pdf Content-Disposition: attachment; filename="ReconocimientoDeDeuda.pdf"

No devuelve un JSON en caso de éxito, sino una descarga directa del documento.


❗ Posibles Errores

1. No existe reconocimiento pendiente

{ "valor": false, "msn": "Usted no cuenta con un reconocimiento de deuda pendiente de firmar." }

2. Error en la consulta ERP

{ "valor": false, "msn": "Error al obtener datos" }

3. Error inesperado en PDF o datos

{ "valor": false, "msn": "Error inesperado" }

📚 Schemas usados

Reconociemientos de Deuda (principal)

{ "name": "string", "empleado": "string", "monto_total": "decimal", "fecha": "date", "reconocimiento_escaneado_firmado": "string|null" }

table_reconocimiento_deuda (detalle)

{ "ano": "number", "mes": "string", "monto": "decimal" }

🗃 Pseudocódigo del Servicio

filters = { docstatus: 0, empleado: employee } recognition = GET ReconociemientosDeDeuda WHERE sin archivo firmado if recognition vacío: return error detail = GET table_reconocimiento_deuda WHERE parent = recognition.name dataComplete = { dataEmployee: recognition, dataTable: detail } return PDF(dataComplete)

Revisión #1
Creado 2025-11-26 12:31:26 -05 por Elian
Actualizado 2025-11-26 12:34:45 -05 por Elian