Eliminada store de barrio, logica de pedidos existentes pasada a pedido select y datos de grupo de compra pasados a store de pedido

This commit is contained in:
Alejandro Tasistro 2025-05-27 18:14:00 -03:00
parent 4e197204a9
commit 2bfcf59f3e
6 changed files with 26 additions and 58 deletions

View file

@ -6,7 +6,7 @@
</a> </a>
<div class="navbar-item" id="datos-pedido" v-if="pedidoDefinido"> <div class="navbar-item" id="datos-pedido" v-if="pedidoDefinido">
<p class="hide-below-1024"> <p class="hide-below-1024">
{{ `Núcleo: ${nombre} - Barrio: ${grupo_de_compra}` }} {{ `Núcleo: ${nombre} - Barrio: ${grupo_de_compra.nombre}` }}
</p> </p>
</div> </div>
<chismosa-dropdown <chismosa-dropdown
@ -63,7 +63,7 @@ export default {
computed: { computed: {
...mapGetters('pedido', ["pedidoDefinido"]), ...mapGetters('pedido', ["pedidoDefinido"]),
...mapState('pedido',["nombre"]), ...mapState('pedido',["nombre"]),
...mapState('barrio',["grupo_de_compra"]), ...mapState('pedido',["grupo_de_compra"]),
}, },
methods: { methods: {
...mapActions('productos', ["filtrarProductos"]), ...mapActions('productos', ["filtrarProductos"]),

View file

@ -15,7 +15,7 @@
<th class="has-text-right">{{ cantidad_transporte }}</th> <th class="has-text-right">{{ cantidad_transporte }}</th>
<th class="has-text-right">{{ total_transporte }}</th> <th class="has-text-right">{{ total_transporte }}</th>
</tr> </tr>
<tr v-if="devoluciones_habilitadas"> <tr v-if="grupo_de_compra.devoluciones_habilitadas">
<th><p>Devoluciones</p></th> <th><p>Devoluciones</p></th>
<td> <td>
<abbr :title="devoluciones_notas">{{ notas_abreviadas }}</abbr> <abbr :title="devoluciones_notas">{{ notas_abreviadas }}</abbr>
@ -51,8 +51,8 @@ import { mapMutations, mapState } from "vuex";
export default { export default {
components: { ProductoRow }, components: { ProductoRow },
computed: { computed: {
...mapState('barrio',["devoluciones_habilitadas"]),
...mapState('pedido',[ ...mapState('pedido',[
"grupo_de_compra",
"productos", "productos",
"total", "total",
"total_transporte", "total_transporte",

View file

@ -66,20 +66,28 @@ export default {
}, },
data() { data() {
return { return {
searchString: null pedidos: [],
searchString: null,
} }
}, },
computed: { computed: {
...mapState('barrio',["grupo_de_compra_id","pedidos"]), ...mapState('pedido', ["grupo_de_compra"]),
deshabilitado: function () { deshabilitado: function () {
return !this.searchString?.trim() return !this.searchString?.trim()
|| this.pedidos.some(p => p.nombre.toLowerCase() === this.searchString.toLowerCase()) || this.pedidos.some(p => p.nombre.toLowerCase() === this.searchString.toLowerCase())
} }
}, },
methods: { methods: {
...mapActions('barrio',["getGrupoDeCompra","getPedidos"]), ...mapActions('pedido', ["getGrupoDeCompra", "crearPedido", "elegirPedido"]),
...mapActions('pedido',["crearPedido","elegirPedido"]), async getPedidos(nombre) {
...mapMutations('barrio',["setPedidos"]), const response = await axios.get('/api/subpedidos/',{
params: {
nombre: nombre,
grupo_de_compra: this.grupo_de_compra.id
}
});
this.pedidos = response.data;
},
onType() { onType() {
if (!this.searchString) { if (!this.searchString) {
this.setPedidos([]); this.setPedidos([]);
@ -91,7 +99,7 @@ export default {
if (pedido) if (pedido)
await this.elegirPedido({ pedido_id: pedido.id }); await this.elegirPedido({ pedido_id: pedido.id });
else else
await this.crearPedido({ nombre: this.searchString, grupo_de_compra_id: this.grupo_de_compra_id }); await this.crearPedido({ nombre: this.searchString, grupo_de_compra_id: this.grupo_de_compra.id });
}, },
} }
} }

View file

@ -3,7 +3,6 @@ import Vuex from 'vuex';
import admin from "./modules/admin"; import admin from "./modules/admin";
import login from "./modules/login"; import login from "./modules/login";
import pedido from "./modules/pedido"; import pedido from "./modules/pedido";
import barrio from "./modules/barrio";
import productos from "./modules/productos"; import productos from "./modules/productos";
import ui from "./modules/ui"; import ui from "./modules/ui";
@ -14,7 +13,6 @@ export default new Vuex.Store({
admin, admin,
login, login,
pedido, pedido,
barrio,
productos, productos,
ui, ui,
}, },

View file

@ -1,45 +0,0 @@
import axios from "axios";
const state = {
grupo_de_compra_id: null,
grupo_de_compra: null,
devoluciones_habilitadas: null,
pedidos: [],
};
const mutations = {
setGrupoDeCompra(state, { grupo_de_compra }) {
state.grupo_de_compra_id = grupo_de_compra.id;
state.grupo_de_compra = grupo_de_compra.nombre;
state.devoluciones_habilitadas = grupo_de_compra.devoluciones_habilitadas;
},
setPedidos(state, pedidos) {
state.pedidos = pedidos;
},
};
const actions = {
async getGrupoDeCompra({ commit }) {
const response = await axios.get('/user/grupo_de_compra');
commit('setGrupoDeCompra', response.data);
},
async getPedidos({ commit }, nombre) {
const response = await axios.get('/api/subpedidos/',{
params: {
nombre: nombre,
grupo_de_compra: state.grupo_de_compra_id
}
});
commit('setPedidos', response.data);
},
async limpiarPedidos({ commit }) {
commit('setPedidos', []);
}
};
export default {
namespaced: true,
state,
mutations,
actions,
};

View file

@ -2,6 +2,7 @@ import axios from "axios";
const state = { const state = {
lastFetch: null, lastFetch: null,
grupo_de_compra: null,
pedido_id: null, pedido_id: null,
nombre: null, nombre: null,
productos: null, productos: null,
@ -15,6 +16,9 @@ const state = {
}; };
const mutations = { const mutations = {
setGrupoDeCompra(state, grupo_de_compra) {
state.grupo_de_compra = grupo_de_compra;
},
setPedido(state, pedido) { setPedido(state, pedido) {
state.lastFetch = new Date(); state.lastFetch = new Date();
state.pedido_id = pedido.id; state.pedido_id = pedido.id;
@ -44,6 +48,10 @@ const mutations = {
}; };
const actions = { const actions = {
async getGrupoDeCompra({ commit }) {
const response = await axios.get('/user/grupo_de_compra');
commit('setGrupoDeCompra', response.data.grupo_de_compra);
},
async guardarSesion(_, { pedido_id }) { async guardarSesion(_, { pedido_id }) {
await axios.post("/pedido/sesion", { id: pedido_id }); await axios.post("/pedido/sesion", { id: pedido_id });
}, },
@ -87,7 +95,6 @@ const actions = {
}, },
async resetear({ commit, dispatch }) { async resetear({ commit, dispatch }) {
await axios.delete("/pedido/sesion"); await axios.delete("/pedido/sesion");
dispatch("barrio/limpiarPedidos", null, { root: true });
dispatch("productos/getProductos", null, { root: true }); dispatch("productos/getProductos", null, { root: true });
commit('reset'); commit('reset');
}, },