From 542e1c23158a83a83d099affed2875158a394db8 Mon Sep 17 00:00:00 2001 From: ale Date: Wed, 20 Mar 2024 00:26:05 -0300 Subject: [PATCH] metodos reordenados --- app/Models/Barrio.php | 45 ++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/app/Models/Barrio.php b/app/Models/Barrio.php index 78b50b0..64ee17a 100644 --- a/app/Models/Barrio.php +++ b/app/Models/Barrio.php @@ -43,12 +43,6 @@ function pedidosConfirmados() { return $this->pedidos()->where('confirmed',true); } - private function calcularTotalConfirmados(Closure $closure = null) : float { - if (!$closure) - $closure = fn($p) => $p->totalChismosa(); - return $this->pedidosConfirmados()->sum($closure); - } - function totalARecaudar() : float { return $this->calcularTotalConfirmados(); } @@ -69,6 +63,12 @@ function totalATransferir() : float { return $this->totalNoBarriales() + TransporteUtils::total($this->totalParaTransporte()); } + private function calcularTotalConfirmados(Closure $closure = null) : float { + if (!$closure) + $closure = fn($p) => $p->totalChismosa(); + return $this->pedidosConfirmados()->sum($closure); + } + /** * Los productos que pertenecen al barrio. */ @@ -77,17 +77,20 @@ public function productos(): HasMany return $this->hasMany(Producto::class); } + function exportarPedidoACsv() { + if ($this->pedidosConfirmados()->exists()) { + $columnaProductos = $this->armarColumnasPedido(); - private function cantidadPedida(Producto $producto) : int { - return DB::table('pedido_producto') - ->join('pedidos', 'pedido_producto.order_id', '=', 'pedidos.id') - ->where('pedidos.barrio_id', $this->id) - ->where('pedido_producto.producto_id', $producto->id) - ->where('pedidos.confirmed', true) - ->sum('pedido_producto.cantidad'); + try { + $writer = Writer::createFromPath(resource_path('csv/exports/'.$this->nombre.'.csv'), 'w'); + $writer->insertAll($columnaProductos); + } catch (CannotInsertRecord $e) { + var_export($e->getRecords()); + } + } } - private function exportarPedidoACsv() { + private function armarColumnasPedido() : array { $columnaProductos = []; $filasVaciasAgregadas = false; @@ -108,12 +111,14 @@ private function exportarPedidoACsv() { $columnaProductos[] = ['name' => $producto->name, 'cantidad' => $this->cantidadPedida($producto)]; } } + } - try { - $writer = Writer::createFromPath(resource_path('csv/exports/'.$this->nombre.'.csv'), 'w'); - $writer->insertAll($columnaProductos); - } catch (CannotInsertRecord $e) { - var_export($e->getRecords()); - } + private function cantidadPedida(Producto $producto) : int { + return DB::table('pedido_producto') + ->join('pedidos', 'pedido_producto.order_id', '=', 'pedidos.id') + ->where('pedidos.barrio_id', $this->id) + ->where('pedido_producto.producto_id', $producto->id) + ->where('pedidos.confirmed', true) + ->sum('pedido_producto.cantidad'); } }