const state = { moveLines: [], movelineSelect: [], selectedMoveline: null, total: 0 } const getters = { moveLines (state) { return state.moveLines }, selectedMoveline(state) { return state.selectedMoveline }, haSelectedMoveline(state) { return !!state.selectedMoveline }, addMove(state) { return state.movelineSelect }, total(state) { return state.total }, moveLinesIsEmpty(state) { return state.movelineSelect.length !== 0 } } const mutations = { pushMovelines (state, payload) { let move = payload.moveLines move.sort((a, b) => { return a.date_maturity > b.date_maturity }) state.moveLines = move }, selectMoveline(state, payload) { state.selectedMoveline = payload.moveline }, addMoveline(state, payload) { let finded = state.movelineSelect.find(item => item.id == payload.moveselect.id) if (finded) return state.movelineSelect =[payload.moveselect, ...state.movelineSelect] }, calculateTotal(state) { let sum = 0 state.movelineSelect.forEach(item => { sum = sum + item.amount_residual }) state.total = sum }, removeLine(state, payload) { let findedMove = state.movelineSelect.findIndex(item => item.id == payload.movedelet.id) state.movelineSelect.splice(findedMove,1) }, removeMoveCard(state, payload) { let findedMoveCard = state.moveLines.findIndex(item => item.id == payload.moveCardDelet.id) state.moveLines.splice(findedMoveCard,1) }, addMovelineCard(state, payload) { let finded = state.moveLines.find(item => item.id == payload.moveLine.id) if (finded) return state.moveLines = [payload.moveLine, ...state.moveLines] } } const actions = { pushMovelines({ commit, dispatch}, payload ) { commit('pushMovelines', payload) }, selectMoveline({ commit, dispatch}, payload) { commit('selectMoveline',{ moveline: payload }) // Add nueva lineas commit('addMoveline',{ moveselect: payload }) // Remover los card de la cuotas commit('removeMoveCard',{ moveCardDelet: payload }) // Calcular el total commit('calculateTotal') }, removeLine({ commit, dispatch}, payload) { commit('removeLine',{ movedelet: payload }) commit('addMovelineCard',{ moveLine: payload }) dispatch('addMovelineInvoice', { moveLine: payload }) commit('calculateTotal') } } export default { state, getters, mutations, actions }