forked from nathalie/pedi2
la pantalla de admin se comunica correctamente con la bd
This commit is contained in:
parent
b0f25de000
commit
5b18461bd9
|
@ -88,4 +88,12 @@ class SubpedidoController extends Controller
|
||||||
return new SubpedidoResource($subpedido);
|
return new SubpedidoResource($subpedido);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function toggleAprobacion(Subpedido $subpedido) {
|
||||||
|
$valid = request()->validate([
|
||||||
|
'aprobacion' => 'required | boolean'
|
||||||
|
]);
|
||||||
|
$subpedido->toggleAprobacion($valid['aprobacion']);
|
||||||
|
return new SubpedidoResource($subpedido);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,4 +85,9 @@ class Subpedido extends Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function toggleAprobacion(bool $aprobacion) {
|
||||||
|
$this->aprobado = $aprobacion;
|
||||||
|
$this->save();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2051,13 +2051,28 @@ __webpack_require__.r(__webpack_exports__);
|
||||||
},
|
},
|
||||||
data: function data() {
|
data: function data() {
|
||||||
return {
|
return {
|
||||||
mensaje: this.aprobado ? "Desaprobar pedido" : "Aprobar pedido"
|
pedido: this.subpedido
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
mensaje: function mensaje() {
|
||||||
|
return this.pedido.aprobado ? "Desaprobar" : "Aprobar";
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
toggleAprobacion: function toggleAprobacion() {
|
toggleAprobacion: function toggleAprobacion() {
|
||||||
alert("Hay que implementarlo con axios o algo de eso");
|
this.aprobado = !this.aprobado;
|
||||||
|
Event.$emit('aprobacion-subpedido', this.pedido.id, this.aprobado);
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
mounted: function mounted() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
Event.$on('sync-aprobacion', function (unSubpedido) {
|
||||||
|
if (_this.pedido.id === unSubpedido.id) {
|
||||||
|
_this.pedido = unSubpedido;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2397,6 +2412,23 @@ __webpack_require__.r(__webpack_exports__);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Event.$on('aprobacion-subpedido', function (subpedidoId, aprb) {
|
||||||
|
axios.post("/api/admin/subpedidos/" + subpedidoId + "/aprobacion", {
|
||||||
|
aprobacion: aprb
|
||||||
|
}).then(function (response) {
|
||||||
|
Event.$emit('sync-aprobacion', response.data.data);
|
||||||
|
window.bulmaToast.toast({
|
||||||
|
message: 'Pedido ' + (aprb ? 'aprobado' : 'desaprobado') + ' exitosamente',
|
||||||
|
duration: 1000,
|
||||||
|
type: 'is-danger',
|
||||||
|
position: 'bottom-center',
|
||||||
|
animate: {
|
||||||
|
"in": 'fadeIn',
|
||||||
|
out: 'fadeOut'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2766,6 +2798,22 @@ __webpack_require__.r(__webpack_exports__);
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
subpedido: Object
|
subpedido: Object
|
||||||
|
},
|
||||||
|
data: function data() {
|
||||||
|
return {
|
||||||
|
pedido: this.subpedido
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted: function mounted() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
Event.$on('sync-aprobacion', function (unSubpedido) {
|
||||||
|
console.log(unSubpedido);
|
||||||
|
|
||||||
|
if (_this.pedido.id === unSubpedido.id) {
|
||||||
|
_this.pedido = unSubpedido;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2938,6 +2986,13 @@ __webpack_require__.r(__webpack_exports__);
|
||||||
_this2.subpedidos = response.data.data;
|
_this2.subpedidos = response.data.data;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
mounted: function mounted() {
|
||||||
|
var _this3 = this;
|
||||||
|
|
||||||
|
Event.$on('sync-aprobacion', function (_) {
|
||||||
|
_this3.fetchSubpedidos();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -4509,14 +4564,14 @@ var render = function () {
|
||||||
"button",
|
"button",
|
||||||
{
|
{
|
||||||
staticClass: "button",
|
staticClass: "button",
|
||||||
class: _vm.subpedido.aprobado ? "is-danger" : "is-success",
|
class: _vm.pedido.aprobado ? "is-danger" : "is-success",
|
||||||
on: { click: _vm.toggleAprobacion },
|
on: { click: _vm.toggleAprobacion },
|
||||||
},
|
},
|
||||||
[
|
[
|
||||||
_c("span", { staticClass: "icon is-small" }, [
|
_c("span", { staticClass: "icon is-small" }, [
|
||||||
_c("i", {
|
_c("i", {
|
||||||
staticClass: "fas",
|
staticClass: "fas",
|
||||||
class: _vm.subpedido.aprobado ? "fa-times" : "fa-check",
|
class: _vm.pedido.aprobado ? "fa-times" : "fa-check",
|
||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
_vm._v(" "),
|
_vm._v(" "),
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
/*!
|
||||||
|
* Vue.js v2.6.14
|
||||||
|
* (c) 2014-2021 Evan You
|
||||||
|
* Released under the MIT License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* bulma-toast 2.4.1
|
||||||
|
* (c) 2018-present @rfoel <rafaelfr@outlook.com>
|
||||||
|
* Released under the MIT License.
|
||||||
|
*/
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<button class="button" :class="subpedido.aprobado ? 'is-danger' : 'is-success'" @click="toggleAprobacion">
|
<button class="button" :class="pedido.aprobado ? 'is-danger' : 'is-success'" @click="toggleAprobacion">
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<i class="fas" :class="subpedido.aprobado ? 'fa-times' : 'fa-check'"></i>
|
<i class="fas" :class="pedido.aprobado ? 'fa-times' : 'fa-check'"></i>
|
||||||
</span>
|
</span>
|
||||||
<span>{{ mensaje }}</span>
|
<span>{{ mensaje }}</span>
|
||||||
</button>
|
</button>
|
||||||
|
@ -13,13 +13,26 @@ export default {
|
||||||
props: {'subpedido': Object},
|
props: {'subpedido': Object},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
mensaje: this.aprobado ? "Desaprobar pedido" : "Aprobar pedido"
|
pedido: this.subpedido
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
mensaje: function () {
|
||||||
|
return this.pedido.aprobado ? "Desaprobar" : "Aprobar"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
toggleAprobacion() {
|
toggleAprobacion() {
|
||||||
alert("Hay que implementarlo con axios o algo de eso")
|
this.aprobado = !this.aprobado;
|
||||||
|
Event.$emit('aprobacion-subpedido', this.pedido.id, this.aprobado);
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
Event.$on('sync-aprobacion', (unSubpedido) => {
|
||||||
|
if (this.pedido.id === unSubpedido.id) {
|
||||||
|
this.pedido = unSubpedido
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -74,6 +74,20 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Event.$on('aprobacion-subpedido', (subpedidoId, aprb) => {
|
||||||
|
axios.post("/api/admin/subpedidos/" + subpedidoId + "/aprobacion", {
|
||||||
|
aprobacion: aprb
|
||||||
|
}).then((response) => {
|
||||||
|
Event.$emit('sync-aprobacion', response.data.data);
|
||||||
|
window.bulmaToast.toast({
|
||||||
|
message: 'Pedido ' + (aprb ? 'aprobado' : 'desaprobado') + ' exitosamente',
|
||||||
|
duration: 1000,
|
||||||
|
type: 'is-danger',
|
||||||
|
position: 'bottom-center',
|
||||||
|
animate: { in: 'fadeIn', out: 'fadeOut' }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -13,6 +13,19 @@ export default {
|
||||||
components: {BotonAdminSubpedidoRow},
|
components: {BotonAdminSubpedidoRow},
|
||||||
props: {
|
props: {
|
||||||
subpedido: Object
|
subpedido: Object
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pedido: this.subpedido
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
Event.$on('sync-aprobacion', (unSubpedido) => {
|
||||||
|
console.log(unSubpedido);
|
||||||
|
if (this.pedido.id === unSubpedido.id) {
|
||||||
|
this.pedido = unSubpedido
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -43,6 +43,11 @@ export default {
|
||||||
this.subpedidos = response.data.data
|
this.subpedidos = response.data.data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
Event.$on('sync-aprobacion', (_) => {
|
||||||
|
this.fetchSubpedidos();
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -40,6 +40,12 @@ Route::middleware('api')->group(function () {
|
||||||
Route::post('/{subpedido}/sync', 'Api\SubpedidoController@syncProductos');
|
Route::post('/{subpedido}/sync', 'Api\SubpedidoController@syncProductos');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::prefix('admin')->group(function () {
|
||||||
|
Route::prefix('subpedidos')->group(function() {
|
||||||
|
Route::post('/{subpedido}/aprobacion', 'Api\SubpedidoController@toggleAprobacion');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
//@TO DO -> esta ruta debe estar en middleware de auth y/o subpedido
|
//@TO DO -> esta ruta debe estar en middleware de auth y/o subpedido
|
||||||
Route::get('/categorias', function() {
|
Route::get('/categorias', function() {
|
||||||
return Producto::all()->pluck('categoria')->unique()->flatten();
|
return Producto::all()->pluck('categoria')->unique()->flatten();
|
||||||
|
|
Loading…
Reference in New Issue