pedi2/resources/js/store/modules/comisiones.js
2025-06-19 18:07:56 -03:00

63 lines
1.8 KiB
JavaScript
Vendored

import axios from "axios";
const state = {
grupos_de_compra: [],
};
const mutations = {
setGruposDeCompra(state, { data }) {
state.grupos_de_compra = data;
},
setSaldo(state, { gdc_id, saldo }) {
const barrio = state.grupos_de_compra.find(gdc => gdc.id === gdc_id);
const i = state.grupos_de_compra.indexOf(barrio);
state.grupos_de_compra[i].saldo = saldo;
},
};
const actions = {
async getGruposDeCompra({ commit }) {
const response = await axios.get('/api/grupos-de-compra/saldos');
commit('setGruposDeCompra', response.data);
},
async setSaldo({ commit, dispatch }, { gdc_id, saldo }) {
try {
await axios.post(
"api/grupos-de-compra/" + gdc_id + "/saldo",
{ saldo: saldo }
);
commit('setSaldo', { gdc_id: gdc_id, saldo: saldo });
dispatch("ui/toast", { mensaje: 'Saldo modificado con éxito' }, { root: true });
} catch (error) {
dispatch("ui/error", { error: error }, { root: true });
}
},
async cargarSaldos({ commit, dispatch }, formData) {
try {
const response = await axios.post("/comisiones/saldos", formData, {
headers: {
"Content-Type": "multipart/form-data",
},
});
commit('setGruposDeCompra', response);
dispatch("ui/toast", { mensaje: 'Saldos cargados con éxito' }, { root: true });
} catch (error) {
console.log(error);
dispatch("ui/error", { error: error }, { root: true });
}
},
};
const getters = {
saldo() {
return (gdc_id) => state.grupos_de_compra.find(gdc => gdc.id === gdc_id)?.saldo ?? 0;
},
};
export default {
namespaced: true,
state,
mutations,
actions,
getters,
};