funcion/pedido-ollas #47
4 changed files with 146 additions and 1 deletions
|
@ -18,6 +18,11 @@
|
||||||
:class="seccionActiva === 'saldos-comisiones-seccion' ? 'is-active' : 'is-hidden'">
|
:class="seccionActiva === 'saldos-comisiones-seccion' ? 'is-active' : 'is-hidden'">
|
||||||
<saldos-seccion/>
|
<saldos-seccion/>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="block pb-6"
|
||||||
|
id="parametros-comisiones-seccion"
|
||||||
|
:class="seccionActiva === 'parametros-comisiones-seccion' ? 'is-active' : 'is-hidden'">
|
||||||
|
<parametros-seccion/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -27,11 +32,12 @@ import DropdownDescargar from "./DropdownDescargar.vue";
|
||||||
import InputFileButton from "../comunes/InputFileButton.vue";
|
import InputFileButton from "../comunes/InputFileButton.vue";
|
||||||
import CanastaSeccion from "./canasta/CanastaSeccion.vue";
|
import CanastaSeccion from "./canasta/CanastaSeccion.vue";
|
||||||
import SaldosSeccion from "./saldos/SaldosSeccion.vue";
|
import SaldosSeccion from "./saldos/SaldosSeccion.vue";
|
||||||
import { mapActions } from "vuex";
|
import ParametrosSeccion from "./parametros/ParametrosSeccion.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ComisionesBody",
|
name: "ComisionesBody",
|
||||||
components: {
|
components: {
|
||||||
|
ParametrosSeccion,
|
||||||
SaldosSeccion,
|
SaldosSeccion,
|
||||||
CanastaSeccion,
|
CanastaSeccion,
|
||||||
TabsSecciones,
|
TabsSecciones,
|
||||||
|
@ -44,6 +50,7 @@ export default {
|
||||||
{ id: "pedidos-comisiones", nombre: "Pedidos" },
|
{ id: "pedidos-comisiones", nombre: "Pedidos" },
|
||||||
{ id: "canasta-comisiones", nombre: "Canasta" },
|
{ id: "canasta-comisiones", nombre: "Canasta" },
|
||||||
{ id: "saldos-comisiones", nombre: "Saldos" },
|
{ id: "saldos-comisiones", nombre: "Saldos" },
|
||||||
|
{ id: "parametros-comisiones", nombre: "Parámetros" },
|
||||||
],
|
],
|
||||||
tabActiva: "pedidos-comisiones",
|
tabActiva: "pedidos-comisiones",
|
||||||
seccionActiva: "pedidos-comisiones-seccion",
|
seccionActiva: "pedidos-comisiones-seccion",
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
<script>
|
||||||
|
import {mapActions, mapGetters} from "vuex";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
parametro: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
control: this.parametro.valor,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
hayCambios() {
|
||||||
|
return this.control !== this.parametro.valor;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapActions("comisiones", ["cambiarParametro"]),
|
||||||
|
modificar() {
|
||||||
|
this.cambiarParametro({
|
||||||
|
parametro_id: this.parametro.id,
|
||||||
|
valor: this.control,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<tr>
|
||||||
|
<td>{{ parametro.nombre }}</td>
|
||||||
|
<td>
|
||||||
|
<div class="field">
|
||||||
|
<input :type="parametro.tipo"
|
||||||
|
:id="'input-' + parametro.id"
|
||||||
|
v-model="control"
|
||||||
|
class="has-text-right">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="has-text-centered">
|
||||||
|
<div class="control">
|
||||||
|
<button class="button is-small is-success"
|
||||||
|
@click="modificar"
|
||||||
|
:disabled="!hayCambios">
|
||||||
|
<span class="icon">
|
||||||
|
<i class="fas fa-check"></i>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="has-text-centered">
|
||||||
|
<div class="control">
|
||||||
|
<button class="button is-small is-danger"
|
||||||
|
@click="control = parametro.valor"
|
||||||
|
:disabled="!hayCambios">
|
||||||
|
<span class="icon">
|
||||||
|
<i class="fa fa-undo" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<script>
|
||||||
|
import FilaCaracteristica from "../../admin/FilaCaracteristica.vue";
|
||||||
|
import FilaParametro from "./FilaParametro.vue";
|
||||||
|
import { mapActions, mapState } from "vuex";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name:"ParametrosSeccion",
|
||||||
|
components: { FilaParametro, FilaCaracteristica },
|
||||||
|
methods: {
|
||||||
|
...mapActions("comisiones", ["getParametros"]),
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState("comisiones", ["parametros"]),
|
||||||
|
},
|
||||||
|
async mounted() {
|
||||||
|
await this.getParametros();
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<table class="table is-striped is-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th> Parámetro </th>
|
||||||
|
<th> Valor $ </th>
|
||||||
|
<th> Cambiar </th>
|
||||||
|
<th> Deshacer </th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<fila-parametro v-for="(p,i) in parametros"
|
||||||
|
:key="i"
|
||||||
|
:parametro="p"/>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
26
resources/js/store/modules/comisiones.js
vendored
26
resources/js/store/modules/comisiones.js
vendored
|
@ -3,6 +3,7 @@ import axios from "axios";
|
||||||
const state = {
|
const state = {
|
||||||
lastFetch: undefined,
|
lastFetch: undefined,
|
||||||
grupos_de_compra: [],
|
grupos_de_compra: [],
|
||||||
|
parametros: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
const mutations = {
|
const mutations = {
|
||||||
|
@ -10,6 +11,15 @@ const mutations = {
|
||||||
state.grupos_de_compra = data;
|
state.grupos_de_compra = data;
|
||||||
state.lastFetch = new Date();
|
state.lastFetch = new Date();
|
||||||
},
|
},
|
||||||
|
setParametros(state, parametros) {
|
||||||
|
state.parametros = parametros;
|
||||||
|
state.parametros.forEach(
|
||||||
|
p => p.valor = Number.parseInt(p.valor)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
actualizarParametro(state, { parametro_id, valor }) {
|
||||||
|
state.parametros.find(p => p.id === parametro_id).valor = valor;
|
||||||
|
},
|
||||||
setSaldo(state, { gdc_id, saldo }) {
|
setSaldo(state, { gdc_id, saldo }) {
|
||||||
const barrio = state.grupos_de_compra.find(gdc => gdc.id === gdc_id);
|
const barrio = state.grupos_de_compra.find(gdc => gdc.id === gdc_id);
|
||||||
const i = state.grupos_de_compra.indexOf(barrio);
|
const i = state.grupos_de_compra.indexOf(barrio);
|
||||||
|
@ -22,6 +32,22 @@ const actions = {
|
||||||
const response = await axios.get('/api/grupos-de-compra/saldos');
|
const response = await axios.get('/api/grupos-de-compra/saldos');
|
||||||
commit('setGruposDeCompra', response.data);
|
commit('setGruposDeCompra', response.data);
|
||||||
},
|
},
|
||||||
|
async getParametros({ commit }) {
|
||||||
|
const response = await axios.get('/api/parametros');
|
||||||
|
commit('setParametros', response.data);
|
||||||
|
},
|
||||||
|
async cambiarParametro({ commit, dispatch }, { parametro_id, valor }) {
|
||||||
|
try {
|
||||||
|
await axios.put(
|
||||||
|
`/comisiones/parametros/${parametro_id}`,
|
||||||
|
{ valor: valor }
|
||||||
|
);
|
||||||
|
commit('actualizarParametro', { parametro_id, valor });
|
||||||
|
dispatch("ui/toast", { mensaje: 'Parámetro modificado con éxito' }, { root: true });
|
||||||
|
} catch (error) {
|
||||||
|
dispatch("ui/error", { error: error }, { root: true });
|
||||||
|
}
|
||||||
|
},
|
||||||
async setSaldo({ commit, dispatch }, { gdc_id, saldo }) {
|
async setSaldo({ commit, dispatch }, { gdc_id, saldo }) {
|
||||||
try {
|
try {
|
||||||
await axios.post(
|
await axios.post(
|
||||||
|
|
Loading…
Add table
Reference in a new issue