aggiornamento Ordini GAS filtri

This commit is contained in:
Surya Paolo
2024-02-13 18:13:36 +01:00
parent 6a01379b67
commit c6e0caa3f4
71 changed files with 1105 additions and 281 deletions

View File

@@ -36,6 +36,8 @@ export default defineComponent({
const cosa = ref(0)
const arrout = ref(<any[]>[])
const initialPagination = ref({
sortBy: 'desc',
descending: false,
@@ -47,6 +49,8 @@ export default defineComponent({
const conferma_ordine = ref(false)
const endload = ref(false)
const storeGasordine = ref(<any>'')
const taborders = ref(shared_consts.OrderStat.IN_CORSO.value)
const statusnow = ref(0)
const arrnumstatus = ref(<any[]>[])
@@ -165,7 +169,16 @@ export default defineComponent({
])
watch(() => cosa.value, (newval, oldval) => {
updateorders(true)
})
watch(() => taborders.value, (newval, oldval) => {
updateorders(false)
})
watch(() => storeGasordine.value, (newval, oldval) => {
tools.setCookie(tools.COOK_SELGAS, storeGasordine.value)
updateorders(true)
})
// const { setValDb, getValDb } = MixinBase()
@@ -176,7 +189,7 @@ export default defineComponent({
function getOrdersCart(): IOrderCart[] | undefined {
const hasGasordine: any = (cosa.value === shared_consts.PROD.TUTTI) ? undefined : (cosa.value === shared_consts.PROD.GAS)
const ris = productStore.getOrdersCart(taborders.value, hasGasordine)
const ris = productStore.getOrdersCart(taborders.value, hasGasordine, storeGasordine.value)
return ris
}
@@ -184,7 +197,7 @@ export default defineComponent({
function getOrdersCartWithTotals(): any[] {
const orderscart = getOrdersCart();
if (orderscart) {
if (orderscart && taborders.value > 0) {
// Calculate totals
const totals = {
created_at: new Date(),
@@ -216,10 +229,12 @@ export default defineComponent({
}
function getAllOrdersCart() {
return productStore.getOrdersAllCart()
return productStore.getOrdersAllCart(storeGasordine.value)
}
function updateorders() {
function updateorders(updatetab: boolean) {
arrout.value = []
myorderscart.value = getOrdersCart()
if (myorderscart.value) {
for (const orderscart of myorderscart.value) {
@@ -227,19 +242,22 @@ export default defineComponent({
}
}
const allorders = getAllOrdersCart()
for (const status of [15, 2, 3, 4, 5, 6, 7, 8, 10]) {
arrnumstatus.value[status] = allorders.filter((rec) => (rec.status === status)).reduce((sum, item) => sum + 1, 0)
if (updatetab) {
const allorders = getAllOrdersCart()
for (const status of [15, 2, 3, 4, 5, 6, 7, 8, 10]) {
arrnumstatus.value[status] = allorders.filter((rec) => (rec.status === status)).reduce((sum, item) => sum + 1, 0)
}
selectfirstavailable()
}
selectfirstavailable()
arrout.value = getOrdersCartWithTotals()
}
function selectfirstavailable() {
taborders.value = -1
Object.keys(arrnumstatus.value).forEach((stat: any) => {
if (arrnumstatus.value[stat] > 0) {
if (taborders.value === -1)
@@ -250,12 +268,14 @@ export default defineComponent({
async function mounted() {
taborders.value = -1
storeGasordine.value = tools.getCookie(tools.COOK_SELGAS, '')
await userStore.newsletterload(false)
await productStore.loadProducts()
taborders.value = -1
updateorders()
updateorders(true)
if (taborders.value === -1)
taborders.value = shared_consts.OrderStat.IN_CORSO.value
@@ -328,7 +348,7 @@ export default defineComponent({
if (statusnow.value === status) {
order.status = statusnow.value
updateorders()
updateorders(true)
tools.showPositiveNotif($q, 'Ordine ' + statusStr)
}
// change_field('status')
@@ -398,6 +418,8 @@ export default defineComponent({
sendMailTest,
templemail,
fieldsTable,
storeGasordine,
arrout,
}
}
})

View File

@@ -43,18 +43,41 @@
</template>
</q-btn-toggle>
</div>
<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 v-if="arrnumstatus[stat.value] > 0" :class="stat.color" :name="stat.value" :icon="stat.icon"
:label="`(` + arrnumstatus[stat.value] + `) ` + stat.label" />
<q-tab
v-if="arrnumstatus[stat.value] > 0"
:class="stat.color"
:name="stat.value"
:icon="stat.icon"
:label="`(` + arrnumstatus[stat.value] + `) ` + stat.label"
/>
</span>
</q-tabs>
<q-select
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
outlined
v-model="storeGasordine"
:options="productStore.getGasordines()"
:label="t('products.gasordine') + `:`"
emit-value
map-options
>
</q-select>
<div class="q-pa-sm">
<q-table :grid="$q.screen.lt.sm" :hide-header="$q.screen.lt.sm" :columns="columns" row-key="numorder"
:pagination="initialPagination" :rows="getOrdersCartWithTotals()">
<q-table
v-if="taborders > 0"
:grid="$q.screen.lt.sm"
:hide-header="$q.screen.lt.sm"
:columns="columns"
row-key="numorder"
:pagination="initialPagination"
:rows="arrout"
>
<template v-if="$q.screen.lt.sm" v-slot:item="props">
<div class="q-pa-xs col-xs-12 col-sm-6 col-md-4">
<q-card class="my-card-shadow yes_shadow">
@@ -64,13 +87,21 @@
<q-item-label>{{ col.label }}</q-item-label>
</q-item-section>
<q-item-section side>
<q-item-label v-if="col.name === 'created_at'" caption>{{ tools.getstrDateTime(col.value) }}
<q-item-label v-if="col.name === 'created_at'" caption
>{{ tools.getstrDateTime(col.value) }}
</q-item-label>
<q-item-label v-else-if="col.name === 'nameSurname'" caption>
<q-item-label
v-else-if="col.name === 'nameSurname'"
caption
>
<span v-if="props.row.user">
<span :class="props.row.user.name !== 'TOTALI' ? '' : 'totali'
">{{ tools.getNomeUtenteByRecUser(props.row.user) }}
</span></span>
<span
:class="
props.row.user.name !== 'TOTALI' ? '' : 'totali'
"
>{{ tools.getNomeUtenteByRecUser(props.row.user) }}
</span></span
>
</q-item-label>
<q-item-label v-else-if="col.name === 'items'" caption>
<div
@@ -85,33 +116,53 @@
item.order.product.productInfo
"
>
{{ productStore.getStrInfoOrder(t, item.order) }}
{{ item.order.product.productInfo.name }} ({{
productStore.getQuantityByOrder(t, item.order)
}})<br />
</div>
</div>
</q-item-label>
<q-item-label v-else-if="col.name === 'totalPrice'" caption>
<q-item-label
v-else-if="col.name === 'totalPrice'"
caption
>
{{ props.row.totalPrice }} €
</q-item-label>
<q-item-label v-else-if="col.name === 'totalPriceCalc'" caption>
<q-item-label
v-else-if="col.name === 'totalPriceCalc'"
caption
>
{{ props.row.totalPriceCalc }} €
</q-item-label>
<q-item-label v-else-if="col.name === 'status'" caption>
{{ shared_consts.getStatusStr(props.row.status) }}
</q-item-label>
<q-item-label v-else-if="col.name === 'comandi'" caption>
<div v-if="tools.isManager() &&
props.row.user.name !== 'TOTALI'
" class="q-pa-sm">
<div
v-if="
tools.isManager() &&
props.row.user.name !== 'TOTALI'
"
class="q-pa-sm"
>
<q-btn-dropdown rounded dense label="Azioni">
<q-list class="text-primary">
<q-item v-for="(
<q-item
v-for="(
cmd, index
) of shared_consts.OrderCmdStr" :key="index" clickable v-close-popup
@click="clickFunz(props.row, cmd.value)">
) of shared_consts.OrderCmdStr"
:key="index"
clickable
v-close-popup
@click="clickFunz(props.row, cmd.value)"
>
<q-item-section avatar>
<q-avatar :icon="cmd.icon" :color="cmd.color" text-color="white" />
<q-avatar
:icon="cmd.icon"
:color="cmd.color"
text-color="white"
/>
</q-item-section>
<q-item-section>
<q-item-label>{{ cmd.label }}</q-item-label>
@@ -121,8 +172,11 @@
</q-btn-dropdown>
</div>
</q-item-label>
<q-item-label v-else-if="col.name === 'apri' && props.row._id" caption>
<q-item-label
v-else-if="col.name === 'apri' && props.row._id"
caption
>
<div class="q-pa-sm">
<q-btn
size="sm"
@@ -158,13 +212,25 @@
</div>
</q-td>
<q-td key="comandi" :props="props">
<div v-if="tools.isManager() && props.row.user.name !== 'TOTALI'" class="q-pa-sm">
<div
v-if="tools.isManager() && props.row.user.name !== 'TOTALI'"
class="q-pa-sm"
>
<q-btn-dropdown rounded dense label="Azioni">
<q-list class="text-primary">
<q-item v-for="(cmd, index) of shared_consts.OrderCmdStr" :key="index" clickable v-close-popup
@click="clickFunz(props.row, cmd.value)">
<q-item
v-for="(cmd, index) of shared_consts.OrderCmdStr"
:key="index"
clickable
v-close-popup
@click="clickFunz(props.row, cmd.value)"
>
<q-item-section avatar>
<q-avatar :icon="cmd.icon" :color="cmd.color" text-color="white" />
<q-avatar
:icon="cmd.icon"
:color="cmd.color"
text-color="white"
/>
</q-item-section>
<q-item-section>
<q-item-label>{{ cmd.label }}</q-item-label>
@@ -176,19 +242,22 @@
</q-td>
<q-td key="numorder" :props="props">
<span v-if="props.row.numorder">
&nbsp; n. {{ props.row.numorder }}</span>
&nbsp; n. {{ props.row.numorder }}</span
>
</q-td>
<q-td key="nameSurname" :props="props">
<span v-if="props.row.user">
<span :class="props.row.user.name !== 'TOTALI' ? '' : 'totali'">{{
tools.getNomeUtenteByRecUser(props.row.user) }}
</span></span>
<span
:class="props.row.user.name !== 'TOTALI' ? '' : 'totali'"
>{{ tools.getNomeUtenteByRecUser(props.row.user) }}
</span></span
>
</q-td>
<q-td key="created_at" :props="props">
{{ tools.getstrDateTime(props.row.created_at) }}
<span v-if="taborders === shared_consts.OrderStat.COMPLETATI">
<br />Consegnato il:<br />{{
tools.getstrDateTime(props.row.date_consegnato)
tools.getstrDateTime(props.row.date_consegnato)
}}
</span>
</q-td>
@@ -202,7 +271,7 @@
"
>
{{ item.order.product.productInfo.name }} ({{
productStore.getQuantityByOrder($t, item.order)
productStore.getQuantityByOrder($t, item.order)
}})<br />
</div>
</div>
@@ -217,12 +286,14 @@
</div>
</q-td>
<q-td key="totalPrice" :props="props">
<span :class="props.row.user.name !== 'TOTALI' ? '' : 'totali'">{{ props.row.totalPrice }} €</span>
<span :class="props.row.user.name !== 'TOTALI' ? '' : 'totali'"
>{{ props.row.totalPrice }} €</span
>
</q-td>
<q-td key="status" :props="props">
<span :class="props.row.status">{{
shared_consts.getStatusStr(props.row.status)
}}</span>
}}</span>
<br />
<div v-if="props.row.confermato" class="ordstat">
{{ tools.getstrDateTime(props.row.date_confermato) }}: