From 439f69a30c18379df329fbc73cf92dab738d53ab Mon Sep 17 00:00:00 2001 From: ale Date: Mon, 26 May 2025 17:25:35 -0300 Subject: [PATCH] Agregado total sin devoluciones a resource de grupo de compra --- app/GrupoDeCompra.php | 8 ++++++++ app/Http/Resources/GrupoDeCompraResource.php | 1 + resources/js/components/admin/TablaPedidos.vue | 3 ++- resources/js/store/modules/admin.js | 8 +++++--- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/GrupoDeCompra.php b/app/GrupoDeCompra.php index 1d55bce..12f789d 100644 --- a/app/GrupoDeCompra.php +++ b/app/GrupoDeCompra.php @@ -43,6 +43,14 @@ class GrupoDeCompra extends Model return $total; } + public function totalSinDevoluciones() { + $total = 0; + foreach ($this->pedidosAprobados() as $subpedido) { + $total = $total + $subpedido->totalSinDevoluciones(); + } + return $total; + } + public function totalBarrial() { $total = 0; diff --git a/app/Http/Resources/GrupoDeCompraResource.php b/app/Http/Resources/GrupoDeCompraResource.php index 58a025b..ef16fb5 100644 --- a/app/Http/Resources/GrupoDeCompraResource.php +++ b/app/Http/Resources/GrupoDeCompraResource.php @@ -21,6 +21,7 @@ class GrupoDeCompraResource extends JsonResource 'devoluciones_habilitadas' => $this->devoluciones_habilitadas, 'pedidos' => SubpedidoResource::collection($this->subpedidos), 'total_a_recaudar' => number_format($this->totalARecaudar(),2), + 'total_sin_devoluciones' => number_format($this->totalSinDevoluciones(),2), 'total_barrial' => number_format($this->totalBarrial(),2), 'total_devoluciones' => number_format($this->totalDevoluciones(),2), 'total_a_transferir' => number_format($this->totalATransferir(),2), diff --git a/resources/js/components/admin/TablaPedidos.vue b/resources/js/components/admin/TablaPedidos.vue index b40d57b..2a46c20 100644 --- a/resources/js/components/admin/TablaPedidos.vue +++ b/resources/js/components/admin/TablaPedidos.vue @@ -24,7 +24,7 @@ Total a recaudar: - $ {{ total_a_recaudar }} + $ {{ devoluciones_habilitadas ? total_a_recaudar : total_sin_devoluciones }} Total bonos barriales: @@ -62,6 +62,7 @@ export default { "devoluciones_habilitadas", "pedidos", "total_a_recaudar", + "total_sin_devoluciones", "total_barrial", "total_devoluciones", "cantidad_transporte", diff --git a/resources/js/store/modules/admin.js b/resources/js/store/modules/admin.js index 230bbf3..4ad44ee 100644 --- a/resources/js/store/modules/admin.js +++ b/resources/js/store/modules/admin.js @@ -7,6 +7,7 @@ const state = { devoluciones_habilitadas: null, pedidos: null, total_a_recaudar: null, + total_sin_devoluciones: null, total_barrial: null, total_devoluciones: null, total_a_transferir: null, @@ -22,6 +23,7 @@ const mutations = { state.devoluciones_habilitadas = grupo_de_compra.devoluciones_habilitadas; state.pedidos = grupo_de_compra.pedidos; state.total_a_recaudar = grupo_de_compra.total_a_recaudar; + state.total_sin_devoluciones = grupo_de_compra.total_sin_devoluciones; state.total_barrial = grupo_de_compra.total_barrial; state.total_devoluciones = grupo_de_compra.total_devoluciones; state.total_a_transferir = grupo_de_compra.total_a_transferir; @@ -56,16 +58,16 @@ const getters = { return state.lastFetch !== null; }, hayPedidos() { - return getters.grupoDeCompraDefinido() && state.pedidos.length > 0; + return state.pedidos?.length > 0; }, pedidosAprobados() { - return getters.grupoDeCompraDefinido() ? state.pedidos.filter(p => p.aprobado) : []; + return state.pedidos?.filter(p => p.aprobado) ?? []; }, hayAprobados() { return getters.pedidosAprobados().length !== 0; }, getPedido() { - return (pedido_id) => state.pedidos.find(p => p.id === pedido_id); + return (pedido_id) => state.pedidos?.find(p => p.id === pedido_id); }, getCaracteristica() { return (caracteristica) => state[`${caracteristica}_habilitadas`];