import axios from 'axios' const actions = { notify(_, message) { openerp.web.notification.do_warn('Atencion', message) return false }, initProcessBank({ getters, commit, dispatch}, mode) { commit('setMode', mode || getters.mode) commit('setCompleted', false) return axios.get('/eiru_bank_statement/init', { params: { mode: getters.mode } }).then(({data}) => { dispatch('explodeData', data) }).catch(error => { console.error(error); }) }, explodeData({ dispatch }, data) { for (let value in data) { dispatch(`init${value[0].toUpperCase()}${value.slice(1)}`, data[value]); } }, /* Check Statement */ checkStatement({ getters, dispatch }) { return !!getters.selectedStatement || dispatch('notify', 'Necesitas seleccionar una caja para continuar'); }, /* Check Statement Dest */ checkStatementDest({ getters, dispatch }) { return !!getters.selectedStatementDest || dispatch('notify', 'Necesitas seleccionar una caja para la transferencia') }, /* checkAmount({ getters, dispatch}) { return getters.amountOperation > 0 || dispatch('notify', 'El valor de la operación debe ser mayor que “0”.') },*/ // // description /* Fin del processo */ endProcess({getters, commit, dispatch}) { let data = {} if (getters.isTransfer || getters.isInputCashbox || getters.isOutputCashbox) { /* Verift Amount Operation */ if (getters.amountOperation <= 0) { dispatch('notify', 'El valor de la operación debe ser mayor que “0”.') return false } /* Verify Description */ if (!getters.description.trim()) { dispatch('notify', 'Necesitas ingresar una observación para la operación.') return false } /* Generate Data */ data = { transfer: getters.isTransfer, input: getters.isInputCashbox, output: getters.isOutputCashbox, amount: getters.amountOperation, description: getters.description, casboxOriginId: getters.selectedStatement.id, casboxDestID: !!getters.selectedStatementDest ? getters.selectedStatementDest.id: '', } commit('setDataEndProcess', data) dispatch('createCasboxMove') } if (getters.isStatmentConfirm) { let data = {} if (!getters.description.trim()) { dispatch('notify', 'Necesitas ingresar una observación para el cierre de caja.') return false } data = { statementId: getters.selectedStatement.id, amount: getters.amountOperation, description: getters.description, } commit('setDataEndProcess', data) dispatch('processClosingStatement') } if (getters.isStatmentModify) { let data= {} data = { lineUpdate: !!getters.linesUpdate.length ? getters.linesUpdate : [], linesDeleted: !!getters.linesDeleted.length ?getters.linesDeleted : [] } commit('setDataEndProcess', data) dispatch('processModifyStatementLine') // commit('setCompleted', true) } }, /** * [createCasboxMove ] * # Transferencia * # input * # Output */ createCasboxMove({ getters, dispatch, commit }) { return axios.post('/eiru_bank_statement/create_cashbox_move', { jsonrpc: '2.0', method: 'call', params: { data: getters.data } }).then(({data}) => { dispatch('notify', data.result.message) commit('setCompleted', true) }).catch(error => { console.error(error) }) }, processClosingStatement({ getters, dispatch, commit }) { return axios.post('/eiru_bank_statement/process_closing_statement', { jsonrpc: '2.0', method: 'call', params: { data: getters.data } }).then(({data}) => { dispatch('notify', data.result.message) commit('setCompleted', true) }).catch(error => { console.error(error) }) }, /* MODIFY Line */ processModifyStatementLine({ getters, dispatch, commit }) { return axios.post('/eiru_bank_statement/process_modify_statement_line', { jsonrpc: '2.0', method: 'call', params: { data: getters.data } }).then(({data}) => { dispatch('notify', data.result.message) commit('setCompleted', true) }).catch(error => { console.error(error) }) }, /* Create STATMENT */ endProcessNewStatement({getters, commit, dispatch}) { let data = {} data = { journal_id: getters.selectedJournal, type_statement: getters.selectedStatementType, user_id: getters.selectedUserStatement, date: getters.dateStatement, } commit('setDataEndProcess', data) dispatch('createAccountBankStatement') }, /*[CreateAccountBankStatement "Crear Caja"]*/ createAccountBankStatement({ getters, dispatch, commit}) { return axios.post('/eiru_bank_statement/create_account_bank_statement', { jsonrpc: '2.0', method: 'call', params: { data: getters.data } }).then(({data}) => { dispatch('notify', data.result.message) if (data.result.state){ dispatch('receiveStatment',data.result.data) dispatch('showStatementAdd',false) } }).catch(error => { console.error(error) }) }, // Reset resetProcess({ rootState, dispatch }) { for(let key in rootState) { if (!(rootState[key] instanceof Object)) { continue } key = key.replace('Module', '') if (key === 'data') { continue } dispatch(`reset${key[0].toUpperCase()}${key.slice(1)}`) } dispatch('initProcessBank') }, } export default actions