<template>
    <div class="container is-max-widescreen is-max-desktop">
        <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 pb-6" id="pedidos-tabla-y-dropdown" v-show="hayPedidos">
                <pedidos-admin-dropdown-descargar
                    :gdc="gdc">
                </pedidos-admin-dropdown-descargar>
                <pedidos-admin-tabla-pedidos
                    :pedidos="pedidos" :bonosDeTransporte="bonosDeTransporte" :totalBonosBarriales="totalBonosBarriales">
                </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 pb-6" 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 class="block pb-6" id="caracteristicas-seccion"
             :class="seccionActiva === 'caracteristicas-seccion' ? 'is-active' : 'is-hidden'">
            <pedidos-admin-caracteristicas-opcionales>
            </pedidos-admin-caracteristicas-opcionales>
        </div>
    </div>
</template>

<script>
import PedidosAdminTabsSecciones from './PedidosAdminTabsSecciones.vue';
import PedidosAdminDropdownDescargar from "./PedidosAdminDropdownDescargar.vue";
import PedidosAdminTablaBonos from './PedidosAdminTablaBonos.vue';
import PedidosAdminTablaPedidos from "./PedidosAdminTablaPedidos.vue";
import PedidosAdminCaracteristicasOpcionales from "./PedidosAdminCaracteristicasOpcionales.vue";
export default {
    name: "PedidosAdminBody",
    components: {
        PedidosAdminCaracteristicasOpcionales,
        PedidosAdminTabsSecciones,
        PedidosAdminDropdownDescargar,
        PedidosAdminTablaPedidos,
        PedidosAdminTablaBonos,
    },
    data() {
        return {
            gdc: 0,
            pedidos: [],
            bonosDeTransporte: 0,
            totalBonosBarriales: 0,
            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/grupos-de-compra/"+this.gdc+"/bonos-de-transporte", {})
                 .then(response => this.bonosDeTransporte = response.data.bdt);
            axios.get("/api/subpedidos/resources", {
                    params: {
                        grupo_de_compra: this.gdc
                    }})
                 .then(response => {
                    this.pedidos = response.data.data
                }).get;
            axios.get("/api/grupos-de-compra/"+this.gdc+"/bonos-barriales", {})
                .then(response => this.totalBonosBarriales = response.data.bonos_barriales)
        },
        setSeccionActiva(tabId) {
            this.tabActiva = tabId;
            this.seccionActiva = tabId + "-seccion";
        },
        getBonosBarriales() {
            axios.get("/api/grupos-de-compra/"+this.gdc+"/bonos-barriales", {})
                 .then(response => this.totalBonosBarriales = response.data.bonos_barriales)
        }
    },
    mounted() {
        Event.$on('sync-aprobacion', (_) => {
            this.fetchPedidos();
        });

        axios.get("/admin/obtener_sesion").then(response => {
            this.gdc = response.data.gdc;
            this.fetchPedidos();
            this.bonosBarriales = this.getBonosBarriales()
        });
    }
}
</script>

<style>

</style>
