From 9a96d9b3d960d3c1f889f701ee34ea263395d6d3 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Thu, 13 Nov 2025 22:57:03 -0600 Subject: [PATCH] Feat: Agregar promedios monetarios por empleado en totales MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Agregadas dos nuevas cards en promedio por empleado: * Planillas / Empleado (promedio de pago en planillas) * Tareas $ / Empleado (promedio de precios de tareas) - Agregados computed properties promedioPagoPlanillasPorEmpleado y promedioPrecioTareasPorEmpleado - Actualizada función copiarTexto con los nuevos promedios monetarios - Cambiado grid de promedios de 3 a 5 columnas (md:grid-cols-2 lg:grid-cols-5) --- .../components/empleados/TotalesEmpleados.vue | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/nuxt4-app/app/components/empleados/TotalesEmpleados.vue b/nuxt4-app/app/components/empleados/TotalesEmpleados.vue index 164b91d..bb1997e 100644 --- a/nuxt4-app/app/components/empleados/TotalesEmpleados.vue +++ b/nuxt4-app/app/components/empleados/TotalesEmpleados.vue @@ -135,7 +135,7 @@

Promedio por Empleado

-
+
Horas / Empleado
@@ -154,6 +154,18 @@ {{ formatNumber(promedioTareasPorEmpleado, 1) }} tareas
+
+
Planillas / Empleado
+
+ {{ formatCurrency(promedioPagoPlanillasPorEmpleado) }} +
+
+
+
Tareas $ / Empleado
+
+ {{ formatCurrency(promedioPrecioTareasPorEmpleado) }} +
+
@@ -196,6 +208,18 @@ const promedioTareasPorEmpleado = computed(() => { return (props.data.total_tareas || 0) / empleados }) +const promedioPagoPlanillasPorEmpleado = computed(() => { + const empleados = props.contadores?.empleados_filtrados || 0 + if (empleados === 0) return 0 + return (props.data.total_pagado_planillas || 0) / empleados +}) + +const promedioPrecioTareasPorEmpleado = computed(() => { + const empleados = props.contadores?.empleados_filtrados || 0 + if (empleados === 0) return 0 + return (props.data.total_precios_tareas || 0) / empleados +}) + const formatNumber = (value: number, decimals: number = 2) => { if (!value) return decimals === 0 ? '0' : '0.00' return new Intl.NumberFormat('es-HN', { @@ -239,7 +263,9 @@ async function copiarTexto() { 📈 PROMEDIO POR EMPLEADO: Horas por Empleado: ${formatNumber(promedioHorasPorEmpleado.value)} hrs Días por Empleado: ${formatNumber(promedioDiasPorEmpleado.value, 1)} días - Tareas por Empleado: ${formatNumber(promedioTareasPorEmpleado.value, 1)} tareas${footer}` + Tareas por Empleado: ${formatNumber(promedioTareasPorEmpleado.value, 1)} tareas + Pago Planillas por Empleado: ${formatCurrency(promedioPagoPlanillasPorEmpleado.value)} + Pago Tareas por Empleado: ${formatCurrency(promedioPrecioTareasPorEmpleado.value)}${footer}` await navigator.clipboard.writeText(texto) alert('✅ Totales de Empleados copiados al portapapeles')