1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-07 18:25:45 +08:00

corrections of errors in post services (#859)

Co-authored-by: elsiosanchez <elsiossanches@gmail.com>
This commit is contained in:
Elsio Sanchez 2021-05-20 10:22:48 -04:00 committed by GitHub
parent 97287f160c
commit 09c9bea77d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 127 additions and 57 deletions

View File

@ -171,8 +171,8 @@ export function requestListOrders({
isProcessed,
isAisleSeller,
isInvoiced,
// dateOrderedFrom,
// dateOrderedTo,
dateOrderedFrom,
dateOrderedTo,
salesRepresentativeUuid,
pageSize,
pageToken
@ -233,6 +233,8 @@ export function requestListOrders({
is_processed: isProcessed,
is_aisle_seller: isAisleSeller,
is_invoiced: isInvoiced,
date_ordered_from: dateOrderedFrom,
date_ordered_to: dateOrderedTo,
page_size: pageSize,
page_token: pageToken
}

View File

@ -109,7 +109,7 @@
</template>
</el-dropdown-menu>
</el-dropdown>
<el-menu v-else class="el-menu-demo" mode="horizontal" :unique-opened="true" style="z-index: 0" :menu-trigger="triggerMenu" @open="handleOpen" @close="handleClose" @select="handleSelect">
<el-menu v-else-if="field.panelType !== 'form' && !isMobile" class="el-menu-demo" mode="horizontal" :unique-opened="true" style="z-index: 0" :menu-trigger="triggerMenu" @open="handleOpen" @close="handleClose" @select="handleSelect">
<el-submenu index="menu">
<template slot="title">
<div :style="isMobile ? 'display: flex;width: auto;' : 'display: block;'">
@ -179,6 +179,9 @@
</el-menu-item>
</el-submenu>
</el-menu>
<span v-else>
{{ field.name }}
</span>
</template>
<el-popover
v-if="openOptionField && !isEmptyValue(optionColumnName) && (optionColumnName === field.columnName) && showPopoverPath"
@ -737,7 +740,6 @@ export default {
}
},
handleCommand(command) {
console.log({ command })
this.$store.commit('setRecordAccess', false)
if (command.name === this.$t('table.ProcessActivity.zoomIn')) {
this.redirect({ window: command.fieldAttributes.reference.zoomWindows[0] })

View File

@ -107,8 +107,14 @@
<i class="el-icon-arrow-down el-icon--right" />
</span>
<el-dropdown-menu slot="dropdown" style="padding-bottom: 0px;">
<el-dropdown-item :command="scope.row">
<el-dropdown-item
:command="{
...scope.row,
option: $t('form.productInfo.productInformation')
}"
>
<el-popover
v-if="!isEmptyValue(currentLineOrder)"
placement="right"
trigger="click"
:title="$t('form.productInfo.productInformation')"
@ -131,20 +137,20 @@
</div>
</el-col>
<el-col :span="10">
{{ $t('form.productInfo.code') }}: <b>{{ currentOrderLine.product.value }}</b><br>
{{ $t('form.productInfo.name') }}: <b>{{ currentOrderLine.product.name }}</b><br>
{{ $t('form.productInfo.description') }}: <b>{{ currentOrderLine.product.description }}</b><br>
{{ $t('form.productInfo.code') }}: <b>{{ currentLineOrder.product.value }}</b><br>
{{ $t('form.productInfo.name') }}: <b>{{ currentLineOrder.product.name }}</b><br>
{{ $t('form.productInfo.description') }}: <b>{{ currentLineOrder.product.description }}</b><br>
</el-col>
<el-col :span="10">
<div style="float: right">
{{ $t('form.productInfo.price') }}:
<b>{{ formatPrice(currentOrderLine.product.priceStandard, pointOfSalesCurrency.iSOCode) }}</b>
<b>{{ formatPrice(currentLineOrder.product.priceStandard, pointOfSalesCurrency.iSOCode) }}</b>
<br>
{{ $t('form.productInfo.taxAmount') }}:
<b>{{ currentOrderLine.taxIndicator }}</b>
<b>{{ currentLineOrder.taxIndicator }}</b>
<br>
{{ $t('form.productInfo.quantityAvailable') }}:
<b>{{ formatQuantity(currentOrderLine.quantityOrdered) }}</b>
<b>{{ formatQuantity(currentLineOrder.quantityOrdered) }}</b>
</div>
</el-col>
</el-row>
@ -154,7 +160,12 @@
</el-button>
</el-popover>
</el-dropdown-item>
<el-dropdown-item :command="$t('form.pos.tableProduct.editQuantities')">
<el-dropdown-item
:command="{
...scope.row,
option: $t('form.pos.tableProduct.editQuantities')
}"
>
<el-popover
placement="right"
trigger="click"
@ -452,6 +463,10 @@ export default {
return []
}
return this.currentOrder.lineOrder
},
currentLineOrder() {
console.log(this.$store.state['pointOfSales/orderLine/index'].line)
return this.$store.state['pointOfSales/orderLine/index'].line
}
},
mounted() {

View File

@ -25,6 +25,7 @@ export default [
isReadOnly: true,
handleActionPerformed: true,
handleContentSelection: true,
handleFocusGained: true,
handleActionKeyPerformed: true
}
},
@ -49,6 +50,7 @@ export default [
sequence: 10,
handleActionPerformed: true,
handleContentSelection: true,
handleFocusGained: true,
handleActionKeyPerformed: true
}
}

View File

@ -28,7 +28,10 @@
<field
v-if="field.columnName === 'PriceEntered'"
:key="field.columnName"
:metadata-field="field"
:metadata-field="{
...field,
isReadOnly: !isModifyPrice
}"
/>
<field
v-if="field.columnName === 'QtyEntered'"
@ -36,7 +39,9 @@
:metadata-field="field"
/>
<el-popover
v-if="columnNameVisible === field.columnName"
ref="ping"
v-model="visible"
placement="right"
trigger="click"
>
@ -58,21 +63,19 @@
<el-button
type="primary"
icon="el-icon-check"
@click="checkclosePing"
/>
{{
isPosRequiredPin
}}
</span>
<field
v-if="field.columnName === 'Discount'"
slot="reference"
:key="field.columnName"
:metadata-field="{
...field,
isReadOnly: !isModifyPrice || isPosRequiredPin
}"
/>
<el-button slot="reference" type="text" disabled @click="visible = !visible" />
</el-popover>
<field
v-if="field.columnName === 'Discount'"
:key="field.columnName"
:metadata-field="{
...field,
isReadOnly: !isModifyPrice
}"
/>
</el-form>
</el-col>
</template>
@ -127,21 +130,23 @@ export default {
fieldsListLine,
fieldsList: [],
input: '',
visible: false
visible: false,
columnNameVisible: '',
validatePing: false
}
},
computed: {
isModifyPrice() {
const pos = this.$store.getters.getCurrentPOS
const pos = this.$store.getters.posAttributes.currentPointOfSales
if (!this.isEmptyValue(pos.isModifyPrice)) {
return this.$store.getters.getCurrentPOS.isModifyPrice
return pos.isModifyPrice
}
return false
},
isPosRequiredPin() {
const pos = this.$store.getters.getCurrentPOS
if (!this.isEmptyValue(pos.isPosRequiredPin)) {
return this.$store.getters.getCurrentPOS.isPosRequiredPin
const pos = this.$store.getters.posAttributes.currentPointOfSales
if (!this.isEmptyValue(pos.isPosRequiredPin) && !this.validatePing) {
return pos.isPosRequiredPin
}
return false
}
@ -163,6 +168,12 @@ export default {
}
}
},
beforeMount() {
this.unsubscribe = this.subscribeChanges()
},
beforeDestroy() {
this.unsubscribe()
},
methods: {
createFieldFromDictionary,
notSubmitForm(event) {
@ -217,6 +228,18 @@ export default {
},
closePing() {
this.$refs.ping[this.$refs.ping.length - 1].showPopper = false
},
checkclosePing() {
this.validatePing = true
this.closePing()
},
subscribeChanges() {
return this.$store.subscribe((mutation, state) => {
if (mutation.type === 'addFocusGained' && this.isPosRequiredPin) {
this.columnNameVisible = mutation.payload.columnName
this.visible = true
}
})
}
}
}

View File

@ -51,13 +51,27 @@ export default {
label: 'Total',
isNumeric: true
}
},
currentOrderLine: {
product: {
value: 0,
name: '',
description: '',
priceStandard: 0
},
taxIndicator: 0,
quantityOrdered: 0,
uuid: ''
}
}
},
computed: {
},
methods: {
formatPercent,
changeLine(command) {
switch (command) {
switch (command.option) {
case 'Eliminar':
// this.deleteOrderLine()
break
@ -68,6 +82,7 @@ export default {
quantityOrdered: this.currentOrderLine.quantityOrdered,
discount: this.currentOrderLine.discount
})
this.currentOrderLine.uuid = command.uuid
this.edit = true
break
//
@ -113,22 +128,32 @@ export default {
switch (line.columnName) {
case 'QtyEntered':
quantity = line.value
price = line.line.price
discountRate = line.line.discountRate
break
case 'PriceEntered':
price = line.value
quantity = line.line.quantity
discountRate = line.line.discountRate
break
case 'Discount':
discountRate = line.value
price = line.line.price
quantity = line.line.quantity
break
}
requestUpdateOrderLine({
orderLineUuid: this.currentOrderLine.uuid,
orderLineUuid: line.line.uuid,
quantity,
price,
discountRate
})
.then(response => {
this.fillOrderLineQuantities({
currentPrice: response.price,
quantityOrdered: response.quantity,
discount: response.discountRate
})
this.fillOrderLine(response)
this.reloadOrder(true)
})
@ -173,12 +198,13 @@ export default {
} else if (columnName === 'QtyOrdered') {
return this.formatQuantity(row.quantityOrdered)
} else if (columnName === 'Discount') {
return this.formatPercent(row.discount)
return this.formatPercent(row.discount / 100)
} else if (columnName === 'GrandTotal') {
return this.formatPrice(row.grandTotal, currency)
}
},
handleCurrentLineChange(rowLine) {
this.$store.dispatch('currentLine', rowLine)
if (!this.isEmptyValue(rowLine)) {
this.currentOrderLine = rowLine
this.currentTable = this.listOrderLine.findIndex(item => item.uuid === rowLine.uuid)
@ -192,25 +218,25 @@ export default {
quantityOrdered,
discount
}) {
const containerUuid = this.formUuid
// const containerUuid = this.formUuid
// Editable fields
if (!this.isEmptyValue(quantityOrdered)) {
this.$store.commit('updateValueOfField', {
containerUuid,
containerUuid: 'line',
columnName: 'QtyEntered',
value: quantityOrdered
})
}
if (!this.isEmptyValue(currentPrice)) {
this.$store.commit('updateValueOfField', {
containerUuid,
containerUuid: 'line',
columnName: 'PriceEntered',
value: currentPrice
})
}
if (!this.isEmptyValue(discount)) {
this.$store.commit('updateValueOfField', {
containerUuid,
containerUuid: 'line',
columnName: 'Discount',
value: discount
})

View File

@ -40,16 +40,6 @@ export default {
return {
product: {},
currentTable: 0,
currentOrderLine: {
product: {
value: 0,
name: '',
description: '',
priceStandard: 0
},
taxIndicator: 0,
quantityOrdered: 0
},
orderLines: [],
products: {
uuid: '',
@ -64,7 +54,7 @@ export default {
return this.$store.getters['user/getWarehouse']
},
isSetTemplateBP() {
const currentPOS = this.currentPoint
const currentPOS = this.currentPointOfSales
if (!this.isEmptyValue(currentPOS) &&
!this.isEmptyValue(currentPOS.templateBusinessPartner) &&
this.isEmptyValue(this.$route.query.action)) {
@ -200,10 +190,10 @@ export default {
},
updateOrder(update) {
// user session
if (update.value !== this.currentOrder.businessPartner.uuid && !this.isEmptyValue(this.currentPoint)) {
if (!this.isEmptyValue(update.value) && update.value !== this.currentOrder.businessPartner.uuid && !this.isEmptyValue(this.currentPointOfSales)) {
this.$store.dispatch('updateOrder', {
orderUuid: this.$route.query.action,
posUuid: this.currentPoint.uuid,
posUuid: this.currentPointOfSales.uuid,
customerUuid: update.value
})
}
@ -312,7 +302,7 @@ export default {
this.createOrderLine(response.uuid)
}
this.$store.dispatch('listOrdersFromServer', {
posUuid: this.currentPoint.uuid
posUuid: this.currentPointOfSales.uuid
})
}).catch(() => {})
})
@ -375,7 +365,10 @@ export default {
case 'PriceEntered':
case 'Discount':
if (!this.isEmptyValue(this.currentOrderLine)) {
this.updateOrderLine(mutation.payload)
this.updateOrderLine({
...mutation.payload,
line: this.$store.state['pointOfSales/orderLine/index'].line
})
}
break
}
@ -387,8 +380,8 @@ export default {
case 'C_BPartner_ID_UUID': {
const bPartnerValue = mutation.payload.value
if (!this.isEmptyValue(this.currentPoint)) {
const bPartnerPOS = this.currentPoint.templateBusinessPartner.uuid
if (!this.isEmptyValue(this.currentPointOfSales)) {
const bPartnerPOS = this.currentPointOfSales.templateBusinessPartner.uuid
// Does not send values to server, when empty values are set or
// if BPartner set equal to BPartner POS template
if (this.isEmptyValue(bPartnerValue) || bPartnerValue === bPartnerPOS) {

View File

@ -84,5 +84,8 @@ export default {
}
})
commit('setListOrderLine', found)
},
currentLine({ commit }, currentLine) {
commit('setLine', currentLine)
}
}

View File

@ -21,5 +21,8 @@
export default {
setListOrderLine(state, listOrderLine) {
state.listOrderLine = listOrderLine
},
setLine(state, line) {
state.line = line
}
}

View File

@ -19,5 +19,6 @@
*/
export default {
listOrderLine: []
listOrderLine: [],
line: {}
}