98 lines
3.2 KiB
Vue
98 lines
3.2 KiB
Vue
<template>
|
|
<div class="container is-max-widescreen is-max-desktop animate__animated" :class="animation">
|
|
<pedidos-admin-tabs-secciones></pedidos-admin-tabs-secciones>
|
|
<div class="block" id="pedidos-seccion"
|
|
:class="seccionActiva === 'pedidos-seccion' ? 'is-active' : 'is-hidden'">
|
|
<div class="block" id="pedidos-tabla-y-dropdown" v-show="hayPedidos">
|
|
<pedidos-admin-dropdown-descargar
|
|
:gdc="gdc">
|
|
</pedidos-admin-dropdown-descargar>
|
|
<pedidos-admin-tabla-pedidos
|
|
:pedidos="pedidos">
|
|
</pedidos-admin-tabla-pedidos>
|
|
</div>
|
|
<p class="has-text-centered" v-show="!hayPedidos">
|
|
Todavía no hay ningún pedido para administrar.
|
|
</p>
|
|
</div>
|
|
<div class="block" id="bonos-seccion"
|
|
:class="seccionActiva === 'bonos-seccion' ? 'is-active' : 'is-hidden'">
|
|
<pedidos-admin-tabla-bonos v-show="hayAprobados"
|
|
:pedidos="pedidos">
|
|
</pedidos-admin-tabla-bonos>
|
|
<p class="has-text-centered" v-show="!hayAprobados">
|
|
Todavía no hay pedidos aprobados.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import PedidosAdminTabsSecciones from './PedidosAdminTabsSecciones.vue';
|
|
import PedidosAdminDropdownDescargar from "./PedidosAdminDropdownDescargar.vue";
|
|
import PedidosAdminTablaBonos from './PedidosAdminTablaBonos.vue';
|
|
import PedidosAdminTablaPedidos from "./PedidosAdminTablaPedidos.vue";
|
|
export default {
|
|
name: "PedidosAdminBody",
|
|
components: {
|
|
PedidosAdminTabsSecciones,
|
|
PedidosAdminDropdownDescargar,
|
|
PedidosAdminTablaPedidos,
|
|
PedidosAdminTablaBonos,
|
|
},
|
|
data() {
|
|
return {
|
|
gdc: 0,
|
|
pedidos: [],
|
|
tabActiva: "pedidos",
|
|
seccionActiva: "pedidos-seccion"
|
|
}
|
|
},
|
|
computed: {
|
|
hayPedidos: function() {
|
|
return this.pedidos.length !== 0
|
|
},
|
|
hayAprobados: function() {
|
|
return this.pedidos.filter(p => p.aprobado).length > 0
|
|
}
|
|
},
|
|
methods: {
|
|
fetchPedidos() {
|
|
axios.get("/api/subpedidos/resources", {
|
|
params: {
|
|
grupo_de_compra: this.gdc
|
|
}})
|
|
.then(response => {
|
|
this.pedidos = response.data.data
|
|
});
|
|
},
|
|
totalAprobados() {
|
|
let suma = 0;
|
|
let aprobados = this.pedidos.filter(p => p.aprobado);
|
|
for (let i = 0; i < aprobados.length; i++) {
|
|
suma += parseFloat(aprobados[i].total.replace(/,/g, ''));
|
|
}
|
|
return suma;
|
|
},
|
|
setSeccionActiva(tabId) {
|
|
this.tabActiva = tabId;
|
|
this.seccionActiva = tabId + "-seccion";
|
|
}
|
|
},
|
|
mounted() {
|
|
Event.$on('sync-aprobacion', (_) => {
|
|
this.fetchPedidos();
|
|
});
|
|
|
|
axios.get("/admin/obtener_sesion").then(response => {
|
|
this.gdc = response.data.gdc;
|
|
this.fetchPedidos();
|
|
});
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
|
|
</style>
|