mirror of
https://github.com/PanJiaChen/vue-element-admin.git
synced 2025-08-15 16:36:33 +08:00
* adding Point of Sale features * Delete Ineccessary Getters * minimal changes * add list product Price and Order Line * Add license * minimal changes * unify getters * minimal changes * minimal changes Co-authored-by: Elsio Sanchez <elsiosanche@gmail.com>
90 lines
2.8 KiB
JavaScript
90 lines
2.8 KiB
JavaScript
// ADempiere-Vue (Frontend) for ADempiere ERP & CRM Smart Business Solution
|
|
// Copyright (C) 2017-Present E.R.P. Consultores y Asociados, C.A.
|
|
// Contributor(s): Elsio Sanchez esanchez@erpya.com www.erpya.com
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
import router from '@/router'
|
|
import {
|
|
requestListPointOfSales
|
|
} from '@/api/ADempiere/form/point-of-sales.js'
|
|
import { isEmptyValue } from '@/utils/ADempiere/valueUtils.js'
|
|
import { showMessage } from '@/utils/ADempiere/notification.js'
|
|
|
|
/**
|
|
* Pos Actions
|
|
*/
|
|
export default {
|
|
/**
|
|
* List point of sales terminal
|
|
* @param {number} posToSet id to set
|
|
*/
|
|
listPointOfSalesFromServer({ commit, getters, dispatch }, posToSet = null) {
|
|
const userUuid = getters['user/getUserUuid']
|
|
let pos, listPos
|
|
requestListPointOfSales({
|
|
userUuid
|
|
})
|
|
.then(response => {
|
|
listPos = response.sellingPointsList
|
|
if (!isEmptyValue(posToSet)) {
|
|
pos = listPos.find(itemPOS => itemPOS.id === parseInt(posToSet))
|
|
}
|
|
if (isEmptyValue(pos) && isEmptyValue(posToSet)) {
|
|
pos = listPos.find(itemPOS => itemPOS.salesRepresentative.uuid === userUuid)
|
|
}
|
|
if (isEmptyValue(pos)) {
|
|
pos = listPos[0]
|
|
}
|
|
commit('listPointOfSales', listPos)
|
|
dispatch('setCurrentPOS', pos)
|
|
})
|
|
.catch(error => {
|
|
console.warn(`listPointOfSalesFromServer: ${error.message}. Code: ${error.code}.`)
|
|
showMessage({
|
|
type: 'error',
|
|
message: error.message,
|
|
showClose: true
|
|
})
|
|
})
|
|
},
|
|
setCurrentPOS({ commit, dispatch }, posToSet) {
|
|
commit('currentPointOfSales', posToSet)
|
|
const currentPOS = posToSet
|
|
const oldRoute = router.app._route
|
|
router.push({
|
|
name: oldRoute.name,
|
|
params: {
|
|
...oldRoute.params
|
|
},
|
|
query: {
|
|
...oldRoute.query,
|
|
pos: posToSet.id
|
|
}
|
|
}, () => {})
|
|
|
|
commit('setIsReloadKeyLayout')
|
|
commit('setIsReloadProductPrice')
|
|
commit('setIsReloadListOrders')
|
|
commit('setShowPOSKeyLayout', false)
|
|
|
|
// Maintain Order and Product List
|
|
dispatch('listOrdersFromServer', {
|
|
posUuid: currentPOS.uuid
|
|
})
|
|
dispatch('listProductPriceFromServer', {
|
|
currentPOS
|
|
})
|
|
}
|
|
}
|