Mostrar devoluciones en admin

This commit is contained in:
Rodrigo 2023-10-05 12:58:03 -03:00
parent 1a8448ca45
commit 3941dc0fd2
5 changed files with 66 additions and 31 deletions

View File

@ -22,6 +22,7 @@ class SubpedidoResource extends JsonResource
'bonos_de_transporte' => $this->cantidadBDT(),
'subtotal_bonos_de_transporte' => number_format($this->getSubtotalBDT(),0),
'total' => number_format($this->getTotal(),0),
'total_menos_devoluciones' => number_format($this->getTotalMenosDevoluciones(),0),
'grupo_de_compra' => $this->grupoDeCompra,
'productos' => $this->productos,
'aprobado' => (bool) $this->aprobado,

View File

@ -66,7 +66,11 @@ class Subpedido extends Model
public function getTotal()
{
return $this->totalSinBonos() + $this->getSubtotalBDT() + $this->getSubtotalBonos() - $this->getDevoluciones();
return $this->totalSinBonos() + $this->getSubtotalBDT() + $this->getSubtotalBonos();
}
public function getTotalMenosDevoluciones() {
return $this->getTotal() - $this->getDevoluciones();
}
//Actualiza el pedido, agregando o quitando del subpedido según sea necesario. Debe ser llamado desde el controlador de subpedidos, luego de validar que los parámetros $producto y $cantidad son correctos. También calcula el subtotal por producto.

View File

@ -75,7 +75,7 @@
return this.$limpiarInt(this.$root.pedido.subtotal_bonos)
},
total: function() {
return this.$limpiarInt(this.$root.pedido.total)
return this.$limpiarInt(this.$root.pedido.total_menos_devoluciones)
}
},
methods: {

View File

@ -2,6 +2,8 @@
<tr>
<td>{{ pedido.nombre }}</td>
<td class="has-text-right" >{{ this.$limpiarInt(pedido.total) }}</td>
<td class="has-text-right" >-{{ pedido.devoluciones_total }}</td>
<td class="has-text-right" >{{ pedido.total_menos_devoluciones }}</td>
<td>
<pedidos-admin-switch-aprobacion
:pedido="pedido">

View File

@ -1,35 +1,43 @@
<template>
<table class="table is-fullwidth is-striped is-bordered">
<div>
<table class="table is-fullwidth is-striped is-bordered">
<thead>
<tr>
<th>Núcleo</th>
<th><abbr title="Total a Pagar">Total $</abbr></th>
<th class="is-1"><abbr title="Aprobacion">Aprobación</abbr></th>
</tr>
</thead>
<tfoot>
<tr>
<th></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>
<pedidos-admin-fila-pedido v-for="pedido in this.pedidos"
:pedido="pedido" :key="pedido.id">
</pedidos-admin-fila-pedido>
</tbody>
<tr>
<th>Núcleo</th>
<th><abbr title="Total sin tomar en cuenta las devoluciones">Total parcial $</abbr></th>
<th><abbr title="Devoluciones correspondientes al núcleo">Devoluciones $</abbr></th>
<th><abbr title="Total a Pagar por el núleo">Total real $</abbr></th>
<th class="is-1"><abbr title="Aprobacion">Aprobación</abbr></th>
</tr>
</thead>
<tbody>
<pedidos-admin-fila-pedido v-for="pedido in this.pedidos"
:pedido="pedido" :key="pedido.id">
</pedidos-admin-fila-pedido>
</tbody>
</table>
<table class="table is-striped is-bordered">
<tr>
<th colspan="2" class="has-background-black has-text-white has-text-centered">TOTALES</th>
</tr>
<tr>
<th>Total a recaudar:</th>
<td class="has-text-right">$ {{ totalAprobadosMenosDevoluciones() }}</td>
</tr>
<tr v-if="totalBonosBarriales > 0">
<th>Total bonos barriales:</th>
<td class="has-text-right">$ {{ totalBonosBarriales }}</td>
</tr>
<tr v-if="totalDevoluciones() > 0">
<th>Total devoluciones:</th>
<td class="has-text-right">- $ {{ totalDevoluciones() }}</td>
</tr>
<tr>
<th>Total a depositar:</th>
<td class="has-text-right">$ {{ totalAprobados() - totalBonosBarriales }}</td>
</tr>
</table>
</div>
</template>
<script>
@ -65,6 +73,26 @@ export default {
}
return suma;
},
totalDevoluciones() {
let suma = 0
let aprobados = this.pedidos.filter(p => p.aprobado);
for (let i = 0; i < aprobados.length; i++) {
suma = aprobados[i].devoluciones_total
}
suma += parseInt(this.bonosDeTransporte)*15
return suma;
},
totalAprobadosMenosDevoluciones() {
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)
suma -= aprobados[i].devoluciones_total
}
suma += parseInt(this.bonosDeTransporte)*15
return suma;
},
totalAprobados() {
let suma = 0
let aprobados = this.pedidos.filter(p => p.aprobado);