1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-14 16:02:34 +08:00
Elsio Sanchez 737d85b0ba
Point of Sale Processes (#583)
* Cancel sale transaction

* minimal change

* Copy Order

* Copy Line the Order

* add Traslation
2021-02-11 11:55:45 -04:00

171 lines
4.1 KiB
JavaScript

import {
requestGetOrder,
requestListOrders
} from '@/api/ADempiere/form/point-of-sales.js'
import { isEmptyValue, extractPagingToken } from '@/utils/ADempiere/valueUtils.js'
import { showMessage } from '@/utils/ADempiere/notification.js'
const withoutResponse = {
isLoaded: false,
isReload: true,
recordCount: 0,
nextPageToken: undefined
}
const ordes = {
state: {
order: {},
findOrder: {},
listOrder: {
...withoutResponse,
isShowPopover: false
}
},
mutations: {
setOrder(state, order) {
state.order = order
},
setListOrder(state, listOrder) {
state.listOrder = {
...state.listOrder,
...listOrder
}
},
setOrdersListPageNumber(state, pageNumber) {
state.listOrder.pageNumber = pageNumber
},
showListOrders(state, isShow) {
state.listOrder.isShowPopover = isShow
},
setIsReloadListOrders(state) {
state.listOrder.isReload = true
},
currentOrder(state, currentOrder) {
state.currentOrder = currentOrder
},
findOrder(state, findOrder) {
state.findOrder = findOrder
}
},
actions: {
/**
* Set page number of pagination list
* @param {number} pageNumber
*/
setOrdersListPageNumber({ commit, dispatch }, pageNumber) {
commit('setOrdersListPageNumber', pageNumber)
dispatch('listOrdersFromServer', {})
},
listOrdersFromServer({ state, commit, getters }, {
posUuid,
documentNo,
businessPartnerUuid,
grandTotal,
openAmount,
isPaid,
isProcessed,
isAisleSeller,
isInvoiced,
dateOrderedFrom,
dateOrderedTo,
salesRepresentativeUuid
}) {
if (isEmptyValue(posUuid)) {
posUuid = getters.getPointOfSalesUuid
}
let { pageNumber, token } = state.listOrder
if (isEmptyValue(pageNumber)) {
pageNumber = 1
}
let pageToken
if (!isEmptyValue(token)) {
pageToken = token + '-' + pageNumber
}
requestListOrders({
posUuid,
documentNo,
businessPartnerUuid,
grandTotal,
openAmount,
isPaid,
isProcessed,
isAisleSeller,
isInvoiced,
dateOrderedFrom,
dateOrderedTo,
salesRepresentativeUuid,
pageToken
})
.then(responseOrdersList => {
if (isEmptyValue(token) || isEmptyValue(pageToken)) {
token = extractPagingToken(responseOrdersList.nextPageToken)
}
commit('setListOrder', {
...responseOrdersList,
isLoaded: true,
isReload: false,
posUuid,
token,
pageNumber
})
})
.catch(error => {
console.warn(`listOrdersFromServer: ${error.message}. Code: ${error.code}.`)
showMessage({
type: 'info',
message: error.message,
showClose: true
})
})
},
setOrder({ commit }, order) {
commit('setOrder', order)
},
currentOrder({ commit }, findOrder) {
commit('findOrder', findOrder)
},
findOrderServer({ commit }, orderUuid) {
if (typeof orderUuid === 'string' && !isEmptyValue(orderUuid)) {
requestGetOrder(orderUuid)
.then(responseOrder => {
commit('findOrder', responseOrder)
})
.catch(error => {
console.warn(`findOrderServer: ${error.message}. Code: ${error.code}.`)
showMessage({
type: 'info',
message: error.message,
showClose: true
})
})
}
commit('findOrder', {})
}
},
getters: {
getOrder: (state) => {
return state.order
},
getListOrder: (state) => {
if (isEmptyValue(state.listOrder)) {
return {
...withoutResponse,
ordersList: []
}
}
return state.listOrder
},
getCurrentOrder: (state) => {
return state.currentOrder
},
getFindOrder: (state) => {
return state.findOrder
}
}
}
export default ordes