- catalogo

- corretto logica del RefreshToken che non richiedeva il nuovo token, quindi scadeva tutte le volte, richiedendo sempre l'accesso !
This commit is contained in:
Surya Paolo
2025-01-07 17:17:08 +01:00
parent ce86dd51a8
commit 3734762a8b
72 changed files with 2112 additions and 3592650 deletions

View File

@@ -64,19 +64,21 @@ export default defineComponent({
// Funzione per disegnare il codice a barre
const drawBarcode = () => {
JsBarcode("#C" + value.value, value.value, {
format: format.value,
width: widthlines.value,
height: height.value,
displayValue: true,
lineColor: "#000",
font: "monospace",
margin: 0,
textMargin: 0,
marginTop: 0,
fontSize: fontsize.value,
textPosition:"bottom",
});
if (value.value) {
JsBarcode("#C" + value.value, value.value, {
format: format.value,
width: widthlines.value,
height: height.value,
displayValue: true,
lineColor: "#000",
font: "monospace",
margin: 0,
textMargin: 0,
marginTop: 0,
fontSize: fontsize.value,
textPosition: "bottom",
});
}
}
// Chiamato quando il componente è montato

View File

@@ -711,6 +711,30 @@
</div>
</div>
<div class="row bg-blue-4">
<div class="etichetta">Fatturati:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="totFat"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
<div class="etichetta">Fatturati Ultimi 3 Mese:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="fatLast3M"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
>
</CMyValueDb>
<div class="etichetta">Venduti:</div>
<CMyValueDb
:editOn="modifOn"
@@ -723,7 +747,7 @@
:type="costanti.FieldType.number"
>
</CMyValueDb>
<div class="etichetta">Venduti Ultimo Mese:</div>
<div class="etichetta">Venduti Ultimi 3 Mesi:</div>
<CMyValueDb
:editOn="modifOn"
table="productinfos"

View File

@@ -46,6 +46,11 @@ export default defineComponent({
required: false,
default: false,
},
labelBtnAddExtra: {
type: String,
required: false,
default: '',
},
selector: {
type: Object,
required: false,

View File

@@ -43,7 +43,7 @@
labelBtnAddRow="NONE"
:prop_SortFieldsAvailable="mySortFieldsAvailable"
:labelBtnAddExtra_OFF="noButtAdd ? `` : (ind >= 0) ? `Aggiungi ` + costanti.MAINCARDS[ind].strsingolo : ''"
labelBtnAddExtra=""
:labelBtnAddExtra="labelBtnAddExtra"
:extraparams="tools.extraparams(table, {myrecfiltertoggle})"
:prop_showMap="showMap"
@clickButtBar="clickButtBar"

View File

@@ -21,7 +21,13 @@
<q-spinner v-if="loadSaldo" color="primary" size="3em" :thickness="2" />
</div>
<q-btn
v-if="myaccount && !loadSaldo && (grp ? tools.iAmAdminGroup(grp.groupname) : tools.iAmAdminCircuit(circuit.name))"
v-if="
myaccount &&
!loadSaldo &&
(grp
? tools.iAmAdminGroup(grp.groupname)
: tools.iAmAdminCircuit(circuit.name))
"
outline
rounded
dense
@@ -61,6 +67,7 @@
<div :class="$q.screen.lt.sm ? '' : 'row'">
<div class="sezioni">
<CCurrencyV2
v-if="!circuit.ignoreLimits"
:symbol="tools.getSymbolByCircuit(circuit)"
:color="tools.getColorByCircuit(circuit)"
color_border="red"
@@ -77,6 +84,7 @@
</div>
<div class="sezioni">
<CCurrencyV2
v-if="!circuit.ignoreLimits"
:symbol="tools.getSymbolByCircuit(circuit)"
:color="tools.getColorByCircuit(circuit)"
color_border="green"

View File

@@ -27,11 +27,11 @@
:class="
`q-ma-sm ` + ($q.dark.isActive ? `text-white` : `text-black`)
"
>{{ circuit.numMembers }}</span>
>{{ circuit.numMembers }}</span
>
<q-icon name="fas fa-users" size="xs" color="blue"></q-icon>
</div>
<div v-if="circuit.link_group" :class="` `">
<q-btn
icon="fab fa-telegram"
size="xs"
@@ -102,20 +102,24 @@
v-if="
!circuit.transactionsEnabled &&
circuit.status ===
shared_consts.CIRCUIT_STATUS.FASE3_MONETA_ABILITATA
shared_consts.CIRCUIT_STATUS.FASE3_MONETA_ABILITATA
"
caption
lines="1"
>
<q-icon v-if="!circuit.transactionsEnabled" name="fas fa-lock"></q-icon>
<q-icon
v-if="!circuit.transactionsEnabled"
name="fas fa-lock"
></q-icon>
<span class="text-red text-weight-bold">
{{
$t('circuit.transaction_suspended')
}}
{{ $t('circuit.transaction_suspended') }}
</span>
</q-item-label>
<q-item-label @click="naviga(tools.getPathByTableAndRec(table, circuit))" lines="1">
<q-item-label
@click="naviga(tools.getPathByTableAndRec(table, circuit))"
lines="1"
>
<CSaldo
v-if="tools.isUserOk() && username === myusername() && account"
:account="account"
@@ -141,7 +145,9 @@
inline-actions
class="bg-blue text-white"
>
<span v-html="$t('circuit.entra_italia_solo_dopo_aver_fido')"></span>
<span
v-html="$t('circuit.entra_italia_solo_dopo_aver_fido')"
></span>
</q-banner>
<q-banner v-else inline-actions class="bg-blue text-white">
<span v-html="$t('circuit.non_entrato')"></span>
@@ -153,10 +159,14 @@
!userStore.IsRefusedCircuitByName(circuit.name)
"
color="positive"
:label="$t('circuit.apri')"
:label="
circuit.askManagerToEnter
? $t('circuit.ask')
: $t('circuit.apri')
"
@click="
requestToEnterCircuit = true;
groupnameSel = null;
requestToEnterCircuit = true;
groupnameSel = null;
"
/>
</template>
@@ -165,7 +175,10 @@ groupnameSel = null;
</q-item-label>
</q-item-section>
<q-item-section side v-if="visu === costanti.USER_CIRCUITS && tools.isUserOk()">
<q-item-section
side
v-if="visu === costanti.USER_CIRCUITS && tools.isUserOk()"
>
<q-item-label>
<q-btn
rounded
@@ -197,7 +210,11 @@ groupnameSel = null;
)
"
>
<q-item-section>{{ $t('circuit.ask') }}</q-item-section>
<q-item-section>{{
circuit.askManagerToEnter
? $t('circuit.ask')
: $t('circuit.enter')
}}</q-item-section>
</q-item>
</q-list>
<q-list
@@ -222,9 +239,7 @@ groupnameSel = null;
"
>
<q-item-section>
{{
$t('shared.refuse_ask')
}}
{{ $t('shared.refuse_ask') }}
</q-item-section>
</q-item>
<q-item
@@ -241,14 +256,15 @@ groupnameSel = null;
"
>
<q-item-section>
{{
$t('shared.cancel_ask')
}}
{{ $t('shared.cancel_ask') }}
</q-item-section>
</q-item>
</q-list>
<q-list
v-else-if="userStore.IsMyCircuitByName(circuit.name) && (saldo === 0 || !saldo)"
v-else-if="
userStore.IsMyCircuitByName(circuit.name) &&
(saldo === 0 || !saldo)
"
style="min-width: 200px"
>
<q-item
@@ -288,7 +304,10 @@ groupnameSel = null;
</q-btn>
</q-item-label>
</q-item-section>
<q-item-section side v-if="visu === costanti.REQ_CIRCUIT && tools.isUserOk()">
<q-item-section
side
v-if="visu === costanti.REQ_CIRCUIT && tools.isUserOk()"
>
<q-item-label>
<q-btn rounded icon="fas fa-ellipsis-h">
<q-menu>
@@ -309,9 +328,7 @@ groupnameSel = null;
"
>
<q-item-section>
{{
$t('circuit.reject_ask')
}}
{{ $t('circuit.reject_ask') }}
</q-item-section>
</q-item>
</q-list>
@@ -319,7 +336,10 @@ groupnameSel = null;
</q-btn>
</q-item-label>
</q-item-section>
<q-item-section side v-if="visu === costanti.ASK_SENT_CIRCUIT && tools.isUserOk()">
<q-item-section
side
v-if="visu === costanti.ASK_SENT_CIRCUIT && tools.isUserOk()"
>
<q-item-label>
<q-btn rounded icon="fas fa-ellipsis-h">
<q-menu>
@@ -340,9 +360,7 @@ groupnameSel = null;
"
>
<q-item-section>
{{
$t('shared.refuse_ask')
}}
{{ $t('shared.refuse_ask') }}
</q-item-section>
</q-item>
<q-item
@@ -361,9 +379,7 @@ groupnameSel = null;
"
>
<q-item-section>
{{
$t('shared.cancel_ask')
}}
{{ $t('shared.cancel_ask') }}
</q-item-section>
</q-item>
</q-list>
@@ -373,7 +389,10 @@ groupnameSel = null;
</q-item-section>
</q-item>
<div class="centermydiv text-center" v-if="visu === costanti.ENTER_TO_THE_CIRCUIT">
<div
class="centermydiv text-center"
v-if="visu === costanti.ENTER_TO_THE_CIRCUIT"
>
<q-btn
v-if="
!userStore.IsMyCircuitByName(circuit.name) &&
@@ -382,40 +401,52 @@ groupnameSel = null;
"
icon="fas fa-user-plus"
color="primary"
:label="$t('circuit.ask')"
:label="
circuit.askManagerToEnter ? $t('circuit.ask') : $t('circuit.enter')
"
rounded
@click="
requestToEnterCircuit = true;
groupnameSel = null;
requestToEnterCircuit = true;
groupnameSel = null;
"
/>
<q-btn v-if="userStore.IsMyCircuitByName(circuit.name)" rounded icon="fas fa-ellipsis-h">
<q-btn
v-if="userStore.IsMyCircuitByName(circuit.name)"
rounded
icon="fas fa-ellipsis-h"
>
<q-menu>
<q-list v-if="true" style="min-width: 150px">
<q-item
clickable
v-close-popup
v-if="true"
@click="(saldo !== 0) ?
tools.showNegativeNotif($q, t('circuit.per_uscire_dal_circuito_occorre_essere_a_zero'), 30000) :
tools.removeFromMyCircuits(
$q,
userStore.my.username,
circuit.name,
'',
$t('circuit.domanda_exit_fromcircuit', {
circuitname: circuit.name,
})
)
@click="
(saldo < 0)
? tools.showNegativeNotif(
$q,
t(
'circuit.per_uscire_dal_circuito_occorre_essere_a_zero',
{ symbol: circuit.symbol }
),
30000
)
: tools.removeFromMyCircuits(
$q,
userStore.my.username,
circuit.name,
'',
$t('circuit.domanda_exit_fromcircuit', {
circuitname: circuit.name,
})
)
"
>
<q-item-section avatar>
<q-icon color="negative" name="fas fa-user-minus" />
</q-item-section>
<q-item-section>
{{
$t('circuit.exit_circuit')
}}
{{ $t('circuit.exit_circuit') }}
</q-item-section>
</q-item>
@@ -474,13 +505,19 @@ groupnameSel = null;
</q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
<q-card-section class="inset-shadow">
<q-card-section v-if="circuit.symbol === 'RIS'" class="inset-shadow">
<div v-html="t('circuit.disclaimer')"></div>
</q-card-section>
<q-card-section class="inset-shadow">
<div style="font-weight: bold; font-size: 1.25rem">Regolamento:</div>
<q-btn label="vedi Regolamento" @click="showrules = !showrules"></q-btn>
<div v-if="showrules" v-html="getRegulation(circuit.regulation)"></div>
<q-btn
label="vedi Regolamento"
@click="showrules = !showrules"
></q-btn>
<div
v-if="showrules"
v-html="getRegulation(circuit.regulation)"
></div>
</q-card-section>
<q-card-actions align="center">
<q-btn
@@ -489,17 +526,22 @@ groupnameSel = null;
color="positive"
:label="$t('circuit.acceptregulation')"
@click="
requestToEnterCircuit = false;
tools.setRequestCircuit(
$q,
userStore.my.username,
circuit.name,
true,
groupnameSel ? groupnameSel.groupname : ''
);
requestToEnterCircuit = false;
tools.setRequestCircuit(
$q,
userStore.my.username,
circuit.name,
true,
groupnameSel ? groupnameSel.groupname : ''
);
"
/>
<q-btn outline :label="$t('dialog.cancel')" icon="close" v-close-popup></q-btn>
<q-btn
outline
:label="$t('dialog.cancel')"
icon="close"
v-close-popup
></q-btn>
</q-card-actions>
</q-card>
</q-dialog>
@@ -513,5 +555,5 @@ tools.setRequestCircuit(
</script>
<style lang="scss" scoped>
@import "./CMyCircuit.scss";
@import './CMyCircuit.scss';
</style>

View File

@@ -36,34 +36,6 @@
</div>
</CTitleBanner>
<CTitleBanner
:class="`q-pa-xs `"
:title="t('circuit.tuoi_ultimi_movimenti', { num: numtransaz })"
bgcolor="white"
bgcolor2="lightblue"
:clcolor="`text-indigo`"
:canopen="true"
:small="true"
:open="false"
>
<CMovements @loaded="movcaricati" :username="username" :showbuttolastmov="false">
<div class="row justify-center"><q-btn
rounded
dense
class="text-center"
color="primary"
:label="t('circuit.show_next_mov')"
@click="addlastmov()"
/>
</div>
</CMovements>
<q-inner-loading id="spinner" :showing="loadingvalues">
<q-spinner-tail size="3em" color="primary" />
</q-inner-loading>
<br />
</CTitleBanner>
<div class="row justify-center">
<q-btn
rounded
@@ -100,10 +72,44 @@
</CMyCircuit>
</span>
</div>
<div>
<slot></slot>
</div>
</CTitleBanner>
<CTitleBanner
:class="`q-pa-xs `"
:title="t('circuit.tuoi_ultimi_movimenti', { num: numtransaz })"
bgcolor="white"
bgcolor2="lightblue"
:clcolor="`text-indigo`"
:canopen="true"
:small="true"
:open="false"
>
<CMovements
@loaded="movcaricati"
:username="username"
:showbuttolastmov="false"
>
<div class="row justify-center">
<q-btn
rounded
dense
class="text-center"
color="primary"
:label="t('circuit.show_next_mov')"
@click="addlastmov()"
/>
</div>
</CMovements>
<q-inner-loading id="spinner" :showing="loadingvalues">
<q-spinner-tail size="3em" color="primary" />
</q-inner-loading>
<br />
</CTitleBanner>
</div>
<div v-if="visu === costanti.FIND_CIRCUIT">
<slot></slot>
</div>
</div>
<div v-else>

View File

@@ -493,8 +493,10 @@ export default defineComponent({
productTypes: [],
excludeproductTypes: [],
editore: [],
argomenti: [],
author: '',
sort: costanti.SORT_PUBDATE,
sort_field: '',
sort_dir: 0,
arrProdottiSpeciali: [],
}
@@ -783,10 +785,22 @@ export default defineComponent({
if (arrschede) {
arrschede.forEach((recscheda: ISchedaSingola) => {
arr.push({ label: recscheda.scheda!.name, value: recscheda.scheda!._id })
let pagename = ''
if (recscheda.scheda) {
if (recscheda.idPageOrig) {
const page = globalStore.getPageById(recscheda.idPageOrig)
pagename = page ? page.title! : ''
}
if (pagename)
pagename = '[Pag: ' + pagename + '] '
const mylabel = pagename + (recscheda.scheda ? recscheda.scheda!.name : '')
arr.push({ label: mylabel, value: recscheda.scheda!._id })
}
});
}
return arr
}
@@ -903,7 +917,7 @@ export default defineComponent({
}
function toggleDebug() {
myel.value.catalogo!.indebug = !myel.value.catalogo!.indebug
myel.value.catalogo!.indebug = !myel.value.catalogo!.indebug
}
const preparePDF = async () => {

View File

@@ -1390,7 +1390,7 @@
v-if="enableEdit && myel.catalogo"
rounded
outlined
v-model="myel.catalogo.sort"
v-model="myel.catalogo.sort_field"
:options="shared_consts.ORDINAMENTO_CATALOGHI"
@update:model-value="modifElem"
label="Ordinamento"
@@ -1399,6 +1399,20 @@
map-options
>
</q-select>
<q-select
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
v-if="enableEdit && myel.catalogo"
rounded
outlined
v-model="myel.catalogo.sort_dir"
:options="shared_consts.ORDINAMENTO_DIREZIONE"
@update:model-value="modifElem"
label="Direzione"
style="width: 200px"
emit-value
map-options
>
</q-select>
<q-select
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
@@ -1411,7 +1425,7 @@
:options="shared_consts.VERSIONI_PRODOTTO"
@update:model-value="modifElem"
multiple
label="Includi"
label="Includi Stato Prodotto"
style="width: 300px"
emit-value
map-options
@@ -1431,7 +1445,7 @@
:options="shared_consts.VERSIONI_PRODOTTO"
@update:model-value="modifElem"
multiple
label="Escludi"
label="Escludi Stato Prodotto"
style="width: 300px"
emit-value
map-options
@@ -1442,7 +1456,7 @@
v-if="enableEdit"
rounded
outlined
v-model="myel.catalogo.Editore"
v-model="myel.catalogo.editore"
:options="Products.publishers"
@update:model-value="modifElem"
multiple
@@ -1454,6 +1468,39 @@
option-label="name"
>
</q-select>
<q-select
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
v-if="enableEdit"
rounded
outlined
v-model="myel.catalogo.Argomenti"
:options="Products.catprods"
@update:model-value="modifElem"
multiple
label="Argomenti"
style="width: 300px"
emit-value
map-options
option-value="_id"
option-label="name"
>
</q-select>
<q-select
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
v-if="enableEdit"
rounded
outlined
v-model="myel.catalogo.idCollana"
:options="Products.collane"
@update:model-value="modifElem"
label="Collana"
style="width: 300px"
emit-value
map-options
option-value="idCollana"
option-label="descrizione"
>
</q-select>
</div>
</q-expansion-item>
<q-expansion-item
@@ -1579,6 +1626,7 @@
@update:model-value="modifElem"
v-model="recscheda.scheda.name"
filled
debounce="1000"
v-on:keyup.enter="saveElem"
>
</q-input>
@@ -1655,7 +1703,7 @@
v-if="enableEdit && myel.catalogo"
rounded
outlined
v-model="recscheda.scheda.sort"
v-model="recscheda.scheda.sort_field"
:options="shared_consts.ORDINAMENTO_CATALOGHI"
@update:model-value="modifElem"
label="Ordinamento"
@@ -1664,6 +1712,22 @@
map-options
>
</q-select>
<q-select
:behavior="
$q.platform.is.ios === true ? 'dialog' : 'menu'
"
v-if="enableEdit && myel.catalogo"
rounded
outlined
v-model="myel.catalogo.sort_dir"
:options="shared_consts.ORDINAMENTO_DIREZIONE"
@update:model-value="modifElem"
label="Direzione"
style="width: 200px"
emit-value
map-options
>
</q-select>
<q-select
:behavior="
$q.platform.is.ios === true ? 'dialog' : 'menu'
@@ -1713,7 +1777,7 @@
v-if="enableEdit"
rounded
outlined
v-model="recscheda.scheda.Editore"
v-model="recscheda.scheda.editore"
:options="Products.publishers"
@update:model-value="modifElem"
multiple
@@ -1943,7 +2007,7 @@
@update:model-value="modifElem"
>
</q-toggle>
<CMySlider
label="Font Size:"
v-model="recscheda.scheda.barcode.font.size"
@@ -2033,6 +2097,7 @@
@saveFieldElem="saveFieldElem"
@update:model-value="modifElem"
label="Testo"
debounce="1000"
>
</CMyText>
</div>
@@ -2061,6 +2126,7 @@
@saveFieldElem="saveFieldElem"
@update:model-value="modifElem"
label="Testo"
debounce="1000"
>
</CMyText>
</div>

View File

@@ -225,7 +225,7 @@ export default defineComponent({
function clickOnElem() {
if (props.editOn) {
enableEdit.value = true
console.log('selElemClick', props.myelem)
// console.log('selElemClick', props.myelem)
emit('selElemClick', props.myelem)
}
}

View File

@@ -111,6 +111,7 @@
<div :class="$q.screen.lt.sm ? '' : 'row'">
<div class="sezioni">
<CCurrencyV2
v-if="!circuit.ignoreLimits"
:symbol="tools.getSymbolByCircuit(circuit)"
:color="tools.getColorByCircuit(circuit)"
color_border="red"
@@ -127,6 +128,7 @@
</div>
<div class="sezioni">
<CCurrencyV2
v-if="!circuit.ignoreLimits"
:symbol="tools.getSymbolByCircuit(circuit)"
:color="tools.getColorByCircuit(circuit)"
color_border="green"