import { computed } from 'vue' import type { ComputedRef } from 'vue' export interface RechazoRecord { tipo: 'chibolita' | 'perico' | 'vano' | 'picadillo' | 'magalla' | 'pinta' cantidad: number // libras para chibolita, perico, pinta; galones para vano, picadillo, magalla precio_unitario: number total_cobrado: number } export interface RechazoMetrics { totalCantidad: number precioPromedio: number totalCobrado: number } export interface RechazosMetrics { chibolita: ComputedRef perico: ComputedRef vano: ComputedRef picadillo: ComputedRef magalla: ComputedRef pinta: ComputedRef totalRechazos: ComputedRef } export function useRechazosMetrics(rechazos: ComputedRef) { const calcularMetricasPorTipo = (tipo: RechazoRecord['tipo']): ComputedRef => { return computed(() => { const registros = rechazos.value.filter(r => r.tipo === tipo) const totalCantidad = registros.reduce((sum, r) => sum + (r.cantidad || 0), 0) // const totalCobrado = registros.reduce((sum, r) => sum + (r.total_cobrado || 0), 0) DESACTIVADO HASTA NORMALIZAR LOS DATOS DE LA TABLA ORIGINAL, MENCIONAR SI TE TOPAS CON ESTO UN MES DESPUES ESTAMOS EN 1 OCTUBRE 2025 // const precioPromedio = totalCantidad > 0 ? totalCobrado / totalCantidad : 0 DESACTIVADO HASTA NORMALIZAR LOS DATOS DE LA TABLA ORIGINAL, MENCIONAR SI TE TOPAS CON ESTO UN MES DESPUES ESTAMOS EN 1 OCTUBRE 2025 const precioPromedio = 10 const totalCobrado = 100 return { totalCantidad, precioPromedio, totalCobrado } }) } const chibolita = calcularMetricasPorTipo('chibolita') const perico = calcularMetricasPorTipo('perico') const vano = calcularMetricasPorTipo('vano') const picadillo = calcularMetricasPorTipo('picadillo') const magalla = calcularMetricasPorTipo('magalla') const pinta = calcularMetricasPorTipo('pinta') const totalRechazos = computed(() => { return chibolita.value.totalCobrado + perico.value.totalCobrado + vano.value.totalCobrado + picadillo.value.totalCobrado + magalla.value.totalCobrado + pinta.value.totalCobrado }) return { chibolita, perico, vano, picadillo, magalla, pinta, totalRechazos } }