forked from nathalie/pedi2
Crear nuevo subpedido
This commit is contained in:
parent
7343c5fd0d
commit
7e85a0e2ff
|
@ -15,7 +15,7 @@ class Subpedido
|
|||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
if (!session('subpedido')) {
|
||||
if (!session('subpedido_nombre') || !session('subpedido_id')) {
|
||||
return redirect()->route('subpedidos.create');
|
||||
}
|
||||
return $next($request);
|
||||
|
|
|
@ -36,4 +36,10 @@ class User extends Authenticatable
|
|||
protected $casts = [
|
||||
'email_verified_at' => 'datetime',
|
||||
];
|
||||
|
||||
|
||||
public function grupoDeCompra()
|
||||
{
|
||||
return $this->belongsTo('App\GrupoDeCompra');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ class CreateUsersTable extends Migration
|
|||
$table->string('name')->unique();
|
||||
$table->string('email')->unique()->nullable();
|
||||
$table->timestamp('email_verified_at')->nullable();
|
||||
$table->foreignId('grupo_de_compra_id')->nullable();
|
||||
$table->string('password');
|
||||
$table->rememberToken();
|
||||
$table->timestamps();
|
||||
|
|
|
@ -20,7 +20,7 @@ class GrupoDeCompraSeeder extends Seeder
|
|||
$gdcToInsert = [];
|
||||
$usersToInsert = [];
|
||||
|
||||
foreach($registros as $registro){
|
||||
foreach($registros as $key => $registro){
|
||||
$gdcToInsert[] = [
|
||||
'nombre' => $registro['barrio'],
|
||||
'region' => $registro['region'],
|
||||
|
@ -31,7 +31,8 @@ class GrupoDeCompraSeeder extends Seeder
|
|||
|
||||
$usersToInsert[] = [
|
||||
'name' => $registro['barrio'],
|
||||
'password' => Hash::make($registro['barrio'])
|
||||
'password' => Hash::make($registro['barrio']),
|
||||
'grupo_de_compra_id' => $key
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ Vue.component('nav-bar', {
|
|||
<a class="navbar-item" href="https://bulma.io">
|
||||
<img src="/assets/logoMPS.png" height="28">
|
||||
</a>
|
||||
|
||||
<p style="margin:0 auto" class="navbar-item">Pedido de <slot name="subpedido"></slot></p>
|
||||
<a role="button" class="navbar-burger" :class="{'is-active':isActive}" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample" @click="toggleState">
|
||||
<span aria-hidden="true"></span>
|
||||
<span aria-hidden="true"></span>
|
||||
|
|
|
@ -5,16 +5,31 @@ Vue.component('subpedido-select', {
|
|||
subpedidosExistentes: []
|
||||
}
|
||||
},
|
||||
props: ["gdcid"],
|
||||
mounted() {
|
||||
console.log("ready");
|
||||
},
|
||||
methods: {
|
||||
onType() {
|
||||
axios.get("/api/subpedidos?nombre=" + this.subpedido).then(response => {
|
||||
console.log(this.subpedido);
|
||||
this.subpedidosExistentes = response.data
|
||||
console.log(this.subpedidosExistentes);
|
||||
});
|
||||
},
|
||||
submit() {
|
||||
axios.post("/api/subpedidos", {
|
||||
nombre: this.subpedido,
|
||||
grupo_de_compra_id: this.gdcid
|
||||
}).then(response => {
|
||||
axios.post("/subpedidos/guardar_sesion", {
|
||||
subpedido: response.data
|
||||
}).then(response => {
|
||||
if (response.status == 200) {
|
||||
window.location.href = 'productos';
|
||||
} else {
|
||||
console.log(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
|
@ -20,6 +20,7 @@
|
|||
<body>
|
||||
<div id="app">
|
||||
<nav-bar>
|
||||
<template slot="subpedido">{{ session('subpedido_nombre',"") }}</template>
|
||||
<template slot="gdc">{{ Auth::user()->name }}</template>
|
||||
<template slot="logout-form">
|
||||
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<p class="subtitle">
|
||||
Bienvenidx a la aplicación de compras del <strong>Mercado Popular de Subsistencia</strong>
|
||||
</p>
|
||||
<subpedido-select inline-template>
|
||||
<subpedido-select inline-template gdcid="{{Auth::user()->grupoDeCompra->id}}">
|
||||
<div class="block">
|
||||
<div class="field">
|
||||
<label class="label">Escribí el nombre de tu familia o grupo de convivencia</label>
|
||||
|
@ -17,13 +17,15 @@
|
|||
<input class="input" @input="onType" v-model="subpedido"></input>
|
||||
</div>
|
||||
<p class="help">Intentá que sea claro como para que tus compas del barrio te identifiquen.</p>
|
||||
<p class="help">Si ya empezaste a hacer tu pedido, empezá a tipear y luego seleccioná tu nombre en la lista una vez que aparezca:</p>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<button class="button is-primary" @click="submit">Crear nuevo pedido</button>
|
||||
</div>
|
||||
<div class="table-container">
|
||||
<table class="table is-hoverable">
|
||||
<tbody>
|
||||
<tr v-for="subpedidosExistente in subpedidosExistentes" >
|
||||
<td><a v-text="subpedidosExistente" :href="subpedidosExistente"></a></td>
|
||||
<tr v-for="subpedidoExistente in subpedidosExistentes" >
|
||||
<td><a v-text="subpedidoExistente.nombre" :href="subpedidoExistente.nombre"></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -28,17 +28,16 @@ Route::middleware('api')->group(function () {
|
|||
});
|
||||
});
|
||||
|
||||
//@TO DO -> esta ruta debe estar en middleware de autenticacion
|
||||
//@TO DO -> esta ruta debe estar en middleware de subpedido
|
||||
Route::get('/categorias', function() {
|
||||
return Producto::all()->pluck('categoria')->unique()->flatten();
|
||||
});
|
||||
|
||||
//@TO DO -> esta ruta debe estar en middleware de autenticacion
|
||||
//@TO DO -> esta ruta debe estar en middleware de subpedido
|
||||
Route::prefix('productos')->group(function () {
|
||||
Route::get('/','Api\ProductoController@index');
|
||||
});
|
||||
|
||||
//@TO DO -> esta ruta debe estar en middleware de autenticacion
|
||||
Route::prefix('subpedidos')->group(function () {
|
||||
Route::get('/','Api\SubpedidoController@index');
|
||||
Route::post('/','Api\SubpedidoController@store');
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Web Routes
|
||||
|
@ -19,6 +19,21 @@ Auth::routes(['register' => false]);
|
|||
|
||||
Route::get('/productos', 'ProductoController@index')->name('productos.index');
|
||||
|
||||
Route::get('/subpedidos', function() {
|
||||
return view('subpedidos_create');
|
||||
})->name('subpedidos.create')->middleware('auth');
|
||||
Route::middleware('auth')->group( function() {
|
||||
|
||||
Route::name('subpedidos.')->prefix("subpedidos")->group( function() {
|
||||
Route::get('/', function() {
|
||||
return view('subpedidos_create');
|
||||
})->name('create');
|
||||
|
||||
Route::post('guardar_sesion', function() {
|
||||
$r = request();
|
||||
if (!isset($r["subpedido"])) {
|
||||
throw new HttpException(400, "La request necesita un subpedido para guardar en sesión");
|
||||
}
|
||||
session(["subpedido_nombre" => $r["subpedido"]["nombre"]]);
|
||||
session(["subpedido_id" => $r["subpedido"]["id"]]);
|
||||
return "Subpedido guardado en sesión";
|
||||
})->name('guardarSesion');
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue