pedi2/resources/js/store/modules/ollas.js

45 lines
1.3 KiB
JavaScript
Vendored

import axios from "axios";
const state = {
monto_por_olla: undefined,
};
const mutations = {
setMontoPorOlla(state, parametros) {
state.monto_por_olla = Number.parseInt(parametros.find(p => p.id === 'monto-olla').valor);
},
};
const actions = {
async getMontoPorOlla({ commit }) {
const response = await axios.get('/api/parametros');
commit('setMontoPorOlla', response.data);
},
async actualizarCantidadOllas({ rootState, dispatch }, { cantidad: cantidad}) {
try {
const barrio = rootState.pedido.grupo_de_compra.id;
const params = { cantidad : cantidad };
await axios.put(`/ollas/${barrio}/cantidad`, params);
dispatch("ui/toast", { mensaje: 'Cantidad modificada con éxito' }, { root: true });
} catch (error) {
dispatch("ui/error", { error: { message: "Cantidad inválida" } }, { root: true });
}
}
};
const getters = {
montoTotal(state, _, rootState) {
return state.monto_por_olla * rootState.pedido.cantidad_de_ollas;
},
montoSuperado: (_, getters, rootState) => {
return rootState.pedido.total > getters.montoTotal;
}
};
export default {
namespaced: true,
state,
mutations,
actions,
getters,
};