mirror of
https://github.com/PanJiaChen/vue-element-admin.git
synced 2025-08-10 20:39:48 +08:00
- Validate POS options (#1085)
- Fixe Delete Line Service Co-authored-by: elsiosanchez <elsiossanches@gmail.com>
This commit is contained in:
parent
11aaab3b35
commit
342464d3c5
@ -28,7 +28,6 @@
|
|||||||
<el-form>
|
<el-form>
|
||||||
<el-form-item>
|
<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="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="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-radio v-model="option" :label="4"> {{ $t('form.pos.collect.overdrawnInvoice.adjustDocument') }}</el-radio>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<p
|
<p
|
||||||
:style="blockOption"
|
:style="blockOption"
|
||||||
@click="generateImmediateInvoice"
|
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.generateImmediateInvoice')) : generateImmediateInvoice"
|
||||||
>
|
>
|
||||||
<i class="el-icon-document-add" />
|
<i class="el-icon-document-add" />
|
||||||
<br>
|
<br>
|
||||||
@ -90,7 +90,7 @@
|
|||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<p
|
<p
|
||||||
:style="blockOption"
|
:style="blockOption"
|
||||||
@click="adviserPin ? '' : completePreparedOrder"
|
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.completePreparedOrder')) : completePreparedOrder"
|
||||||
>
|
>
|
||||||
<i class="el-icon-success" />
|
<i class="el-icon-success" />
|
||||||
<br>
|
<br>
|
||||||
@ -103,7 +103,7 @@
|
|||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<p
|
<p
|
||||||
:style="blockOption"
|
:style="blockOption"
|
||||||
@click="adviserPin ? '' : reverseSalesTransaction"
|
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.cancelSaleTransaction')) : reverseSalesTransaction"
|
||||||
>
|
>
|
||||||
<i class="el-icon-error" />
|
<i class="el-icon-error" />
|
||||||
<br>
|
<br>
|
||||||
@ -116,7 +116,7 @@
|
|||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<p
|
<p
|
||||||
:style="blockOption"
|
:style="blockOption"
|
||||||
@click="withdrawal"
|
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.createPos')) : withdrawal"
|
||||||
>
|
>
|
||||||
<i class="el-icon-document-remove" />
|
<i class="el-icon-document-remove" />
|
||||||
<br>
|
<br>
|
||||||
@ -129,7 +129,7 @@
|
|||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<p
|
<p
|
||||||
:style="blockOption"
|
:style="blockOption"
|
||||||
@click="adviserPin ? '' : printOrder"
|
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.print')) : printOrder"
|
||||||
>
|
>
|
||||||
<i class="el-icon-printer" />
|
<i class="el-icon-printer" />
|
||||||
<br>
|
<br>
|
||||||
@ -141,7 +141,7 @@
|
|||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<p
|
<p
|
||||||
:style="blockOption"
|
:style="blockOption"
|
||||||
@click="createNewCustomerReturnOrder"
|
@click="adviserPin ? validateOption('Crear Nueva Orden de Devolución') : createNewCustomerReturnOrder"
|
||||||
>
|
>
|
||||||
<i class="el-icon-refresh-left" />
|
<i class="el-icon-refresh-left" />
|
||||||
<br>
|
<br>
|
||||||
@ -153,7 +153,7 @@
|
|||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<p
|
<p
|
||||||
:style="blockOption"
|
:style="blockOption"
|
||||||
@click="copyOrder "
|
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.copyOrder')) : copyOrder "
|
||||||
>
|
>
|
||||||
<i class="el-icon-document-copy" />
|
<i class="el-icon-document-copy" />
|
||||||
<br>
|
<br>
|
||||||
@ -165,7 +165,7 @@
|
|||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<p
|
<p
|
||||||
:style="blockOption"
|
:style="blockOption"
|
||||||
@click="deleteOrder"
|
@click="adviserPin ? validateOption($t('form.pos.optionsPoinSales.salesOrder.cancelOrder')) : deleteOrder"
|
||||||
>
|
>
|
||||||
<i class="el-icon-close" />
|
<i class="el-icon-close" />
|
||||||
<br>
|
<br>
|
||||||
@ -219,7 +219,7 @@
|
|||||||
<el-row :gutter="24" style="padding-right: 10px;">
|
<el-row :gutter="24" style="padding-right: 10px;">
|
||||||
<el-col :span="size">
|
<el-col :span="size">
|
||||||
<el-card shadow="hover">
|
<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
|
<p
|
||||||
style="cursor: pointer;text-align: center !important;color: black;min-height: 50px;margin: 0px;"
|
style="cursor: pointer;text-align: center !important;color: black;min-height: 50px;margin: 0px;"
|
||||||
>
|
>
|
||||||
@ -311,6 +311,29 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
</el-collapse>
|
</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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -327,6 +350,7 @@ import {
|
|||||||
createOrder,
|
createOrder,
|
||||||
processOrder
|
processOrder
|
||||||
} from '@/api/ADempiere/form/point-of-sales.js'
|
} 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 ModalDialog from '@/components/ADempiere/Dialog'
|
||||||
import posProcess from '@/utils/ADempiere/constants/posProcess'
|
import posProcess from '@/utils/ADempiere/constants/posProcess'
|
||||||
import orderLineMixin from '@/components/ADempiere/Form/VPOS/Order/orderLineMixin.js'
|
import orderLineMixin from '@/components/ADempiere/Form/VPOS/Order/orderLineMixin.js'
|
||||||
@ -351,11 +375,21 @@ export default {
|
|||||||
return {
|
return {
|
||||||
activeName: '',
|
activeName: '',
|
||||||
processPos: '',
|
processPos: '',
|
||||||
|
pin: '',
|
||||||
|
attributePin: {},
|
||||||
|
validatePin: true,
|
||||||
|
visible: false,
|
||||||
showFieldListOrder: false,
|
showFieldListOrder: false,
|
||||||
posProcess
|
posProcess
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
infowOverdrawnInvoice() {
|
||||||
|
if (this.$store.getters.getOverdrawnInvoice.attributePin) {
|
||||||
|
return this.$store.getters.getOverdrawnInvoice.attributePin
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
},
|
||||||
allowsReturnOrder() {
|
allowsReturnOrder() {
|
||||||
return this.$store.getters.posAttributes.currentPointOfSales.isAllowsReturnOrder
|
return this.$store.getters.posAttributes.currentPointOfSales.isAllowsReturnOrder
|
||||||
},
|
},
|
||||||
@ -389,12 +423,9 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
adviserPin() {
|
adviserPin() {
|
||||||
return this.$store.getters.posAttributes.currentPointOfSales.isAisleSeller
|
return this.$store.getters.posAttributes.currentPointOfSales.isPosRequiredPin
|
||||||
},
|
},
|
||||||
blockOption() {
|
blockOption() {
|
||||||
if (this.adviserPin) {
|
|
||||||
return 'cursor: not-allowed; text-align: center !important; color: gray;min-height: 50px;'
|
|
||||||
}
|
|
||||||
if (!this.isEmptyValue(this.currentOrder.uuid)) {
|
if (!this.isEmptyValue(this.currentOrder.uuid)) {
|
||||||
return 'cursor: pointer; text-align: center !important; color: black;min-height: 50px;'
|
return 'cursor: pointer; text-align: center !important; color: black;min-height: 50px;'
|
||||||
}
|
}
|
||||||
@ -449,10 +480,96 @@ export default {
|
|||||||
return this.currentPointOfSales.currentOrder
|
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() {
|
created() {
|
||||||
this.findProcess(this.posProcess)
|
this.findProcess(this.posProcess)
|
||||||
},
|
},
|
||||||
methods: {
|
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) {
|
notSubmitForm(event) {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
return false
|
return false
|
||||||
@ -550,11 +667,9 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
createNewCustomerReturnOrder() {
|
createNewCustomerReturnOrder() {
|
||||||
if (this.isPosRequiredPin) {
|
createNewReturnOrder({
|
||||||
createNewReturnOrder({
|
orderUuid: this.$route.query.action
|
||||||
orderUuid: this.$route.query.action
|
})
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
showModal(action) {
|
showModal(action) {
|
||||||
this.$store.dispatch('setShowDialog', {
|
this.$store.dispatch('setShowDialog', {
|
||||||
@ -627,7 +742,7 @@ export default {
|
|||||||
}
|
}
|
||||||
this.$store.dispatch('updateOrderPos', true)
|
this.$store.dispatch('updateOrderPos', true)
|
||||||
deleteOrder({
|
deleteOrder({
|
||||||
orderUuid: this.$route.query.action
|
orderUuid: this.currentOrder.uuid
|
||||||
})
|
})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
this.changePos(this.currentPointOfSales)
|
this.changePos(this.currentPointOfSales)
|
||||||
|
@ -242,7 +242,7 @@
|
|||||||
v-show="isValidForDeleteLine(listOrderLine)"
|
v-show="isValidForDeleteLine(listOrderLine)"
|
||||||
type="success"
|
type="success"
|
||||||
icon="el-icon-bank-card"
|
icon="el-icon-bank-card"
|
||||||
:disabled="allowsCollectOrder"
|
:disabled="!allowsCollectOrder"
|
||||||
@click="openCollectionPanel"
|
@click="openCollectionPanel"
|
||||||
>
|
>
|
||||||
{{ labelButtonCollections }}
|
{{ labelButtonCollections }}
|
||||||
|
@ -267,6 +267,21 @@ export default {
|
|||||||
}
|
}
|
||||||
} else if (action.type === 'addProduct') {
|
} else if (action.type === 'addProduct') {
|
||||||
this.findProduct(action.value)
|
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') {
|
} else if (action.type === 'actionPos') {
|
||||||
switch (action.action) {
|
switch (action.action) {
|
||||||
case 'changeWarehouse':
|
case 'changeWarehouse':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user