Desde la ruta resultado usort putea por la clase Evento
This commit is contained in:
parent
8f16b70b17
commit
f2a4dfc2f9
|
@ -57,7 +57,12 @@ class EventoController extends Controller
|
|||
*/
|
||||
public function show(Evento $evento)
|
||||
{
|
||||
//
|
||||
// evento->coordinar devuelve los tres mejores marzullos de los días que tiene asociados
|
||||
// dia->marzullo devuelve array de
|
||||
// [dia::string, cantidad::integer, inicio::integer, fin::integer, duracion::integer
|
||||
// inicioLindo::string, finLindo::string, duracionLinda::string]
|
||||
$marzullos = $evento->coordinar();
|
||||
return view("resultado", ['marzullos' => $marzullos, 'evento' => $evento]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -76,7 +81,7 @@ class EventoController extends Controller
|
|||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\Evento $evento
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(Request $request, Evento $evento) {
|
||||
|
||||
|
@ -125,7 +130,7 @@ class EventoController extends Controller
|
|||
$salidaDia->save();
|
||||
}
|
||||
|
||||
return view("resultado");
|
||||
return redirect()->route("show", ['evento' => $evento]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -17,10 +17,14 @@ class Evento extends Model
|
|||
public function coordinar(): array {
|
||||
$marzullos = [];
|
||||
//devuelve array de
|
||||
// [nombre::string, cantidad::integer, inicio::integer, fin::integer, duracion::integer]
|
||||
// [dia::string, cantidad::integer, inicio::integer, fin::integer, duracion::integer
|
||||
// inicioLindo::string, finLindo::string, duracionLinda::string]
|
||||
foreach ($this->dias as $dia) {
|
||||
[$a, $b, $c, $d] = $dia->marzullo();
|
||||
$marzullos[] = ["dia" => $dia->nombre, "cantidad" => $a, "inicio" => $b, "fin" => $c, "duracion" => $d];
|
||||
$marzullos[] = ["dia" => $dia->nombre, "cantidad" => $a,
|
||||
"inicio" => $b, "fin" => $c, "duracion" => $d,
|
||||
"inicioLindo" => Utils::parseHora($b), "finLindo" => Utils::parseHora($c),
|
||||
"duracionLinda" => Utils::parseHora($d)];
|
||||
}
|
||||
usort($marzullos, array("Evento", "cmp_cant_marzullo"));
|
||||
return array_slice($marzullos, 0, 3);
|
||||
|
@ -32,7 +36,7 @@ class Evento extends Model
|
|||
// $a,$b::[nombre::string, cantidad::integer, horario::string, duracion::integer]
|
||||
|
||||
// por cantidad
|
||||
function cmp_cant_marzullo($a, $b) {
|
||||
function cmp_cant_marzullo($a, $b): int {
|
||||
$cant_a = $a["cantidad"];
|
||||
$cant_b = $b["cantidad"];
|
||||
if ($cant_a == $cant_b) {
|
||||
|
|
|
@ -4,7 +4,8 @@ namespace App\Models;
|
|||
|
||||
class Utils {
|
||||
|
||||
// El input es un string de forma 'hh:mm' con hh entre 00 y 23 y mm entre 00 y 59
|
||||
// El INPUT es un string de forma 'hh:mm' con hh entre 00 y 23 y mm entre 00 y 59
|
||||
// El OUTPUT es un int
|
||||
public static function formatMinutos($horaMinuto) {
|
||||
$hora_minuto_array = explode(':', $horaMinuto);
|
||||
$horas = (int) $hora_minuto_array[0];
|
||||
|
@ -13,8 +14,14 @@ class Utils {
|
|||
return $cantMinutos;
|
||||
}
|
||||
|
||||
public static function parseHora() {
|
||||
|
||||
// El INPUT es un int > 0.
|
||||
// El OUTPUT es un string de forma 'hh:mm' con hh entre 00 y 23 y mm entre 00 y 59
|
||||
public static function parseHora($cantMinutos) {
|
||||
$horas = floor($cantMinutos / 60);
|
||||
if ($horas < 10) $horas = '0' . $horas;
|
||||
$minutos = $cantMinutos % 60;
|
||||
if ($minutos < 10) $minutos = '0' . $minutos;
|
||||
return $horas . ':' . $minutos;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
#logo {
|
||||
width:80%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
div.p-6 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
button, input[type="submit"] {
|
||||
background: darkred;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
color:white;
|
||||
margin: 15px;
|
||||
}
|
||||
|
||||
input.formulario {
|
||||
background-color: white;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!-- [dia::string, cantidad::integer, inicio::integer, fin::integer, duracion::integer
|
||||
inicioLindo::string, finLindo::string, duracionLinda::string] -->
|
||||
<div class="marzullo">
|
||||
<h3>
|
||||
{{ $marzullo["dia"] }}
|
||||
</h3>
|
||||
<p>
|
||||
Desde {{ $marzullo["inicioLindo"] }} hasta {{ $marzullo["finLindo"] }}
|
||||
pueden {{ $marzullo["cantidad"] }} personas (duración: {{ $marzullo["duracionLinda"] }}).
|
||||
</p>
|
||||
</div>
|
|
@ -4,11 +4,11 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>Planifibot</title>
|
||||
<title>Planifibot - {{ $evento->nombre }}</title>
|
||||
|
||||
<!-- Fonts -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">
|
||||
<link href='css/welcome.css' rel="stylesheet">
|
||||
<link href='/css/resultado.css' rel="stylesheet">
|
||||
|
||||
<!-- Styles -->
|
||||
<style>
|
||||
|
@ -40,13 +40,24 @@
|
|||
|
||||
<div class="max-w-6xl mx-auto sm:px-6 lg:px-8">
|
||||
<div class="flex justify-center pt-8 sm:justify-start sm:pt-0">
|
||||
<img id= "logo" src="assets/logoMPS.png" alt="Mercado Popular de Subsitencia">
|
||||
<img id= "logo" src="/assets/logoMPS.png" alt="Mercado Popular de Subsitencia">
|
||||
</div>
|
||||
|
||||
<div class="flex justify-center pt-8 sm:justify-start sm:pt-0">
|
||||
<h1>
|
||||
{{ $evento->nombre }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="mt-8 bg-white dark:bg-gray-800 overflow-hidden shadow sm:rounded-lg">
|
||||
<div class="grid grid-cols-1 md:grid-cols-2">
|
||||
<div class="p-6">
|
||||
|
||||
<p>
|
||||
Hasta ahora estos son los mejores horarios para "{{ $evento->nombre }}":
|
||||
</p>
|
||||
@each('view.marzullo', $marzullos, 'marzullo')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -18,8 +18,10 @@ Route::get('/', function () {
|
|||
return view('welcome');
|
||||
});
|
||||
|
||||
Route::post('/eventos',[EventoController::class, 'store'])->name('store');
|
||||
|
||||
Route::get('/eventos/{evento}',[EventoController::class, 'edit'])->name('edit');
|
||||
Route::post('/eventos', [EventoController::class, 'store'])->name('store');
|
||||
|
||||
Route::post('/eventos/{evento}', [EventoController::class, 'update'])->name('update');
|
||||
|
||||
Route::get('/eventos/{evento}', [EventoController::class, 'edit'])->name('edit');
|
||||
|
||||
Route::get('/eventos/{evento}/resultado', [EventoController::class, 'show'])->name('show');
|
||||
|
|
Loading…
Reference in New Issue