Compare commits
2 Commits
f6fa4f9523
...
9261467144
Author | SHA1 | Date |
---|---|---|
Ale | 9261467144 | |
Ale | fe9b4cb2ef |
|
@ -1,7 +1,6 @@
|
||||||
[Dolphin]
|
[Dolphin]
|
||||||
HeaderColumnWidths=372,72,103
|
HeaderColumnWidths=372,72,103
|
||||||
SortRole=modificationtime
|
Timestamp=2022,12,4,10,12,38
|
||||||
Timestamp=2022,6,1,16,36,48
|
|
||||||
Version=4
|
Version=4
|
||||||
ViewMode=1
|
ViewMode=1
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ class Filtro extends Model
|
||||||
|
|
||||||
//Aplicar filtros que aparecen en los parámetros, si los hay
|
//Aplicar filtros que aparecen en los parámetros, si los hay
|
||||||
$filtros = $this->request->all();
|
$filtros = $this->request->all();
|
||||||
|
var_dump($filtros);
|
||||||
|
|
||||||
//el filtro nombre debe tomar precedencia sobre otros como (alfabetico)
|
//el filtro nombre debe tomar precedencia sobre otros como (alfabetico)
|
||||||
if (isset($filtros["nombre"])) {
|
if (isset($filtros["nombre"])) {
|
||||||
|
|
|
@ -5,9 +5,14 @@ use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
class FiltroDeProducto extends Filtro {
|
class FiltroDeProducto extends Filtro {
|
||||||
|
|
||||||
public function categoria(String $valor)
|
public function categoria(String $valor)
|
||||||
{
|
{
|
||||||
$this->builder->where('categoria', $valor);
|
$this->builder->where('categoria', $valor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function grupoDeCompra($grupoDeCompraID)
|
||||||
|
{
|
||||||
|
$this->builder->where('', $valor);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -17,12 +17,19 @@ class GrupoDeCompra extends Model
|
||||||
protected $table = 'grupos_de_compra';
|
protected $table = 'grupos_de_compra';
|
||||||
protected $hidden = ['password'];
|
protected $hidden = ['password'];
|
||||||
|
|
||||||
// devuelve una colección con los productos que este grupo de compra puede comprar
|
// devuelve una colección con los productos no centrales que este grupo de compra puede comprar
|
||||||
public function productos()
|
public function productosNoCentrales()
|
||||||
{
|
{
|
||||||
return $this->belongsToMany('App\Producto');
|
return $this->belongsToMany('App\Producto');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function productosComprables() {
|
||||||
|
$noCentrales = $this->productosNoCentrales();
|
||||||
|
$centrales = Producto::productosCentrales();
|
||||||
|
if ($noCentrales->count() == 0) return $centrales;
|
||||||
|
return $centrales->concat($noCentrales);
|
||||||
|
}
|
||||||
|
|
||||||
public function subpedidos() {
|
public function subpedidos() {
|
||||||
return $this->hasMany('App\Subpedido');
|
return $this->hasMany('App\Subpedido');
|
||||||
}
|
}
|
||||||
|
@ -114,4 +121,13 @@ class GrupoDeCompra extends Model
|
||||||
foreach ($gdcs as $gdc){ $gdc->exportarPedidoEnCSV(); }
|
foreach ($gdcs as $gdc){ $gdc->exportarPedidoEnCSV(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function subpedidosInfo()
|
||||||
|
{
|
||||||
|
$pedidosAprobados = $this->pedidosAprobados();
|
||||||
|
foreach ($pedidosAprobados as $p) {
|
||||||
|
$p->info();
|
||||||
|
}
|
||||||
|
return $pedidosAprobados;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ use Illuminate\Http\Request;
|
||||||
use App\Filtros\FiltroDeProducto;
|
use App\Filtros\FiltroDeProducto;
|
||||||
use App\Http\Resources\ProductoResource;
|
use App\Http\Resources\ProductoResource;
|
||||||
use App\Producto;
|
use App\Producto;
|
||||||
|
use Auth;
|
||||||
|
|
||||||
class ProductoController extends Controller
|
class ProductoController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -19,6 +20,7 @@ class ProductoController extends Controller
|
||||||
*/
|
*/
|
||||||
public function index(FiltroDeProducto $filtros, Request $request)
|
public function index(FiltroDeProducto $filtros, Request $request)
|
||||||
{
|
{
|
||||||
|
$gdcID = Auth::user()->grupoDeCompra->id;
|
||||||
return ProductoResource::collection(Producto::filtrar($filtros)->paginate(Producto::getPaginar($request)));
|
return ProductoResource::collection(Producto::filtrar($filtros)->paginate(Producto::getPaginar($request)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,15 +12,24 @@ class Producto extends Model
|
||||||
protected $fillable = [ "nombre", "precio", "presentacion", "stock", "categoria" ];
|
protected $fillable = [ "nombre", "precio", "presentacion", "stock", "categoria" ];
|
||||||
static $paginarPorDefecto = 10;
|
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()
|
public function proveedor()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\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)
|
//Este método permite que se apliquen los filtros al hacer una request (por ejemplo, de búsqueda)
|
||||||
public function scopeFiltrar($query, FiltroDeProducto $filtros)
|
public function scopeFiltrar($query, FiltroDeProducto $filtros)
|
||||||
|
|
|
@ -88,4 +88,12 @@ class Subpedido extends Model
|
||||||
return $view->render();
|
return $view->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function info()
|
||||||
|
{
|
||||||
|
$res = [];
|
||||||
|
$res['id'] = $this->id;
|
||||||
|
$res['productos'] = $this->productos();
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue