Ir al contenido principal

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:

  • Documento: Reconociemientos de Deuda

  • Condiciones:

    • docstatus = 0 (borrador)

    • empleado = <employee>

    • El archivo firmado no existereconocimiento_escaneado_firmado IS NULL or = ''

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:

  • Recupera el primer registro encontrado.

  • Extrae datos generales del reconocimiento.


3. Obtiene el detalle (tabla hija) del reconocimiento

Consulta:

  • Tabla hija: tabtable_reconocimiento_deuda

  • Llaves:

    • parent: ID del reconocimiento

    • parentfield = table_21

    • parenttype = Reconociemientos de Deuda

Los campos recuperados:

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

4. Construye la data final

Une:

  • Información principal del reconocimiento (dataEmployee)

  • Detalle de cuotas (dataTable)


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)