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)
|
public function handle($request, Closure $next)
|
||||||
{
|
{
|
||||||
if (!session('subpedido')) {
|
if (!session('subpedido_nombre') || !session('subpedido_id')) {
|
||||||
return redirect()->route('subpedidos.create');
|
return redirect()->route('subpedidos.create');
|
||||||
}
|
}
|
||||||
return $next($request);
|
return $next($request);
|
||||||
|
|
|
@ -36,4 +36,10 @@ class User extends Authenticatable
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'email_verified_at' => 'datetime',
|
'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('name')->unique();
|
||||||
$table->string('email')->unique()->nullable();
|
$table->string('email')->unique()->nullable();
|
||||||
$table->timestamp('email_verified_at')->nullable();
|
$table->timestamp('email_verified_at')->nullable();
|
||||||
|
$table->foreignId('grupo_de_compra_id')->nullable();
|
||||||
$table->string('password');
|
$table->string('password');
|
||||||
$table->rememberToken();
|
$table->rememberToken();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
|
@ -20,7 +20,7 @@ class GrupoDeCompraSeeder extends Seeder
|
||||||
$gdcToInsert = [];
|
$gdcToInsert = [];
|
||||||
$usersToInsert = [];
|
$usersToInsert = [];
|
||||||
|
|
||||||
foreach($registros as $registro){
|
foreach($registros as $key => $registro){
|
||||||
$gdcToInsert[] = [
|
$gdcToInsert[] = [
|
||||||
'nombre' => $registro['barrio'],
|
'nombre' => $registro['barrio'],
|
||||||
'region' => $registro['region'],
|
'region' => $registro['region'],
|
||||||
|
@ -31,7 +31,8 @@ class GrupoDeCompraSeeder extends Seeder
|
||||||
|
|
||||||
$usersToInsert[] = [
|
$usersToInsert[] = [
|
||||||
'name' => $registro['barrio'],
|
'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">
|
<a class="navbar-item" href="https://bulma.io">
|
||||||
<img src="/assets/logoMPS.png" height="28">
|
<img src="/assets/logoMPS.png" height="28">
|
||||||
</a>
|
</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">
|
<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>
|
||||||
<span aria-hidden="true"></span>
|
<span aria-hidden="true"></span>
|
||||||
|
|
|
@ -5,16 +5,31 @@ Vue.component('subpedido-select', {
|
||||||
subpedidosExistentes: []
|
subpedidosExistentes: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
props: ["gdcid"],
|
||||||
mounted() {
|
mounted() {
|
||||||
console.log("ready");
|
console.log("ready");
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onType() {
|
onType() {
|
||||||
axios.get("/api/subpedidos?nombre=" + this.subpedido).then(response => {
|
axios.get("/api/subpedidos?nombre=" + this.subpedido).then(response => {
|
||||||
console.log(this.subpedido);
|
|
||||||
this.subpedidosExistentes = response.data
|
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>
|
<body>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<nav-bar>
|
<nav-bar>
|
||||||
|
<template slot="subpedido">{{ session('subpedido_nombre',"") }}</template>
|
||||||
<template slot="gdc">{{ Auth::user()->name }}</template>
|
<template slot="gdc">{{ Auth::user()->name }}</template>
|
||||||
<template slot="logout-form">
|
<template slot="logout-form">
|
||||||
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
|
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<p class="subtitle">
|
<p class="subtitle">
|
||||||
Bienvenidx a la aplicación de compras del <strong>Mercado Popular de Subsistencia</strong>
|
Bienvenidx a la aplicación de compras del <strong>Mercado Popular de Subsistencia</strong>
|
||||||
</p>
|
</p>
|
||||||
<subpedido-select inline-template>
|
<subpedido-select inline-template gdcid="{{Auth::user()->grupoDeCompra->id}}">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label">Escribí el nombre de tu familia o grupo de convivencia</label>
|
<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>
|
<input class="input" @input="onType" v-model="subpedido"></input>
|
||||||
</div>
|
</div>
|
||||||
<p class="help">Intentá que sea claro como para que tus compas del barrio te identifiquen.</p>
|
<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>
|
||||||
<div class="table-container">
|
<div class="table-container">
|
||||||
<table class="table is-hoverable">
|
<table class="table is-hoverable">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr v-for="subpedidosExistente in subpedidosExistentes" >
|
<tr v-for="subpedidoExistente in subpedidosExistentes" >
|
||||||
<td><a v-text="subpedidosExistente" :href="subpedidosExistente"></a></td>
|
<td><a v-text="subpedidoExistente.nombre" :href="subpedidoExistente.nombre"></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</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() {
|
Route::get('/categorias', function() {
|
||||||
return Producto::all()->pluck('categoria')->unique()->flatten();
|
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::prefix('productos')->group(function () {
|
||||||
Route::get('/','Api\ProductoController@index');
|
Route::get('/','Api\ProductoController@index');
|
||||||
});
|
});
|
||||||
|
|
||||||
//@TO DO -> esta ruta debe estar en middleware de autenticacion
|
|
||||||
Route::prefix('subpedidos')->group(function () {
|
Route::prefix('subpedidos')->group(function () {
|
||||||
Route::get('/','Api\SubpedidoController@index');
|
Route::get('/','Api\SubpedidoController@index');
|
||||||
Route::post('/','Api\SubpedidoController@store');
|
Route::post('/','Api\SubpedidoController@store');
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Web Routes
|
| Web Routes
|
||||||
|
@ -19,6 +19,21 @@ Auth::routes(['register' => false]);
|
||||||
|
|
||||||
Route::get('/productos', 'ProductoController@index')->name('productos.index');
|
Route::get('/productos', 'ProductoController@index')->name('productos.index');
|
||||||
|
|
||||||
Route::get('/subpedidos', function() {
|
Route::middleware('auth')->group( function() {
|
||||||
return view('subpedidos_create');
|
|
||||||
})->name('subpedidos.create')->middleware('auth');
|
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