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

- Validate POS options (#1085)

- Fixe Delete Line Service

Co-authored-by: elsiosanchez <elsiossanches@gmail.com>
This commit is contained in:
Elsio Sanchez 2021-08-19 23:19:11 -04:00 committed by GitHub
parent 11aaab3b35
commit 342464d3c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 150 additions and 21 deletions

View File

@ -28,7 +28,6 @@
<el-form>
<el-form-item>
<el-radio v-model="option" :label="1"> {{ $t('form.pos.collect.overdrawnInvoice.returned') }} {{ formatPrice(change, currency.iSOCode) }} </el-radio>
<el-radio v-model="option" :label="2"> {{ $t('form.pos.collect.overdrawnInvoice.coupon') }}</el-radio>
<el-radio v-model="option" :label="3"> {{ $t('form.pos.collect.overdrawnInvoice.returnMoney') }}</el-radio>
<el-radio v-model="option" :label="4"> {{ $t('form.pos.collect.overdrawnInvoice.adjustDocument') }}</el-radio>
</el-form-item>

View File

@ -77,7 +77,7 @@
<el-card shadow="hover">
<p
:style="blockOption"
@click="generateImmediateInvoice"
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.generateImmediateInvoice')) : generateImmediateInvoice"
>
<i class="el-icon-document-add" />
<br>
@ -90,7 +90,7 @@
<el-card shadow="hover">
<p
:style="blockOption"
@click="adviserPin ? '' : completePreparedOrder"
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.completePreparedOrder')) : completePreparedOrder"
>
<i class="el-icon-success" />
<br>
@ -103,7 +103,7 @@
<el-card shadow="hover">
<p
:style="blockOption"
@click="adviserPin ? '' : reverseSalesTransaction"
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.cancelSaleTransaction')) : reverseSalesTransaction"
>
<i class="el-icon-error" />
<br>
@ -116,7 +116,7 @@
<el-card shadow="hover">
<p
:style="blockOption"
@click="withdrawal"
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.createPos')) : withdrawal"
>
<i class="el-icon-document-remove" />
<br>
@ -129,7 +129,7 @@
<el-card shadow="hover">
<p
:style="blockOption"
@click="adviserPin ? '' : printOrder"
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.print')) : printOrder"
>
<i class="el-icon-printer" />
<br>
@ -141,7 +141,7 @@
<el-card shadow="hover">
<p
:style="blockOption"
@click="createNewCustomerReturnOrder"
@click="adviserPin ? validateOption('Crear Nueva Orden de Devolución') : createNewCustomerReturnOrder"
>
<i class="el-icon-refresh-left" />
<br>
@ -153,7 +153,7 @@
<el-card shadow="hover">
<p
:style="blockOption"
@click="copyOrder "
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.copyOrder')) : copyOrder "
>
<i class="el-icon-document-copy" />
<br>
@ -165,7 +165,7 @@
<el-card shadow="hover">
<p
:style="blockOption"
@click="deleteOrder"
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.cancelOrder')) : deleteOrder"
>
<i class="el-icon-close" />
<br>
@ -219,7 +219,7 @@
<el-row :gutter="24" style="padding-right: 10px;">
<el-col :span="size">
<el-card shadow="hover">
<el-dropdown trigger="click" style="padding-top: 8px;color: black;display: block;" @command="changePos">
<el-dropdown trigger="click" style="padding-top: 8px;color: black;display: block;" @command="adviserPin ? validateOption($t('form.pos.optionsPoinSales.generalOptions.changePos')) : changePos">
<p
style="cursor: pointer;text-align: center !important;color: black;min-height: 50px;margin: 0px;"
>
@ -311,6 +311,29 @@
</el-row>
</el-collapse-item>
</el-collapse>
<el-dialog ref="dialog" :title="$t('form.pos.pinMessage.pin') + attributePin.label" width="40%" :visible.sync="visible">
<el-input
id="pin"
ref="pin"
v-model="pin"
:autofocus="true"
type="password"
:placeholder="$t('form.pos.tableProduct.pin')"
:focus="true"
/>
<span style="float: right;">
<el-button
type="danger"
icon="el-icon-close"
@click="closePin"
/>
<el-button
type="primary"
icon="el-icon-check"
@click="openPin(pin)"
/>
</span>
</el-dialog>
</div>
</template>
@ -327,6 +350,7 @@ import {
createOrder,
processOrder
} from '@/api/ADempiere/form/point-of-sales.js'
import { validatePin } from '@/api/ADempiere/form/point-of-sales.js'
import ModalDialog from '@/components/ADempiere/Dialog'
import posProcess from '@/utils/ADempiere/constants/posProcess'
import orderLineMixin from '@/components/ADempiere/Form/VPOS/Order/orderLineMixin.js'
@ -351,11 +375,21 @@ export default {
return {
activeName: '',
processPos: '',
pin: '',
attributePin: {},
validatePin: true,
visible: false,
showFieldListOrder: false,
posProcess
}
},
computed: {
infowOverdrawnInvoice() {
if (this.$store.getters.getOverdrawnInvoice.attributePin) {
return this.$store.getters.getOverdrawnInvoice.attributePin
}
return ''
},
allowsReturnOrder() {
return this.$store.getters.posAttributes.currentPointOfSales.isAllowsReturnOrder
},
@ -389,12 +423,9 @@ export default {
}
},
adviserPin() {
return this.$store.getters.posAttributes.currentPointOfSales.isAisleSeller
return this.$store.getters.posAttributes.currentPointOfSales.isPosRequiredPin
},
blockOption() {
if (this.adviserPin) {
return 'cursor: not-allowed; text-align: center !important; color: gray;min-height: 50px;'
}
if (!this.isEmptyValue(this.currentOrder.uuid)) {
return 'cursor: pointer; text-align: center !important; color: black;min-height: 50px;'
}
@ -449,10 +480,96 @@ export default {
return this.currentPointOfSales.currentOrder
}
},
// watch: {
// visible(value) {
// if (value && !this.isEmptyValue(this.$refs)) {
// setTimeout(() => {
// this.focusPin()
// }, 500)
// } else {
// this.$store.dispatch('changePopoverOverdrawnInvoice', { visible: value })
// }
// }
// },
created() {
this.findProcess(this.posProcess)
},
methods: {
closePin() {
this.visible = false
this.$store.dispatch('changePopoverOverdrawnInvoice', { visible: false })
this.pin = ''
},
focusPin() {
this.$refs.pin.focus()
},
openPin(pin) {
validatePin({
posUuid: this.currentPointOfSales.uuid,
pin
})
.then(response => {
this.validatePin = true
this.pin = ''
this.visible = false
this.optionPin(this.attributePin)
this.$message({
type: 'success',
message: 'Acción a realizar',
showClose: true
})
})
.catch(error => {
console.error(error.message)
this.$message({
type: 'error',
message: error.message,
showClose: true
})
this.pin = ''
})
.finally(() => {
this.visible = false
})
},
validateOption(name) {
this.visible = true
this.attributePin = {
type: 'updateOrder',
label: name
}
},
optionPin(action) {
switch (action.label) {
case 'Crear Nueva Orden de Devolución':
this.createNewCustomerReturnOrder()
break
case this.$t('form.pos.optionsPoinSales.salesOrder.completePreparedOrder'):
this.completePreparedOrder()
break
case this.$t('form.pos.optionsPoinSales.salesOrder.generateImmediateInvoice'):
this.generateImmediateInvoice()
break
case this.$t('form.pos.optionsPoinSales.salesOrder.cancelSaleTransaction'):
this.reverseSalesTransaction()
break
case this.$t('form.pos.optionsPoinSales.salesOrder.createPos'):
this.withdrawal()
break
case this.$t('form.pos.optionsPoinSales.salesOrder.print'):
this.printOrder()
break
case this.$t('form.pos.optionsPoinSales.salesOrder.copyOrder'):
this.copyOrder()
break
case this.$t('form.pos.optionsPoinSales.salesOrder.cancelOrder'):
this.deleteOrder()
break
case this.$t('form.pos.optionsPoinSales.generalOptions.changePos'):
this.changePos()
break
}
},
notSubmitForm(event) {
event.preventDefault()
return false
@ -550,11 +667,9 @@ export default {
})
},
createNewCustomerReturnOrder() {
if (this.isPosRequiredPin) {
createNewReturnOrder({
orderUuid: this.$route.query.action
})
}
createNewReturnOrder({
orderUuid: this.$route.query.action
})
},
showModal(action) {
this.$store.dispatch('setShowDialog', {
@ -627,7 +742,7 @@ export default {
}
this.$store.dispatch('updateOrderPos', true)
deleteOrder({
orderUuid: this.$route.query.action
orderUuid: this.currentOrder.uuid
})
.then(response => {
this.changePos(this.currentPointOfSales)

View File

@ -242,7 +242,7 @@
v-show="isValidForDeleteLine(listOrderLine)"
type="success"
icon="el-icon-bank-card"
:disabled="allowsCollectOrder"
:disabled="!allowsCollectOrder"
@click="openCollectionPanel"
>
{{ labelButtonCollections }}

View File

@ -267,6 +267,21 @@ export default {
}
} else if (action.type === 'addProduct') {
this.findProduct(action.value)
} else if (action.type === 'deleteLine') {
deleteOrderLine({
orderLineUuid: action.uuid
})
.then(response => {
this.$store.dispatch('reloadOrder', { orderUuid: this.$store.getters.posAttributes.currentPointOfSales.currentOrder.uuid })
})
.catch(error => {
console.error(error.message)
this.$message({
type: 'error',
message: error.message,
showClose: true
})
})
} else if (action.type === 'actionPos') {
switch (action.action) {
case 'changeWarehouse':