Corretto Ordini e visualizzazione dei Totali

This commit is contained in:
Surya Paolo
2023-12-15 21:50:28 +01:00
parent 6a1a1fb249
commit 8399df8663
16 changed files with 376 additions and 170 deletions

View File

@@ -4,7 +4,7 @@
<div class="container">
<div class="row">
<div class="q-pa-md row items-start q-gutter-md" v-for="(product, index) in getProducts()" :key="index">
<CProductCard :product="product"/>
<CProductCard :code="product.code"/>
</div>
</div>
</div>

View File

@@ -1,4 +1,4 @@
import { defineComponent, onMounted, ref } from 'vue'
import { defineComponent, onMounted, ref, computed } from 'vue'
import { tools } from '@store/Modules/tools'
import { useUserStore } from '@store/UserStore'
import { useRouter } from 'vue-router'
@@ -31,8 +31,15 @@ export default defineComponent({
const myrec = ref(<any[string]>[])
const oldrec = ref(<any[string]>[])
const note = ref('')
const endload = ref(false)
const recOrderCart = ref(<IOrderCart>{})
const statusnow = ref(shared_consts.OrderStatus.NONE)
const statusnow = computed(() => (): number => {
if (recOrderCart.value) {
return recOrderCart.value.status
}
return 0
})
function mounted() {
// Inizializza
@@ -98,10 +105,12 @@ export default defineComponent({
note.value = mycart.value.note!
if (mycart.value) {
recOrderCart.value = await productStore.CreateOrdersCart({ cart_id: mycart.value._id, status: 0 })
recOrderCart.value = await productStore.CreateOrdersCart({ cart_id: mycart.value._id, status: 0, note: note.value })
}
console.log('myrec', myrec.value)
endload.value = true
}
function CanBeShipped() {
@@ -150,11 +159,11 @@ export default defineComponent({
}).onOk(async () => {
const status = shared_consts.OrderStatus.CHECKOUT_SENT
const myordercart = await productStore.CreateOrdersCart({ cart_id: mycart.value._id, status })
recOrderCart.value = await productStore.CreateOrdersCart({ cart_id: mycart.value._id, status, note: note.value })
statusnow.value = myordercart ? myordercart.status : 0
// statusnow.value = myordercart ? myordercart.status : 0
if (statusnow.value === status) {
if (recOrderCart.value.status === status) {
tools.showPositiveNotif($q, t('ecomm.ord_confirmed'))
setTimeout(() => {
$router.push('/orderinfo')
@@ -187,6 +196,7 @@ export default defineComponent({
myTotalQty,
recOrderCart,
mycart,
endload,
}
}
})

View File

@@ -1,50 +1,62 @@
<template>
<q-page v-if="recOrderCart">
<CTitleBanner title="Carrello"></CTitleBanner>
<div class="panel">
<div>
<div class="container">
<div
class="q-pa-sm col items-start q-gutter-xs"
v-for="(itemorder, index) in getItemsCart()"
:key="index"
>
<CSingleCart :order="itemorder.order" :showall="true" />
<q-page>
<CTitleBanner :title="$t('ecomm.carrello')"></CTitleBanner>
{{ tools.getstrDateTimeShort(mycart.modify_at) }}
<q-spinner v-if="!endload" color="primary" size="3em" :thickness="2" />
<div v-if="endload">
<div v-if="recOrderCart" class="panel">
<div>
<div class="container">
<div
class="q-pa-sm col items-start q-gutter-xs"
v-for="(itemorder, index) in getItemsCart()"
:key="index"
>
<CSingleCart :order="itemorder.order" :showall="true" />
</div>
</div>
</div>
<q-separator></q-separator>
<div class="col-6 q-mr-sm" style="text-align: right">
<span class="text-grey q-mr-xs">Totale:</span>
<span class="text-subtitle1 q-mr-sm"> {{ myTotalPrice() }}</span>
<q-separator></q-separator>
<div class="col-6 q-mr-sm" style="text-align: right">
<span class="text-grey q-mr-xs">{{ $t('ecomm.totale') }}:</span>
<span class="text-subtitle1 q-mr-sm"> {{ myTotalPrice() }}</span>
</div>
<q-input
v-if="getNumItems() > 0"
v-model="note"
style="max-width: 400px"
:label="$t('ecomm.note')"
filled
dense
debounce="1000"
autogrow
@input="change_field('note')"
>
</q-input>
<br />
</div>
<q-input
v-if="getNumItems() > 0"
v-model="note"
style="max-width: 400px"
label="Scrivi qui per eventuali note o chiarimenti:"
filled
dense
debounce="1000"
autogrow
@input="change_field('note')"
>
</q-input>
recOrderCart.status: {{ recOrderCart.status }}
<br />
<div class="text-center">
<q-btn
v-if="
recOrderCart &&
recOrderCart.status < shared_consts.OrderStatus.CHECKOUT_SENT
"
rounded
icon="fas fa-shopping-cart"
color="green"
:label="$t('ecomm.completa_ord')"
class="q-mb-sm"
:disabled="myTotalQty() < 1"
@click="completeOrder()"
></q-btn>
</div>
</div>
<div class="text-center">
<q-btn
v-if="recOrderCart && recOrderCart.status < shared_consts.OrderStatus.CHECKOUT_SENT"
rounded
icon="fas fa-shopping-cart"
color="green"
:label="$t('ecomm.completa_ord')"
class="q-mb-sm"
:disabled="myTotalQty() < 1"
@click="completeOrder()"
></q-btn>
<div v-else style="text-align: center" class="text-grey">
{{ $t('ecomm.carrello_vuoto') }}
</div>
</div>
</q-page>

View File

@@ -23,4 +23,9 @@ $heightBtn: 100%;
.evaso {
font-weight: bold;
color: green;
}
.note {
font-style: italic;
color:blue;
}

View File

@@ -33,6 +33,7 @@ export default defineComponent({
const conferma_carrello = ref(false)
const conferma_ordine = ref(false)
const endload = ref(false)
const taborders = ref(shared_consts.OrderStat.IN_CORSO.value)
const statusnow = ref(0)
@@ -164,13 +165,11 @@ export default defineComponent({
arrnumstatus.value[status] = allorders.filter((rec) => (rec.status === status)).reduce((sum, item) => sum + 1, 0)
}
selectfirstavailable()
}
function mounted() {
updateorders()
taborders.value = -1
function selectfirstavailable() {
Object.keys(arrnumstatus.value).forEach((stat: any) => {
if (arrnumstatus.value[stat] > 0) {
@@ -178,6 +177,15 @@ export default defineComponent({
taborders.value = parseInt(stat)
}
})
}
async function mounted() {
await productStore.loadProducts()
taborders.value = -1
updateorders()
if (taborders.value === -1)
taborders.value = shared_consts.OrderStat.IN_CORSO.value
@@ -186,6 +194,8 @@ export default defineComponent({
if (tools.isManager()) {
columns.value = [...columns_Admin.value]
}
endload.value = true
}
function CanBeShipped() {
@@ -272,6 +282,7 @@ export default defineComponent({
getAllOrdersCart,
updateorders,
getCols,
endload,
}
}
})

View File

@@ -1,7 +1,8 @@
<template>
<q-page>
<CTitleBanner title="Ordini"></CTitleBanner>
<div class="panel">
<q-spinner v-if="!endload" color="primary" size="3em" :thickness="2" />
<div v-if="endload" class="panel">
<q-tabs v-model="taborders" inline-label class="text-blue">
<span v-for="(stat, index) of shared_consts.OrderStat" :key="index">
<q-tab
@@ -39,7 +40,7 @@
v-for="(item, index) of props.row.items"
:key="index"
>
<div v-if="!!item.order.product">
<div v-if="!!item.order && item.order.product">
{{ item.order.product.name }} ({{
item.order.quantity
}})<br />
@@ -82,12 +83,15 @@
</q-td>
<q-td key="items" :props="props">
<div v-for="(item, index) of props.row.items" :key="index">
<div v-if="!!item.order.product">
<div v-if="!!item.order && item.order.product">
{{ item.order.product.name }} ({{
item.order.quantity
}})<br />
</div>
</div>
<div v-if="props.row.note" class="note">
Note: {{ props.row.note }}
</div>
</q-td>
<q-td key="totalPrice" :props="props">
{{ props.row.totalPrice }}

View File

@@ -4,7 +4,7 @@
<div class="container">
<div class="row">
<div class="q-pa-md row items-start q-gutter-md" v-for="(product, index) in getProducts()" :key="index">
<CProductCard :product="product" :complete="false"/>
<CProductCard :code="product.code" :complete="false"/>
</div>
</div>
</div>