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 | Sí | 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:
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
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:
📤 Response – Archivo PDF
Retorna directamente la descarga del contrato correspondiente.
Si ocurre algún error, retorna un JSON:
✔️ Empleado válido, pero sin contrato
❌ Empleado no encontrado
❗ 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:
No hay comentarios para mostrar
No hay comentarios para mostrar