Agregada funcion que genera tabla de totales por producto
This commit is contained in:
parent
ba22988026
commit
1324898483
|
@ -2,52 +2,77 @@
|
||||||
|
|
||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
|
use App\Filtros\FiltroDeProducto;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Filtros\FiltroDeProducto;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class Producto extends Model
|
class Producto extends Model
|
||||||
{
|
{
|
||||||
public $timestamps = false;
|
public $timestamps = false;
|
||||||
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 subpedidos()
|
||||||
{
|
{
|
||||||
return $this->belongsToMany('App\Subpedido','productos_subpedidos')->withPivot(["cantidad", "notas"]);
|
return $this->belongsToMany('App\Subpedido', 'productos_subpedidos')->withPivot(["cantidad", "notas"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function proveedor()
|
public function proveedor()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\Proveedor');
|
return $this->belongsTo('App\Proveedor');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function pagaTransporte() {
|
public function pagaTransporte()
|
||||||
return !($this->bono || Str::contains($this->categoria, 'SUBSIDIADO'));
|
{
|
||||||
}
|
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)
|
//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)
|
||||||
{
|
{
|
||||||
return $filtros->aplicar($query);
|
return $filtros->aplicar($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getPaginar(Request $request)
|
public static function getPaginar(Request $request)
|
||||||
{
|
{
|
||||||
return $request->has('paginar') && intval($request->input('paginar')) ? intval($request->input('paginar')) : self::$paginarPorDefecto;
|
return $request->has('paginar') && intval($request->input('paginar')) ? intval($request->input('paginar')) : self::$paginarPorDefecto;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function productosFilaID() {
|
public static function productosFilaID()
|
||||||
return Producto::pluck('id', 'fila',)->all();
|
{
|
||||||
}
|
return Producto::pluck('id', 'fila',)->all();
|
||||||
|
}
|
||||||
|
|
||||||
public static function productosIDFila() {
|
public static function productosIDFila()
|
||||||
return Producto::pluck('fila', 'id',)->all();
|
{
|
||||||
}
|
return Producto::pluck('fila', 'id',)->all();
|
||||||
|
}
|
||||||
|
|
||||||
public static function productosIDNombre() {
|
public static function productosIDNombre()
|
||||||
return Producto::pluck('nombre', 'id',)->all();
|
{
|
||||||
}
|
return Producto::pluck('nombre', 'id',)->all();
|
||||||
|
}
|
||||||
|
|
||||||
|
static public function cantidadesPorBarrio()
|
||||||
|
{
|
||||||
|
$barrios = DB::table('grupos_de_compra')
|
||||||
|
->where('nombre')
|
||||||
|
->pluck('id', 'nombre');
|
||||||
|
|
||||||
|
$columnasBarrios = $barrios->map(function ($id, $nombre) {
|
||||||
|
return DB::raw("SUM(CASE WHEN subpedidos.grupo_de_compra_id = $id AND subpedidos.aprobado = 1 THEN producto_subpedido.cantidad ELSE 0 END) as `$nombre`");
|
||||||
|
})->toArray();
|
||||||
|
|
||||||
|
return DB::table('productos')
|
||||||
|
->join('producto_subpedido', 'productos.id', '=', 'producto_subpedido.producto_id')
|
||||||
|
->join('subpedidos', 'subpedidos.id', '=', 'producto_subpedido.subpedido_id')
|
||||||
|
->select(array_merge(
|
||||||
|
['productos.nombre as Product'],
|
||||||
|
$columnasBarrios
|
||||||
|
))
|
||||||
|
->groupBy('productos.id', 'productos.nombre')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.3",
|
"php": "^7.4",
|
||||||
"fideloper/proxy": "^4.4",
|
"fideloper/proxy": "^4.4",
|
||||||
"fruitcake/laravel-cors": "^2.0",
|
"fruitcake/laravel-cors": "^2.0",
|
||||||
"guzzlehttp/guzzle": "^6.3.1|^7.0.1",
|
"guzzlehttp/guzzle": "^6.3.1|^7.0.1",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue