Agregados tipos e imports faltantes, quitados imports innecesarios, quitados valores default, quitados metodos y campos no usados, quitados phpdocs redundantes, returns simplificados
This commit is contained in:
parent
916f963e7b
commit
d526b944bd
24 changed files with 99 additions and 145 deletions
|
@ -36,7 +36,7 @@ class CrearPedidosAprobadosViewCommand extends Command
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function handle()
|
public function handle(): int
|
||||||
{
|
{
|
||||||
DB::statement("
|
DB::statement("
|
||||||
CREATE OR REPLACE VIEW pedidos_aprobados
|
CREATE OR REPLACE VIEW pedidos_aprobados
|
||||||
|
|
|
@ -5,12 +5,15 @@ namespace App\Filtros;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||||
|
use Throwable;
|
||||||
|
use TypeError;
|
||||||
|
|
||||||
class Filtro extends Model
|
class Filtro extends Model
|
||||||
{
|
{
|
||||||
protected $request;
|
protected Request $request;
|
||||||
protected $builder;
|
protected $builder;
|
||||||
protected $MENSAJES_ERROR = [
|
protected array $MENSAJES_ERROR = [
|
||||||
'ARGUMENTO' => 'Argumento inválido para el parámetro %s. Revise la documentación.'
|
'ARGUMENTO' => 'Argumento inválido para el parámetro %s. Revise la documentación.'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -22,10 +25,10 @@ class Filtro extends Model
|
||||||
/**
|
/**
|
||||||
* Apply all existing filters, if available.
|
* Apply all existing filters, if available.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Database\Eloquent\Builder $builder
|
* @param Builder $builder
|
||||||
* @return \Illuminate\Database\Eloquent\Builder
|
* @return Builder
|
||||||
*/
|
*/
|
||||||
public function aplicar(Builder $builder)
|
public function aplicar(Builder $builder): Builder
|
||||||
{
|
{
|
||||||
$this->builder = $builder;
|
$this->builder = $builder;
|
||||||
|
|
||||||
|
@ -51,7 +54,7 @@ class Filtro extends Model
|
||||||
//Llamar métodos con argumentos
|
//Llamar métodos con argumentos
|
||||||
try {
|
try {
|
||||||
$this->$metodo($valor);
|
$this->$metodo($valor);
|
||||||
} catch (\Throwable $th) {
|
} catch (Throwable $th) {
|
||||||
if (is_a($th,'TypeError') ) { throw new HttpException(400, sprintf($this->MENSAJES_ERROR['ARGUMENTO'],$filtro)); }
|
if (is_a($th,'TypeError') ) { throw new HttpException(400, sprintf($this->MENSAJES_ERROR['ARGUMENTO'],$filtro)); }
|
||||||
throw $th;
|
throw $th;
|
||||||
}
|
}
|
||||||
|
@ -63,7 +66,7 @@ class Filtro extends Model
|
||||||
//Buscar un término en el nombre
|
//Buscar un término en el nombre
|
||||||
public function nombre(String $valor)
|
public function nombre(String $valor)
|
||||||
{
|
{
|
||||||
$this->builder->where('nombre', "LIKE", "%" . $valor . "%")->orderByRaw("IF(nombre = '{$valor}',2,IF(nombre LIKE '{$valor}%',1,0)) DESC");
|
$this->builder->where('nombre', "LIKE", "%" . $valor . "%")->orderByRaw("IF(nombre = '$valor',2,IF(nombre LIKE '$valor%',1,0)) DESC");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function alfabetico(String $order = 'asc')
|
public function alfabetico(String $order = 'asc')
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Filtros;
|
namespace App\Filtros;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class FiltroDeProducto extends Filtro {
|
class FiltroDeProducto extends Filtro {
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace App\Filtros;
|
namespace App\Filtros;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use TypeError;
|
||||||
|
|
||||||
class FiltroDeSubpedido extends Filtro
|
class FiltroDeSubpedido extends Filtro
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,6 +7,7 @@ use App\Helpers\TransporteHelper;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use Mpdf\Mpdf;
|
use Mpdf\Mpdf;
|
||||||
|
@ -23,7 +24,7 @@ class GrupoDeCompra extends Model
|
||||||
return $this->hasMany(Subpedido::class);
|
return $this->hasMany(Subpedido::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function toggleDevoluciones()
|
public function toggleDevoluciones(): bool
|
||||||
{
|
{
|
||||||
$this->devoluciones_habilitadas = !$this->devoluciones_habilitadas;
|
$this->devoluciones_habilitadas = !$this->devoluciones_habilitadas;
|
||||||
$this->save();
|
$this->save();
|
||||||
|
@ -117,7 +118,7 @@ class GrupoDeCompra extends Model
|
||||||
$mpdf->Output($filename, "D");
|
$mpdf->Output($filename, "D");
|
||||||
}
|
}
|
||||||
|
|
||||||
function pedidoParaPdf()
|
function pedidoParaPdf(): array
|
||||||
{
|
{
|
||||||
$productos = $this->productosPedidos(true);
|
$productos = $this->productosPedidos(true);
|
||||||
$pedido = [];
|
$pedido = [];
|
||||||
|
@ -135,8 +136,6 @@ class GrupoDeCompra extends Model
|
||||||
$pedido['productos'][] = $productoParaPdf;
|
$pedido['productos'][] = $productoParaPdf;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log::debug($pedido);
|
|
||||||
|
|
||||||
return $pedido;
|
return $pedido;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,7 +172,7 @@ class GrupoDeCompra extends Model
|
||||||
}
|
}
|
||||||
|
|
||||||
//Asume que los productos están gruadados en orden de fila
|
//Asume que los productos están gruadados en orden de fila
|
||||||
public static function obtenerTemplateDeFilasVacias(int $columns)
|
public static function obtenerTemplateDeFilasVacias(int $columns): array
|
||||||
{
|
{
|
||||||
$productosFilaID = Producto::productosFilaID();
|
$productosFilaID = Producto::productosFilaID();
|
||||||
$productosIDNombre = Producto::productosIDNombre();
|
$productosIDNombre = Producto::productosIDNombre();
|
||||||
|
@ -197,7 +196,7 @@ class GrupoDeCompra extends Model
|
||||||
CsvHelper::generarCsv('csv/exports/' . $this->nombre . '.csv', $records);
|
CsvHelper::generarCsv('csv/exports/' . $this->nombre . '.csv', $records);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function generarColumnaCantidades()
|
public function generarColumnaCantidades(): array
|
||||||
{
|
{
|
||||||
$productos_en_pedido = $this->productosPedidos();
|
$productos_en_pedido = $this->productosPedidos();
|
||||||
|
|
||||||
|
@ -208,7 +207,7 @@ class GrupoDeCompra extends Model
|
||||||
}
|
}
|
||||||
|
|
||||||
$records = $this->obtenerTemplateDeFilasVacias(1);
|
$records = $this->obtenerTemplateDeFilasVacias(1);
|
||||||
$productos_id_fila = Producto::productosIdFila();
|
$productos_id_fila = Producto::productosIDFila();
|
||||||
foreach ($productos_en_pedido as $id => $producto_pedido) {
|
foreach ($productos_en_pedido as $id => $producto_pedido) {
|
||||||
$fila = $productos_id_fila[$id];
|
$fila = $productos_id_fila[$id];
|
||||||
$records[$fila][1] = $producto_pedido->cantidad_pedida;
|
$records[$fila][1] = $producto_pedido->cantidad_pedida;
|
||||||
|
@ -232,7 +231,7 @@ class GrupoDeCompra extends Model
|
||||||
$pedidos = $this->pedidosAprobados();
|
$pedidos = $this->pedidosAprobados();
|
||||||
// Generar tabla vacía con una columna por núcleo
|
// Generar tabla vacía con una columna por núcleo
|
||||||
$records = $this->obtenerTemplateDeFilasVacias($pedidos->count());
|
$records = $this->obtenerTemplateDeFilasVacias($pedidos->count());
|
||||||
$productos_id_fila = Producto::productosIdFila();
|
$productos_id_fila = Producto::productosIDFila();
|
||||||
|
|
||||||
foreach ($productos_en_pedido as $id => $producto_pedido) {
|
foreach ($productos_en_pedido as $id => $producto_pedido) {
|
||||||
$fila = $productos_id_fila[$id];
|
$fila = $productos_id_fila[$id];
|
||||||
|
@ -270,7 +269,7 @@ class GrupoDeCompra extends Model
|
||||||
->orderBy('nombre');
|
->orderBy('nombre');
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function transportePorBarrio()
|
public static function transportePorBarrio(): array
|
||||||
{
|
{
|
||||||
$result = [];
|
$result = [];
|
||||||
$barrios = GrupoDeCompra::barriosMenosPrueba()->get();
|
$barrios = GrupoDeCompra::barriosMenosPrueba()->get();
|
||||||
|
@ -283,9 +282,9 @@ class GrupoDeCompra extends Model
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Illuminate\Support\Collection
|
* @return Collection
|
||||||
*/
|
*/
|
||||||
public function productosPedidos($excluirBarriales = false): \Illuminate\Support\Collection
|
public function productosPedidos($excluirBarriales = false): Collection
|
||||||
{
|
{
|
||||||
$query = DB::table('pedidos_aprobados')
|
$query = DB::table('pedidos_aprobados')
|
||||||
->where('grupo_de_compra_id', $this->id);
|
->where('grupo_de_compra_id', $this->id);
|
||||||
|
|
|
@ -13,7 +13,7 @@ use League\Csv\Writer;
|
||||||
class CsvHelper
|
class CsvHelper
|
||||||
{
|
{
|
||||||
public static function getRecords($filePath): Iterator {
|
public static function getRecords($filePath): Iterator {
|
||||||
$csv = Reader::createFromPath(resource_path($filePath), 'r');
|
$csv = Reader::createFromPath(resource_path($filePath));
|
||||||
try {
|
try {
|
||||||
$csv->setDelimiter("|");
|
$csv->setDelimiter("|");
|
||||||
$csv->setEnclosure("'");
|
$csv->setEnclosure("'");
|
||||||
|
@ -34,7 +34,7 @@ class CsvHelper
|
||||||
}
|
}
|
||||||
$writer->insertAll($contenido);
|
$writer->insertAll($contenido);
|
||||||
} catch (CannotInsertRecord $e) {
|
} catch (CannotInsertRecord $e) {
|
||||||
var_export($e->getRecords());
|
Log::error($e->getMessage(), $e->getTrace());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
namespace App\Helpers;
|
namespace App\Helpers;
|
||||||
|
|
||||||
use App\CanastaLog;
|
use App\CanastaLog;
|
||||||
use Exception;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class TransporteHelper
|
class TransporteHelper
|
||||||
|
|
|
@ -3,8 +3,7 @@
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\GrupoDeCompra;
|
use App\GrupoDeCompra;
|
||||||
use Illuminate\Http\Request;
|
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||||
use Response;
|
|
||||||
|
|
||||||
class AdminController extends Controller
|
class AdminController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -18,16 +17,18 @@ class AdminController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
public function exportarPedidosAPdf(GrupoDeCompra $gdc) {
|
public function exportarPedidosAPdf(GrupoDeCompra $gdc) {
|
||||||
return $gdc->exportarPedidosAPdf();
|
$gdc->exportarPedidosAPdf();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function exportarPedidoACSV(GrupoDeCompra $gdc) {
|
public function exportarPedidoACSV(GrupoDeCompra $gdc): BinaryFileResponse
|
||||||
|
{
|
||||||
$gdc->exportarPedidoEnCSV();
|
$gdc->exportarPedidoEnCSV();
|
||||||
$file = resource_path('csv/exports/'.$gdc->nombre.'.csv');
|
$file = resource_path('csv/exports/'.$gdc->nombre.'.csv');
|
||||||
return response()->download($file);
|
return response()->download($file);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function exportarPedidoConNucleosACSV(GrupoDeCompra $gdc) {
|
public function exportarPedidoConNucleosACSV(GrupoDeCompra $gdc): BinaryFileResponse
|
||||||
|
{
|
||||||
$gdc->exportarPedidoConNucleosEnCSV();
|
$gdc->exportarPedidoConNucleosEnCSV();
|
||||||
$file = resource_path('csv/exports/'.$gdc->nombre.'-completo.csv');
|
$file = resource_path('csv/exports/'.$gdc->nombre.'-completo.csv');
|
||||||
return response()->download($file);
|
return response()->download($file);
|
||||||
|
|
|
@ -10,24 +10,11 @@ use App\Producto;
|
||||||
|
|
||||||
class ProductoController extends Controller
|
class ProductoController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Mostrar una lista de productos.
|
|
||||||
*
|
|
||||||
* @param App\Filtros\FiltroDeProducto $filtros
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function index(FiltroDeProducto $filtros, Request $request)
|
public function index(FiltroDeProducto $filtros, Request $request)
|
||||||
{
|
{
|
||||||
return ProductoResource::collection(Producto::filtrar($filtros)->paginate(Producto::getPaginar($request)));
|
return ProductoResource::collection(Producto::filtrar($filtros)->paginate(Producto::getPaginar($request)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*
|
|
||||||
* @param \App\Producto $producto
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function show(Producto $producto)
|
public function show(Producto $producto)
|
||||||
{
|
{
|
||||||
return new ProductoResource($producto);
|
return new ProductoResource($producto);
|
||||||
|
|
|
@ -15,13 +15,6 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||||
|
|
||||||
class SubpedidoController extends Controller
|
class SubpedidoController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Mostrar una lista de productos.
|
|
||||||
*
|
|
||||||
* @param App\Filtros\FiltroDeSubpedido $filtros
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function index(FiltroDeSubpedido $filtros, Request $request)
|
public function index(FiltroDeSubpedido $filtros, Request $request)
|
||||||
{
|
{
|
||||||
return Subpedido::filtrar($filtros)->get();
|
return Subpedido::filtrar($filtros)->get();
|
||||||
|
@ -32,12 +25,6 @@ class SubpedidoController extends Controller
|
||||||
return SubpedidoResource::collection(Subpedido::filtrar($filtros)->get());
|
return SubpedidoResource::collection(Subpedido::filtrar($filtros)->get());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$validado = $this->validateSubpedido();
|
$validado = $this->validateSubpedido();
|
||||||
|
@ -51,7 +38,8 @@ class SubpedidoController extends Controller
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function validateSubpedido(){
|
protected function validateSubpedido(): array
|
||||||
|
{
|
||||||
return request()->validate([
|
return request()->validate([
|
||||||
'nombre' => 'required|max:255',
|
'nombre' => 'required|max:255',
|
||||||
'grupo_de_compra_id' => [
|
'grupo_de_compra_id' => [
|
||||||
|
@ -61,12 +49,6 @@ class SubpedidoController extends Controller
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*
|
|
||||||
* @param \App\Subpedido $subpedido
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function show(Subpedido $subpedido)
|
public function show(Subpedido $subpedido)
|
||||||
{
|
{
|
||||||
return new SubpedidoResource($subpedido);
|
return new SubpedidoResource($subpedido);
|
||||||
|
|
|
@ -5,7 +5,9 @@ namespace App\Http\Controllers;
|
||||||
use App\GrupoDeCompra;
|
use App\GrupoDeCompra;
|
||||||
use App\Helpers\CanastaHelper;
|
use App\Helpers\CanastaHelper;
|
||||||
use App\Producto;
|
use App\Producto;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||||
|
|
||||||
class ComprasController
|
class ComprasController
|
||||||
{
|
{
|
||||||
|
@ -15,13 +17,15 @@ class ComprasController
|
||||||
return view('compras_pedidos');
|
return view('compras_pedidos');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function descargarPedidos() {
|
public function descargarPedidos(): BinaryFileResponse
|
||||||
|
{
|
||||||
Producto::planillaTotales();
|
Producto::planillaTotales();
|
||||||
$file = resource_path('csv/exports/pedidos-por-barrio.csv');
|
$file = resource_path('csv/exports/pedidos-por-barrio.csv');
|
||||||
return response()->download($file);
|
return response()->download($file);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function descargarNotas() {
|
public function descargarNotas(): BinaryFileResponse
|
||||||
|
{
|
||||||
Producto::planillaNotas();
|
Producto::planillaNotas();
|
||||||
$file = resource_path('csv/exports/notas-por-barrio.csv');
|
$file = resource_path('csv/exports/notas-por-barrio.csv');
|
||||||
return response()->download($file);
|
return response()->download($file);
|
||||||
|
@ -36,7 +40,7 @@ class ComprasController
|
||||||
return view('auth/compras_login');
|
return view('auth/compras_login');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function cargarCanasta(Request $request)
|
public function cargarCanasta(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'data' => 'required|file|mimes:csv,txt|max:2048',
|
'data' => 'required|file|mimes:csv,txt|max:2048',
|
||||||
|
@ -47,10 +51,11 @@ class ComprasController
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'message' => 'Canasta cargada exitosamente',
|
'message' => 'Canasta cargada exitosamente',
|
||||||
], 200);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function descargarCanastaEjemplo() {
|
public function descargarCanastaEjemplo(): BinaryFileResponse
|
||||||
|
{
|
||||||
$file = resource_path('csv/productos.csv');
|
$file = resource_path('csv/productos.csv');
|
||||||
return response()->download($file);
|
return response()->download($file);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class ProductoController extends Controller
|
class ProductoController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
@ -16,11 +14,6 @@ class ProductoController extends Controller
|
||||||
$this->middleware(['auth','subpedido']);
|
$this->middleware(['auth','subpedido']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the application dashboard.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Contracts\Support\Renderable
|
|
||||||
*/
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
return view('productos');
|
return view('productos');
|
||||||
|
|
|
@ -3,18 +3,12 @@
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class Admin
|
class Admin
|
||||||
{
|
{
|
||||||
/**
|
public function handle(Request $request, Closure $next)
|
||||||
* Handle an incoming request.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @param \Closure $next
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function handle($request, Closure $next)
|
|
||||||
{
|
{
|
||||||
$user = Auth::user();
|
$user = Auth::user();
|
||||||
if ($user->is_admin) {
|
if ($user->is_admin) {
|
||||||
|
|
|
@ -3,17 +3,18 @@
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class Subpedido
|
class Subpedido
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Handle an incoming request.
|
* Handle an incoming request.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param Request $request
|
||||||
* @param \Closure $next
|
* @param Closure $next
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function handle($request, Closure $next)
|
public function handle(Request $request, Closure $next)
|
||||||
{
|
{
|
||||||
if (!session('subpedido_nombre') || !session('subpedido_id')) {
|
if (!session('subpedido_nombre') || !session('subpedido_id')) {
|
||||||
return redirect()->route('subpedidos.create');
|
return redirect()->route('subpedidos.create');
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
class GrupoDeCompraResource extends JsonResource
|
class GrupoDeCompraResource extends JsonResource
|
||||||
|
@ -9,10 +10,10 @@ class GrupoDeCompraResource extends JsonResource
|
||||||
/**
|
/**
|
||||||
* Transform the resource into an array.
|
* Transform the resource into an array.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param Request $request
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function toArray($request)
|
public function toArray($request): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'id' => $this->id,
|
'id' => $this->id,
|
||||||
|
@ -23,8 +24,8 @@ class GrupoDeCompraResource extends JsonResource
|
||||||
'total_barrial' => number_format($this->totalBarrial(),2),
|
'total_barrial' => number_format($this->totalBarrial(),2),
|
||||||
'total_devoluciones' => number_format($this->totalDevoluciones(),2),
|
'total_devoluciones' => number_format($this->totalDevoluciones(),2),
|
||||||
'total_a_transferir' => number_format($this->totalATransferir(),2),
|
'total_a_transferir' => number_format($this->totalATransferir(),2),
|
||||||
'total_transporte' => number_format($this->totalTransporte(),0),
|
'total_transporte' => number_format($this->totalTransporte()),
|
||||||
'cantidad_transporte' => number_format($this->cantidadTransporte(),0),
|
'cantidad_transporte' => number_format($this->cantidadTransporte()),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
class ProductoResource extends JsonResource
|
class ProductoResource extends JsonResource
|
||||||
|
@ -9,10 +10,10 @@ class ProductoResource extends JsonResource
|
||||||
/**
|
/**
|
||||||
* Transform the resource into an array.
|
* Transform the resource into an array.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param Request $request
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function toArray($request)
|
public function toArray($request): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'id' => $this->id,
|
'id' => $this->id,
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
class SubpedidoResource extends JsonResource
|
class SubpedidoResource extends JsonResource
|
||||||
|
@ -9,10 +10,10 @@ class SubpedidoResource extends JsonResource
|
||||||
/**
|
/**
|
||||||
* Transform the resource into an array.
|
* Transform the resource into an array.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param Request $request
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function toArray($request)
|
public function toArray($request): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'id' => $this->id,
|
'id' => $this->id,
|
||||||
|
@ -21,8 +22,8 @@ class SubpedidoResource extends JsonResource
|
||||||
'productos' => $this->productos,
|
'productos' => $this->productos,
|
||||||
'aprobado' => (bool) $this->aprobado,
|
'aprobado' => (bool) $this->aprobado,
|
||||||
'total' => number_format($this->total(),2),
|
'total' => number_format($this->total(),2),
|
||||||
'total_transporte' => number_format($this->totalTransporte(),0),
|
'total_transporte' => number_format($this->totalTransporte()),
|
||||||
'cantidad_transporte' => number_format($this->cantidadTransporte(),0),
|
'cantidad_transporte' => number_format($this->cantidadTransporte()),
|
||||||
'total_sin_devoluciones' => number_format($this->totalSinDevoluciones(),2),
|
'total_sin_devoluciones' => number_format($this->totalSinDevoluciones(),2),
|
||||||
'devoluciones_total' => number_format($this->devoluciones_total,2),
|
'devoluciones_total' => number_format($this->devoluciones_total,2),
|
||||||
'devoluciones_notas' => $this->devoluciones_notas
|
'devoluciones_notas' => $this->devoluciones_notas
|
||||||
|
|
|
@ -5,7 +5,10 @@ namespace App;
|
||||||
use App\Filtros\FiltroDeProducto;
|
use App\Filtros\FiltroDeProducto;
|
||||||
use App\Helpers\CsvHelper;
|
use App\Helpers\CsvHelper;
|
||||||
use App\Helpers\TransporteHelper;
|
use App\Helpers\TransporteHelper;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
@ -15,50 +18,45 @@ 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 int $paginarPorDefecto = 10;
|
||||||
|
|
||||||
public function subpedidos()
|
public function subpedidos(): BelongsToMany
|
||||||
{
|
{
|
||||||
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(): BelongsTo
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\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)
|
//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): Builder
|
||||||
{
|
{
|
||||||
return $filtros->aplicar($query);
|
return $filtros->aplicar($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getPaginar(Request $request)
|
public static function getPaginar(Request $request): int
|
||||||
{
|
{
|
||||||
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()
|
static public function cantidadesPorBarrio(): Collection
|
||||||
{
|
{
|
||||||
$barrios = GrupoDeCompra::barriosMenosPrueba()
|
$barrios = GrupoDeCompra::barriosMenosPrueba()
|
||||||
->pluck('id', 'nombre');
|
->pluck('id', 'nombre');
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
|
|
||||||
class Proveedor extends Model
|
class Proveedor extends Model
|
||||||
{
|
{
|
||||||
|
@ -10,7 +11,7 @@ class Proveedor extends Model
|
||||||
protected $fillable = [ "nombre","direccion","telefono","correo","comentario" ];
|
protected $fillable = [ "nombre","direccion","telefono","correo","comentario" ];
|
||||||
protected $table = 'proveedores';
|
protected $table = 'proveedores';
|
||||||
|
|
||||||
public function productos()
|
public function productos(): HasMany
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Producto');
|
return $this->hasMany('App\Producto');
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,40 +3,30 @@
|
||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use App\Helpers\TransporteHelper;
|
use App\Helpers\TransporteHelper;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Log;
|
|
||||||
use App\Filtros\FiltroDeSubpedido;
|
use App\Filtros\FiltroDeSubpedido;
|
||||||
|
|
||||||
class Subpedido extends Model
|
class Subpedido extends Model
|
||||||
{
|
{
|
||||||
const COSTO_TRANSPORTE = 15;
|
|
||||||
public $timestamps = false;
|
public $timestamps = false;
|
||||||
protected $fillable = ['grupo_de_compra_id', 'aprobado', 'nombre', 'devoluciones_total', 'devoluciones_notas'];
|
protected $fillable = ['grupo_de_compra_id', 'aprobado', 'nombre', 'devoluciones_total', 'devoluciones_notas'];
|
||||||
|
|
||||||
public function productos()
|
public function productos(): BelongsToMany
|
||||||
{
|
{
|
||||||
return $this->belongsToMany('App\Producto')->withPivot(["cantidad", "total", "notas"]);
|
return $this->belongsToMany('App\Producto')->withPivot(["cantidad", "total", "notas"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Bonos del MPS, Sororo, etc. NO devuelve bonos de transporte
|
public function grupoDeCompra(): BelongsTo
|
||||||
private function bonos()
|
|
||||||
{
|
|
||||||
return $this->productos()->where('bono', 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function productosSinBonos()
|
|
||||||
{
|
|
||||||
return $this->productos()->where('bono', false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function grupoDeCompra()
|
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\GrupoDeCompra');
|
return $this->belongsTo('App\GrupoDeCompra');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Permite que se apliquen los filtros al hacer una request (por ejemplo, de búsqueda)
|
// Permite que se apliquen los filtros al hacer una request (por ejemplo, de búsqueda)
|
||||||
public function scopeFiltrar($query, FiltroDeSubpedido $filtros)
|
public function scopeFiltrar($query, FiltroDeSubpedido $filtros): Builder
|
||||||
{
|
{
|
||||||
return $filtros->aplicar($query);
|
return $filtros->aplicar($query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||||
use Illuminate\Notifications\Notifiable;
|
use Illuminate\Notifications\Notifiable;
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ class User extends Authenticatable
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
public function grupoDeCompra()
|
public function grupoDeCompra(): BelongsTo
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\GrupoDeCompra');
|
return $this->belongsTo('App\GrupoDeCompra');
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/** @var \Illuminate\Database\Eloquent\Factory $factory */
|
/** @var Factory $factory */
|
||||||
|
|
||||||
use App\User;
|
use App\User;
|
||||||
use Faker\Generator as Faker;
|
use Faker\Generator as Faker;
|
||||||
|
use Illuminate\Database\Eloquent\Factory;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Filtros\FiltroDeProducto;
|
|
||||||
use App\Filtros\FiltroDeSubpedido;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use App\GrupoDeCompra;
|
use App\GrupoDeCompra;
|
||||||
use App\Producto;
|
use App\Producto;
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\App;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
use Illuminate\Support\Facades\URL;
|
||||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
@ -26,10 +29,9 @@ Route::get('/productos', 'ProductoController@index')->name('productos.index');
|
||||||
Route::get('/admin', 'AdminController@show')->name('admin_login.show');
|
Route::get('/admin', 'AdminController@show')->name('admin_login.show');
|
||||||
|
|
||||||
Route::get('/admin/obtener_sesion', function() {
|
Route::get('/admin/obtener_sesion', function() {
|
||||||
$sesion = [
|
return [
|
||||||
'gdc' => session("admin_gdc")
|
'gdc' => session("admin_gdc")
|
||||||
];
|
];
|
||||||
return $sesion;
|
|
||||||
})->name('admin_obtener_sesion');
|
})->name('admin_obtener_sesion');
|
||||||
|
|
||||||
Route::middleware(['auth', 'admin'])->group( function () {
|
Route::middleware(['auth', 'admin'])->group( function () {
|
||||||
|
@ -64,14 +66,13 @@ Route::middleware('auth')->group( function() {
|
||||||
})->name('guardarSesion');
|
})->name('guardarSesion');
|
||||||
|
|
||||||
Route::get('obtener_sesion', function() {
|
Route::get('obtener_sesion', function() {
|
||||||
$sesion = [
|
return [
|
||||||
'subpedido' => [
|
'subpedido' => [
|
||||||
'nombre' => session("subpedido_nombre"),
|
'nombre' => session("subpedido_nombre"),
|
||||||
'id' => session("subpedido_id")
|
'id' => session("subpedido_id")
|
||||||
],
|
],
|
||||||
'gdc' => session("gdc")
|
'gdc' => session("gdc")
|
||||||
];
|
];
|
||||||
return $sesion;
|
|
||||||
})->name('obtenerSesion');
|
})->name('obtenerSesion');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue