const actions = { notify({ commit }, payload) { openerp.web.notification.do_warn('Atención', payload) return false }, initSale({ commit, dispatch }, payload) { commit('setPosInstance', payload) let promises = [ dispatch('fetchCompany'), dispatch('fetchCurrencies'), dispatch('fetchProducts'), dispatch('fetchCustomers'), dispatch('fetchJournals'), dispatch('fetchPaymentTerms') ] Promise.all(promises).then(() => { console.info('loaded') }).catch(error => { console.error(error) }) }, checkCart({ getters, dispatch }) { return getters.cartIsEmpty || dispatch('notify', 'Necesitas agregar productos al carrito para continuar') }, checkCustomer({ getters, dispatch }) { return getters.hasSelectedCustomer || dispatch('notify', 'Necesitas seleccionar un cliente para continuar') }, checkAmountPaid({ getters, dispatch }) { return (getters.payment === 'cash' && getters.amountPaid >= getters.total) || dispatch('notify', 'Necesitar entregar un monto igual o mayor al total') }, completeSale({ getters, dispatch }) { // return new Promise((resolve, reject) => { // let AccountVoucher = new openerp.web.Model('account.voucher') // AccountVoucher.call('create_from_pos', [ // { // customer_id: getters.selectedCustomer.id, // payment_term_id: getters.selectedPaymentTerm.id, // journal_id: getters.selectedJournal.id, // account_id: getters.selectedJournal.default_credit_account.id, // cart_items: getters.cartItems.map(item => { // return { // id: item.id, // qty: item.qty, // price: item.list_price // } // }), // cart_total: getters.total, // amount_paid: getters.amountPaid > getters.total ? getters.total : getters.amountPaid // } // ], { // context: new openerp.web.CompoundContext() // }).then(response => { // console.log(response) // resolve(response) // }).fail(error => { // reject(error) // }) // }) dispatch('reset') }, reset({ state }) { console.log(state) } } export default actions