Ir al contenido principal

Contrato de Trabajo(Url Contrato de trabajo PDF (1)) - [printContractPerDesignation]

🧾 Descripción

Genera y descarga el Contrato de Trabajo correspondiente a un empleado, seleccionando de forma automática el formato de contrato correcto según:

  • Tipo de documento del empleado (DNI / PAS / CE)

  • Modalidad laboral (Full time, Part time, Teletrabajo)

  • Tipo de puesto (Ej. Conductor, Vigilante)

  • Número de contratos previos

  • Funciones asociadas al contrato (solo extranjeros)

El servicio determina internamente qué plantilla PDF debe usarse y devuelve el archivo final generado.

Es un servicio interno que consulta múltiples recursos del ERP:

  • Employee

  • Contrato de Trabajo

  • Funciones del Contrato

  • Otros contratos previos


🚀 Endpoint

GET /print-contract-per-designation/{employee}

📥 Parámetros de ruta

Parámetro Tipo Obligatorio Descripción
employee string Código único del empleado en ERP

🔐 Seguridad

Requiere autenticación interna:

  • Consulta ERP vía dbErp()

  • Obtención de PDF vía PDF::loadView()


🧠 Flujo del Servicio (Resumen Real)

1️⃣ Validación del empleado

Consulta al ERP:

POST send-query-database FROM tabEmployee WHERE name = employee SELECT fecha_de_ingreso_real

Si no existe → retorna error: "No existe empleado".


2️⃣ Obtiene el contrato activo más reciente

Se buscan contratos con:

  • empleado = employee

  • docstatus = 1

  • fecha_de_ingreso_real = fecha_ingreso_empleado

  • Ordenado por creación descendente

POST send-query-database FROM tabContrato de Trabajo LEFT JOIN tabEmployee

Si no existe contrato → retorna "No cuenta con Contrato".


3️⃣ Obtiene funciones asociadas (solo extranjeros)

Busca funciones del contrato:

FROM tabtabla_funcion_extranjero WHERE parent = contrato.name

Estas funciones se agregan al contrato en el PDF.


4️⃣ Determina el número de contratos previos

Solo aplica a empleados con documento PAS o CE.

Consulta cantidad de contratos registrados después del ingreso real.

Esto permite determinar si el contrato es:

  • Primer contrato

  • Segundo contrato

  • Tercer contrato

  • Etc. (usando arreglo ordinal: primero, segundo, tercero, …)


5️⃣ Selección automática de la plantilla PDF

En base a reglas:

Condición Plantilla
modalidad_de_trabajo = Teletrabajo contrato_teletrabajo
labor contiene "CONDUCTOR" contrato_conductor_interprovincial
labor = "VIGILANTE" contrato_full_time_vigilante
tipo_doc PAS o CE, primer contrato contrato_extranjero
tipo_doc PAS o CE, más de 1 contrato contrato_extranjero_mas_de_segundo_contrato
tipo_contrato = PART TIME, labor=CALL CENTER ATC contrato_call_center_part_time
tipo_contrato = PART TIME contrato_part_time
tipo_contrato = FULL TIME contrato_full_time

El método retorna el PDF con:

PDF::loadView(...)->download();


📤 Response – Archivo PDF

Retorna directamente la descarga del contrato correspondiente.

Si ocurre algún error, retorna un JSON:

✔️ Empleado válido, pero sin contrato

{ "valor": false, "msn": "No cuenta con Contrato" }

❌ Empleado no encontrado

{ "valor": false, "msn": "No existe empleado" }


❗ Posibles Errores

Error Descripción
Empleado no existe No se encontró en tabEmployee
No tiene contratos vigentes No existe Contrato de Trabajo activo
Error DB ERP Respuesta inesperada en dbErp
Plantilla no encontrada Error al cargar vista PDF (muy raro)

📚 Tablas y Campos Utilizados

Employee (GET)

Campos usados:

{ "fecha_de_ingreso_real": "date" }

Contrato de Trabajo

{ "name": "string", "fecha_de_ingreso_real": "date", "empleado": "string", "labor": "string", "tipo_de_documento": "string", "modalidad_de_trabajo": "string", "tipo_de_contrato": "string" }

Funciones del Contrato (Extranjeros)

{ "funcion": "string" }


🗃 Lógica en Pseudocódigo

employeeData = GET Employee where name = employee if not exists: return error contract = GET Contrato where empleado=employee and activo if not exists: return error funciones = GET Funciones where parent=contract if doc PAS/CE: countPrevious = GET Contratos after ingreso real determinar ordinal seleccionar plantilla PDF según reglas return descargar PDF