From fe9b4cb2ef3a7945b151dd7109c7b92d3d34a55c Mon Sep 17 00:00:00 2001 From: Ale Date: Sun, 11 Dec 2022 20:00:45 -0300 Subject: [PATCH] =?UTF-8?q?Lo=20que=20hab=C3=ADa=20de=20productos=20intern?= =?UTF-8?q?os?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Filtros/Filtro.php | 1 + app/Filtros/FiltroDeProducto.php | 7 ++++++- app/Http/Controllers/Api/ProductoController.php | 2 ++ app/Producto.php | 13 +++++++++++-- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/Filtros/Filtro.php b/app/Filtros/Filtro.php index ea55739..6b7d4c6 100644 --- a/app/Filtros/Filtro.php +++ b/app/Filtros/Filtro.php @@ -31,6 +31,7 @@ class Filtro extends Model //Aplicar filtros que aparecen en los parámetros, si los hay $filtros = $this->request->all(); + var_dump($filtros); //el filtro nombre debe tomar precedencia sobre otros como (alfabetico) if (isset($filtros["nombre"])) { diff --git a/app/Filtros/FiltroDeProducto.php b/app/Filtros/FiltroDeProducto.php index 93672c2..9235641 100644 --- a/app/Filtros/FiltroDeProducto.php +++ b/app/Filtros/FiltroDeProducto.php @@ -5,9 +5,14 @@ use Illuminate\Database\Eloquent\Builder; class FiltroDeProducto extends Filtro { - public function categoria(String $valor) + public function categoria(String $valor) { $this->builder->where('categoria', $valor); } + public function grupoDeCompra($grupoDeCompraID) + { + $this->builder->where('', $valor); + } + } \ No newline at end of file diff --git a/app/Http/Controllers/Api/ProductoController.php b/app/Http/Controllers/Api/ProductoController.php index 57f27fd..1425c9c 100644 --- a/app/Http/Controllers/Api/ProductoController.php +++ b/app/Http/Controllers/Api/ProductoController.php @@ -7,6 +7,7 @@ use Illuminate\Http\Request; use App\Filtros\FiltroDeProducto; use App\Http\Resources\ProductoResource; use App\Producto; +use Auth; class ProductoController extends Controller { @@ -19,6 +20,7 @@ class ProductoController extends Controller */ public function index(FiltroDeProducto $filtros, Request $request) { + $gdcID = Auth::user()->grupoDeCompra->id; return ProductoResource::collection(Producto::filtrar($filtros)->paginate(Producto::getPaginar($request))); } diff --git a/app/Producto.php b/app/Producto.php index a37d16a..8d31f6c 100644 --- a/app/Producto.php +++ b/app/Producto.php @@ -12,15 +12,24 @@ class Producto extends Model protected $fillable = [ "nombre", "precio", "presentacion", "stock", "categoria" ]; static $paginarPorDefecto = 10; - public function subpedidos() + public function gruposDeCompra() { - return $this->belongsToMany('App\Subpedido','productos_subpedidos')->withPivot(["cantidad"]); + return $this->belongsToMany('App\GrupoDeCompra', 'grupo_de_compra_producto', 'grupo_de_compra_id'); } public function proveedor() { return $this->belongsTo('App\Proveedor'); } + + public function subpedidos() + { + return $this->belongsToMany('App\Subpedido','productos_subpedidos')->withPivot(["cantidad"]); + } + + public static function productosCentrales() { + return Producto::doesntHave('gruposDeCompra')->get(); + } //Este método permite que se apliquen los filtros al hacer una request (por ejemplo, de búsqueda) public function scopeFiltrar($query, FiltroDeProducto $filtros)