- ordinamento aggiornare la pagina "templates" per Fatturati ultimo anno

- bestseller
This commit is contained in:
Surya Paolo
2025-05-02 10:10:04 +02:00
parent 721d2ac38c
commit 8a20186e59
21 changed files with 131 additions and 62 deletions

View File

@@ -77,6 +77,11 @@ export default defineComponent({
{ label: 'Disponibili', value: costanti.DISP.DISPONIBILI },
{ label: 'Esauriti', value: costanti.DISP.ESAURITI }])
const optRigeneraModalita = ref([
{ label: 'Sovrascrivi', value: costanti.RIGENERAMOD.SOVRASCRIVI },
{ label: 'Aggiungi solo', value: costanti.RIGENERAMOD.AGGIUNGI_SOLO },
])
const optStato = ref([
{ label: 'Tutti', value: costanti.STATO.TUTTI },
{ label: 'In Commercio', value: costanti.STATO.IN_COMMERCIO },
@@ -87,7 +92,7 @@ export default defineComponent({
const generatinglist = ref(false)
const optrigenera = ref<IOptRigenera>({ visibilitaDisp: costanti.DISP.DISPONIBILI, stato: costanti.STATO.IN_COMMERCIO })
const optrigenera = ref<IOptRigenera>({ visibilitaDisp: costanti.DISP.DISPONIBILI, stato: costanti.STATO.IN_COMMERCIO, rig_mod: false })
const optcatalogo = ref(<IOptCatalogo>{ ...props.modelValue });
@@ -110,6 +115,7 @@ export default defineComponent({
watch(optrigenera.value, (newVal) => {
tools.setCookie((showListaArgomenti.value ? 'INC_ES_' : '') + 'VIS_DISP', newVal.visibilitaDisp);
tools.setCookie((showListaArgomenti.value ? 'INC_ES_' : '') + 'VIS_STATO', newVal.stato);
tools.setCookie((showListaArgomenti.value ? 'INC_ES_' : '') + 'RIG_MOD', newVal.rig_mod);
if (showListaArgomenti.value)
calcArrProducts()
}, { deep: true });
@@ -185,7 +191,7 @@ export default defineComponent({
// Cerca se la descrizione introduttiva è stata impostata
testo = catalog.descr_introduttiva
let clcol = ''
if (catalog.pagina_introduttiva_sfondo_nero) {
if (catalog?.pagina_introduttiva_sfondo_nero) {
clcol = `text-white`
}
testo = `<span class="book-text-up ${clcol}">` + testo + `</span>`
@@ -218,7 +224,7 @@ export default defineComponent({
let clcol = ''
if (catalog.pagina_introduttiva_sfondo_nero) {
if (catalog?.pagina_introduttiva_sfondo_nero) {
clcol = `text-white`
}
@@ -480,7 +486,7 @@ export default defineComponent({
for (const recscheda of optcatalogo.value.arrSchede!) {
if (recscheda.scheda?.linkIdTemplate) {
// ricopia da Template:
const myscheda = globalStore.sovrascriviSchedaFromTemplate(recscheda.scheda?.linkIdTemplate, recscheda)
const myscheda = globalStore.sovrascriviSchedaFromTemplate(recscheda.scheda?.linkIdTemplate, recscheda, optcatalogo.value)
if (myscheda) {
recscheda.scheda = { ...myscheda }
}
@@ -730,6 +736,8 @@ export default defineComponent({
// console.log('arrprod', arrprod)
populateDataWithlinkIdTemplate();
// Ordina la lista
generatearrProdToViewSorted(!generalista, salva, !optcatalogo.value.showListaArgomenti);
loaddata();
@@ -743,9 +751,15 @@ export default defineComponent({
// chiedi prima "Sei sicuro di rigenerare il catalogo?"
let risposta_si = false
let msg = 'Sicuri di RIGENERARE Sovrascrivendo questa lista di libri ?'
if (optrigenera.value.rig_mod == costanti.RIGENERAMOD.AGGIUNGI_SOLO) {
msg = 'Aggiungere i libri di questa nuova generazione ?'
}
$q.dialog({
title: 'Rigenera lista',
message: 'Sicuri di rigenerare questa lista di libri, perdendo l\'ordinamento attuale ?',
message: msg,
cancel: true,
persistent: false
}).onOk(() => {
@@ -753,6 +767,21 @@ export default defineComponent({
})
}
function reSortList() {
let risposta_si = false
let msg = 'Sicuri di Riordinare questa lista ?'
$q.dialog({
title: 'Riordina lista',
message: msg,
cancel: true,
persistent: false
}).onOk(() => {
calcArrProducts(false)
})
}
function arraysEqual(arr1, arr2) {
return (
Array.isArray(arr1) &&
@@ -1050,7 +1079,13 @@ export default defineComponent({
if (!usaprodottiSalvati && salva) {
if (trovatocatalogo) {
trovatocatalogo.lista_prodotti = arrprod
if (optrigenera.value.rig_mod === costanti.RIGENERAMOD.AGGIUNGI_SOLO) {
// aggiungi solo i record che non sono presenti su lista_prodotti
trovatocatalogo.lista_prodotti = trovatocatalogo.lista_prodotti.filter(p => !arrprod.some(ap => ap._id === p._id))
trovatocatalogo.lista_prodotti.push(...arrprod.filter(ap => !trovatocatalogo.lista_prodotti.some(p => p._id === ap._id)))
} else {
trovatocatalogo.lista_prodotti = arrprod
}
if (salvasudb) {
salvaListaProdotti(false)
@@ -1119,6 +1154,7 @@ export default defineComponent({
}
optrigenera.value.visibilitaDisp = tools.getCookie((showListaArgomenti.value ? 'INC_ES_' : '') + 'VIS_DISP', costanti.DISP.DISPONIBILI)
optrigenera.value.rig_mod = tools.getCookie((showListaArgomenti.value ? 'INC_ES_' : '') + 'RIG_MOD', costanti.RIGENERAMOD.AGGIUNGI_SOLO)
optrigenera.value.stato = tools.getCookie((showListaArgomenti.value ? 'INC_ES_' : '') + 'VIS_STATO', costanti.STATO.IN_COMMERCIO)
loadpage.value = false
@@ -1530,9 +1566,11 @@ export default defineComponent({
optrigenera,
generatinglist,
optDisp,
optRigeneraModalita,
optStato,
getCatalogoByMyPage,
getReferentiCatalogo,
reSortList,
}
}
})

View File

@@ -146,6 +146,14 @@
@click="rigeneraLibri = true"
></q-btn>
<!--<q-btn
v-if="!showListaArgomenti"
rounded
label="Riordina"
color="primary"
@click="reSortList"
></q-btn>-->
<q-btn
v-if="!showListaArgomenti"
rounded
@@ -841,6 +849,7 @@
</CMyValueDb>
</div>
<div>Filtra per Disponibilità Magazzino:</div>
<q-btn-toggle
v-model="optrigenera.visibilitaDisp"
toggle-color="green"
@@ -848,6 +857,14 @@
:options="optDisp"
>
</q-btn-toggle>
<div>Modalità di Creazione:</div>
<q-btn-toggle
v-model="optrigenera.rig_mod"
toggle-color="red"
class="q-my-md"
:options="optRigeneraModalita"
>
</q-btn-toggle>
</div>
</q-card-section>
<q-card-actions align="center">