+
Editore
+
+ Commerciale
+
Facilitatore
diff --git a/src/layouts/menuone/menuOne.ts b/src/layouts/menuone/menuOne.ts
index b6f45f34..39fadeb0 100755
--- a/src/layouts/menuone/menuOne.ts
+++ b/src/layouts/menuone/menuOne.ts
@@ -93,6 +93,7 @@ export default defineComponent({
if (elem.onlyDepartment) menu += ' isDepartment'
if (elem.onlyFacilitatore) menu += ' isFacilitatore'
if (elem.onlyEditor) menu += ' isEditor'
+ if (elem.onlyCommerciale) menu += ' isCommerciale'
if (elem.onlyGrafico) menu += ' isGrafico'
}
diff --git a/src/model/CatalogStore.ts b/src/model/CatalogStore.ts
index 28243f8c..955eb477 100755
--- a/src/model/CatalogStore.ts
+++ b/src/model/CatalogStore.ts
@@ -40,6 +40,7 @@ export interface ICatalog {
date_updated?: Date,
lista_prodotti?: IProduct[]
+ isCatalogoGenerale?: boolean
}
export interface ICatalogState {
diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts
index 5700c1e6..1b81cede 100755
--- a/src/model/GlobalStore.ts
+++ b/src/model/GlobalStore.ts
@@ -85,6 +85,12 @@ export interface ITemplEmail {
options?: ISettings[]
}
+export interface IDestNewsletter {
+ _id?: string
+ descr?: string
+ tipodest_id?: number
+}
+
export interface ISettings {
_id?: string
idapp?: string
@@ -372,6 +378,7 @@ export interface INewsToSent {
label?: string
activate?: boolean
templemail_str?: string
+ destnewsletter_str?: string
numemail_tot?: number
numemail_sent?: number
datetoSent?: Date
@@ -495,6 +502,7 @@ export interface IGlobalState {
myelems: IMyElem[],
myschedas: ISchedaSingola[],
templemail: ITemplEmail[],
+ destnewsletter?: IDestNewsletter[],
opzemail: ISettings[],
mailinglist: IMailinglist[],
calzoom: ICalZoom[],
@@ -589,6 +597,7 @@ export interface IListRoutes {
onlyFacilitatore?: boolean
color?: string
onlyEditor?: boolean
+ onlyCommerciale?: boolean
onlyGrafico?: boolean
extraclass?: string
meta?: any
diff --git a/src/model/UserStore.ts b/src/model/UserStore.ts
index f93562f3..90d50adb 100755
--- a/src/model/UserStore.ts
+++ b/src/model/UserStore.ts
@@ -291,6 +291,7 @@ export interface IUserState {
isTratuttrici?: boolean
isEditor?: boolean
isGrafico?: boolean
+ isCommerciale?: boolean
isTeacher?: boolean
usersList?: IUserFields[]
countusers?: number
diff --git a/src/rootgen/admin/newsletter/newsletter.ts b/src/rootgen/admin/newsletter/newsletter.ts
index a0c6af7f..511147ff 100755
--- a/src/rootgen/admin/newsletter/newsletter.ts
+++ b/src/rootgen/admin/newsletter/newsletter.ts
@@ -7,7 +7,8 @@ import {
coltemplemail,
colopzemail,
colmailinglist,
- colmsg_templates, fieldsTable
+ colmsg_templates, fieldsTable,
+ coldestnewsletter
} from '@src/store/Modules/fieldsTable'
import type { INewsState } from '@src/model/index';
import { DefaultNewsState } from '@src/model/index'
@@ -92,7 +93,8 @@ export default defineComponent({
label: 'Newsletter creata il ' + tools.getstrDateTimeAll(tools.getDateNow()),
activate: true,
datetoSent: tools.addMinutes(tools.getDateNow(), minuti),
- templemail_str: globalStore.gettemplemailbyId(getValDb('TEMPLEMAIL_ID', true))
+ templemail_str: globalStore.gettemplemailbyId(getValDb('TEMPLEMAIL_ID', true)),
+ destnewsletter_str: globalStore.getdestnewsletterbyId(getValDb('TEMPLEMAIL_DEST', true)),
}
await tools.createNewRecord($q, 'newstosent', mynews).then((myrecris) => {
// reload data
@@ -110,23 +112,25 @@ export default defineComponent({
console.log('Newsletter load')
myloadingload.value = true
const myris = await userStore.newsletterload(true)
- newsstate.value = myris.newsstate
+ if (myris) {
+ newsstate.value = myris.newsstate
- // console.log('newsstate')
- // console.table('globalStore.serv_settings', globalStore.serv_settings)
+ // console.log('newsstate')
+ // console.table('globalStore.serv_settings', globalStore.serv_settings)
- percsubscribed.value = newsstate.value.totsubscribed / newsstate.value.totemail
+ percsubscribed.value = newsstate.value.totsubscribed / newsstate.value.totemail
- if (newsstate.value.lastnewstosent)
- eseguipolling.value = (eseguipolling.value || newsstate.value.lastnewstosent.starting_job! && !newsstate.value.lastnewstosent.finish_job!)
+ if (newsstate.value.lastnewstosent)
+ eseguipolling.value = (eseguipolling.value || newsstate.value.lastnewstosent.starting_job! && !newsstate.value.lastnewstosent.finish_job!)
- if (newsstate.value.nextnewstosent)
- eseguipolling.value = eseguipolling.value || true
+ if (newsstate.value.nextnewstosent)
+ eseguipolling.value = eseguipolling.value || true
- // console.log('eseguipolling', eseguipolling)
- myloadingload.value = false
+ // console.log('eseguipolling', eseguipolling)
+ myloadingload.value = false
- checkifpolling()
+ checkifpolling()
+ }
}
function DisableNewsletter() {
@@ -202,6 +206,10 @@ export default defineComponent({
return colnewstosent
}
+ function getcoldestnewsletter() {
+ return coldestnewsletter
+ }
+
function getcolmailinglist() {
return colmailinglist
}
@@ -302,6 +310,7 @@ export default defineComponent({
fieldsTable,
globalStore,
idparam,
+ getcoldestnewsletter,
}
}
})
diff --git a/src/rootgen/admin/newsletter/newsletter.vue b/src/rootgen/admin/newsletter/newsletter.vue
index 4c7ba1a6..a118c3fb 100755
--- a/src/rootgen/admin/newsletter/newsletter.vue
+++ b/src/rootgen/admin/newsletter/newsletter.vue
@@ -1,61 +1,163 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -63,44 +165,100 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+ noresultLabel="Il filtro selezionato non ha trovato nessun risultato"
+ >
+
+
+
+
+
+
+
-
+
Anteprima
@@ -108,10 +266,21 @@
-
+
-
+
Invia Email di Test
@@ -124,12 +293,32 @@
-
+
-
+
+
+
+
Crea Nuovo Invio Newsletter Schedulato tra 3 minuti
@@ -137,8 +326,14 @@
-
+
Crea Nuovo Invio Newsletter Schedulato tra 10 minuti
@@ -146,8 +341,14 @@
-
+
Crea Nuovo Invio Newsletter Schedulato tra 1 giorno
@@ -161,85 +362,151 @@
-
+
-
+
Modello Email da Inviare:
- {{
- newsstate.nextnewstosent.templemail_str
- }}
+ {{ newsstate.nextnewstosent.templemail_str }}
-
+
+ Destinatari:
+ {{ newsstate.nextnewstosent.destnewsletter_str }}
+
+
+
Data Schedulato:
- {{
- tools.getstrDateTimeAll(
- newsstate.nextnewstosent.datetoSent
- )
- }}
+ {{ tools.getstrDateTimeAll(newsstate.nextnewstosent.datetoSent) }}
-
+
Inizio Invio:
- {{
- tools.getstrDateTimeAll(
- newsstate.nextnewstosent.datestartJob
- )
- }}
+ {{ tools.getstrDateTimeAll(newsstate.nextnewstosent.datestartJob) }}
-
+
Fine Invio:
- {{
- tools.getstrDateTimeAll(
- newsstate.nextnewstosent.datefinishJob
- )
- }}
+ {{ tools.getstrDateTimeAll(newsstate.nextnewstosent.datefinishJob) }}
-
-
+
+
Invio Newsletter in Corso...
-
+
Ultima Email inviata:
{{
- tools.getstrTimeAll(
- newsstate.nextnewstosent.lastemailsent_Job
- )
+ tools.getstrTimeAll(newsstate.nextnewstosent.lastemailsent_Job)
}}
-
+
Inviate:
- {{ newsstate.nextnewstosent.numemail_sent }} /
- {{ newsstate.nextnewstosent.numemail_tot }}
+ {{ newsstate.nextnewstosent.numemail_sent }} /
+ {{ newsstate.nextnewstosent.numemail_tot }}
-
+
{{ percsent(true) }} %
-
+
-
+
Invio Newsletter Completato
-
-
+
+
@@ -256,104 +523,175 @@
-
+
-
+
Modello Email:
- {{
- newsstate.lastnewstosent.templemail_str
- }}
+ {{ newsstate.lastnewstosent.templemail_str }}
-
+
Data Schedulato:
- {{
- tools.getstrDateTimeAll(
- newsstate.lastnewstosent.datetoSent
- )
- }}
+ {{ tools.getstrDateTimeAll(newsstate.lastnewstosent.datetoSent) }}
-
+
Inizio Invio:
- {{
- tools.getstrDateTimeAll(
- newsstate.lastnewstosent.datestartJob
- )
- }}
+ {{ tools.getstrDateTimeAll(newsstate.lastnewstosent.datestartJob) }}
-
+
Fine Invio:
- {{
- tools.getstrDateTimeAll(
- newsstate.lastnewstosent.datefinishJob
- )
- }}
+ {{ tools.getstrDateTimeAll(newsstate.lastnewstosent.datefinishJob) }}
-
-
+
+
Invio Newsletter in Corso...
-
- L'invio della Newsletter è stato fermato
- dall'Utente.
+
+ L'invio della Newsletter è stato fermato dall'Utente.
-
+
Ultima Email inviata:
- {{
- tools.getstrTimeAll(
- newsstate.lastnewstosent.lastemailsent_Job
- )
- }}
+ {{ tools.getstrTimeAll(newsstate.lastnewstosent.lastemailsent_Job) }}
-
+
Inviate:
- {{ newsstate.lastnewstosent.numemail_sent }} /
- {{ newsstate.lastnewstosent.numemail_tot }}
+ {{ newsstate.lastnewstosent.numemail_sent }} /
+ {{ newsstate.lastnewstosent.numemail_tot }}
-
+
{{ percsent(false) }} %
-
+
-
+
Invio Newsletter Completato
-
+
Ferma l'Invio della Newsletter
Disattivazione Invio Newsletter ...
-
+
Riattiva l'Invio della Newsletter
@@ -362,8 +700,15 @@
-
-
+
+
+
@@ -371,51 +716,106 @@
-
+
-
+
-
+
-
+
Email Totali:
{{ newsstate.totemail }}
-
+
Email Sottoscritte:
{{ newsstate.totsubscribed }}
-
+
{{ progresslabsubscribed() }}
-
+
Email Desottoscritte:
{{ newsstate.totunsubscribed }}
-
+ noresultLabel="Il filtro selezionato non ha trovato nessun risultato"
+ >
-
+
-
+
Importa
@@ -424,10 +824,21 @@
-
+
-
-
+
+
@@ -437,8 +848,7 @@
-
+
diff --git a/src/router/routesAdmin.ts b/src/router/routesAdmin.ts
index 9fda7355..535adfb1 100644
--- a/src/router/routesAdmin.ts
+++ b/src/router/routesAdmin.ts
@@ -107,6 +107,13 @@ function getRoutesAd(site: ISites) {
component: () => import('@src/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
+ {
+ active: true,
+ order: 10,
+ name: 'newsletter.destnewsletter', path: '/admin/newsletter/destnewsletter', materialIcon: 'fas fa-users',
+ component: () => import('@src/rootgen/admin/newsletter/newsletter.vue'),
+ inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
+ },
{
active: true,
order: 20,
diff --git a/src/statics/lang/it.js b/src/statics/lang/it.js
index 8ea20776..60711564 100755
--- a/src/statics/lang/it.js
+++ b/src/statics/lang/it.js
@@ -105,7 +105,7 @@ const msg_it = {
origine: 'Origine',
ingredienti: 'Ingredienti',
descrizione_breve_macro: 'Descrizione Breve Macro',
- descr_trafiletto_catalogo: 'Trafiletto per Cataloghi',
+ descr_trafiletto_catalogo: 'Sinossi per Cataloghi',
descrizione_completa_macro: 'Descrizione Estesa',
valori_nutrizionali: 'Valori Nutrizionali',
note: 'Note',
@@ -435,6 +435,10 @@ const msg_it = {
img2: 'Immagine 2',
content2: 'Contenuto 2',
options: 'Opzioni',
+ disclaimer: 'Disclaimer',
+ piedipagina: 'piedipagina',
+ firma: 'firma',
+
},
dashboard: {
info: 'Info',
@@ -465,6 +469,7 @@ const msg_it = {
nave_partita: 'Partita il',
facilitatore: 'Facilitatore',
Editor: 'Editor',
+ Commerciale: 'Commerciale',
zoomeri: 'Zoomeri',
grafico: 'Grafico',
/* sonomediatore: 'Quando diventi Meditore vieni contattato da un
FACILITATORE, con lui devi:
' +
@@ -1117,6 +1122,7 @@ const msg_it = {
serversettings: 'Server',
others: 'Altro',
templemail: 'Modello Email',
+ destnewsletter: 'Destinatari',
datetoSent: 'DataOra Invio',
activate: 'Attivato',
numemail_tot: 'Email Totali',
@@ -2084,6 +2090,11 @@ const msg_it = {
TO_RESOLV: 'Da Risolvere!',
},
+ destnewsletter: {
+ descr: 'Descrizione',
+ tipodest_id: 'Tipo Destinatario',
+ }
+
},
};
diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts
index 4c5575bc..4dd3b7fc 100755
--- a/src/store/Modules/fieldsTable.ts
+++ b/src/store/Modules/fieldsTable.ts
@@ -118,6 +118,7 @@ export const colmailinglist = [
AddCol({ name: 'surname', label_trans: 'reg.surname' }),
AddCol({ name: 'email', label_trans: 'reg.email' }),
AddCol({ name: 'news_on', label_trans: 'newsletter.news_on', fieldtype: costanti.FieldType.boolean }),
+ AddCol({ name: 'diario_on', label_trans: 'newsletter.diario_on', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'email_errata', label_trans: 'newsletter.email_errata', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'lastid_newstosent', label_trans: 'reg.lastid_newstosent', fieldtype: costanti.FieldType.string }),
AddCol(DeleteRec),
@@ -151,29 +152,34 @@ export const colTableCatalogList = [
label_trans: 'cataloglist.argomenti',
fieldtype: costanti.FieldType.multiselect,
jointable: 'catprtotali',
+ isadvanced_field: true,
}),
AddCol({
name: 'condition_andor',
label_trans: 'cataloglist.op_andor',
fieldtype: costanti.FieldType.op_andor,
+ isadvanced_field: true,
}),
AddCol({
name: 'idCollane',
label_trans: 'cataloglist.collane',
fieldtype: costanti.FieldType.multiselect,
jointable: 'collanastotali',
+ isadvanced_field: true,
}),
AddCol({
name: 'editore',
label_trans: 'cataloglist.editore',
fieldtype: costanti.FieldType.multiselect,
jointable: 'publishers_totali',
+ isadvanced_field: true,
}),
AddCol({
name: 'idTipoFormato',
label_trans: 'cataloglist.idTipoFormato',
fieldtype: costanti.FieldType.multiselect,
jointable: 't_web_tipiformatos',
+ isadvanced_field: true,
}),
AddCol({ name: 'descr_introduttiva', label_trans: 'cataloglist.descr_introduttiva', fieldtype: costanti.FieldType.html, maxlength: 1300 }),
@@ -517,10 +523,24 @@ export const colopzemail = [
AddCol(DuplicateRec),
]
+export const coldestnewsletter = [
+ AddCol({ name: 'descr', label_trans: 'destnewsletter.descr' }),
+ AddCol({
+ name: 'tipodest_id',
+ label_trans: 'destnewsletter.tipodest_id',
+ fieldtype: costanti.FieldType.select,
+ jointable: 'tipodest',
+ }),
+]
+
+
export const coltemplemail = [
AddCol({ name: 'subject', label_trans: 'templemail.subject' }),
AddCol({ name: 'testoheadermail', label_trans: 'templemail.testoheadermail', fieldtype: costanti.FieldType.html }),
AddCol({ name: 'content', label_trans: 'templemail.content', fieldtype: costanti.FieldType.html }),
+ AddCol({ name: 'disclaimer', label_trans: 'templemail.disclaimer', fieldtype: costanti.FieldType.html }),
+ AddCol({ name: 'piedipagina', label_trans: 'templemail.piedipagina', fieldtype: costanti.FieldType.html }),
+ AddCol({ name: 'firma', label_trans: 'templemail.firma', fieldtype: costanti.FieldType.html }),
AddCol({ name: 'img', label_trans: 'templemail.img' }),
AddCol({ name: 'content2', label_trans: 'templemail.content2', fieldtype: costanti.FieldType.html }),
AddCol({ name: 'img2', label_trans: 'templemail.img2' }),
@@ -537,6 +557,7 @@ export const coltemplemail = [
export const colnewstosent = [
AddCol({ name: 'label', label_trans: 'event.title' }),
AddCol({ name: 'templemail_str', label_trans: 'newsletter.templemail' }),
+ AddCol({ name: 'destnewsletter_str', label_trans: 'newsletter.destnewsletter' }),
AddCol({ name: 'datetoSent', label_trans: 'newsletter.datetoSent', fieldtype: costanti.FieldType.date }),
AddCol({ name: 'activate', label_trans: 'newsletter.activate', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'numemail_tot', label_trans: 'newsletter.numemail_tot', fieldtype: costanti.FieldType.number }),
@@ -3244,6 +3265,8 @@ export const colTableUsers = [
// AddCol({ name: 'aportador_solidario_ind_order', label_trans: 'reg.aportador_solidario_ind_order' }),
// AddCol({ name: 'aportador_solidario_nome_completo', label_trans: 'reg.aportador_solidario_nome_completo' }),
AddCol({ name: 'news_on', label_trans: 'reg.news_on', fieldtype: costanti.FieldType.boolean }),
+ AddCol({ name: 'test', label_trans: 'reg.test', fieldtype: costanti.FieldType.boolean }),
+ AddCol({ name: 'diario_on', label_trans: 'reg.diario_on', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'email_errata', label_trans: 'reg.email_errata', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'lastid_newstosent', label_trans: 'reg.lastid_newstosent', fieldtype: costanti.FieldType.string }),
AddCol({ name: 'aportador_solidario', label_trans: 'reg.aportador_solidario' }),
@@ -3533,6 +3556,8 @@ export const colTableUsersISP = [
}),
AddCol({ name: 'news_on', label_trans: 'reg.news_on', fieldtype: costanti.FieldType.boolean }),
+ AddCol({ name: 'diario_on', label_trans: 'reg.diario_on', fieldtype: costanti.FieldType.boolean }),
+ AddCol({ name: 'test', label_trans: 'reg.test', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'email_errata', label_trans: 'reg.email_errata', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'lastid_newstosent', label_trans: 'reg.lastid_newstosent', fieldtype: costanti.FieldType.string }),
@@ -4628,6 +4653,14 @@ export const fieldsTable = {
collabel: 'subject',
onlyAdmin: true,
},
+ {
+ value: 'destnewsletter',
+ label: 'Dest Newsletter',
+ columns: coldestnewsletter,
+ colkey: '_id',
+ collabel: 'descr',
+ onlyAdmin: true,
+ },
{
value: 'opzemail',
label: 'Opzioni Email',
@@ -5162,6 +5195,13 @@ export const fieldsTable = {
colkey: 'value',
collabel: 'label',
},
+ {
+ value: 'tipodest',
+ label: 'Template Cataloghi',
+ columns: colTableGeneric,
+ colkey: 'value',
+ collabel: 'label',
+ },
],
}
diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts
index 0adaeac8..e6f82086 100644
--- a/src/store/Modules/tools.ts
+++ b/src/store/Modules/tools.ts
@@ -2677,6 +2677,7 @@ export const tools = {
|| (elem.onlyNotSoci && !userStore.my.profile.socio)
|| (elem.onlyFacilitatore && userStore.isFacilitatore)
|| (elem.onlyEditor && userStore.isEditor)
+ || (elem.onlyCommerciale && userStore.isCommerciale)
|| (elem.onlyGrafico && userStore.isGrafico)
|| (elem.onlyDepartment && userStore.isDepartment)
|| ((!elem.onlyAdmin) && (!elem.onlyManager) && (!elem.onlyFacilitatore) && (!elem.onlyEditor) && (!elem.onlyDepartment)
@@ -3206,6 +3207,11 @@ export const tools = {
return userStore.isGrafico || userStore.isAdmin
},
+ isCommerciale() {
+ const userStore = useUserStore()
+ return userStore.isCommerciale || userStore.isAdmin
+ },
+
isTeacher() {
const userStore = useUserStore()
return userStore.isTeacher
@@ -7617,7 +7623,7 @@ export const tools = {
// return true
if (shared_consts.TABLES_PER_EDITORI.includes(tablesel)) {
- if (userStore.isEditor || userStore.isGrafico || userStore.isAdmin) {
+ if (userStore.isCommerciale || userStore.isEditor || userStore.isGrafico || userStore.isAdmin) {
return true
}
}
@@ -9823,7 +9829,7 @@ export const tools = {
table: 'lista_editori',
key: 'referenti',
type: costanti.FieldType.select,
- value: this.getCookie(this.COOK_SEARCH + costanti.FILTER_SEP + shared_consts.TABLES_CATALOG + costanti.FILTER_SEP + 'referente', costanti.FILTER_TUTTI),
+ value: this.getCookie(this.COOK_SEARCH + costanti.FILTER_SEP + shared_consts.TABLES_LISTA_EDITORI + costanti.FILTER_SEP + 'referente', costanti.FILTER_TUTTI),
keycookie: '',
addall: true,
arrvalue: [],
diff --git a/src/store/Modules/toolsext.ts b/src/store/Modules/toolsext.ts
index 7ab33ac5..67e3ea14 100755
--- a/src/store/Modules/toolsext.ts
+++ b/src/store/Modules/toolsext.ts
@@ -91,6 +91,7 @@ export const toolsext = {
TABMYBOT: 'bots',
TABCALZOOM: 'calzoom',
TABTEMPLEMAIL: 'templemail',
+ TABDESTNEWSLETTER: 'destnewsletter',
TABOPZEMAIL: 'opzemail',
TABSHAREWITHUS: 'sharewithus',
TABTYPEHOSP: 'typehosps',
diff --git a/src/store/Products.ts b/src/store/Products.ts
index d45843ab..b2d60fff 100755
--- a/src/store/Products.ts
+++ b/src/store/Products.ts
@@ -312,14 +312,26 @@ export const useProducts = defineStore('Products', {
return mystr;
},
- getTotaleOrdineByOrdId: (state: IProductsState) => (idOrdine: string, idGasordine: string, mostra_solo_ordini_produttore: boolean): number => {
+ getTotaleOrdineByOrdId: (state: IProductsState) => (idOrdine: string, idGasordine: string, totale: boolean, mostra_solo_ordini_produttore: boolean, status: number): number => {
- const arrprod = state.orders.filter((rec: IOrderCart) => {
- if (idGasordine && !rec.items?.some(item => item.order && item.order.idGasordine === idGasordine) || (rec._id !== idOrdine)) {
- return false; // Skip records not matching gasordine condition
+ let arrprod = []
+
+ if (totale) {
+ arrprod = state.orders.filter((rec: IOrderCart) => {
+ if (idGasordine && !rec.items?.some(item => item.order && item.order.idGasordine === idGasordine) || (rec.status !== status)) {
+ return false; // Skip records not matching gasordine condition
+ }
+ return true;
+ });
+
+ } else {
+ arrprod = state.orders.filter((rec: IOrderCart) => {
+ if (idGasordine && !rec.items?.some(item => item.order && item.order.idGasordine === idGasordine) || (rec._id !== idOrdine)) {
+ return false; // Skip records not matching gasordine condition
+ }
+ return true;
+ });
}
- return true;
- });
let subtotalPrice = 0
diff --git a/src/store/UserStore.ts b/src/store/UserStore.ts
index a4e2088d..5c224303 100755
--- a/src/store/UserStore.ts
+++ b/src/store/UserStore.ts
@@ -1153,6 +1153,7 @@ export const useUserStore = defineStore('UserStore', {
if (res.data) {
globalStore.serv_settings = res.data.serv_settings
globalStore.templemail = res.data.templemail
+ globalStore.destnewsletter = res.data.destnewsletter
globalStore.opzemail = res.data.opzemail
}
@@ -1205,6 +1206,7 @@ export const useUserStore = defineStore('UserStore', {
this.isDepartment = tools.isBitActive(this.my.perm, shared_consts.Permissions.Department.value)
this.isTeacher = tools.isBitActive(this.my.perm, shared_consts.Permissions.Teacher.value)
this.isEditor = tools.isBitActive(this.my.perm, shared_consts.Permissions.Editor.value)
+ this.isCommerciale = tools.isBitActive(this.my.perm, shared_consts.Permissions.Commerciale.value)
this.isGrafico = tools.isBitActive(this.my.perm, shared_consts.Permissions.Grafico.value)
this.my.tokens = []
diff --git a/src/store/globalStore.ts b/src/store/globalStore.ts
index 48f81f45..ee22ba77 100644
--- a/src/store/globalStore.ts
+++ b/src/store/globalStore.ts
@@ -16,7 +16,8 @@ import type {
IOptCatalogo,
IProduct,
IProductInfo,
- IVariazione
+ IVariazione,
+ IDestNewsletter
} from '@model';
import {
ICity, IMySkill,
@@ -420,6 +421,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
else if (table === toolsext.TABNEWSLETTER) ris = state.newstosent
else if (table === toolsext.TABGALLERY) ris = state.gallery
else if (table === toolsext.TABTEMPLEMAIL) ris = state.templemail
+ else if (table === toolsext.TABDESTNEWSLETTER) ris = state.destnewsletter
else if (table === toolsext.TABOPZEMAIL) ris = state.opzemail
else if (table === toolsext.TABMAILINGLIST) ris = state.mailinglist
else if (table === toolsext.TABMYPAGE) ris = state.mypage
@@ -532,6 +534,10 @@ export const useGlobalStore = defineStore('GlobalStore', {
const myrec = mystate.templemail.find((rec) => rec._id === templid)
return (!!myrec) ? myrec.subject! : ''
},
+ getdestnewsletterbyId: (mystate: IGlobalState) => (id: string): string => {
+ const myrec = mystate.destnewsletter.find((rec: IDestNewsletter) => rec._id === id)
+ return (!!myrec) ? myrec.descr! : ''
+ },
},
@@ -2213,6 +2219,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
else if (table === toolsext.TABCALDATE) myarr = this.getArrDateEvent()
else if (table === toolsext.TABCALALLDATE) myarr = this.getArrAllDateEvent()
else if (table === toolsext.TABTYPEHOSP) myarr = shared_consts.TypeHosps
+ else if (table === 'tipodest') myarr = shared_consts.DESTNEWSLETTER_ARRAY
else if (table === 'versions') myarr = shared_consts.VERSIONI_PRODOTTO
else if (table === toolsext.TABPEOPLE) myarr = shared_consts.People
else if (table === toolsext.TABTYPEACCOM) myarr = shared_consts.TypeAccom
diff --git a/src/views/admin/dbop/dbop.vue b/src/views/admin/dbop/dbop.vue
index b9e9c159..4d072498 100755
--- a/src/views/admin/dbop/dbop.vue
+++ b/src/views/admin/dbop/dbop.vue
@@ -771,6 +771,11 @@
color="positive"
@click="EseguiFunz('MyElemSetIdPageInsteadThePah')"
>
+
+
+
+
+
+
+
+
+
+
+
-
mostra_codice.value, (newval, oldval) => {
tools.setCookie(tools.COOK_SHOWCODICE, mostra_codice.value ? '1' : '0')
- updateorders(true)
+ updateorders(true, true)
})
watch(() => mostra_cat.value, (newval, oldval) => {
tools.setCookie(tools.COOK_SHOWCAT, mostra_cat.value ? '1' : '0')
- updateorders(true)
+ updateorders(true, true)
})
watch(() => showWhichCode.value, (newval, oldval) => {
tools.setCookie(tools.COOK_SHOWCODE, showWhichCode.value.toString())
- updateorders(true)
+ updateorders(true, true)
})
watch(() => mostra_solo_ordini_produttore.value, (newval, oldval) => {
tools.setCookie(tools.COOK_SHOWORDPROD, mostra_solo_ordini_produttore.value ? '1' : '0')
- updateorders(true)
+ updateorders(false, true)
})
// const { setValDb, getValDb } = MixinBase()
@@ -381,8 +381,8 @@ export default defineComponent({
return listproductstotal
}
- function getTotaleOrdineByOrdId(id: string, idGasordine: string): string {
- return productStore.getTotaleOrdineByOrdId(id, idGasordine, mostra_solo_ordini_produttore.value).toFixed(2)
+ function getTotaleOrdineByOrdId(id: string, idGasordine: string, totale: boolean): string {
+ return productStore.getTotaleOrdineByOrdId(id, idGasordine, totale, mostra_solo_ordini_produttore.value, taborders.value).toFixed(2)
}
function getOrdersCartWithTotals(): any[] {
@@ -428,7 +428,7 @@ export default defineComponent({
return productStore.getOrdersAllCart(storeGasordine.value)
}
- function updateorders(updatetab: boolean) {
+ function updateorders(updatetab: boolean, notupdatetabsel: boolean) {
// Rimuovi dalla lista columns_listaTotali il record "codice_interno" se mostra_codice.value = false
columns_listafiltrati.value = columns_listaTotali.value.filter((column: any) => {
@@ -460,7 +460,8 @@ export default defineComponent({
arrnumstatus.value[status] = allorders.filter((rec) => (rec.status === status)).reduce((sum, item) => sum + 1, 0)
}
- selectfirstavailable()
+ if (!notupdatetabsel)
+ selectfirstavailable()
}
arrout.value = getOrdersCartWithTotals()
diff --git a/src/views/ecommerce/orderInfo/orderInfo.vue b/src/views/ecommerce/orderInfo/orderInfo.vue
index 23588029..fdbcf44d 100755
--- a/src/views/ecommerce/orderInfo/orderInfo.vue
+++ b/src/views/ecommerce/orderInfo/orderInfo.vue
@@ -222,7 +222,8 @@
>{{
getTotaleOrdineByOrdId(
props.row._id,
- storeGasordine
+ storeGasordine,
+ props.row.user.name === 'TOTALI'
)
}}
€{{
- getTotaleOrdineByOrdId(props.row._id, storeGasordine)
+ getTotaleOrdineByOrdId(props.row._id, storeGasordine, props.row.user.name === 'TOTALI')
}}
€
@@ -578,7 +579,9 @@
- -->
+ -->
+
+