Merge pull request 'Mejoras varias a la pantalla de admini' (#24) from funcion/mejoras-admin into master
Reviewed-on: #24
This commit is contained in:
commit
9954dbd66a
|
@ -89,6 +89,21 @@ class GrupoDeCompra extends Model
|
|||
return ceil($this->totalPedidosSinBonos() / 500);
|
||||
}
|
||||
|
||||
public function totalBonosBarriales() {
|
||||
$total = 0;
|
||||
$bonoBarrial = Producto::where('nombre','LIKE','%barrial%')->first();
|
||||
if ($bonoBarrial) {
|
||||
$pedidos = $this->pedidosAprobados();
|
||||
foreach ($pedidos as $pedido) {
|
||||
$bonoPedido = $pedido->productos()->find($bonoBarrial["id"]);
|
||||
if ($bonoPedido) {
|
||||
$total += $bonoPedido["pivot"]["total"];
|
||||
}
|
||||
}
|
||||
}
|
||||
return $total;
|
||||
}
|
||||
|
||||
public function exportarPedidoEnCSV(){
|
||||
$productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id',$this->id)->get()->keyBy('producto_id');
|
||||
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
<template>
|
||||
<div class="container is-max-widescreen is-max-desktop animate__animated" :class="animation">
|
||||
<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" id="pedidos-tabla-y-dropdown" v-show="hayPedidos">
|
||||
<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">
|
||||
: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" id="bonos-seccion"
|
||||
<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">
|
||||
|
@ -45,6 +45,7 @@ export default {
|
|||
gdc: 0,
|
||||
pedidos: [],
|
||||
bonosDeTransporte: 0,
|
||||
totalBonosBarriales: 0,
|
||||
tabActiva: "pedidos",
|
||||
seccionActiva: "pedidos-seccion"
|
||||
}
|
||||
|
@ -72,6 +73,10 @@ export default {
|
|||
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() {
|
||||
|
@ -82,6 +87,7 @@ export default {
|
|||
axios.get("/admin/obtener_sesion").then(response => {
|
||||
this.gdc = response.data.gdc;
|
||||
this.fetchPedidos();
|
||||
this.bonosBarriales = this.getBonosBarriales()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<tbody>
|
||||
<tr v-for="(bp, i) in bonosPorPedido" :key="i">
|
||||
<td> {{ bp.nucleo }} </td>
|
||||
<td v-for="(bono,j) in bp.bonos" :key="j">
|
||||
<td v-for="(bono,j) in bp.bonos" :key="j" class="has-text-right">
|
||||
{{ bono.cantidad }}
|
||||
</td>
|
||||
<td class="has-text-right"> {{ bp.total }} </td>
|
||||
|
|
|
@ -10,8 +10,18 @@
|
|||
<tfoot>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Total de los aprobados</th>
|
||||
<th>$ {{ totalAprobados() }}</th>
|
||||
<th>Total a recaudar:</th>
|
||||
<th class="has-text-right">$ {{ totalAprobados() }}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Total bonos barriales:</th>
|
||||
<th class="has-text-right">$ {{ totalBonosBarriales }}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Total a transferir:</th>
|
||||
<th class="has-text-right">$ {{ totalAprobados() - totalBonosBarriales }}</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
|
@ -38,11 +48,26 @@ export default {
|
|||
type: Number,
|
||||
required: true
|
||||
},
|
||||
totalBonosBarriales: {
|
||||
type: Number,
|
||||
required: true
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
totalAprobados() {
|
||||
totalBonosBarriales() {
|
||||
let suma = 0;
|
||||
let aprobados = this.pedidos.filter(p => p.aprobado);
|
||||
for (let i = 0; i < aprobados.length; i++) {
|
||||
let bonoBarrial = aprobados[i].productos.find(p => p.nombre.includes("barrial"))
|
||||
if (bonoBarrial) {
|
||||
suma += this.$limpiarInt(bonoBarrial.pivot.total)
|
||||
}
|
||||
}
|
||||
return suma;
|
||||
},
|
||||
totalAprobados() {
|
||||
let suma = 0
|
||||
let aprobados = this.pedidos.filter(p => p.aprobado);
|
||||
for (let i = 0; i < aprobados.length; i++) {
|
||||
suma += this.$limpiarFloat(aprobados[i].subtotal_bonos)
|
||||
suma += this.$limpiarFloat(aprobados[i].subtotal_productos)
|
||||
|
|
|
@ -32,6 +32,10 @@ Route::middleware('api')->group(function () {
|
|||
$grupo = GrupoDeCompra::where('id',$gdc)->first();
|
||||
return ['bdt' => $grupo->calcularCantidadBDT()];
|
||||
});
|
||||
Route::get('/{gdc}/bonos-barriales', function($gdc) {
|
||||
$grupo = GrupoDeCompra::where('id',$gdc)->first();
|
||||
return ['bonos_barriales' => $grupo->totalBonosBarriales()];
|
||||
});
|
||||
});
|
||||
|
||||
Route::prefix('subpedidos')->group(function () {
|
||||
|
|
Loading…
Reference in New Issue