From 8821a59086b322344b33debc733dd0e2c9f62e8e Mon Sep 17 00:00:00 2001 From: josedario87 Date: Thu, 13 Nov 2025 18:50:38 -0600 Subject: [PATCH] =?UTF-8?q?Feat:=20Agregar=20totales=20monetarios=20y=20al?= =?UTF-8?q?tura=20m=C3=A1xima=20a=20informe=20empleados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Actualizada query de contadores con total_pagado_planillas y total_precios_tareas - Agregados dos nuevos cards en TotalesEmpleados para mostrar totales monetarios - Incluida diferencia entre pagos de planillas y precios de tareas - Agregada función formatCurrency para formateo monetario - Actualizada función copiarTexto con sección de totales monetarios - Agregada altura máxima (max-h-96) a tabla de planillas con scroll vertical - Cambiado grid de 4 a 3 columnas en lg para mejor distribución --- .../components/empleados/DetallePlanillas.vue | 2 +- .../components/empleados/TotalesEmpleados.vue | 52 ++++++++++++++++++- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/nuxt4-app/app/components/empleados/DetallePlanillas.vue b/nuxt4-app/app/components/empleados/DetallePlanillas.vue index 7e7fc88..e432711 100644 --- a/nuxt4-app/app/components/empleados/DetallePlanillas.vue +++ b/nuxt4-app/app/components/empleados/DetallePlanillas.vue @@ -29,7 +29,7 @@ -
+
diff --git a/nuxt4-app/app/components/empleados/TotalesEmpleados.vue b/nuxt4-app/app/components/empleados/TotalesEmpleados.vue index 094e529..164b91d 100644 --- a/nuxt4-app/app/components/empleados/TotalesEmpleados.vue +++ b/nuxt4-app/app/components/empleados/TotalesEmpleados.vue @@ -28,7 +28,7 @@
-
+
@@ -96,6 +96,40 @@ de {{ contadores?.total_empleados || 0 }} totales
+ +
+
+
+
+
+
+
Total Pagado Planillas
+
+ {{ formatCurrency(data.total_pagado_planillas || 0) }} +
+
+
+
+ en planillas de pago +
+
+ +
+
+
+
+
+
+
Total Precios Tareas
+
+ {{ formatCurrency(data.total_precios_tareas || 0) }} +
+
+
+
+ suma de precios asignados +
+
@@ -132,6 +166,8 @@ const props = defineProps<{ total_horas_trabajadas: number total_dias_asistencia: number total_tareas: number + total_pagado_planillas: number + total_precios_tareas: number } contadores?: { total_empleados?: number @@ -168,6 +204,15 @@ const formatNumber = (value: number, decimals: number = 2) => { }).format(value) } +const formatCurrency = (value: number) => { + return new Intl.NumberFormat('es-HN', { + style: 'currency', + currency: 'HNL', + minimumFractionDigits: 2, + maximumFractionDigits: 2 + }).format(value) +} + async function copiarTexto() { const footer = ` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ @@ -186,6 +231,11 @@ async function copiarTexto() { Total Tareas Realizadas: ${formatNumber(props.data.total_tareas || 0, 0)} tareas Empleados Activos: ${props.contadores?.empleados_filtrados || 0} +💰 TOTALES MONETARIOS: + Total Pagado en Planillas: ${formatCurrency(props.data.total_pagado_planillas || 0)} + Total Precios de Tareas: ${formatCurrency(props.data.total_precios_tareas || 0)} + Diferencia: ${formatCurrency((props.data.total_pagado_planillas || 0) - (props.data.total_precios_tareas || 0))} + 📈 PROMEDIO POR EMPLEADO: Horas por Empleado: ${formatNumber(promedioHorasPorEmpleado.value)} hrs Días por Empleado: ${formatNumber(promedioDiasPorEmpleado.value, 1)} días