diff --git a/nuxt4-app/app/components/RechazosSubproductos.vue b/nuxt4-app/app/components/RechazosSubproductos.vue index b4e74ce..2eddc19 100644 --- a/nuxt4-app/app/components/RechazosSubproductos.vue +++ b/nuxt4-app/app/components/RechazosSubproductos.vue @@ -1,8 +1,34 @@ @@ -297,6 +359,38 @@ const formatCurrency = (value: number) => { }).format(value).replace('HNL', 'L') } +// Funciones de copia para Totales Financieros +async function copiarTotalesFinancierosTexto() { + if (!data.value?.financieros) return + + const footer = ` +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +📊 RESUMEN +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +📅 Rango: ${rangoLegible.value} +📦 Ingresos: ${data.value.conteos?.ingresos_filtrados || 0} de ${data.value.conteos?.ingresos_total || 0} registros +📦 Rechazos: ${data.value.conteos?.rechazos_filtrados || 0} de ${data.value.conteos?.rechazos_total || 0} registros +🕐 Generado: ${lastUpdated.value}` + + const texto = `💰 TOTALES FINANCIEROS + +📊 VISTA GENERAL: + Total Invertido en Café: ${formatCurrency(data.value.financieros.total_invertido_cafe)} + Total Rechazos: ${formatCurrency(data.value.financieros.total_rechazos)} + Balance Neto: ${formatCurrency(data.value.financieros.balance_neto)}${footer}` + + await navigator.clipboard.writeText(texto) + alert('✅ Totales Financieros copiados al portapapeles') +} + +async function copiarTotalesFinancierosJSON() { + if (!data.value?.financieros) return + + const json = JSON.stringify(data.value.financieros, null, 2) + await navigator.clipboard.writeText(json) + alert('✅ JSON copiado al portapapeles') +} + // Methods async function loadData() { // Prevenir múltiples peticiones simultáneas