123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- import axios from 'axios'
- import {
- INIT_PAYMENTS_URL,
- PAYMENTS_PROCESS_URL
- } from '@/constants/resourcePaths'
- const state = {
- processingPayments: false,
- completedPayments: false
- }
- const getters = {
- /**
- * [processingPayments description]
- */
- processingPayments (state) {
- return state.processingPayments
- },
- /**
- * [completedPayments description]
- */
- completedPayments (state) {
- return state.completedPayments
- }
- }
- const mutations = {
- /**
- * [processingPayments description]
- */
- setProcessingPayments(state, payload) {
- state.processingPayments = payload
- },
- /**
- * [completedPayments description]
- * @type {[type]}
- */
- setCompletedPayments(state, payload) {
- state.completedPayments = payload
- }
- }
- const actions = {
- /**
- * [PAYMENTS_NOTIFY]
- */
- paymentsNotify ({ commit },payload) {
- openerp.web.notification.do_warn('Atencion', payload)
- return false
- },
- /**
- * [INIT_PAYMENTS]
- */
- initPayments ({ dispatch }) {
- return axios.get(INIT_PAYMENTS_URL).then(response => {
- dispatch('completedPayments', false)
- dispatch('explodeData', response.data)
- }).catch(error => {
- console.log(error);
- })
- },
- /**
- * [EXPLODE_DATA]
- */
- explodeData ({ dispatch }, payload) {
- for (let value in payload) {
- dispatch(`initPayments${value[0].toUpperCase()}${value.slice(1)}`,payload[value])
- }
- },
- /**
- * [CHECK_CUSTOMER]
- */
- checkCustomer ({ getters, dispatch }) {
- return !!getters.selectedCustomer ||dispatch('paymentsNotify','Necesitas seleccionar un cliente para continuar.')
- },
- /**
- * [checkInvoice]
- */
- checkInvoice ({ getters, dispatch }) {
- return !!getters.selectedInvoice ||dispatch('paymentsNotify', 'Necesitas seleccionar una factura para continuar.')
- },
- /**
- * [checkMove]
- */
- checkMove({ getters, dispatch }) {
- return !!getters.movesPayments.length || dispatch('paymentsNotify','Necesitas seleccionar al menos una cuota para continuar.')
- },
- /**
- * [checkPayments]
- */
- checkPayments ({ getters, dispatch }) {
- if (!getters.selectedJournal || getters.selectedJournal.length <= 0) {
- return dispatch('paymentsNotify', 'Necesitas seleccionar un método de pago')
- }
- if (getters.paidTotal <= 0){
- return dispatch('paymentsNotify', 'Necesitas ingresar un monto a pagar')
- }
- let bank = !!getters.selectedJournal && getters.selectedJournal.type ==='bank' && !!getters.bank.length && !!getters.bankType.length
- if (bank) {
- if (!getters.selectedPaymentsBank || getters.selectedPaymentsBank.length <= 0) {
- return dispatch('paymentsNotify', 'Necesitas seleccionar un banco')
- }
- if (!getters.selectedPaymentsBankType || getters.selectedPaymentsBankType.length <= 0) {
- return dispatch('paymentsNotify', 'Necesitas seleccionar el tipo de transacción bancaria')
- }
- if (!getters.paymentsBankRef){
- return dispatch('paymentsNotify', 'Necesitas ingresar el Nº cheque / boleta')
- }
- if (!getters.paymentsBankDateMaturity){
- return dispatch('paymentsNotify', 'Necesitas ingresar una fecha de vencimiento')
- }
- }
- return true
- },
- /**
- * [PAYMENTS_PROCESS]
- */
- paymentsProcess ({ getters, commit, dispatch }, payload ) {
- commit('setProcessingPayments', true)
- let bank = !!getters.selectedJournal && getters.selectedJournal.type ==='bank' && !!getters.bank.length && !!getters.bankType.length
- const data = {
- jsonrpc: '2.0',
- method: 'call',
- params: {
- invoiceId: getters.selectedInvoice.id,
- journalId: getters.selectedJournal.id,
- customerId: getters.selectedCustomer.id,
- amountPayments: getters.paidTotal <= getters.paymentCurrencyTotal ? getters.paidTotal : getters.paymentCurrencyTotal,
- journalType: getters.selectedJournal.type,
- bankId: !!bank ? getters.selectedPaymentsBank.id : '',
- bankTypeId: !!bank ? getters.selectedPaymentsBankType.id : '',
- bankRef: !!bank ? getters.paymentsBankRef : '',
- bankAmount: !!bank ? getters.paymentsBankAmount : 0,
- bankDateMaturity: !!bank ? getters.paymentsBankDateMaturity : '',
- paymentsBankNumber_cta: !!bank ? getters.paymentsBankNumberCta : '',
- paymentsBankName_holder: !!bank ? getters.paymentsBankNameHolder : '',
- moveLines: getters.movesPayments.map(item => {
- return item.id
- })
- }
- }
- return axios.post(PAYMENTS_PROCESS_URL, data).then(response => {
- commit('setProcessingPayments', !response.data.result)
- dispatch('completedPayments', response.data.result)
- }).catch(error => {
- console.log(error);
- commit('setProcessingPayments', false)
- })
- },
- /**
- * [COMPLETED_PAYMENTS]
- */
- completedPayments({ commit }, payload) {
- commit('setCompletedPayments', !!payload)
- },
- /**
- * [RESET_PAYMENT_CUSTOMER]
- */
- resetPaymentCustomer({ rootState, commit, dispatch }){
- for (let key in rootState) {
- if (!(rootState[key] instanceof Object)){
- continue
- }
- dispatch(`reset${key[0].toUpperCase()}${key.slice(1)}`)
- }
- dispatch('initPayments')
- },
- /**
- * [prev description]
- */
- setChangeTabStepsSales({ commit, dispatch, getters }, payload) {
- if (payload.prev === 0 && payload.next === -1) {
- dispatch('resetPaymentCustomer')
- }
- // Reset STEPS 3-4
- if (payload.prev >= 2 && payload.next <= 1){
- dispatch('removeMovePaymentsAll')
- }
- }
- }
- export default {
- state,
- getters,
- mutations,
- actions
- }
|