77 lines
2.3 KiB
JavaScript
Vendored
77 lines
2.3 KiB
JavaScript
Vendored
import axios from "axios";
|
|
|
|
const state = {
|
|
lastFetch: null,
|
|
pedido_id: null,
|
|
nombre: null,
|
|
productos: null,
|
|
aprobado: null,
|
|
total: null,
|
|
total_transporte: null,
|
|
cantidad_transporte: null,
|
|
total_sin_devoluciones: null,
|
|
devoluciones_total: null,
|
|
devoluciones_notas: null,
|
|
};
|
|
|
|
const mutations = {
|
|
setState(state, pedido) {
|
|
state.lastFetch = new Date();
|
|
state.pedido_id = pedido.id;
|
|
state.nombre = pedido.nombre;
|
|
state.productos = pedido.productos;
|
|
state.aprobado = pedido.aprobado;
|
|
state.total = pedido.total;
|
|
state.total_transporte = pedido.total_transporte;
|
|
state.cantidad_transporte = pedido.cantidad_transporte;
|
|
state.total_sin_devoluciones = pedido.total_sin_devoluciones;
|
|
state.devoluciones_total = pedido.devoluciones_total;
|
|
state.devoluciones_notas = pedido.devoluciones_notas;
|
|
},
|
|
};
|
|
|
|
const actions = {
|
|
async crearPedido({ commit }, { nombre, grupo_de_compra_id }) {
|
|
const response = await axios.post("/api/subpedidos", {
|
|
nombre: nombre,
|
|
grupo_de_compra_id: grupo_de_compra_id
|
|
});
|
|
commit('setState', response.data.data);
|
|
},
|
|
async elegirPedido({ commit }, { pedido }) {
|
|
const response = await axios.get(`/api/subpedidos/${pedido.id}`);
|
|
commit('setState', response.data.data);
|
|
},
|
|
async modificarChismosa({ commit }, { producto_id, cantidad, notas }) {
|
|
const response = await axios.post("/api/subpedidos/" + state.pedido_id + "/sync", {
|
|
cantidad: cantidad,
|
|
producto_id: producto_id,
|
|
notas: notas,
|
|
});
|
|
commit('setState', response.data.data);
|
|
},
|
|
async modificarDevoluciones({ commit }, monto, notas) {}
|
|
};
|
|
|
|
const getters = {
|
|
pedidoDefinido() {
|
|
return state.lastFetch !== null;
|
|
},
|
|
enChismosa() {
|
|
return ((producto_id) => state.productos.some(p => p.id === producto_id));
|
|
},
|
|
cantidad() {
|
|
return ((producto_id) => state.productos.find(p => p.id === producto_id)?.pivot.cantidad ?? 0);
|
|
},
|
|
notas() {
|
|
return ((producto_id) => state.productos.find(p => p.id === producto_id)?.pivot.notas ?? "");
|
|
}
|
|
}
|
|
|
|
export default {
|
|
namespaced: true,
|
|
state,
|
|
mutations,
|
|
actions,
|
|
getters,
|
|
};
|