diff --git a/app/GrupoDeCompra.php b/app/GrupoDeCompra.php index b36ea8d..8ab1f9c 100644 --- a/app/GrupoDeCompra.php +++ b/app/GrupoDeCompra.php @@ -93,7 +93,11 @@ class GrupoDeCompra extends Model } public function calcularCantidadBDT() { - return ceil($this->totalPedidosSinBonos() / 500); + $total = 0; + foreach ($this->pedidosAprobados() as $pedido) { + $total += $pedido->totalParaTransporte(); + } + return ceil($total / 500); } public function totalBonosBarriales() { diff --git a/app/Producto.php b/app/Producto.php index a37d16a..d075724 100644 --- a/app/Producto.php +++ b/app/Producto.php @@ -5,6 +5,7 @@ namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Http\Request; use App\Filtros\FiltroDeProducto; +use Illuminate\Support\Str; class Producto extends Model { @@ -16,12 +17,16 @@ class Producto extends Model { return $this->belongsToMany('App\Subpedido','productos_subpedidos')->withPivot(["cantidad"]); } - + public function proveedor() { return $this->belongsTo('App\Proveedor'); } + public function pagaTransporte() { + return !($this->bono || Str::contains($this->categoria, 'SUBSIDIADO')); + } + //Este método permite que se apliquen los filtros al hacer una request (por ejemplo, de búsqueda) public function scopeFiltrar($query, FiltroDeProducto $filtros) { @@ -44,5 +49,5 @@ class Producto extends Model public static function productosIDNombre() { return Producto::pluck('nombre', 'id',)->all(); } - + } diff --git a/app/Subpedido.php b/app/Subpedido.php index 276d743..136716f 100644 --- a/app/Subpedido.php +++ b/app/Subpedido.php @@ -46,10 +46,20 @@ class Subpedido extends Model return $this->productosSinBonos()->sum('total'); } + public function totalParaTransporte() { + $total = 0; + foreach ($this->productos()->get() as $producto) { + if ($producto->pagaTransporte()) { + $total += $producto->precio * $producto->pivot->cantidad; + } + } + return ceil($total); + } + //Cantidad de bonos de transporte public function cantidadBDT() { - return ceil($this->totalSinBonos() / 500); + return ceil($this->totalParaTransporte() / 500); } //Subtotal de dinero de bonos de transporte @@ -98,11 +108,11 @@ class Subpedido extends Model $view = view("pdfgen.subpedido_tabla", ["subpedido" => $this]); return $view->render(); } - + public function getDevoluciones() { return $this->devoluciones_total; } - + public function getNotasDevoluciones() { return $this->devoluciones_notas; }