possibilità di modificare un ordine, e anche i totali
This commit is contained in:
@@ -3,11 +3,12 @@ import { CCardState } from '../CCardState'
|
||||
import { CCopyBtn } from '../CCopyBtn'
|
||||
|
||||
import { IOperators, IOrder, IProduct } from '@src/model'
|
||||
import { defineComponent, PropType, toRef } from 'vue'
|
||||
import { defineComponent, PropType, toRef, ref, watch, onMounted } from 'vue'
|
||||
import { CTitleBanner } from '@src/components/CTitleBanner'
|
||||
import { useProducts } from '@store/Products'
|
||||
import { useI18n } from '@src/boot/i18n'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { loadRouteLocation } from 'vue-router'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CSingleCart',
|
||||
@@ -45,6 +46,47 @@ export default defineComponent({
|
||||
|
||||
const $q = useQuasar()
|
||||
|
||||
const orderQuantity = ref(<number | undefined>undefined);
|
||||
const orderQuantityPreordered = ref(<number | undefined>undefined);
|
||||
const orderTotalPriceProduct = ref(<number | undefined>undefined);
|
||||
|
||||
const enableQty = ref(false)
|
||||
const endload = ref(false)
|
||||
const enableQtyPreordered = ref(false)
|
||||
const enableChangeTotalPrice = ref(false)
|
||||
|
||||
watch(orderQuantity, (newValue: any) => {
|
||||
if (!newValue)
|
||||
order.value.quantity = 0
|
||||
else
|
||||
order.value.quantity = parseFloat(newValue);
|
||||
|
||||
enableChangeTotalPrice.value = false
|
||||
});
|
||||
|
||||
watch(orderQuantityPreordered, (newValue: any) => {
|
||||
if (!newValue)
|
||||
order.value.quantitypreordered = 0
|
||||
else
|
||||
order.value.quantitypreordered = parseFloat(newValue);
|
||||
|
||||
enableChangeTotalPrice.value = false
|
||||
});
|
||||
|
||||
watch(orderTotalPriceProduct, (newValue: any) => {
|
||||
if (!newValue)
|
||||
order.value.TotalPriceProduct = 0
|
||||
else
|
||||
order.value.TotalPriceProduct = parseFloat(newValue);
|
||||
});
|
||||
|
||||
watch(() => props.order.TotalPriceProduct, (newValue: any) => {
|
||||
if (!newValue)
|
||||
orderTotalPriceProduct.value = 0
|
||||
else
|
||||
orderTotalPriceProduct.value = parseFloat(newValue);
|
||||
});
|
||||
|
||||
function myimgclass() {
|
||||
if (props.showall) {
|
||||
return 'imgNormal'
|
||||
@@ -102,23 +144,46 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function removeFromCard() {
|
||||
if (props.idOrdersCart) {
|
||||
//
|
||||
} else {
|
||||
products.removeFromCart({ order: order.value })
|
||||
}
|
||||
|
||||
products.removeFromCart({ order: order.value })
|
||||
|
||||
}
|
||||
|
||||
async function updateOrder(paramstoupdate: any) {
|
||||
await products.updateOrderByOrder(props.idOrdersCart, order.value._id, paramstoupdate)
|
||||
endload.value = false
|
||||
if (enableChangeTotalPrice.value) {
|
||||
paramstoupdate = { ...paramstoupdate, TotalPriceProduct: order.value.TotalPriceProduct }
|
||||
}
|
||||
const myOrdersCart = await products.updateOrderByOrder(props.idOrdersCart, order.value._id, paramstoupdate)
|
||||
emit('update')
|
||||
mounted()
|
||||
}
|
||||
|
||||
function getRisparmio(): string {
|
||||
return ((order.value.product!.price * order.value.quantity) - order.value.TotalPriceProduct).toFixed(2)
|
||||
}
|
||||
|
||||
function mounted() {
|
||||
endload.value = false
|
||||
if (props.order.quantity !== 0) {
|
||||
orderQuantity.value = props.order.quantity
|
||||
enableQty.value = true
|
||||
}
|
||||
if (props.order.quantitypreordered !== 0) {
|
||||
orderQuantityPreordered.value = props.order.quantitypreordered
|
||||
enableQtyPreordered.value = true
|
||||
}
|
||||
|
||||
orderTotalPriceProduct.value = props.order.TotalPriceProduct
|
||||
endload.value = true
|
||||
}
|
||||
|
||||
function changeTotalPrice() {
|
||||
console.log('changeTotalPrice')
|
||||
enableChangeTotalPrice.value = true
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
myimgclass,
|
||||
addsubqty,
|
||||
@@ -129,6 +194,13 @@ export default defineComponent({
|
||||
products,
|
||||
t,
|
||||
updateOrder,
|
||||
orderQuantity,
|
||||
orderQuantityPreordered,
|
||||
enableQty,
|
||||
enableQtyPreordered,
|
||||
changeTotalPrice,
|
||||
orderTotalPriceProduct,
|
||||
endload,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -24,7 +24,13 @@
|
||||
v-if="order.product.productInfo.unit"
|
||||
>
|
||||
{{ tools.getWeightTotalByOrder(order) }}
|
||||
{{ tools.getUnitsMeasure(order.product.productInfo.unit, true, order.product.productInfo.weight) }}
|
||||
{{
|
||||
tools.getUnitsMeasure(
|
||||
order.product.productInfo.unit,
|
||||
true,
|
||||
order.product.productInfo.weight
|
||||
)
|
||||
}}
|
||||
</div>
|
||||
<div class="row q-mb-xs no-wrap items-center centeritems">
|
||||
<q-btn
|
||||
@@ -43,7 +49,8 @@
|
||||
></q-btn>
|
||||
<div v-if="editmode">
|
||||
<q-input
|
||||
v-model="order.quantity"
|
||||
v-if="enableQty"
|
||||
v-model="orderQuantity"
|
||||
autofocus
|
||||
debounce="500"
|
||||
borderless
|
||||
@@ -52,16 +59,28 @@
|
||||
:label="t('products.quantity')"
|
||||
></q-input>
|
||||
<q-input
|
||||
v-model="order.quantitypreordered"
|
||||
v-if="enableQtyPreordered"
|
||||
v-model="orderQuantityPreordered"
|
||||
autofocus
|
||||
debounce="500"
|
||||
borderless
|
||||
rounded
|
||||
densep
|
||||
:label="t('ecomm.preord')"
|
||||
></q-input>
|
||||
</div>
|
||||
<div v-if="editmode">
|
||||
<q-input
|
||||
v-model="orderTotalPriceProduct"
|
||||
autofocus
|
||||
debounce="500"
|
||||
borderless
|
||||
rounded
|
||||
dense
|
||||
:label="t('ecomm.preord')"
|
||||
@change="changeTotalPrice"
|
||||
:label="t('orderscart.TotalPriceProduct')"
|
||||
></q-input>
|
||||
</div>
|
||||
<div v-if="tools.isManager">
|
||||
|
||||
<q-btn
|
||||
outline
|
||||
rounded
|
||||
@@ -69,7 +88,12 @@
|
||||
color="green"
|
||||
icon="fas fa-redo"
|
||||
:label="t('orderscart.update_order')"
|
||||
@click="updateOrder({quantitypreordered: order.quantitypreordered, quantity: order.quantity})"
|
||||
@click="
|
||||
updateOrder({
|
||||
quantitypreordered: order.quantitypreordered,
|
||||
quantity: order.quantity,
|
||||
})
|
||||
"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
@@ -108,30 +132,40 @@
|
||||
: 0
|
||||
}}
|
||||
</span>
|
||||
<span v-if="tools.isManager() && order.TotalPriceProduct !== order.TotalPriceProductCalc"
|
||||
:class="isApplicatoSconto() ? 'ordine_scontato_nuovo' : ''">
|
||||
(Calc: €
|
||||
{{
|
||||
order.TotalPriceProductCalc
|
||||
? order.TotalPriceProductCalc.toFixed(2)
|
||||
: 0
|
||||
}})
|
||||
</span>
|
||||
|
||||
<span v-if="isApplicatoSconto()">
|
||||
<span class="ordine_scontato"
|
||||
>(<span class="barrato"
|
||||
>€
|
||||
{{
|
||||
(
|
||||
order.price * order.quantity +
|
||||
order.price * order.quantitypreordered
|
||||
(order.price * order.quantity) +
|
||||
(order.price * order.quantitypreordered)
|
||||
).toFixed(2)
|
||||
}}</span
|
||||
>)</span
|
||||
>
|
||||
</span>
|
||||
<span v-if="isApplicatoSconto()" class="ordine_scritta_sconto">{{
|
||||
<span v-if="isApplicatoSconto() && !editmode" class="ordine_scritta_sconto">{{
|
||||
$t('ecomm.sconto_applicato', { risparmio: getRisparmio() })
|
||||
}}</span>
|
||||
</div>
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section side top>
|
||||
<q-item-section side>
|
||||
<q-item-label>
|
||||
<div class="col-1">
|
||||
<div class="col-2">
|
||||
<q-btn
|
||||
v-if="!nomodif && editmode"
|
||||
v-if="!nomodif"
|
||||
icon="fas fa-trash"
|
||||
color="negative"
|
||||
round
|
||||
|
||||
Reference in New Issue
Block a user