From c514569acde6fe2bc4c23ab44c06336eb56d6650 Mon Sep 17 00:00:00 2001 From: ale Date: Thu, 19 Jun 2025 17:04:09 -0300 Subject: [PATCH] =?UTF-8?q?Movida=20logica=20de=20cargar=20planilla=20a=20?= =?UTF-8?q?comisiones.js,=20quitados=20casos=20en=20los=20que=20el=20barri?= =?UTF-8?q?o=20no=20est=C3=A1=20en=20la=20lista=20pues=20son=20imposibles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comisiones/saldos/SaldosSeccion.vue | 48 +++++-------------- resources/js/store/modules/comisiones.js | 42 ++++++++++------ 2 files changed, 41 insertions(+), 49 deletions(-) diff --git a/resources/js/components/comisiones/saldos/SaldosSeccion.vue b/resources/js/components/comisiones/saldos/SaldosSeccion.vue index a4e8c15..72af00f 100644 --- a/resources/js/components/comisiones/saldos/SaldosSeccion.vue +++ b/resources/js/components/comisiones/saldos/SaldosSeccion.vue @@ -14,15 +14,20 @@ export default { }, methods: { ...mapActions('ui',["toast"]), - ...mapActions('comisiones', ['setSaldo']), + ...mapActions('comisiones', ['setSaldo', 'cargarSaldos']), async confirmar_saldo(gdc_id) { - var saldo = this.getSaldo(gdc_id); await this.setSaldo({ gdc_id: gdc_id, - saldo: saldo, + saldo: this.getSaldo(gdc_id), }); this.saldo_modificado[gdc_id] = false; - await this.getGruposDeCompra(); + }, + async archivoSubido(event) { + event.component.cargando = true; + const formData = new FormData(); + formData.append('data',event.archivo); + await this.cargarSaldos(formData); + event.component.cargando = false; }, saldoModificado(gdc_id) { this.saldo_modificado[gdc_id] = true; @@ -31,35 +36,8 @@ export default { return gdc_id in this.saldo_modificado && this.saldo_modificado[gdc_id]; }, getSaldo(gdc_id) { - for (var i = 0; i < this.grupos_de_compra.length; i++) { - if (this.grupos_de_compra[i].id == gdc_id) { - return this.grupos_de_compra[i].saldo; - } - } - return 0; - }, - async saldosSubido(event) { - var archivo = event.archivo; - if (archivo.type === "text/csv") { - const formData = new FormData(); - formData.append("data", archivo); - try { - const response = await axios.post("/comisiones/saldos", formData, { - headers: { - "Content-Type": "multipart/form-data", - }, - }); - this.getGruposDeCompra(); - this.toast({ mensaje: (response.data.message || "Canasta cargada exitosamente") }); - } catch (error) { - console.log(error); - this.toast({ mensaje: (error.response?.data?.message || "Hubo errores.") }); - } - event.component.cargando = false; - } else { - this.toast("El archivo debe ser .CSV"); - event.component.cargando = false; - } + const barrio = this.grupos_de_compra.find(gdc => gdc.id === gdc_id); + return barrio.saldo; }, toggleSaldosFileDialog() { this.show_saldos_file_dialog = !this.show_saldos_file_dialog; @@ -98,12 +76,12 @@ export default {
- Cargar un archivo de saldos sólo reemplazará los saldos de los barrios presentes en la tabla. + Al cargar un archivo, se reemplazaran los saldos de los barrios que éste contenga, el resto quedará sin cambiar.
- + diff --git a/resources/js/store/modules/comisiones.js b/resources/js/store/modules/comisiones.js index 024de04..42b219e 100644 --- a/resources/js/store/modules/comisiones.js +++ b/resources/js/store/modules/comisiones.js @@ -8,14 +8,10 @@ const mutations = { setGruposDeCompra(state, { data }) { state.grupos_de_compra = data; }, - setGrupoDeCompra(state, gdc) { - for (var i = 0; i < state.grupos_de_compra.length; i++) { - if (state.grupos_de_compra[i].id == gdc.id) { - state.grupos_de_compra[i] = gdc; - return; - } - } - state.grupos_de_compra.push(gdc); + 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; }, }; @@ -24,12 +20,30 @@ const actions = { const response = await axios.get('/api/grupos-de-compra'); commit('setGruposDeCompra', response.data); }, - async setSaldo({ commit }, { gdc_id, saldo }) { - const response = await axios.post( - "api/grupos-de-compra/" + gdc_id + "/saldo", - { saldo: saldo } - ); - commit('setGrupoDeCompra', response.data.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) { + } + }, + 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 }); + } }, };