- catalogo
- corretto logica del RefreshToken che non richiedeva il nuovo token, quindi scadeva tutte le volte, richiedendo sempre l'accesso !
@@ -1,18 +1,17 @@
|
|||||||
APP_VERSION="1.1.14"
|
APP_VERSION="1.1.14"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="18"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
DIRECTORY_SERVER="freeplanet_serverside"
|
DIRECTORY_SERVER="freeplanet_serverside"
|
||||||
SERVERDIR_WEBSITE=""
|
SERVERDIR_WEBSITE=""
|
||||||
SERVERPW_WEBSITE=""
|
SERVERPW_WEBSITE=""
|
||||||
APP_URL="https://localhost"
|
APP_URL="https://localhost"
|
||||||
URL_FACEBOOK="https://www.facebook.com/freeplanetapp"
|
URL_FACEBOOK="https://www.facebook.com/freeplanetapp"
|
||||||
PROVA_PAOLO="PROVA ENV FUNZIONA!"
|
|
||||||
LANG_DEFAULT="it"
|
LANG_DEFAULT="it"
|
||||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||||
MONGODB_HOST="https://localhost:3000"
|
MONGODB_HOST="https://localhost:3000"
|
||||||
LOGO_REG='gruppomacro-logo-full.png'
|
LOGO_REG='riso-logo-full.png'
|
||||||
TEST_NAME="Paolo"
|
TEST_NAME="Paolo"
|
||||||
TEST_SURNAME="Arena"
|
TEST_SURNAME="Arena"
|
||||||
TEST_EMAIL=""
|
TEST_EMAIL=""
|
||||||
@@ -25,5 +24,5 @@ DEBUG="1"
|
|||||||
TELEGRAM_SUPPORT=""
|
TELEGRAM_SUPPORT=""
|
||||||
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||||
TEST_CELL=""
|
TEST_CELL=""
|
||||||
VUE_APP_ISTEST=1
|
VUE_APP_ISTEST="1"
|
||||||
VUE_APP_INLOCALE=1
|
VUE_APP_INLOCALE="1"
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: site.confpages && site.confpages.enableEvents,
|
||||||
order: 20,
|
order: 20,
|
||||||
path: '/events',
|
path: '/events',
|
||||||
materialIcon: 'fas fa-bullhorn',
|
materialIcon: 'fas fa-bullhorn',
|
||||||
@@ -112,7 +112,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: site.confpages && site.confpages.showProfile,
|
||||||
order: 120,
|
order: 120,
|
||||||
path: '/myprofile',
|
path: '/myprofile',
|
||||||
materialIcon: 'fas fa-user',
|
materialIcon: 'fas fa-user',
|
||||||
@@ -123,7 +123,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: site.confpages && site.confpages.showProfile,
|
||||||
order: 120,
|
order: 120,
|
||||||
path: '/editprofile',
|
path: '/editprofile',
|
||||||
materialIcon: 'fas fa-user',
|
materialIcon: 'fas fa-user',
|
||||||
@@ -134,7 +134,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: site.confpages && site.confpages.showiscrittiMenu,
|
||||||
order: 130,
|
order: 130,
|
||||||
path: '/friends',
|
path: '/friends',
|
||||||
materialIcon: 'fas fa-user-friends',
|
materialIcon: 'fas fa-user-friends',
|
||||||
@@ -229,16 +229,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
active: true,
|
|
||||||
order: 150,
|
|
||||||
path: '/fundraising',
|
|
||||||
materialIcon: 'fas fa-hand-holding-heart',
|
|
||||||
name: 'pages.fundraising',
|
|
||||||
component: () => import('@src/root/fundraising/fundraising.vue'),
|
|
||||||
inmenu: false,
|
|
||||||
infooter: false,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 80,
|
order: 80,
|
||||||
|
|||||||
2
now.txt
@@ -1 +1 @@
|
|||||||
TERMINA DI LAVORARE SU piuchebuono.app: (Sovrascrivo !)
|
TERMINA DI LAVORARE SU gruppomacro.app: (Sovrascrivo !)
|
||||||
|
|||||||
10
package.json
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "gruppomacro",
|
"name": "riso",
|
||||||
"version": "1.1.14",
|
"version": "1.1.14",
|
||||||
"description": "GruppoMacro",
|
"description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
|
||||||
"productName": "Gruppo Macro",
|
"productName": "Riso",
|
||||||
"author": "Paolo Arena",
|
"author": "Paolo Arena",
|
||||||
"private": true,
|
"private": true,
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
@@ -54,12 +54,9 @@
|
|||||||
"graphql": "^16.9.0",
|
"graphql": "^16.9.0",
|
||||||
"graphql-tag": "^2.12.6",
|
"graphql-tag": "^2.12.6",
|
||||||
"gsap": "^3.12.5",
|
"gsap": "^3.12.5",
|
||||||
"html2canvas": "^1.4.1",
|
|
||||||
"html2pdf.js": "^0.10.2",
|
"html2pdf.js": "^0.10.2",
|
||||||
"jquery": "^3.7.1",
|
"jquery": "^3.7.1",
|
||||||
"js-cookie": "^3.0.5",
|
"js-cookie": "^3.0.5",
|
||||||
"jsbarcode": "^3.11.6",
|
|
||||||
"jspdf": "^2.5.2",
|
|
||||||
"leaflet": "^1.9.4",
|
"leaflet": "^1.9.4",
|
||||||
"leaflet-routing-machine": "^3.2.12",
|
"leaflet-routing-machine": "^3.2.12",
|
||||||
"leaflet.markercluster": "^1.5.3",
|
"leaflet.markercluster": "^1.5.3",
|
||||||
@@ -130,6 +127,7 @@
|
|||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
"json-loader": "^0.5.7",
|
"json-loader": "^0.5.7",
|
||||||
"node-sass": "^9.0.0",
|
"node-sass": "^9.0.0",
|
||||||
|
"nodemon": "^3.1.7",
|
||||||
"npm-check-updates": "^17.1.3",
|
"npm-check-updates": "^17.1.3",
|
||||||
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
||||||
"parcel": "^2.12.0",
|
"parcel": "^2.12.0",
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 14 KiB |
BIN
public/images/ferrara.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/images/freeplanet-logo-full.odg
Executable file
1186
public/images/freeplanet-logo-full.svg
Executable file
|
After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 30 KiB |
BIN
public/images/riso-android-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/images/riso-android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
public/images/riso-android-icon-36x36.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
public/images/riso-android-icon-384x384.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
public/images/riso-android-icon-48x48.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
public/images/riso-android-icon-512x512.png
Normal file
|
After Width: | Height: | Size: 185 KiB |
BIN
public/images/riso-android-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/images/riso-android-icon-96x96.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/images/riso-apple-icon-114x114.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
public/images/riso-apple-icon-120x120.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
public/images/riso-apple-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/images/riso-apple-icon-152x152.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
public/images/riso-apple-icon-180x180.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/images/riso-apple-icon-57x57.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
public/images/riso-apple-icon-60x60.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
public/images/riso-apple-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/images/riso-apple-icon-76x76.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/images/riso-apple-icon.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
public/images/riso-logo-full.png
Normal file
|
After Width: | Height: | Size: 634 KiB |
BIN
public/images/riso_home.png
Normal file
|
After Width: | Height: | Size: 279 KiB |
BIN
public/images/riso_home_dark.png
Normal file
|
After Width: | Height: | Size: 258 KiB |
BIN
public/images/riso_services.png
Normal file
|
After Width: | Height: | Size: 124 KiB |
@@ -17,6 +17,8 @@ const webpack = require('webpack')
|
|||||||
const helpers = require('./helpers')
|
const helpers = require('./helpers')
|
||||||
const envparser = require('./config/envparser')
|
const envparser = require('./config/envparser')
|
||||||
|
|
||||||
|
const package = require('./package.json');
|
||||||
|
|
||||||
// const ESLintPlugin = require('eslint-webpack-plugin')
|
// const ESLintPlugin = require('eslint-webpack-plugin')
|
||||||
|
|
||||||
module.exports = configure((ctx) => ({
|
module.exports = configure((ctx) => ({
|
||||||
@@ -87,6 +89,7 @@ module.exports = configure((ctx) => ({
|
|||||||
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
|
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
|
||||||
build: {
|
build: {
|
||||||
env: envparser(),
|
env: envparser(),
|
||||||
|
versionCode: package.version,
|
||||||
vueRouterMode: 'history',
|
vueRouterMode: 'history',
|
||||||
vueCompiler: true,
|
vueCompiler: true,
|
||||||
gzip: false, // gzip true
|
gzip: false, // gzip true
|
||||||
@@ -149,9 +152,9 @@ module.exports = configure((ctx) => ({
|
|||||||
},
|
},
|
||||||
devServer: {
|
devServer: {
|
||||||
https: false,
|
https: false,
|
||||||
port: 8089,
|
port: 8084,
|
||||||
open: false, // opens browser window automatically
|
open: false, // opens browser window automatically
|
||||||
hot: true, // Disable hot module replacement
|
hot: false, // Disable hot module replacement
|
||||||
headers: {
|
headers: {
|
||||||
'Access-Control-Allow-Origin': '*',
|
'Access-Control-Allow-Origin': '*',
|
||||||
'Access-Control-Allow-Headers': '*',
|
'Access-Control-Allow-Headers': '*',
|
||||||
@@ -248,6 +251,8 @@ module.exports = configure((ctx) => ({
|
|||||||
'Cookies',
|
'Cookies',
|
||||||
'Loading',
|
'Loading',
|
||||||
'AppVisibility',
|
'AppVisibility',
|
||||||
|
'LocalStorage',
|
||||||
|
'SessionStorage',
|
||||||
],
|
],
|
||||||
get plugins_1() {
|
get plugins_1() {
|
||||||
return this._plugins;
|
return this._plugins;
|
||||||
@@ -308,9 +313,9 @@ module.exports = configure((ctx) => ({
|
|||||||
},
|
},
|
||||||
|
|
||||||
manifest: {
|
manifest: {
|
||||||
name: 'Gruppo Macro',
|
name: 'Riso',
|
||||||
short_name: 'GruppoMacro',
|
short_name: 'Riso',
|
||||||
description: '',
|
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||||
display: 'standalone',
|
display: 'standalone',
|
||||||
orientation: 'portrait',
|
orientation: 'portrait',
|
||||||
background_color: '#fff',
|
background_color: '#fff',
|
||||||
@@ -320,24 +325,54 @@ module.exports = configure((ctx) => ({
|
|||||||
start_url: "/?homescreen=1",
|
start_url: "/?homescreen=1",
|
||||||
icons: [
|
icons: [
|
||||||
{
|
{
|
||||||
src: 'images/gm-android-icon-512x512.png',
|
src: 'images/riso-android-icon-512x512.png',
|
||||||
sizes: '512x512',
|
sizes: '512x512',
|
||||||
type: 'image/png',
|
type: 'image/png',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: 'images/gm-android-icon-192x192.png',
|
src: 'images/riso-android-icon-384x384.png',
|
||||||
|
sizes: '384x384',
|
||||||
|
type: 'image/png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'images/riso-android-icon-192x192.png',
|
||||||
sizes: '192x192',
|
sizes: '192x192',
|
||||||
type: 'image/png',
|
type: 'image/png',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: 'images/gm-apple-touch-icon.png',
|
src: 'images/riso-android-icon-144x144.png',
|
||||||
|
sizes: '144x144',
|
||||||
|
type: 'image/png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'images/riso-android-icon-96x96.png',
|
||||||
|
sizes: '96x96',
|
||||||
|
type: 'image/png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'images/riso-apple-icon-120x120.png',
|
||||||
|
sizes: '120x120',
|
||||||
|
type: 'image/png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'images/riso-apple-icon-144x144.png',
|
||||||
|
sizes: '144x144',
|
||||||
|
type: 'image/png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'images/riso-apple-icon-152x152.png',
|
||||||
|
sizes: '152x152',
|
||||||
|
type: 'image/png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'images/riso-apple-icon-180x180.png',
|
||||||
sizes: '180x180',
|
sizes: '180x180',
|
||||||
type: 'image/png',
|
type: 'image/png',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
related_applications: [{
|
related_applications: [{
|
||||||
"platform": "webapp",
|
"platform": "webapp",
|
||||||
"url": "https://www.gruppomacro.app/manifest.json"
|
"url": "https://www.riso.app/manifest.json"
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -372,7 +407,7 @@ module.exports = configure((ctx) => ({
|
|||||||
builder: {
|
builder: {
|
||||||
// https://www.electron.build/configuration/configuration
|
// https://www.electron.build/configuration/configuration
|
||||||
|
|
||||||
appId: 'GruppoMacro',
|
appId: 'Riso',
|
||||||
},
|
},
|
||||||
|
|
||||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||||
|
|||||||
@@ -1603,6 +1603,8 @@ export const shared_consts = {
|
|||||||
CIRCUIT_PARAMS: {
|
CIRCUIT_PARAMS: {
|
||||||
SCOPERTO_MIN_GRP: 200,
|
SCOPERTO_MIN_GRP: 200,
|
||||||
SCOPERTO_MAX_GRP: 400,
|
SCOPERTO_MAX_GRP: 400,
|
||||||
|
SCOPERTO_MIN_CONTO_COMUNITARIO: 500,
|
||||||
|
SCOPERTO_MAX_CONTO_COMUNITARIO: 1000,
|
||||||
},
|
},
|
||||||
|
|
||||||
FontsInstalled: [
|
FontsInstalled: [
|
||||||
@@ -2017,11 +2019,18 @@ export const shared_consts = {
|
|||||||
fido_scoperto_default: 1,
|
fido_scoperto_default: 1,
|
||||||
deperimento: 1,
|
deperimento: 1,
|
||||||
showAlways: 1,
|
showAlways: 1,
|
||||||
|
ignoreLimits: 1,
|
||||||
|
askManagerToEnter: 1,
|
||||||
|
sendEmailAfterAskingToEnter: 1,
|
||||||
|
circuitoIndipendente: 1,
|
||||||
|
creditodiPartenza: 1,
|
||||||
status: 1,
|
status: 1,
|
||||||
transactionsEnabled: 1,
|
transactionsEnabled: 1,
|
||||||
qta_max_default: 1,
|
qta_max_default: 1,
|
||||||
fido_scoperto_default_grp: 1,
|
fido_scoperto_default_grp: 1,
|
||||||
qta_max_default_grp: 1,
|
qta_max_default_grp: 1,
|
||||||
|
fido_scoperto_default_contocom: 1,
|
||||||
|
qta_max_default_contocom: 1,
|
||||||
valuta_per_euro: 1,
|
valuta_per_euro: 1,
|
||||||
symbol: 1,
|
symbol: 1,
|
||||||
idCity: 1,
|
idCity: 1,
|
||||||
@@ -2236,25 +2245,32 @@ export const shared_consts = {
|
|||||||
PRODUCT: 1000,
|
PRODUCT: 1000,
|
||||||
},
|
},
|
||||||
|
|
||||||
ORDINAMENTO_CATALOGHI: [
|
ORDINAMENTO_CATALOGHI_PUBBLICO: [
|
||||||
{
|
{ label: '[Nessuno]', value: '' },
|
||||||
label: '[Default]',
|
{ label: 'Alfabetico', value: 'name' },
|
||||||
value: 0,
|
{ label: 'Data di Pubblicazione', value: 'date_pub_ts' },
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Data di Uscita',
|
|
||||||
value: 1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Bestseller',
|
|
||||||
value: 2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Alfabetico',
|
|
||||||
value: 0,
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
ORDINAMENTO_CATALOGHI: [
|
||||||
|
{ label: '[Nessuno]', value: '' },
|
||||||
|
{ label: 'Alfabetico', value: 'name' },
|
||||||
|
{ label: 'Data di Pubblicazione', value: 'date_pub_ts' },
|
||||||
|
{ label: 'Totale Venduti', value: 'totVen' },
|
||||||
|
{ label: 'Totale Fatturati', value: 'totFat' },
|
||||||
|
{ label: 'Venduti Ultimi 3 Mesi', value: 'vLast3M' },
|
||||||
|
{ label: 'Venduti Ultimi 6 Mesi', value: 'vLast6M' },
|
||||||
|
{ label: 'Venduti Ultimo Anno', value: 'vLastY' },
|
||||||
|
{ label: 'Venduti Ultimi 2 Anni', value: 'vLast2Y' },
|
||||||
|
{ label: 'Fatturati Ultimi 3 Mesi', value: 'fatLast3M' },
|
||||||
|
{ label: 'Data Ultimo Ordine', value: 'dataUltimoOrdine' },
|
||||||
|
],
|
||||||
|
|
||||||
|
ORDINAMENTO_DIREZIONE: [
|
||||||
|
{ label: 'Ascendente', value: 1 },
|
||||||
|
{ label: 'Discendente', value: -1 },
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
VERSIONI_PRODOTTO: [
|
VERSIONI_PRODOTTO: [
|
||||||
{
|
{
|
||||||
label: '[Nessuno]',
|
label: '[Nessuno]',
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
// Funzione per disegnare il codice a barre
|
// Funzione per disegnare il codice a barre
|
||||||
const drawBarcode = () => {
|
const drawBarcode = () => {
|
||||||
|
if (value.value) {
|
||||||
JsBarcode("#C" + value.value, value.value, {
|
JsBarcode("#C" + value.value, value.value, {
|
||||||
format: format.value,
|
format: format.value,
|
||||||
width: widthlines.value,
|
width: widthlines.value,
|
||||||
@@ -75,9 +76,10 @@ export default defineComponent({
|
|||||||
textMargin: 0,
|
textMargin: 0,
|
||||||
marginTop: 0,
|
marginTop: 0,
|
||||||
fontSize: fontsize.value,
|
fontSize: fontsize.value,
|
||||||
textPosition:"bottom",
|
textPosition: "bottom",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Chiamato quando il componente è montato
|
// Chiamato quando il componente è montato
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|||||||
@@ -711,6 +711,30 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row bg-blue-4">
|
<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>
|
<div class="etichetta">Venduti:</div>
|
||||||
<CMyValueDb
|
<CMyValueDb
|
||||||
:editOn="modifOn"
|
:editOn="modifOn"
|
||||||
@@ -723,7 +747,7 @@
|
|||||||
:type="costanti.FieldType.number"
|
:type="costanti.FieldType.number"
|
||||||
>
|
>
|
||||||
</CMyValueDb>
|
</CMyValueDb>
|
||||||
<div class="etichetta">Venduti Ultimo Mese:</div>
|
<div class="etichetta">Venduti Ultimi 3 Mesi:</div>
|
||||||
<CMyValueDb
|
<CMyValueDb
|
||||||
:editOn="modifOn"
|
:editOn="modifOn"
|
||||||
table="productinfos"
|
table="productinfos"
|
||||||
|
|||||||
@@ -46,6 +46,11 @@ export default defineComponent({
|
|||||||
required: false,
|
required: false,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
labelBtnAddExtra: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
selector: {
|
selector: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: false,
|
required: false,
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
labelBtnAddRow="NONE"
|
labelBtnAddRow="NONE"
|
||||||
:prop_SortFieldsAvailable="mySortFieldsAvailable"
|
:prop_SortFieldsAvailable="mySortFieldsAvailable"
|
||||||
:labelBtnAddExtra_OFF="noButtAdd ? `` : (ind >= 0) ? `Aggiungi ` + costanti.MAINCARDS[ind].strsingolo : ''"
|
:labelBtnAddExtra_OFF="noButtAdd ? `` : (ind >= 0) ? `Aggiungi ` + costanti.MAINCARDS[ind].strsingolo : ''"
|
||||||
labelBtnAddExtra=""
|
:labelBtnAddExtra="labelBtnAddExtra"
|
||||||
:extraparams="tools.extraparams(table, {myrecfiltertoggle})"
|
:extraparams="tools.extraparams(table, {myrecfiltertoggle})"
|
||||||
:prop_showMap="showMap"
|
:prop_showMap="showMap"
|
||||||
@clickButtBar="clickButtBar"
|
@clickButtBar="clickButtBar"
|
||||||
|
|||||||
@@ -21,7 +21,13 @@
|
|||||||
<q-spinner v-if="loadSaldo" color="primary" size="3em" :thickness="2" />
|
<q-spinner v-if="loadSaldo" color="primary" size="3em" :thickness="2" />
|
||||||
</div>
|
</div>
|
||||||
<q-btn
|
<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
|
outline
|
||||||
rounded
|
rounded
|
||||||
dense
|
dense
|
||||||
@@ -61,6 +67,7 @@
|
|||||||
<div :class="$q.screen.lt.sm ? '' : 'row'">
|
<div :class="$q.screen.lt.sm ? '' : 'row'">
|
||||||
<div class="sezioni">
|
<div class="sezioni">
|
||||||
<CCurrencyV2
|
<CCurrencyV2
|
||||||
|
v-if="!circuit.ignoreLimits"
|
||||||
:symbol="tools.getSymbolByCircuit(circuit)"
|
:symbol="tools.getSymbolByCircuit(circuit)"
|
||||||
:color="tools.getColorByCircuit(circuit)"
|
:color="tools.getColorByCircuit(circuit)"
|
||||||
color_border="red"
|
color_border="red"
|
||||||
@@ -77,6 +84,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="sezioni">
|
<div class="sezioni">
|
||||||
<CCurrencyV2
|
<CCurrencyV2
|
||||||
|
v-if="!circuit.ignoreLimits"
|
||||||
:symbol="tools.getSymbolByCircuit(circuit)"
|
:symbol="tools.getSymbolByCircuit(circuit)"
|
||||||
:color="tools.getColorByCircuit(circuit)"
|
:color="tools.getColorByCircuit(circuit)"
|
||||||
color_border="green"
|
color_border="green"
|
||||||
|
|||||||
@@ -27,11 +27,11 @@
|
|||||||
:class="
|
:class="
|
||||||
`q-ma-sm ` + ($q.dark.isActive ? `text-white` : `text-black`)
|
`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>
|
<q-icon name="fas fa-users" size="xs" color="blue"></q-icon>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="circuit.link_group" :class="` `">
|
<div v-if="circuit.link_group" :class="` `">
|
||||||
|
|
||||||
<q-btn
|
<q-btn
|
||||||
icon="fab fa-telegram"
|
icon="fab fa-telegram"
|
||||||
size="xs"
|
size="xs"
|
||||||
@@ -107,15 +107,19 @@
|
|||||||
caption
|
caption
|
||||||
lines="1"
|
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">
|
<span class="text-red text-weight-bold">
|
||||||
{{
|
{{ $t('circuit.transaction_suspended') }}
|
||||||
$t('circuit.transaction_suspended')
|
|
||||||
}}
|
|
||||||
</span>
|
</span>
|
||||||
</q-item-label>
|
</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
|
<CSaldo
|
||||||
v-if="tools.isUserOk() && username === myusername() && account"
|
v-if="tools.isUserOk() && username === myusername() && account"
|
||||||
:account="account"
|
:account="account"
|
||||||
@@ -141,7 +145,9 @@
|
|||||||
inline-actions
|
inline-actions
|
||||||
class="bg-blue text-white"
|
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>
|
||||||
<q-banner v-else inline-actions class="bg-blue text-white">
|
<q-banner v-else inline-actions class="bg-blue text-white">
|
||||||
<span v-html="$t('circuit.non_entrato')"></span>
|
<span v-html="$t('circuit.non_entrato')"></span>
|
||||||
@@ -153,10 +159,14 @@
|
|||||||
!userStore.IsRefusedCircuitByName(circuit.name)
|
!userStore.IsRefusedCircuitByName(circuit.name)
|
||||||
"
|
"
|
||||||
color="positive"
|
color="positive"
|
||||||
:label="$t('circuit.apri')"
|
:label="
|
||||||
|
circuit.askManagerToEnter
|
||||||
|
? $t('circuit.ask')
|
||||||
|
: $t('circuit.apri')
|
||||||
|
"
|
||||||
@click="
|
@click="
|
||||||
requestToEnterCircuit = true;
|
requestToEnterCircuit = true;
|
||||||
groupnameSel = null;
|
groupnameSel = null;
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
@@ -165,7 +175,10 @@ groupnameSel = null;
|
|||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</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-item-label>
|
||||||
<q-btn
|
<q-btn
|
||||||
rounded
|
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-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<q-list
|
<q-list
|
||||||
@@ -222,9 +239,7 @@ groupnameSel = null;
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
{{
|
{{ $t('shared.refuse_ask') }}
|
||||||
$t('shared.refuse_ask')
|
|
||||||
}}
|
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
<q-item
|
<q-item
|
||||||
@@ -241,14 +256,15 @@ groupnameSel = null;
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
{{
|
{{ $t('shared.cancel_ask') }}
|
||||||
$t('shared.cancel_ask')
|
|
||||||
}}
|
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<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"
|
style="min-width: 200px"
|
||||||
>
|
>
|
||||||
<q-item
|
<q-item
|
||||||
@@ -288,7 +304,10 @@ groupnameSel = null;
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</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-item-label>
|
||||||
<q-btn rounded icon="fas fa-ellipsis-h">
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
@@ -309,9 +328,7 @@ groupnameSel = null;
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
{{
|
{{ $t('circuit.reject_ask') }}
|
||||||
$t('circuit.reject_ask')
|
|
||||||
}}
|
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -319,7 +336,10 @@ groupnameSel = null;
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</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-item-label>
|
||||||
<q-btn rounded icon="fas fa-ellipsis-h">
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
@@ -340,9 +360,7 @@ groupnameSel = null;
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
{{
|
{{ $t('shared.refuse_ask') }}
|
||||||
$t('shared.refuse_ask')
|
|
||||||
}}
|
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
<q-item
|
<q-item
|
||||||
@@ -361,9 +379,7 @@ groupnameSel = null;
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
{{
|
{{ $t('shared.cancel_ask') }}
|
||||||
$t('shared.cancel_ask')
|
|
||||||
}}
|
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -373,7 +389,10 @@ groupnameSel = null;
|
|||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</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
|
<q-btn
|
||||||
v-if="
|
v-if="
|
||||||
!userStore.IsMyCircuitByName(circuit.name) &&
|
!userStore.IsMyCircuitByName(circuit.name) &&
|
||||||
@@ -382,23 +401,37 @@ groupnameSel = null;
|
|||||||
"
|
"
|
||||||
icon="fas fa-user-plus"
|
icon="fas fa-user-plus"
|
||||||
color="primary"
|
color="primary"
|
||||||
:label="$t('circuit.ask')"
|
:label="
|
||||||
|
circuit.askManagerToEnter ? $t('circuit.ask') : $t('circuit.enter')
|
||||||
|
"
|
||||||
rounded
|
rounded
|
||||||
@click="
|
@click="
|
||||||
requestToEnterCircuit = true;
|
requestToEnterCircuit = true;
|
||||||
groupnameSel = null;
|
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-menu>
|
||||||
<q-list v-if="true" style="min-width: 150px">
|
<q-list v-if="true" style="min-width: 150px">
|
||||||
<q-item
|
<q-item
|
||||||
clickable
|
clickable
|
||||||
v-close-popup
|
v-close-popup
|
||||||
v-if="true"
|
v-if="true"
|
||||||
@click="(saldo !== 0) ?
|
@click="
|
||||||
tools.showNegativeNotif($q, t('circuit.per_uscire_dal_circuito_occorre_essere_a_zero'), 30000) :
|
(saldo < 0)
|
||||||
tools.removeFromMyCircuits(
|
? tools.showNegativeNotif(
|
||||||
|
$q,
|
||||||
|
t(
|
||||||
|
'circuit.per_uscire_dal_circuito_occorre_essere_a_zero',
|
||||||
|
{ symbol: circuit.symbol }
|
||||||
|
),
|
||||||
|
30000
|
||||||
|
)
|
||||||
|
: tools.removeFromMyCircuits(
|
||||||
$q,
|
$q,
|
||||||
userStore.my.username,
|
userStore.my.username,
|
||||||
circuit.name,
|
circuit.name,
|
||||||
@@ -413,9 +446,7 @@ groupnameSel = null;
|
|||||||
<q-icon color="negative" name="fas fa-user-minus" />
|
<q-icon color="negative" name="fas fa-user-minus" />
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
{{
|
{{ $t('circuit.exit_circuit') }}
|
||||||
$t('circuit.exit_circuit')
|
|
||||||
}}
|
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
|
|
||||||
@@ -474,13 +505,19 @@ groupnameSel = null;
|
|||||||
</q-toolbar-title>
|
</q-toolbar-title>
|
||||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||||
</q-toolbar>
|
</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>
|
<div v-html="t('circuit.disclaimer')"></div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-section class="inset-shadow">
|
<q-card-section class="inset-shadow">
|
||||||
<div style="font-weight: bold; font-size: 1.25rem">Regolamento:</div>
|
<div style="font-weight: bold; font-size: 1.25rem">Regolamento:</div>
|
||||||
<q-btn label="vedi Regolamento" @click="showrules = !showrules"></q-btn>
|
<q-btn
|
||||||
<div v-if="showrules" v-html="getRegulation(circuit.regulation)"></div>
|
label="vedi Regolamento"
|
||||||
|
@click="showrules = !showrules"
|
||||||
|
></q-btn>
|
||||||
|
<div
|
||||||
|
v-if="showrules"
|
||||||
|
v-html="getRegulation(circuit.regulation)"
|
||||||
|
></div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="center">
|
<q-card-actions align="center">
|
||||||
<q-btn
|
<q-btn
|
||||||
@@ -490,16 +527,21 @@ groupnameSel = null;
|
|||||||
:label="$t('circuit.acceptregulation')"
|
:label="$t('circuit.acceptregulation')"
|
||||||
@click="
|
@click="
|
||||||
requestToEnterCircuit = false;
|
requestToEnterCircuit = false;
|
||||||
tools.setRequestCircuit(
|
tools.setRequestCircuit(
|
||||||
$q,
|
$q,
|
||||||
userStore.my.username,
|
userStore.my.username,
|
||||||
circuit.name,
|
circuit.name,
|
||||||
true,
|
true,
|
||||||
groupnameSel ? groupnameSel.groupname : ''
|
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-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
@@ -513,5 +555,5 @@ tools.setRequestCircuit(
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "./CMyCircuit.scss";
|
@import './CMyCircuit.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -36,34 +36,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</CTitleBanner>
|
</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">
|
<div class="row justify-center">
|
||||||
<q-btn
|
<q-btn
|
||||||
rounded
|
rounded
|
||||||
@@ -100,11 +72,45 @@
|
|||||||
</CMyCircuit>
|
</CMyCircuit>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</CTitleBanner>
|
<div>
|
||||||
</div>
|
|
||||||
<div v-if="visu === costanti.FIND_CIRCUIT">
|
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<q-list class="width-container">
|
<q-list class="width-container">
|
||||||
|
|||||||
@@ -493,8 +493,10 @@ export default defineComponent({
|
|||||||
productTypes: [],
|
productTypes: [],
|
||||||
excludeproductTypes: [],
|
excludeproductTypes: [],
|
||||||
editore: [],
|
editore: [],
|
||||||
|
argomenti: [],
|
||||||
author: '',
|
author: '',
|
||||||
sort: costanti.SORT_PUBDATE,
|
sort_field: '',
|
||||||
|
sort_dir: 0,
|
||||||
arrProdottiSpeciali: [],
|
arrProdottiSpeciali: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -783,10 +785,22 @@ export default defineComponent({
|
|||||||
|
|
||||||
if (arrschede) {
|
if (arrschede) {
|
||||||
arrschede.forEach((recscheda: ISchedaSingola) => {
|
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
|
return arr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1390,7 +1390,7 @@
|
|||||||
v-if="enableEdit && myel.catalogo"
|
v-if="enableEdit && myel.catalogo"
|
||||||
rounded
|
rounded
|
||||||
outlined
|
outlined
|
||||||
v-model="myel.catalogo.sort"
|
v-model="myel.catalogo.sort_field"
|
||||||
:options="shared_consts.ORDINAMENTO_CATALOGHI"
|
:options="shared_consts.ORDINAMENTO_CATALOGHI"
|
||||||
@update:model-value="modifElem"
|
@update:model-value="modifElem"
|
||||||
label="Ordinamento"
|
label="Ordinamento"
|
||||||
@@ -1399,6 +1399,20 @@
|
|||||||
map-options
|
map-options
|
||||||
>
|
>
|
||||||
</q-select>
|
</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
|
<q-select
|
||||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||||
@@ -1411,7 +1425,7 @@
|
|||||||
:options="shared_consts.VERSIONI_PRODOTTO"
|
:options="shared_consts.VERSIONI_PRODOTTO"
|
||||||
@update:model-value="modifElem"
|
@update:model-value="modifElem"
|
||||||
multiple
|
multiple
|
||||||
label="Includi"
|
label="Includi Stato Prodotto"
|
||||||
style="width: 300px"
|
style="width: 300px"
|
||||||
emit-value
|
emit-value
|
||||||
map-options
|
map-options
|
||||||
@@ -1431,7 +1445,7 @@
|
|||||||
:options="shared_consts.VERSIONI_PRODOTTO"
|
:options="shared_consts.VERSIONI_PRODOTTO"
|
||||||
@update:model-value="modifElem"
|
@update:model-value="modifElem"
|
||||||
multiple
|
multiple
|
||||||
label="Escludi"
|
label="Escludi Stato Prodotto"
|
||||||
style="width: 300px"
|
style="width: 300px"
|
||||||
emit-value
|
emit-value
|
||||||
map-options
|
map-options
|
||||||
@@ -1442,7 +1456,7 @@
|
|||||||
v-if="enableEdit"
|
v-if="enableEdit"
|
||||||
rounded
|
rounded
|
||||||
outlined
|
outlined
|
||||||
v-model="myel.catalogo.Editore"
|
v-model="myel.catalogo.editore"
|
||||||
:options="Products.publishers"
|
:options="Products.publishers"
|
||||||
@update:model-value="modifElem"
|
@update:model-value="modifElem"
|
||||||
multiple
|
multiple
|
||||||
@@ -1454,6 +1468,39 @@
|
|||||||
option-label="name"
|
option-label="name"
|
||||||
>
|
>
|
||||||
</q-select>
|
</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>
|
</div>
|
||||||
</q-expansion-item>
|
</q-expansion-item>
|
||||||
<q-expansion-item
|
<q-expansion-item
|
||||||
@@ -1579,6 +1626,7 @@
|
|||||||
@update:model-value="modifElem"
|
@update:model-value="modifElem"
|
||||||
v-model="recscheda.scheda.name"
|
v-model="recscheda.scheda.name"
|
||||||
filled
|
filled
|
||||||
|
debounce="1000"
|
||||||
v-on:keyup.enter="saveElem"
|
v-on:keyup.enter="saveElem"
|
||||||
>
|
>
|
||||||
</q-input>
|
</q-input>
|
||||||
@@ -1655,7 +1703,7 @@
|
|||||||
v-if="enableEdit && myel.catalogo"
|
v-if="enableEdit && myel.catalogo"
|
||||||
rounded
|
rounded
|
||||||
outlined
|
outlined
|
||||||
v-model="recscheda.scheda.sort"
|
v-model="recscheda.scheda.sort_field"
|
||||||
:options="shared_consts.ORDINAMENTO_CATALOGHI"
|
:options="shared_consts.ORDINAMENTO_CATALOGHI"
|
||||||
@update:model-value="modifElem"
|
@update:model-value="modifElem"
|
||||||
label="Ordinamento"
|
label="Ordinamento"
|
||||||
@@ -1664,6 +1712,22 @@
|
|||||||
map-options
|
map-options
|
||||||
>
|
>
|
||||||
</q-select>
|
</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
|
<q-select
|
||||||
:behavior="
|
:behavior="
|
||||||
$q.platform.is.ios === true ? 'dialog' : 'menu'
|
$q.platform.is.ios === true ? 'dialog' : 'menu'
|
||||||
@@ -1713,7 +1777,7 @@
|
|||||||
v-if="enableEdit"
|
v-if="enableEdit"
|
||||||
rounded
|
rounded
|
||||||
outlined
|
outlined
|
||||||
v-model="recscheda.scheda.Editore"
|
v-model="recscheda.scheda.editore"
|
||||||
:options="Products.publishers"
|
:options="Products.publishers"
|
||||||
@update:model-value="modifElem"
|
@update:model-value="modifElem"
|
||||||
multiple
|
multiple
|
||||||
@@ -2033,6 +2097,7 @@
|
|||||||
@saveFieldElem="saveFieldElem"
|
@saveFieldElem="saveFieldElem"
|
||||||
@update:model-value="modifElem"
|
@update:model-value="modifElem"
|
||||||
label="Testo"
|
label="Testo"
|
||||||
|
debounce="1000"
|
||||||
>
|
>
|
||||||
</CMyText>
|
</CMyText>
|
||||||
</div>
|
</div>
|
||||||
@@ -2061,6 +2126,7 @@
|
|||||||
@saveFieldElem="saveFieldElem"
|
@saveFieldElem="saveFieldElem"
|
||||||
@update:model-value="modifElem"
|
@update:model-value="modifElem"
|
||||||
label="Testo"
|
label="Testo"
|
||||||
|
debounce="1000"
|
||||||
>
|
>
|
||||||
</CMyText>
|
</CMyText>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -225,7 +225,7 @@ export default defineComponent({
|
|||||||
function clickOnElem() {
|
function clickOnElem() {
|
||||||
if (props.editOn) {
|
if (props.editOn) {
|
||||||
enableEdit.value = true
|
enableEdit.value = true
|
||||||
console.log('selElemClick', props.myelem)
|
// console.log('selElemClick', props.myelem)
|
||||||
emit('selElemClick', props.myelem)
|
emit('selElemClick', props.myelem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,6 +111,7 @@
|
|||||||
<div :class="$q.screen.lt.sm ? '' : 'row'">
|
<div :class="$q.screen.lt.sm ? '' : 'row'">
|
||||||
<div class="sezioni">
|
<div class="sezioni">
|
||||||
<CCurrencyV2
|
<CCurrencyV2
|
||||||
|
v-if="!circuit.ignoreLimits"
|
||||||
:symbol="tools.getSymbolByCircuit(circuit)"
|
:symbol="tools.getSymbolByCircuit(circuit)"
|
||||||
:color="tools.getColorByCircuit(circuit)"
|
:color="tools.getColorByCircuit(circuit)"
|
||||||
color_border="red"
|
color_border="red"
|
||||||
@@ -127,6 +128,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="sezioni">
|
<div class="sezioni">
|
||||||
<CCurrencyV2
|
<CCurrencyV2
|
||||||
|
v-if="!circuit.ignoreLimits"
|
||||||
:symbol="tools.getSymbolByCircuit(circuit)"
|
:symbol="tools.getSymbolByCircuit(circuit)"
|
||||||
:color="tools.getColorByCircuit(circuit)"
|
:color="tools.getColorByCircuit(circuit)"
|
||||||
color_border="green"
|
color_border="green"
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
const msg_website_it = {
|
const msg_website_it = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'Gruppo Macro',
|
sitename: 'Riso',
|
||||||
siteshortname: 'Gruppo Macro',
|
siteshortname: 'RISO',
|
||||||
description: '',
|
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||||
keywords: '',
|
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
|
||||||
},
|
},
|
||||||
hours: {
|
hours: {
|
||||||
descr: 'Descrizione',
|
descr: 'Descrizione',
|
||||||
@@ -16,35 +16,23 @@ const msg_website_it = {
|
|||||||
pages: {
|
pages: {
|
||||||
home: 'Home',
|
home: 'Home',
|
||||||
profile: 'Profilo',
|
profile: 'Profilo',
|
||||||
install_site: 'Installa Sito',
|
|
||||||
profile2: 'ProfiloU',
|
profile2: 'ProfiloU',
|
||||||
mypage2: 'mypage2',
|
mypage2: 'mypage2',
|
||||||
myservice2: 'myservice2',
|
myservice2: 'myservice2',
|
||||||
myhosps2: 'myhosps2',
|
myhosps2: 'myhosps2',
|
||||||
mygood2: 'mygood2',
|
mygood2: 'mygood2',
|
||||||
catalogo: 'Catalogo',
|
|
||||||
fundraising: 'Sostieni il Progetto',
|
fundraising: 'Sostieni il Progetto',
|
||||||
notifs: 'Configura le Notifiche',
|
notifs: 'Configura le Notifiche',
|
||||||
unsubscribe: 'Disiscriviti',
|
unsubscribe: 'Disiscriviti',
|
||||||
unsubscribe_user: 'Disiscriviti User',
|
|
||||||
test: 'Test',
|
test: 'Test',
|
||||||
projects: 'Progetti',
|
projects: 'Progetti',
|
||||||
report: 'Report Ore',
|
report: 'Report Ore',
|
||||||
producer: 'Produttore',
|
producer: 'Produttore',
|
||||||
orderinfo: 'Ordini Effettuati',
|
orderinfo: 'Ordini Effettuati',
|
||||||
products: 'Prodotti',
|
products: 'Prodotti',
|
||||||
cash: 'Cassa',
|
|
||||||
productInfos: 'Info Prodotti',
|
|
||||||
listinoprodotti: 'Listino Prodotti',
|
|
||||||
productslist: 'Lista Prodotti',
|
productslist: 'Lista Prodotti',
|
||||||
collabora: 'Collabora',
|
collabora: 'Collabora',
|
||||||
categories: 'Categorie',
|
|
||||||
storehouses: 'Magazzino',
|
storehouses: 'Magazzino',
|
||||||
providers: 'Fornitori',
|
|
||||||
catprods: 'Categorie',
|
|
||||||
subcatprods: 'Sotto-Categorie',
|
|
||||||
gasordine: 'Gas Ordine',
|
|
||||||
scontisticas: 'Scontistica',
|
|
||||||
departments: 'Uffici',
|
departments: 'Uffici',
|
||||||
orders: 'Ordini Ricevuti',
|
orders: 'Ordini Ricevuti',
|
||||||
orders2: 'Ordini Ricevuti',
|
orders2: 'Ordini Ricevuti',
|
||||||
@@ -133,11 +121,15 @@ const msg_website_it = {
|
|||||||
only_residenti: 'Solo Residenti',
|
only_residenti: 'Solo Residenti',
|
||||||
only_consiglio: 'Solo Consiglieri',
|
only_consiglio: 'Solo Consiglieri',
|
||||||
color: 'Colore',
|
color: 'Colore',
|
||||||
gasordini: 'Gas Ordini',
|
mainMenu: 'Menu Principale',
|
||||||
gestoreordini: 'Gestore Ordini',
|
subtitle: 'Sottotitolo',
|
||||||
|
lang: 'Lingua',
|
||||||
|
keywords: 'Parole Chiave',
|
||||||
|
desctiption: 'Descrizione',
|
||||||
|
heightimg: 'Altezza Immagine',
|
||||||
},
|
},
|
||||||
msg: {
|
msg: {
|
||||||
myAppName: 'Più che Buono',
|
myAppName: 'Riso',
|
||||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||||
underconstruction: 'App in costruzione...',
|
underconstruction: 'App in costruzione...',
|
||||||
myDescriz: '',
|
myDescriz: '',
|
||||||
|
|||||||
@@ -67,6 +67,39 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
active: true,
|
||||||
|
order: 12,
|
||||||
|
path: '/goods',
|
||||||
|
materialIcon: 'fas fa-tshirt',
|
||||||
|
name: 'mypages.goods',
|
||||||
|
component: () => import('@/root/goods/goods.vue'),
|
||||||
|
meta: { requiresAuth: true },
|
||||||
|
inmenu: true,
|
||||||
|
infooter: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active: true,
|
||||||
|
order: 15,
|
||||||
|
path: '/services',
|
||||||
|
materialIcon: 'fas fa-house-user',
|
||||||
|
name: 'mypages.services',
|
||||||
|
component: () => import('@/root/services/services.vue'),
|
||||||
|
meta: { requiresAuth: true },
|
||||||
|
inmenu: true,
|
||||||
|
infooter: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active: true,
|
||||||
|
order: 15,
|
||||||
|
path: '/activities',
|
||||||
|
materialIcon: 'fas fa-house-user',
|
||||||
|
name: 'mypages.activities',
|
||||||
|
component: () => import('@/root/activities/activities.vue'),
|
||||||
|
meta: { requiresAuth: true },
|
||||||
|
inmenu: false,
|
||||||
|
infooter: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 15,
|
order: 15,
|
||||||
@@ -78,6 +111,17 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
active: true,
|
||||||
|
order: 15,
|
||||||
|
path: '/hosps',
|
||||||
|
materialIcon: 'fas fa-bed',
|
||||||
|
name: 'mypages.hosp',
|
||||||
|
component: () => import('@/root/hosp/hosp.vue'),
|
||||||
|
meta: { requiresAuth: true },
|
||||||
|
inmenu: true,
|
||||||
|
infooter: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
active: site.confpages && site.confpages.enableCircuits,
|
active: site.confpages && site.confpages.enableCircuits,
|
||||||
order: 16,
|
order: 16,
|
||||||
@@ -90,7 +134,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: site.confpages && site.confpages.enableEvents,
|
active: true,
|
||||||
order: 20,
|
order: 20,
|
||||||
path: '/events',
|
path: '/events',
|
||||||
materialIcon: 'fas fa-bullhorn',
|
materialIcon: 'fas fa-bullhorn',
|
||||||
@@ -112,7 +156,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: site.confpages && site.confpages.showProfile,
|
active: true,
|
||||||
order: 120,
|
order: 120,
|
||||||
path: '/myprofile',
|
path: '/myprofile',
|
||||||
materialIcon: 'fas fa-user',
|
materialIcon: 'fas fa-user',
|
||||||
@@ -123,7 +167,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: site.confpages && site.confpages.showProfile,
|
active: true,
|
||||||
order: 120,
|
order: 120,
|
||||||
path: '/editprofile',
|
path: '/editprofile',
|
||||||
materialIcon: 'fas fa-user',
|
materialIcon: 'fas fa-user',
|
||||||
@@ -134,7 +178,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: site.confpages && site.confpages.showiscrittiMenu,
|
active: true,
|
||||||
order: 130,
|
order: 130,
|
||||||
path: '/friends',
|
path: '/friends',
|
||||||
materialIcon: 'fas fa-user-friends',
|
materialIcon: 'fas fa-user-friends',
|
||||||
@@ -229,6 +273,16 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
active: true,
|
||||||
|
order: 150,
|
||||||
|
path: '/sostieniilprogetto',
|
||||||
|
materialIcon: 'fas fa-hand-holding-heart',
|
||||||
|
name: 'pages.fundraising',
|
||||||
|
component: () => import('@src/root/fundraising/fundraising.vue'),
|
||||||
|
inmenu: false,
|
||||||
|
infooter: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 80,
|
order: 80,
|
||||||
|
|||||||
@@ -421,7 +421,8 @@ export type StateConnection = 'online' | 'offline'
|
|||||||
|
|
||||||
export interface IFilterCatalogo {
|
export interface IFilterCatalogo {
|
||||||
author: string
|
author: string
|
||||||
sort: number
|
sort_field: string
|
||||||
|
sort_dir: number
|
||||||
publisher: string
|
publisher: string
|
||||||
type: string
|
type: string
|
||||||
ageGroup: string
|
ageGroup: string
|
||||||
@@ -797,8 +798,11 @@ export interface IMyScheda {
|
|||||||
productTypes?: number[]
|
productTypes?: number[]
|
||||||
excludeproductTypes?: number[]
|
excludeproductTypes?: number[]
|
||||||
editore?: string[]
|
editore?: string[]
|
||||||
|
argomenti?: string[]
|
||||||
|
collana?: string
|
||||||
author?: string
|
author?: string
|
||||||
sort?: number
|
sort_field?: string
|
||||||
|
sort_dir?: number
|
||||||
arrProdottiSpeciali?: string[]
|
arrProdottiSpeciali?: string[]
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -810,6 +814,7 @@ export interface ISchedaSingola {
|
|||||||
numPagineMax?: number,
|
numPagineMax?: number,
|
||||||
|
|
||||||
// In Memoria
|
// In Memoria
|
||||||
|
idPageOrig?: string
|
||||||
arrProdToShow?: IProduct[][][]
|
arrProdToShow?: IProduct[][][]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -819,8 +824,11 @@ export interface ICatalogo {
|
|||||||
excludeproductTypes?: number[]
|
excludeproductTypes?: number[]
|
||||||
formato?: string[]
|
formato?: string[]
|
||||||
Categoria?: string[]
|
Categoria?: string[]
|
||||||
Editore?: string[]
|
editore?: string[]
|
||||||
sort?: number
|
argomenti?: string[]
|
||||||
|
collana?: string
|
||||||
|
sort_field?: string
|
||||||
|
sort_dir?: number
|
||||||
pdf?: boolean
|
pdf?: boolean
|
||||||
pdf_filename?: string
|
pdf_filename?: string
|
||||||
printable?: boolean
|
printable?: boolean
|
||||||
@@ -834,7 +842,7 @@ export interface ICatalogo {
|
|||||||
dimensioni_def?: IElementiPagina
|
dimensioni_def?: IElementiPagina
|
||||||
|
|
||||||
arrSchede?: ISchedaSingola[]
|
arrSchede?: ISchedaSingola[]
|
||||||
aggiorna: number
|
aggiorna?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -984,6 +992,7 @@ export interface IColGridTable {
|
|||||||
extrafield?: string
|
extrafield?: string
|
||||||
tipoconto?: number
|
tipoconto?: number
|
||||||
path?: string
|
path?: string
|
||||||
|
onlyforAdmin?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ITableRec {
|
export interface ITableRec {
|
||||||
@@ -1340,10 +1349,16 @@ export interface ICircuit {
|
|||||||
qta_max_default?: number
|
qta_max_default?: number
|
||||||
fido_scoperto_default_grp?: number
|
fido_scoperto_default_grp?: number
|
||||||
qta_max_default_grp?: number
|
qta_max_default_grp?: number
|
||||||
|
fido_scoperto_default_contocom?: number
|
||||||
|
qta_max_default_contocom?: number
|
||||||
data_costituz?: Date
|
data_costituz?: Date
|
||||||
deperimento: boolean
|
deperimento: boolean
|
||||||
showAlways: boolean
|
showAlways: boolean
|
||||||
ignoreLimits: boolean
|
ignoreLimits: boolean
|
||||||
|
askManagerToEnter?: boolean
|
||||||
|
sendEmailAfterAskingToEnter?: boolean
|
||||||
|
circuitoIndipendente?: boolean
|
||||||
|
creditodiPartenza?: number
|
||||||
transactionsEnabled: boolean
|
transactionsEnabled: boolean
|
||||||
status: number
|
status: number
|
||||||
freq_deper?: string
|
freq_deper?: string
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ export interface IProductInfo {
|
|||||||
checkout_link?: string
|
checkout_link?: string
|
||||||
idAuthors?: string[]
|
idAuthors?: string[]
|
||||||
authors?: string[]
|
authors?: string[]
|
||||||
|
idCollana?: string
|
||||||
|
collana?: string
|
||||||
collezione?: string
|
collezione?: string
|
||||||
idPublisher?: string
|
idPublisher?: string
|
||||||
publisher?: IPublisher
|
publisher?: IPublisher
|
||||||
@@ -45,7 +47,9 @@ export interface IProductInfo {
|
|||||||
short_descr: string
|
short_descr: string
|
||||||
|
|
||||||
totVen?: number,
|
totVen?: number,
|
||||||
|
totFat?: number,
|
||||||
vLast3M?: number,
|
vLast3M?: number,
|
||||||
|
fatLast3M?: number,
|
||||||
vLast6M?: number,
|
vLast6M?: number,
|
||||||
vLastY?: number,
|
vLastY?: number,
|
||||||
vLast2Y?: number,
|
vLast2Y?: number,
|
||||||
@@ -173,6 +177,7 @@ export interface IProductsState {
|
|||||||
cart: ICart
|
cart: ICart
|
||||||
orders: IOrderCart[]
|
orders: IOrderCart[]
|
||||||
catprods: ICatProd[]
|
catprods: ICatProd[]
|
||||||
|
collane?: ICollana[]
|
||||||
catprods_gas: ICatProd[]
|
catprods_gas: ICatProd[]
|
||||||
subcatprods: ISubCatProd[]
|
subcatprods: ISubCatProd[]
|
||||||
productInfos: IProductInfo[]
|
productInfos: IProductInfo[]
|
||||||
@@ -209,11 +214,19 @@ export interface ICategory {
|
|||||||
export interface ICatProd {
|
export interface ICatProd {
|
||||||
_id?: any
|
_id?: any
|
||||||
name: string,
|
name: string,
|
||||||
|
descr_estesa?: string,
|
||||||
img?: string,
|
img?: string,
|
||||||
icon?: string,
|
icon?: string,
|
||||||
color?: string,
|
color?: string,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ICollana {
|
||||||
|
_id?: any
|
||||||
|
idCollana: number,
|
||||||
|
descrizione: string,
|
||||||
|
descrizione_estesa?: string,
|
||||||
|
}
|
||||||
|
|
||||||
export interface ICatAI {
|
export interface ICatAI {
|
||||||
_id?: any
|
_id?: any
|
||||||
name: string,
|
name: string,
|
||||||
|
|||||||
0
src/rootgen/admin/collane/collane.scss
Executable file
34
src/rootgen/admin/collane/collane.ts
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
import { colTableCollane } from '@src/store/Modules/fieldsTable'
|
||||||
|
|
||||||
|
import { CImgText } from '../../../components/CImgText/index'
|
||||||
|
|
||||||
|
import { defineComponent } from 'vue'
|
||||||
|
import { CCard } from '@/components/CCard'
|
||||||
|
import { CMyPage } from '@/components/CMyPage'
|
||||||
|
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||||
|
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||||
|
|
||||||
|
import MixinMetaTags from '../../../mixins/mixin-metatags'
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'Collane',
|
||||||
|
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||||
|
setup() {
|
||||||
|
const pagination = {
|
||||||
|
sortBy: 'name',
|
||||||
|
descending: false,
|
||||||
|
page: 2,
|
||||||
|
rowsPerPage: 5
|
||||||
|
// rowsNumber: xx if getting data from a server
|
||||||
|
}
|
||||||
|
|
||||||
|
const { setmeta } = MixinMetaTags()
|
||||||
|
|
||||||
|
return {
|
||||||
|
colTableCollane,
|
||||||
|
setmeta,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
31
src/rootgen/admin/collane/collane.vue
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
<template>
|
||||||
|
<CMyPage title="Collane" imgbackground="images/produttori.jpg" sizes="max-height: 120px">
|
||||||
|
<span>{{
|
||||||
|
setmeta({
|
||||||
|
title: 'Collane',
|
||||||
|
description: '',
|
||||||
|
keywords: '',
|
||||||
|
})
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||||
|
<CTitleBanner title="Collane"></CTitleBanner>
|
||||||
|
<CGridTableRec
|
||||||
|
prop_mytable="collanas"
|
||||||
|
prop_mytitle="Collane"
|
||||||
|
:prop_mycolumns="colTableCollane"
|
||||||
|
prop_colkey="name"
|
||||||
|
nodataLabel="Nessuna Collana"
|
||||||
|
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||||
|
|
||||||
|
</CGridTableRec>
|
||||||
|
</div>
|
||||||
|
</CMyPage>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" src="./collane.ts">
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import 'collane.scss';
|
||||||
|
</style>
|
||||||
@@ -48,6 +48,15 @@ export default defineComponent({
|
|||||||
arrPages.value.push(rec)
|
arrPages.value.push(rec)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Aggiungi anche le pagine cancellate, in cui gli elementi non hanno più una pagina collegata
|
||||||
|
|
||||||
|
for (const elem of globalStore.myelems) {
|
||||||
|
const pagetofind = arrPages.value.find((page: any) => page.value === elem.idPage)
|
||||||
|
if (!pagetofind) {
|
||||||
|
// non c'è in lista:
|
||||||
|
arrPages.value.push({label: 'pag non trovata: ' + elem.idPage, value: elem.idPage})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// filtercustom.value = [{ userId: userStore.my._id }]
|
// filtercustom.value = [{ userId: userStore.my._id }]
|
||||||
|
|||||||
@@ -130,55 +130,12 @@ export const Api = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
async checkTokenScaduto(status: number, evitaloop: boolean, resolve: any, reject: any, url: string, method: string, mydata: any, setAuthToken = false) {
|
||||||
async SendReqBase(url: string, method: string, mydata: any, setAuthToken = false, evitaloop = false, myformdata?: any, responsedata?: any): Promise<Types.AxiosSuccess | Types.AxiosError> {
|
|
||||||
const mydataout = {
|
|
||||||
...mydata,
|
|
||||||
keyappid: process.env.PAO_APP_ID,
|
|
||||||
idapp: process.env.APP_ID,
|
|
||||||
}
|
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const globalStore = useGlobalStore()
|
|
||||||
const $router = useRouter()
|
const $router = useRouter()
|
||||||
|
|
||||||
userStore.setServerCode(tools.EMPTY)
|
if (status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||||
userStore.setResStatus(0)
|
|
||||||
|
|
||||||
return new Promise((resolve, reject) => sendRequest(url, method, mydataout, myformdata, responsedata)
|
|
||||||
.then((res) => {
|
|
||||||
setTimeout(() => {
|
|
||||||
if (method === 'get') {
|
|
||||||
globalStore.connData.downloading_server = 0
|
|
||||||
} else {
|
|
||||||
globalStore.connData.uploading_server = 0
|
|
||||||
globalStore.connData.downloading_server = 0
|
|
||||||
}
|
|
||||||
}, 1000)
|
|
||||||
|
|
||||||
if (res.status) {
|
|
||||||
userStore.setResStatus(res.status)
|
|
||||||
if (res.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
|
|
||||||
userStore.setServerCode(toolsext.ERR_AUTHENTICATION)
|
|
||||||
userStore.setAuth('', '')
|
|
||||||
return reject({ code: toolsext.ERR_AUTHENTICATION })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (tools.isDebug())
|
|
||||||
console.log(' ----> ', res)
|
|
||||||
return resolve(res)
|
|
||||||
})
|
|
||||||
.catch(async (error) => {
|
|
||||||
setTimeout(() => {
|
|
||||||
if (method === 'get') {
|
|
||||||
globalStore.connData.downloading_server = -1
|
|
||||||
} else {
|
|
||||||
globalStore.connData.uploading_server = -1
|
|
||||||
globalStore.connData.downloading_server = -1
|
|
||||||
}
|
|
||||||
}, 1000)
|
|
||||||
|
|
||||||
if (error.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
|
||||||
try {
|
try {
|
||||||
console.log('Token Scaduto.')
|
console.log('Token Scaduto.')
|
||||||
const newAccessToken = await this.refreshToken();
|
const newAccessToken = await this.refreshToken();
|
||||||
@@ -199,6 +156,68 @@ export const Api = {
|
|||||||
return reject({ code: toolsext.ERR_AUTHENTICATION })
|
return reject({ code: toolsext.ERR_AUTHENTICATION })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
async SendReqBase(url: string, method: string, mydata: any, setAuthToken = false, evitaloop = false, myformdata?: any, responsedata?: any): Promise<Types.AxiosSuccess | Types.AxiosError> {
|
||||||
|
const mydataout = {
|
||||||
|
...mydata,
|
||||||
|
keyappid: process.env.PAO_APP_ID,
|
||||||
|
idapp: process.env.APP_ID,
|
||||||
|
}
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
const globalStore = useGlobalStore()
|
||||||
|
const $router = useRouter()
|
||||||
|
|
||||||
|
userStore.setServerCode(tools.EMPTY)
|
||||||
|
userStore.setResStatus(0)
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => sendRequest(url, method, mydataout, myformdata, responsedata)
|
||||||
|
.then(async (res) => {
|
||||||
|
setTimeout( () => {
|
||||||
|
if (method === 'get') {
|
||||||
|
globalStore.connData.downloading_server = 0
|
||||||
|
} else {
|
||||||
|
globalStore.connData.uploading_server = 0
|
||||||
|
globalStore.connData.downloading_server = 0
|
||||||
|
}
|
||||||
|
}, 1000)
|
||||||
|
|
||||||
|
if (res.status) {
|
||||||
|
userStore.setResStatus(res.status)
|
||||||
|
if (res.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
|
||||||
|
userStore.setServerCode(toolsext.ERR_AUTHENTICATION)
|
||||||
|
userStore.setAuth('', '')
|
||||||
|
return reject({ code: toolsext.ERR_AUTHENTICATION })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const ret = await this.checkTokenScaduto(res.status, evitaloop, resolve, reject, url, method, mydataout, setAuthToken)
|
||||||
|
if (ret) {
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tools.isDebug())
|
||||||
|
console.log(' ----> ', res)
|
||||||
|
return resolve(res)
|
||||||
|
})
|
||||||
|
.catch(async (error) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
if (method === 'get') {
|
||||||
|
globalStore.connData.downloading_server = -1
|
||||||
|
} else {
|
||||||
|
globalStore.connData.uploading_server = -1
|
||||||
|
globalStore.connData.downloading_server = -1
|
||||||
|
}
|
||||||
|
}, 1000)
|
||||||
|
|
||||||
|
const ret = await this.checkTokenScaduto(error.status, evitaloop, resolve, reject, url, method, mydataout, setAuthToken)
|
||||||
|
if (ret) {
|
||||||
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('ERROR', error)
|
console.log('ERROR', error)
|
||||||
@@ -206,6 +225,7 @@ export const Api = {
|
|||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a Promise that resolves after a specified number of milliseconds.
|
* Creates a Promise that resolves after a specified number of milliseconds.
|
||||||
* Useful for creating delayed operations or pause in async functions.
|
* Useful for creating delayed operations or pause in async functions.
|
||||||
@@ -229,7 +249,7 @@ export const Api = {
|
|||||||
* // Usage with Promise chaining
|
* // Usage with Promise chaining
|
||||||
* delay(1000).then(() => console.log('1 second passed'));
|
* delay(1000).then(() => console.log('1 second passed'));
|
||||||
*/
|
*/
|
||||||
async delay (ms: number): Promise<void> {
|
async delay(ms: number): Promise<void> {
|
||||||
// Input validation
|
// Input validation
|
||||||
if (ms < 0) {
|
if (ms < 0) {
|
||||||
throw new Error('Delay time cannot be negative');
|
throw new Error('Delay time cannot be negative');
|
||||||
@@ -253,7 +273,13 @@ export const Api = {
|
|||||||
const response = await this.SendReqBase(url, method, mydata, setAuthToken, evitaloop, myformdata, responsedata);
|
const response = await this.SendReqBase(url, method, mydata, setAuthToken, evitaloop, myformdata, responsedata);
|
||||||
return response;
|
return response;
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
if (retryCount > 0) {
|
let riprova = true
|
||||||
|
try {
|
||||||
|
riprova = (error.status !== 403);
|
||||||
|
} catch (e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
if (retryCount > 0 && riprova) {
|
||||||
// (!error.hasOwnProperty('data') || (error.hasOwnProperty('data') && !error.data.error.hasOwnProperty('code')) && (!error.hasOwnProperty('msgerr')))
|
// (!error.hasOwnProperty('data') || (error.hasOwnProperty('data') && !error.data.error.hasOwnProperty('code')) && (!error.hasOwnProperty('msgerr')))
|
||||||
console.log(`❌❌❌ Retrying request. Attempts remaining: ${retryCount}`);
|
console.log(`❌❌❌ Retrying request. Attempts remaining: ${retryCount}`);
|
||||||
await this.delay(retryDelay);
|
await this.delay(retryDelay);
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export const costanti = {
|
|||||||
'excludeproductTypes',
|
'excludeproductTypes',
|
||||||
'misure',
|
'misure',
|
||||||
'Categoria',
|
'Categoria',
|
||||||
'Editore',
|
'editore',
|
||||||
'pdf',
|
'pdf',
|
||||||
'Printable',
|
'Printable',
|
||||||
'numschede_perCol',
|
'numschede_perCol',
|
||||||
@@ -500,8 +500,4 @@ export const costanti = {
|
|||||||
TESTO_BORDATO: 5,
|
TESTO_BORDATO: 5,
|
||||||
},
|
},
|
||||||
|
|
||||||
SORT_DEFAULT: 0,
|
|
||||||
SORT_PUBDATE: 1,
|
|
||||||
SORT_BESTSELLER: 2,
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ function AddCol(params: IColGridTable) {
|
|||||||
filter_field: (params.filter_field === undefined) ? '' : params.filter_field,
|
filter_field: (params.filter_field === undefined) ? '' : params.filter_field,
|
||||||
isadvanced_field: (params.isadvanced_field === undefined) ? false : params.isadvanced_field,
|
isadvanced_field: (params.isadvanced_field === undefined) ? false : params.isadvanced_field,
|
||||||
path: (params.path === undefined) ? '' : params.path,
|
path: (params.path === undefined) ? '' : params.path,
|
||||||
|
onlyforAdmin: (params.onlyforAdmin === undefined) ? false : params.onlyforAdmin,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,10 +189,13 @@ export const colmyScheda = [
|
|||||||
|
|
||||||
AddCol({ name: 'productTypes', label_trans: 'productTypes', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'productTypes', label_trans: 'productTypes', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({ name: 'excludeproductTypes', label_trans: 'excludeproductTypes', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'excludeproductTypes', label_trans: 'excludeproductTypes', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({ name: 'Editore', label_trans: 'Editore' }),
|
AddCol({ name: 'editore', label_trans: 'editore' }),
|
||||||
AddCol({ name: 'author', label_trans: 'author' }),
|
AddCol({ name: 'author', label_trans: 'scheda.author' }),
|
||||||
AddCol({ name: 'sort', label_trans: 'catalogo.sort', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'argomenti', label_trans: 'scheda.argomenti' }),
|
||||||
AddCol({ name: 'arrProdottiSpeciali', label_trans: 'Editore' }),
|
AddCol({ name: 'idCollana', label_trans: 'scheda.idCollana' }),
|
||||||
|
AddCol({ name: 'sort_field', label_trans: 'catalogo.sort_field', fieldtype: costanti.FieldType.string }),
|
||||||
|
AddCol({ name: 'sort_dir', label_trans: 'catalogo.sort_dir', fieldtype: costanti.FieldType.number }),
|
||||||
|
AddCol({ name: 'arrProdottiSpeciali', label_trans: 'editore' }),
|
||||||
]
|
]
|
||||||
|
|
||||||
export const colmyelCatalogo = [
|
export const colmyelCatalogo = [
|
||||||
@@ -199,7 +203,9 @@ export const colmyelCatalogo = [
|
|||||||
AddCol({ name: 'excludeproductTypes', label_trans: 'excludeproductTypes', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'excludeproductTypes', label_trans: 'excludeproductTypes', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({ name: 'pdf', label_trans: 'pdf' }),
|
AddCol({ name: 'pdf', label_trans: 'pdf' }),
|
||||||
AddCol({ name: 'pdf_filename', label_trans: 'pdf_filename' }),
|
AddCol({ name: 'pdf_filename', label_trans: 'pdf_filename' }),
|
||||||
AddCol({ name: 'Editore', label_trans: 'Editore' }),
|
AddCol({ name: 'editore', label_trans: 'editore' }),
|
||||||
|
AddCol({ name: 'argomenti', label_trans: 'scheda.argomenti' }),
|
||||||
|
AddCol({ name: 'idCollana', label_trans: 'scheda.idCollana' }),
|
||||||
AddCol({ name: 'width', label_trans: 'width', fieldtype: costanti.FieldType.string }),
|
AddCol({ name: 'width', label_trans: 'width', fieldtype: costanti.FieldType.string }),
|
||||||
AddCol({ name: 'height', label_trans: 'height', fieldtype: costanti.FieldType.string }),
|
AddCol({ name: 'height', label_trans: 'height', fieldtype: costanti.FieldType.string }),
|
||||||
AddCol({ name: 'optcatalogo.', label_trans: 'catalogo.optcatalogo.', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'optcatalogo.', label_trans: 'catalogo.optcatalogo.', fieldtype: costanti.FieldType.number }),
|
||||||
@@ -280,6 +286,7 @@ export const colmsg_templates = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
export const colmypage = [
|
export const colmypage = [
|
||||||
|
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.string }),
|
||||||
AddCol({ name: 'path', label_trans: 'pages.path' }),
|
AddCol({ name: 'path', label_trans: 'pages.path' }),
|
||||||
AddCol({ name: 'icon', label_trans: 'pages.icon' }),
|
AddCol({ name: 'icon', label_trans: 'pages.icon' }),
|
||||||
AddCol({ name: 'order', label_trans: 'pages.order', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'order', label_trans: 'pages.order', fieldtype: costanti.FieldType.number }),
|
||||||
@@ -497,12 +504,20 @@ export const colTablecategories = [
|
|||||||
|
|
||||||
export const colTableCatProd = [
|
export const colTableCatProd = [
|
||||||
AddCol({ name: 'name', label_trans: 'categories.name' }),
|
AddCol({ name: 'name', label_trans: 'categories.name' }),
|
||||||
|
AddCol({ name: 'descr_estesa', label_trans: 'categories.descr_estesa' }),
|
||||||
AddCol({ name: 'img', label_trans: 'categories.img' }),
|
AddCol({ name: 'img', label_trans: 'categories.img' }),
|
||||||
AddCol({ name: 'icon', label_trans: 'categories.icon' }),
|
AddCol({ name: 'icon', label_trans: 'categories.icon' }),
|
||||||
AddCol({ name: 'color', label_trans: 'categories.color' }),
|
AddCol({ name: 'color', label_trans: 'categories.color' }),
|
||||||
AddCol(DeleteRec),
|
AddCol(DeleteRec),
|
||||||
AddCol(DuplicateRec),
|
AddCol(DuplicateRec),
|
||||||
]
|
]
|
||||||
|
export const colTableCollane = [
|
||||||
|
AddCol({ name: 'idCollana', label_trans: 'collane.idCollana', fieldtype: costanti.FieldType.number }),
|
||||||
|
AddCol({ name: 'descrizione', label_trans: 'collane.descrizione' }),
|
||||||
|
AddCol({ name: 'descrizione_estesa', label_trans: 'collane.descrizione_estesa' }),
|
||||||
|
AddCol(DeleteRec),
|
||||||
|
AddCol(DuplicateRec),
|
||||||
|
]
|
||||||
|
|
||||||
export const colTableCatAI = [
|
export const colTableCatAI = [
|
||||||
AddCol({ name: 'name', label_trans: 'categories.name' }),
|
AddCol({ name: 'name', label_trans: 'categories.name' }),
|
||||||
@@ -2317,6 +2332,12 @@ export const colTableProductInfos = [
|
|||||||
fieldtype: costanti.FieldType.multiselect,
|
fieldtype: costanti.FieldType.multiselect,
|
||||||
jointable: 'catprods',
|
jointable: 'catprods',
|
||||||
}),
|
}),
|
||||||
|
AddCol({
|
||||||
|
name: 'idCollana',
|
||||||
|
label_trans: 'products.category',
|
||||||
|
fieldtype: costanti.FieldType.select,
|
||||||
|
jointable: 'collanas',
|
||||||
|
}),
|
||||||
AddCol({ name: 'color', label_trans: 'products.color' }),
|
AddCol({ name: 'color', label_trans: 'products.color' }),
|
||||||
AddCol({ name: 'size', label_trans: 'products.size' }),
|
AddCol({ name: 'size', label_trans: 'products.size' }),
|
||||||
AddCol({ name: 'weight', label_trans: 'products.weight', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'weight', label_trans: 'products.weight', fieldtype: costanti.FieldType.number }),
|
||||||
@@ -3600,11 +3621,17 @@ export const colTableCircuitComplete = [
|
|||||||
AddCol({ name: 'qta_max_default', label_trans: 'circuit.qta_max_default', fieldtype: costanti.FieldType.currency }),
|
AddCol({ name: 'qta_max_default', label_trans: 'circuit.qta_max_default', fieldtype: costanti.FieldType.currency }),
|
||||||
AddCol({ name: 'fido_scoperto_default_grp', label_trans: 'circuit.fido_scoperto_default_grp', fieldtype: costanti.FieldType.currency }),
|
AddCol({ name: 'fido_scoperto_default_grp', label_trans: 'circuit.fido_scoperto_default_grp', fieldtype: costanti.FieldType.currency }),
|
||||||
AddCol({ name: 'qta_max_default_grp', label_trans: 'circuit.qta_max_default_grp', fieldtype: costanti.FieldType.currency }),
|
AddCol({ name: 'qta_max_default_grp', label_trans: 'circuit.qta_max_default_grp', fieldtype: costanti.FieldType.currency }),
|
||||||
|
AddCol({ name: 'fido_scoperto_default_contocom', label_trans: 'circuit.fido_scoperto_default_contocom', fieldtype: costanti.FieldType.currency }),
|
||||||
|
AddCol({ name: 'qta_max_default_contocom', label_trans: 'circuit.qta_max_default_contocom', fieldtype: costanti.FieldType.currency }),
|
||||||
AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }),
|
AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }),
|
||||||
AddCol({ name: 'deperimento', label_trans: 'circuit.deperimento', fieldtype: costanti.FieldType.boolean }),
|
AddCol({ name: 'deperimento', label_trans: 'circuit.deperimento', fieldtype: costanti.FieldType.boolean }),
|
||||||
AddCol({ name: 'showAlways', label_trans: 'circuit.showAlways', fieldtype: costanti.FieldType.boolean }),
|
AddCol({ name: 'showAlways', label_trans: 'circuit.showAlways', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
AddCol({ name: 'ignoreLimits', label_trans: 'circuit.ignoreLimits', fieldtype: costanti.FieldType.boolean }),
|
AddCol({ name: 'ignoreLimits', label_trans: 'circuit.ignoreLimits', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
AddCol({ name: 'transactionsEnabled', label_trans: 'circuit.transactionsEnabled', fieldtype: costanti.FieldType.boolean }),
|
AddCol({ name: 'transactionsEnabled', label_trans: 'circuit.transactionsEnabled', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
|
AddCol({ name: 'askManagerToEnter', label_trans: 'circuit.askManagerToEnter', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
|
AddCol({ name: 'sendEmailAfterAskingToEnter', label_trans: 'circuit.sendEmailAfterAskingToEnter', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
|
AddCol({ name: 'circuitoIndipendente', label_trans: 'circuit.circuitoIndipendente', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
|
AddCol({ name: 'creditodiPartenza', label_trans: 'circuit.creditodiPartenza', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({ name: 'freq_deper', label_trans: 'circuit.freq_deper' }),
|
AddCol({ name: 'freq_deper', label_trans: 'circuit.freq_deper' }),
|
||||||
AddCol({ name: 'minuto_deper', label_trans: 'circuit.minuto_deper', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'minuto_deper', label_trans: 'circuit.minuto_deper', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({ name: 'ora_deper', label_trans: 'circuit.ora_deper', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'ora_deper', label_trans: 'circuit.ora_deper', fieldtype: costanti.FieldType.number }),
|
||||||
@@ -3641,6 +3668,9 @@ export const colTableCircuitComplete = [
|
|||||||
sortable: true,
|
sortable: true,
|
||||||
showWhen: 0
|
showWhen: 0
|
||||||
}),
|
}),
|
||||||
|
AddCol({ name: 'circuitoIndipendente', label_trans: 'circuit.circuitoIndipendente', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
|
AddCol({ name: 'askManagerToEnter', label_trans: 'circuit.askManagerToEnter', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
|
AddCol({ name: 'sendEmailAfterAskingToEnter', label_trans: 'circuit.sendEmailAfterAskingToEnter', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
AddCol(ModifRec),
|
AddCol(ModifRec),
|
||||||
AddCol(DeleteRec),
|
AddCol(DeleteRec),
|
||||||
AddCol(DuplicateRec),
|
AddCol(DuplicateRec),
|
||||||
@@ -3693,10 +3723,12 @@ export const colTableCircuit = [
|
|||||||
fieldtype: costanti.FieldType.multiselect,
|
fieldtype: costanti.FieldType.multiselect,
|
||||||
jointable: 'visibilGroup',
|
jointable: 'visibilGroup',
|
||||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||||
|
onlyforAdmin: true,
|
||||||
}),
|
}),
|
||||||
AddCol({
|
AddCol({
|
||||||
name: 'systemUserId', label_trans: 'circuit.systemUserId', fieldtype: costanti.FieldType.select, jointable: 'users',
|
name: 'systemUserId', label_trans: 'circuit.systemUserId', fieldtype: costanti.FieldType.select, jointable: 'users',
|
||||||
showWhen: costanti.showWhen.InEdit + costanti.showWhen.InView,
|
showWhen: costanti.showWhen.InEdit + costanti.showWhen.InView,
|
||||||
|
onlyforAdmin: true
|
||||||
}),
|
}),
|
||||||
AddCol({
|
AddCol({
|
||||||
name: 'createdBy', label_trans: 'circuit.founder', fieldtype: costanti.FieldType.select, jointable: 'users',
|
name: 'createdBy', label_trans: 'circuit.founder', fieldtype: costanti.FieldType.select, jointable: 'users',
|
||||||
@@ -3730,6 +3762,8 @@ export const colTableCircuit = [
|
|||||||
}),
|
}),
|
||||||
AddCol({ name: 'fido_scoperto_default_grp', label_trans: 'circuit.fido_scoperto_default_grp', fieldtype: costanti.FieldType.currency }),
|
AddCol({ name: 'fido_scoperto_default_grp', label_trans: 'circuit.fido_scoperto_default_grp', fieldtype: costanti.FieldType.currency }),
|
||||||
AddCol({ name: 'qta_max_default_grp', label_trans: 'circuit.qta_max_default_grp', fieldtype: costanti.FieldType.currency }),
|
AddCol({ name: 'qta_max_default_grp', label_trans: 'circuit.qta_max_default_grp', fieldtype: costanti.FieldType.currency }),
|
||||||
|
AddCol({ name: 'fido_scoperto_default_contocom', label_trans: 'circuit.fido_scoperto_default_contocom', fieldtype: costanti.FieldType.currency }),
|
||||||
|
AddCol({ name: 'qta_max_default_contocom', label_trans: 'circuit.qta_max_default_contocom', fieldtype: costanti.FieldType.currency }),
|
||||||
AddCol({ name: 'valuta_per_euro', label_trans: 'circuit.valuta_per_euro', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'valuta_per_euro', label_trans: 'circuit.valuta_per_euro', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({
|
AddCol({
|
||||||
name: 'totCircolante', label_trans: 'circuit.totCircolante',
|
name: 'totCircolante', label_trans: 'circuit.totCircolante',
|
||||||
@@ -3743,14 +3777,19 @@ export const colTableCircuit = [
|
|||||||
}),
|
}),
|
||||||
AddCol({ name: 'regulation', label_trans: 'circuit.regulation', fieldtype: costanti.FieldType.html, required: false }),
|
AddCol({ name: 'regulation', label_trans: 'circuit.regulation', fieldtype: costanti.FieldType.html, required: false }),
|
||||||
AddCol({ name: 'deperimento', label_trans: 'circuit.deperimento', fieldtype: costanti.FieldType.boolean, disable: true }),
|
AddCol({ name: 'deperimento', label_trans: 'circuit.deperimento', fieldtype: costanti.FieldType.boolean, disable: true }),
|
||||||
AddCol({ name: 'showAlways', label_trans: 'circuit.showAlways', fieldtype: costanti.FieldType.boolean }),
|
AddCol({ name: 'showAlways', label_trans: 'circuit.showAlways', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
AddCol({ name: 'ignoreLimits', label_trans: 'circuit.ignoreLimits', fieldtype: costanti.FieldType.boolean }),
|
AddCol({ name: 'ignoreLimits', label_trans: 'circuit.ignoreLimits', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
AddCol({ name: 'transactionsEnabled', label_trans: 'circuit.transactionsEnabled', fieldtype: costanti.FieldType.boolean }),
|
AddCol({ name: 'transactionsEnabled', label_trans: 'circuit.transactionsEnabled', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
|
AddCol({ name: 'askManagerToEnter', label_trans: 'circuit.askManagerToEnter', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
|
AddCol({ name: 'sendEmailAfterAskingToEnter', label_trans: 'circuit.sendEmailAfterAskingToEnter', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
|
AddCol({ name: 'circuitoIndipendente', label_trans: 'circuit.circuitoIndipendente', fieldtype: costanti.FieldType.boolean, onlyforAdmin: true }),
|
||||||
|
AddCol({ name: 'creditodiPartenza', label_trans: 'circuit.creditodiPartenza', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({
|
AddCol({
|
||||||
name: 'status', label_trans: 'circuit.status',
|
name: 'status', label_trans: 'circuit.status',
|
||||||
fieldtype: costanti.FieldType.select,
|
fieldtype: costanti.FieldType.select,
|
||||||
jointable: 'statuscircuit',
|
jointable: 'statuscircuit',
|
||||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||||
|
onlyforAdmin: true
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }),
|
AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }),
|
||||||
@@ -4110,6 +4149,13 @@ export const fieldsTable = {
|
|||||||
colkey: '_id',
|
colkey: '_id',
|
||||||
collabel: 'name',
|
collabel: 'name',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: 'collanas',
|
||||||
|
label: 'Collane',
|
||||||
|
columns: colTableCollane,
|
||||||
|
colkey: 'idCollana',
|
||||||
|
collabel: 'descrizione',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
value: 'catais',
|
value: 'catais',
|
||||||
label: 'Categorie AI',
|
label: 'Categorie AI',
|
||||||
|
|||||||
@@ -6616,6 +6616,10 @@ export const tools = {
|
|||||||
check = check && tools.isBitActive(col.showWhen, costanti.showWhen.InPage)
|
check = check && tools.isBitActive(col.showWhen, costanti.showWhen.InPage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (col.onlyforAdmin) {
|
||||||
|
check = check && tools.isAdmin()
|
||||||
|
}
|
||||||
|
|
||||||
return check
|
return check
|
||||||
|
|
||||||
|
|
||||||
@@ -6648,14 +6652,23 @@ export const tools = {
|
|||||||
setRequestCircuit($q: any, username: string, circuitname: string, value: boolean, groupname?: string) {
|
setRequestCircuit($q: any, username: string, circuitname: string, value: boolean, groupname?: string) {
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
const circuitStore = useCircuitStore()
|
||||||
|
|
||||||
userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REQ, value, { groupname })
|
userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REQ, value, { groupname })
|
||||||
.then((res: any) => {
|
.then((res: any) => {
|
||||||
if (res) {
|
if (res) {
|
||||||
if (value) {
|
if (value) {
|
||||||
|
|
||||||
|
const mycircuit = circuitStore.getCircuitByName(circuitname)
|
||||||
|
|
||||||
|
let msg = t('circuit.already_entered', { circuitname })
|
||||||
|
if (mycircuit?.askManagerToEnter) {
|
||||||
|
msg = t('circuit.askedto', { circuitname })
|
||||||
|
}
|
||||||
|
|
||||||
// ADD to req
|
// ADD to req
|
||||||
userStore.my.profile.asked_circuits.push(res.circuit)
|
userStore.my.profile.asked_circuits.push(res.circuit)
|
||||||
tools.showPositiveNotif($q, t('circuit.askedto', { circuitname }))
|
tools.showPositiveNotif($q, msg)
|
||||||
} else {
|
} else {
|
||||||
// REMOVE to req
|
// REMOVE to req
|
||||||
userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname)
|
userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname)
|
||||||
@@ -6744,7 +6757,7 @@ export const tools = {
|
|||||||
userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname)
|
userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname)
|
||||||
}
|
}
|
||||||
this.updateMyData(res)
|
this.updateMyData(res)
|
||||||
tools.showPositiveNotif($q, t('circuit.cancel_req'))
|
tools.showPositiveNotif($q, t('circuit.cancel_req', { circuitname }))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -7384,6 +7397,8 @@ export const tools = {
|
|||||||
qta_max_default: 200,
|
qta_max_default: 200,
|
||||||
fido_scoperto_default_grp: shared_consts.CIRCUIT_PARAMS.SCOPERTO_MIN_GRP,
|
fido_scoperto_default_grp: shared_consts.CIRCUIT_PARAMS.SCOPERTO_MIN_GRP,
|
||||||
qta_max_default_grp: shared_consts.CIRCUIT_PARAMS.SCOPERTO_MAX_GRP,
|
qta_max_default_grp: shared_consts.CIRCUIT_PARAMS.SCOPERTO_MAX_GRP,
|
||||||
|
fido_scoperto_default_contocom: shared_consts.CIRCUIT_PARAMS.SCOPERTO_MIN_CONTO_COMUNITARIO,
|
||||||
|
qta_max_default_contocom: shared_consts.CIRCUIT_PARAMS.SCOPERTO_MAX_CONTO_COMUNITARIO,
|
||||||
valuta_per_euro: 1,
|
valuta_per_euro: 1,
|
||||||
totTransato: 0,
|
totTransato: 0,
|
||||||
totCircolante: 0,
|
totCircolante: 0,
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import { useGlobalStore } from './globalStore'
|
|||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
|
|
||||||
import translate from '@src/globalroutines/util'
|
import translate from '@src/globalroutines/util'
|
||||||
import products from '@src/rootgen/admin/products/products'
|
|
||||||
|
|
||||||
function getRecordOrdersCartEmpty(): IOrderCart {
|
function getRecordOrdersCartEmpty(): IOrderCart {
|
||||||
return {
|
return {
|
||||||
@@ -149,6 +148,27 @@ export const useProducts = defineStore('Products', {
|
|||||||
return arrcat
|
return arrcat
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getCatProdsStrByCatProds: (state: IProductsState) => (catProds: ICatProd[]): string => {
|
||||||
|
let mystr = ''
|
||||||
|
for (const catprod of catProds) {
|
||||||
|
const myarrcat = state.catprods.find((rec: ICatProd) => rec._id === catprod)
|
||||||
|
if (myarrcat) {
|
||||||
|
if (mystr)
|
||||||
|
mystr = ' - '
|
||||||
|
mystr += myarrcat.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mystr
|
||||||
|
},
|
||||||
|
|
||||||
|
getCatProdDescrStrByIdCatProd: (state: IProductsState) => (idCatProd: string): string => {
|
||||||
|
const myfirstcat = state.catprods.find((rec: ICatProd) => rec._id === idCatProd)
|
||||||
|
|
||||||
|
if (myfirstcat) {
|
||||||
|
return myfirstcat.descr_estesa!
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
},
|
||||||
|
|
||||||
getSubCatProdsByGas: (state: IProductsState) => (idGasOrdine: string, idCatProd: string): ISubCatProd[] => {
|
getSubCatProdsByGas: (state: IProductsState) => (idGasOrdine: string, idCatProd: string): ISubCatProd[] => {
|
||||||
let arrcat = state.subcatprods
|
let arrcat = state.subcatprods
|
||||||
@@ -1267,6 +1287,14 @@ export const useProducts = defineStore('Products', {
|
|||||||
return authorString
|
return authorString
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getkeyValStr(chiave: string, valore: any) {
|
||||||
|
try {
|
||||||
|
return ` ${chiave} = ${valore} `
|
||||||
|
} catch (e) {
|
||||||
|
return ` ${chiave}`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
replaceKeyWordsByProduct(optcatalogo: ICatalogo, myproduct: IProduct, testo: IText) {
|
replaceKeyWordsByProduct(optcatalogo: ICatalogo, myproduct: IProduct, testo: IText) {
|
||||||
if (!myproduct || !testo.contenuto) {
|
if (!myproduct || !testo.contenuto) {
|
||||||
return testo.contenuto;
|
return testo.contenuto;
|
||||||
@@ -1279,14 +1307,24 @@ export const useProducts = defineStore('Products', {
|
|||||||
const description = myproduct.productInfo.short_descr || '';
|
const description = myproduct.productInfo.short_descr || '';
|
||||||
const long_descr = myproduct.productInfo.description || '';
|
const long_descr = myproduct.productInfo.description || '';
|
||||||
const date_pub = tools.getstrDateShort(myproduct.productInfo.date_pub) || '';
|
const date_pub = tools.getstrDateShort(myproduct.productInfo.date_pub) || '';
|
||||||
|
const fatLast3M = myproduct.productInfo.fatLast3M! || 0;
|
||||||
const vLast3M = myproduct.productInfo.vLast3M! || 0;
|
const vLast3M = myproduct.productInfo.vLast3M! || 0;
|
||||||
const vLast6M = myproduct.productInfo.vLast6M! || 0;
|
const vLast6M = myproduct.productInfo.vLast6M! || 0;
|
||||||
const ranking_globale = myproduct.productInfo.rank3M! || 0;
|
const ranking_globale = myproduct.productInfo.rank3M! || 0;
|
||||||
const ranking = myproduct.indiceRanking! || 0;
|
const ranking = myproduct.indiceRanking! || 0;
|
||||||
const venduti = myproduct.productInfo.totVen! || 0;
|
const venduti = myproduct.productInfo.totVen! || 0;
|
||||||
|
const fatturati = myproduct.productInfo.totFat! || 0;
|
||||||
|
|
||||||
const linkvenduti = '<a href="http://vps-88271abb.vps.ovh.net/apimacro/public/view-ordini-by-idarticolo/' + myproduct.productInfo.sku + '" target="_blank">'+venduti+'</a>'
|
const linkvenduti = '<a href="http://vps-88271abb.vps.ovh.net/apimacro/public/view-ordini-by-idarticolo/' + myproduct.productInfo.sku + '" target="_blank">' + venduti + '</a>'
|
||||||
const debugstr = " Rank=" + ranking + "<br> Rank3M=" + (myproduct.productInfo.rank3M! || '') + '<br> Venduti=' + linkvenduti + '<br>vLast3M= ' + vLast3M + '<br>vLast6M= ' + vLast6M + ' <br> Data Pubb=' + date_pub
|
const linkfatturati = '<a href="http://vps-88271abb.vps.ovh.net/apimacro/public/view-fatturati-by-idarticolo/' + myproduct.productInfo.sku + '" target="_blank">' + fatturati + '</a>'
|
||||||
|
const debugstr = this.getkeyValStr('Pubblicato il', date_pub) +
|
||||||
|
this.getkeyValStr('Rank', ranking) +
|
||||||
|
this.getkeyValStr('Rank3M', myproduct.productInfo.rank3M) +
|
||||||
|
this.getkeyValStr('Venduti', linkvenduti) +
|
||||||
|
this.getkeyValStr('vLast3M', vLast3M) +
|
||||||
|
this.getkeyValStr('vLast6M', vLast6M) +
|
||||||
|
this.getkeyValStr('Fatturati', linkfatturati) +
|
||||||
|
this.getkeyValStr('fatLast3M', fatLast3M)
|
||||||
|
|
||||||
const truncatedDescription = description.length > maxDescriptionLength
|
const truncatedDescription = description.length > maxDescriptionLength
|
||||||
? description.substring(0, description.lastIndexOf(' ', maxDescriptionLength)) + '...'
|
? description.substring(0, description.lastIndexOf(' ', maxDescriptionLength)) + '...'
|
||||||
@@ -1322,6 +1360,9 @@ export const useProducts = defineStore('Products', {
|
|||||||
|
|
||||||
const prezzo = tools.arrotonda2Dec(myproduct.arrvariazioni![0].price) || ''
|
const prezzo = tools.arrotonda2Dec(myproduct.arrvariazioni![0].price) || ''
|
||||||
const prezzo_scontato = tools.arrotonda2Dec(myproduct.arrvariazioni![0].sale_price) || ''
|
const prezzo_scontato = tools.arrotonda2Dec(myproduct.arrvariazioni![0].sale_price) || ''
|
||||||
|
const categoria = this.getCatProdsStrByCatProds(myproduct.productInfo.catprods!)
|
||||||
|
const sottocategoria = myproduct.productInfo.subcatprods && myproduct.productInfo.subcatprods.length > 0 ? myproduct.productInfo.subcatprods[0].name! : ''
|
||||||
|
const descr_categoria = myproduct.productInfo.catprods ? this.getCatProdDescrStrByIdCatProd(myproduct.productInfo.catprods![0]) : ''
|
||||||
const misure = myproduct.arrvariazioni![0].misure || ''
|
const misure = myproduct.arrvariazioni![0].misure || ''
|
||||||
const formato = myproduct.arrvariazioni![0].formato || ''
|
const formato = myproduct.arrvariazioni![0].formato || ''
|
||||||
const pagine = myproduct.arrvariazioni![0].pagine || ''
|
const pagine = myproduct.arrvariazioni![0].pagine || ''
|
||||||
@@ -1337,7 +1378,10 @@ export const useProducts = defineStore('Products', {
|
|||||||
'{descrizione_estesa_fdv}': truncatedlongDescription || '',
|
'{descrizione_estesa_fdv}': truncatedlongDescription || '',
|
||||||
'{descrizione_estesa}': descrizione_completa_macro || '',
|
'{descrizione_estesa}': descrizione_completa_macro || '',
|
||||||
'{debug}': (debugstr) || '',
|
'{debug}': (debugstr) || '',
|
||||||
'{pagine}': (pagine ) || '',
|
'{categoria}': (categoria) || '',
|
||||||
|
'{sottocategoria}': (sottocategoria) || '',
|
||||||
|
'{descr_categoria}': (descr_categoria) || '',
|
||||||
|
'{pagine}': (pagine) || '',
|
||||||
'{misure}': misure || '',
|
'{misure}': misure || '',
|
||||||
'{date_pub}': date_pub || '',
|
'{date_pub}': date_pub || '',
|
||||||
'{ranking_globale}': ranking_globale || '',
|
'{ranking_globale}': ranking_globale || '',
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
GroupsListWhereIAmAdminInTheCircuit(circuitname: string): any {
|
GroupsListWhereIAmAdminInTheCircuit(circuitname: string): any {
|
||||||
try {
|
try {
|
||||||
const arr: any = this.my.profile.manage_mygroups.filter((group: IMyGroup) => (group.mycircuits!.findIndex((circ: IMyCircuit) => circ.circuitname === circuitname) >= 0))
|
const arr: any = this.my.profile.manage_mygroups.filter((group: IMyGroup) => (group.mycircuits!.findIndex((circ: IMyCircuit) => circ.circuitname === circuitname) >= 0))
|
||||||
console.log('arr', arr)
|
// console.log('arr', arr)
|
||||||
return arr
|
return arr
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return []
|
return []
|
||||||
|
|||||||
@@ -1019,7 +1019,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
|
|
||||||
await globalroutines('readall', 'config', null)
|
await globalroutines('readall', 'config', null)
|
||||||
|
|
||||||
|
if (tools.isLogged()) {
|
||||||
this.editOn = tools.getCookie('edn', '0') === '1'
|
this.editOn = tools.getCookie('edn', '0') === '1'
|
||||||
|
}
|
||||||
|
|
||||||
return isok
|
return isok
|
||||||
},
|
},
|
||||||
@@ -1727,6 +1729,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
this.providers = (res.data.providers) ? [...res.data.providers] : []
|
this.providers = (res.data.providers) ? [...res.data.providers] : []
|
||||||
|
|
||||||
Products.catprods = (res.data.catprods) ? [...res.data.catprods] : []
|
Products.catprods = (res.data.catprods) ? [...res.data.catprods] : []
|
||||||
|
Products.collane = (res.data.collane) ? [...res.data.collane] : []
|
||||||
Products.subcatprods = (res.data.subcatprods) ? [...res.data.subcatprods] : []
|
Products.subcatprods = (res.data.subcatprods) ? [...res.data.subcatprods] : []
|
||||||
Products.catprods_gas = (res.data.catprods_gas) ? [...res.data.catprods_gas] : []
|
Products.catprods_gas = (res.data.catprods_gas) ? [...res.data.catprods_gas] : []
|
||||||
Products.authors = (res.data.authors) ? [...res.data.authors] : []
|
Products.authors = (res.data.authors) ? [...res.data.authors] : []
|
||||||
@@ -2303,7 +2306,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
excludeproductTypes: [],
|
excludeproductTypes: [],
|
||||||
formato: [],
|
formato: [],
|
||||||
Categoria: [],
|
Categoria: [],
|
||||||
Editore: [],
|
editore: [],
|
||||||
pdf: false,
|
pdf: false,
|
||||||
dimensioni_def: {
|
dimensioni_def: {
|
||||||
pagina: tools.resetRecIDimensioni(null)
|
pagina: tools.resetRecIDimensioni(null)
|
||||||
|
|||||||
@@ -66,7 +66,6 @@ export default defineComponent({
|
|||||||
|
|
||||||
const filter = ref(<IFilterCatalogo>{
|
const filter = ref(<IFilterCatalogo>{
|
||||||
author: '',
|
author: '',
|
||||||
sort: 1,
|
|
||||||
publisher: '',
|
publisher: '',
|
||||||
type: '',
|
type: '',
|
||||||
ageGroup: ''
|
ageGroup: ''
|
||||||
@@ -158,7 +157,14 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(() => filter.value.sort, (newval, oldval) => {
|
watch(() => filter.value.sort_field, (newval, oldval) => {
|
||||||
|
|
||||||
|
calcArrProducts()
|
||||||
|
if (tools.scrollTop() > 300) {
|
||||||
|
tools.scrollToTopValue(300)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
watch(() => filter.value.sort_dir, (newval, oldval) => {
|
||||||
|
|
||||||
calcArrProducts()
|
calcArrProducts()
|
||||||
if (tools.scrollTop() > 300) {
|
if (tools.scrollTop() > 300) {
|
||||||
@@ -203,7 +209,9 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
function calcArrProducts() {
|
function calcArrProducts() {
|
||||||
console.log('calcArrProducts')
|
// console.log('calcArrProducts')
|
||||||
|
|
||||||
|
let arrargomstr: any = []
|
||||||
|
|
||||||
// eventuali titoli specifici estratti dall'array di Prodotti Selezionati
|
// eventuali titoli specifici estratti dall'array di Prodotti Selezionati
|
||||||
//const searchtext = getSearchText()
|
//const searchtext = getSearchText()
|
||||||
@@ -219,12 +227,19 @@ export default defineComponent({
|
|||||||
let boolfiltroVuotoProductTypes = (filtroProductTypes.length === 0 || (filtroProductTypes.length === 1 && (filtroProductTypes[0] === 0)))
|
let boolfiltroVuotoProductTypes = (filtroProductTypes.length === 0 || (filtroProductTypes.length === 1 && (filtroProductTypes[0] === 0)))
|
||||||
let boolfiltroVuotoExcludeProductTypes = filtroExcludeProductTypes.length === 0
|
let boolfiltroVuotoExcludeProductTypes = filtroExcludeProductTypes.length === 0
|
||||||
|
|
||||||
let filtroPublishers = optcatalogo.value.Editore || []
|
let filtroPublishers = optcatalogo.value.editore || []
|
||||||
let boolfiltroVuotoEditore = (filtroPublishers.length === 0)
|
let boolfiltroVuotoEditore = (filtroPublishers.length === 0)
|
||||||
|
|
||||||
//console.log('filtroVersione', filtroProductTypes)
|
//console.log('filtroVersione', filtroProductTypes)
|
||||||
|
|
||||||
let catstr = cat.value || ''
|
let catstr = ''
|
||||||
|
|
||||||
|
if (optcatalogo.value.argomenti) {
|
||||||
|
// ha la priorità questo scelto sul catalogo
|
||||||
|
arrargomstr = optcatalogo.value.argomenti
|
||||||
|
} else {
|
||||||
|
catstr = cat.value || ''
|
||||||
|
}
|
||||||
|
|
||||||
let gasselstr = ''
|
let gasselstr = ''
|
||||||
if (cosa.value === shared_consts.PROD.GAS) {
|
if (cosa.value === shared_consts.PROD.GAS) {
|
||||||
@@ -240,6 +255,12 @@ export default defineComponent({
|
|||||||
if (product && product.productInfo) {
|
if (product && product.productInfo) {
|
||||||
let lowerName = (product.productInfo.name || '').toLowerCase();
|
let lowerName = (product.productInfo.name || '').toLowerCase();
|
||||||
let hasCategoria = !catstr || (catstr && (product.productInfo.idCatProds || []).includes(catstr));
|
let hasCategoria = !catstr || (catstr && (product.productInfo.idCatProds || []).includes(catstr));
|
||||||
|
let hasArgomentiCat = true
|
||||||
|
if (arrargomstr && arrargomstr.length > 0) {
|
||||||
|
hasArgomentiCat = (product.productInfo.idCatProds || []).some(idCat => arrargomstr.includes(idCat))
|
||||||
|
hasCategoria = true
|
||||||
|
}
|
||||||
|
|
||||||
let hasAuthor = !filtroAuthor || (filtroAuthor && (product.productInfo.idAuthors || []).includes(filtroAuthor));
|
let hasAuthor = !filtroAuthor || (filtroAuthor && (product.productInfo.idAuthors || []).includes(filtroAuthor));
|
||||||
|
|
||||||
let hasProductTypes = true
|
let hasProductTypes = true
|
||||||
@@ -253,7 +274,7 @@ export default defineComponent({
|
|||||||
hasProductTypes = !optcatalogo.value.productTypes || (optcatalogo.value.productTypes && (product.productInfo.productTypes || []).some((item: any) => optcatalogo.value.productTypes!.includes(item)))
|
hasProductTypes = !optcatalogo.value.productTypes || (optcatalogo.value.productTypes && (product.productInfo.productTypes || []).some((item: any) => optcatalogo.value.productTypes!.includes(item)))
|
||||||
}
|
}
|
||||||
if (optcatalogo.value && !boolfiltroVuotoEditore) {
|
if (optcatalogo.value && !boolfiltroVuotoEditore) {
|
||||||
hasPublished = !optcatalogo.value.Editore || (optcatalogo.value.Editore && optcatalogo.value.Editore.includes(product.productInfo.idPublisher!))
|
hasPublished = !optcatalogo.value.editore || (optcatalogo.value.editore && optcatalogo.value.editore.includes(product.productInfo.idPublisher!))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (optcatalogo.value && !boolfiltroVuotoExcludeProductTypes) {
|
if (optcatalogo.value && !boolfiltroVuotoExcludeProductTypes) {
|
||||||
@@ -273,7 +294,7 @@ export default defineComponent({
|
|||||||
// Check if all words in lowerSearchText are present in lowerName
|
// Check if all words in lowerSearchText are present in lowerName
|
||||||
let allWordsPresent = lowerSearchText.split(/\s+/).every(word => new RegExp(`\\b${word}\\b`, 'i').test(lowerName));
|
let allWordsPresent = lowerSearchText.split(/\s+/).every(word => new RegExp(`\\b${word}\\b`, 'i').test(lowerName));
|
||||||
|
|
||||||
return (codeMatch.test(product.productInfo.code || '') || allWordsPresent) && hasCategoria && hasAuthor && productgassel && hasProductTypes && hasPublished && !hasExcludeProductTypes;
|
return (codeMatch.test(product.productInfo.code || '') || allWordsPresent) && hasCategoria && hasArgomentiCat && hasAuthor && productgassel && hasProductTypes && hasPublished && !hasExcludeProductTypes;
|
||||||
} else {
|
} else {
|
||||||
console.error('product or product.productInfo is null');
|
console.error('product or product.productInfo is null');
|
||||||
return false;
|
return false;
|
||||||
@@ -281,7 +302,7 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
arrprod = getProductsSorted(arrprod, filter.value.sort);
|
arrprod = getProductsSorted(arrprod, filter.value.sort_field, filter.value.sort_dir);
|
||||||
|
|
||||||
arrProducts.value = arrprod
|
arrProducts.value = arrprod
|
||||||
|
|
||||||
@@ -346,6 +367,8 @@ export default defineComponent({
|
|||||||
|
|
||||||
const searchtext = scheda.arrProdottiSpeciali
|
const searchtext = scheda.arrProdottiSpeciali
|
||||||
|
|
||||||
|
let arrargomstr: any = []
|
||||||
|
|
||||||
let arrprod = productStore.getProducts(cosa.value) || [];
|
let arrprod = productStore.getProducts(cosa.value) || [];
|
||||||
let filtroAuthor = filter.value.author || '';
|
let filtroAuthor = filter.value.author || '';
|
||||||
|
|
||||||
@@ -359,7 +382,14 @@ export default defineComponent({
|
|||||||
|
|
||||||
//console.log('filtroVersione', filtroProductTypes)
|
//console.log('filtroVersione', filtroProductTypes)
|
||||||
|
|
||||||
let catstr = cat.value || ''
|
let catstr = ''
|
||||||
|
|
||||||
|
if (optcatalogo.value.argomenti) {
|
||||||
|
// ha la priorità questo scelto sul catalogo
|
||||||
|
arrargomstr = optcatalogo.value.argomenti
|
||||||
|
} else {
|
||||||
|
catstr = cat.value || ''
|
||||||
|
}
|
||||||
|
|
||||||
let gasselstr = ''
|
let gasselstr = ''
|
||||||
if (cosa.value === shared_consts.PROD.GAS) {
|
if (cosa.value === shared_consts.PROD.GAS) {
|
||||||
@@ -376,6 +406,12 @@ export default defineComponent({
|
|||||||
let lowerCode = (product.productInfo.code || '').toLowerCase();
|
let lowerCode = (product.productInfo.code || '').toLowerCase();
|
||||||
|
|
||||||
let hasCategoria = !catstr || (catstr && (product.productInfo.idCatProds || []).includes(catstr));
|
let hasCategoria = !catstr || (catstr && (product.productInfo.idCatProds || []).includes(catstr));
|
||||||
|
let hasArgomentiCat = true
|
||||||
|
if (arrargomstr && arrargomstr.length > 0) {
|
||||||
|
hasArgomentiCat = (product.productInfo.idCatProds || []).some(idCat => arrargomstr.includes(idCat))
|
||||||
|
hasCategoria = true
|
||||||
|
}
|
||||||
|
|
||||||
let hasAuthor = !filtroAuthor || (filtroAuthor && (product.productInfo.idAuthors || []).includes(filtroAuthor));
|
let hasAuthor = !filtroAuthor || (filtroAuthor && (product.productInfo.idAuthors || []).includes(filtroAuthor));
|
||||||
|
|
||||||
// Check if ANY search term matches the product name or code
|
// Check if ANY search term matches the product name or code
|
||||||
@@ -408,47 +444,49 @@ export default defineComponent({
|
|||||||
hasExcludeProductTypes = !scheda.excludeproductTypes || (scheda.excludeproductTypes && (product.productInfo.productTypes || []).every((item: any) => scheda.excludeproductTypes!.includes(item)))
|
hasExcludeProductTypes = !scheda.excludeproductTypes || (scheda.excludeproductTypes && (product.productInfo.productTypes || []).every((item: any) => scheda.excludeproductTypes!.includes(item)))
|
||||||
}
|
}
|
||||||
|
|
||||||
return searchMatch && hasCategoria && hasAuthor && hasProductTypes && hasPublished && !hasExcludeProductTypes;
|
return searchMatch && hasCategoria && hasArgomentiCat && hasAuthor && hasProductTypes && hasPublished && !hasExcludeProductTypes;
|
||||||
} else {
|
} else {
|
||||||
console.error('product or product.productInfo is null');
|
console.error('product or product.productInfo is null');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
arrprod = getProductsSorted(arrprod, scheda?.sort!);
|
arrprod = getProductsSorted(arrprod, scheda?.sort_field!, scheda?.sort_dir!);
|
||||||
|
|
||||||
return arrprod
|
return arrprod
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getProductsSorted(arrprod: IProduct[], sort: number) {
|
function getProductsSorted(arrprod: IProduct[], sort_field: string, sort_dir: number): IProduct[] {
|
||||||
// console.log('getProductsSorted', sort)
|
if (sort_field) {
|
||||||
if (sort === costanti.SORT_PUBDATE) {
|
// Crea una copia dell'array per non modificare l'originale
|
||||||
|
const sortedArr = [...arrprod].sort((a: IProduct, b: IProduct) => {
|
||||||
|
const valA = a.productInfo?.[sort_field];
|
||||||
|
const valB = b.productInfo?.[sort_field];
|
||||||
|
|
||||||
arrprod = arrprod.sort((a: IProduct, b: IProduct) => {
|
if (valA === undefined || valB === undefined) {
|
||||||
return b.productInfo.date_pub_ts - a.productInfo.date_pub_ts
|
return 0; // Gestisce il caso in cui il campo non esiste
|
||||||
})
|
}
|
||||||
} else if (sort === costanti.SORT_BESTSELLER) {
|
|
||||||
|
|
||||||
arrprod = arrprod.sort((a: IProduct, b: IProduct) => {
|
if (typeof valA === 'number' && typeof valB === 'number') {
|
||||||
return b.productInfo.vLast6M! - a.productInfo.vLast6M!
|
return sort_dir === 1 ? valA - valB : valB - valA;
|
||||||
})
|
} else {
|
||||||
|
// Per stringhe o altri tipi
|
||||||
|
const compA = valA.toString().toLowerCase();
|
||||||
|
const compB = valB.toString().toLowerCase();
|
||||||
|
return sort_dir === 1
|
||||||
|
? compA.localeCompare(compB)
|
||||||
|
: compB.localeCompare(compA);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
arrprod = arrprod.map((product, index) => {
|
return sortedArr.map((product, index) => ({
|
||||||
return {
|
|
||||||
...product,
|
...product,
|
||||||
indiceRanking: index + 1
|
indiceRanking: index + 1
|
||||||
};
|
}));
|
||||||
})
|
|
||||||
|
|
||||||
console.log('arr', arrprod)
|
|
||||||
|
|
||||||
} else if (sort === costanti.SORT_DEFAULT) {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return arrprod
|
return arrprod;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function addNextProductToTheView(arrproductfiltrati: IProduct[], indprod: number) {
|
function addNextProductToTheView(arrproductfiltrati: IProduct[], indprod: number) {
|
||||||
@@ -518,8 +556,8 @@ export default defineComponent({
|
|||||||
arrProdFiltrati = getProductsFilteredByScheda(recscheda.scheda)
|
arrProdFiltrati = getProductsFilteredByScheda(recscheda.scheda)
|
||||||
indprod = 0
|
indprod = 0
|
||||||
} else {
|
} else {
|
||||||
if (recscheda.scheda?.sort! > 0) {
|
if (recscheda.scheda?.sort_field!) {
|
||||||
arrProdFiltrati = getProductsSorted(arrGeneraleProdotti, recscheda.scheda.sort!);
|
arrProdFiltrati = getProductsSorted(arrGeneraleProdotti, recscheda.scheda.sort_field!, recscheda.scheda.sort_dir!);
|
||||||
indprod = 0
|
indprod = 0
|
||||||
} else {
|
} else {
|
||||||
indprod = indprodGenerale
|
indprod = indprodGenerale
|
||||||
@@ -577,7 +615,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('Fine...')
|
// console.log('Fine...')
|
||||||
}
|
}
|
||||||
|
|
||||||
function getNextProd() {
|
function getNextProd() {
|
||||||
@@ -610,7 +648,7 @@ export default defineComponent({
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
async function mounted() {
|
async function mounted() {
|
||||||
console.log('mounted Catalogo')
|
// console.log('mounted Catalogo')
|
||||||
loadpage.value = false
|
loadpage.value = false
|
||||||
await productStore.loadProducts()
|
await productStore.loadProducts()
|
||||||
|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
<!--<q-select
|
<!--<q-select
|
||||||
v-model="filter.publisher"
|
v-model="filter.publisher"
|
||||||
:options="publishers"
|
:options="publishers"
|
||||||
label="Editore"
|
label="editore"
|
||||||
placeholder="Tutti"
|
placeholder="Tutti"
|
||||||
dense
|
dense
|
||||||
/>
|
/>
|
||||||
@@ -159,9 +159,9 @@
|
|||||||
|
|
||||||
<div class="row justify-center q-mx-auto">
|
<div class="row justify-center q-mx-auto">
|
||||||
<q-select
|
<q-select
|
||||||
v-model="filter.sort"
|
v-model="filter.sort_field"
|
||||||
dense
|
dense
|
||||||
:options="shared_consts.ORDINAMENTO_CATALOGHI"
|
:options="shared_consts.ORDINAMENTO_CATALOGHI_PUBBLICO"
|
||||||
label="Ordinamento"
|
label="Ordinamento"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
emit-value
|
emit-value
|
||||||
@@ -169,6 +169,17 @@
|
|||||||
filled
|
filled
|
||||||
rounded
|
rounded
|
||||||
></q-select>
|
></q-select>
|
||||||
|
<q-select
|
||||||
|
v-model="filter.sort_dir"
|
||||||
|
dense
|
||||||
|
:options="shared_consts.ORDINAMENTO_DIREZIONE"
|
||||||
|
label="Direzione"
|
||||||
|
placeholder=""
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
filled
|
||||||
|
rounded
|
||||||
|
></q-select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="text-center q-py-sm prod_trov">
|
<div class="text-center q-py-sm prod_trov">
|
||||||
@@ -479,17 +490,22 @@
|
|||||||
|
|
||||||
2. Eseguire "IMPORTA DESCRIZIONI E LINK DA SITO GRUPPOMACRO (XML)" - importa_descrizioni_e_link.xml
|
2. Eseguire "IMPORTA DESCRIZIONI E LINK DA SITO GRUPPOMACRO (XML)" - importa_descrizioni_e_link.xml
|
||||||
|
|
||||||
3. Visualizza <a
|
3. Visualizza
|
||||||
|
<a
|
||||||
|
href="http://vps-88271abb.vps.ovh.net/apimacro/public/view-articles-fatturati"
|
||||||
|
target="_blank"
|
||||||
|
>Ranking</a> -
|
||||||
|
<a
|
||||||
href="http://vps-88271abb.vps.ovh.net/apimacro/public/view-articles-sales"
|
href="http://vps-88271abb.vps.ovh.net/apimacro/public/view-articles-sales"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>Ranking</a
|
>(Ranking Ordini)</a>
|
||||||
> e controlla se tutto ok
|
e controlla se tutto ok
|
||||||
|
|
||||||
4. Esporta il file del Ranking ed importarlo con "IMPORTA RANKING DA JSON"
|
4. Esporta il file del Ranking ed importarlo con "IMPORTA RANKING DA JSON"
|
||||||
<a
|
<a
|
||||||
href="http://vps-88271abb.vps.ovh.net/apimacro/public/export-articles-sales-json"
|
href="http://vps-88271abb.vps.ovh.net/apimacro/public/export-articles-sales-json"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>Esporta Ranking</a
|
>(Esporta Ranking Venduti e Fatturati)</a
|
||||||
>
|
>
|
||||||
|
|
||||||
5. Scarica Catalogo (<a
|
5. Scarica Catalogo (<a
|
||||||
@@ -516,12 +532,6 @@
|
|||||||
>Struttura Campi GM</a
|
>Struttura Campi GM</a
|
||||||
>
|
>
|
||||||
|
|
||||||
<a
|
|
||||||
href="http://vps-88271abb.vps.ovh.net/apimacro/public/view-articles-sales"
|
|
||||||
target="_blank"
|
|
||||||
>Visualizza Descrizioni</a
|
|
||||||
>
|
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="https://www.fioredellavita.it/wp-admin/admin.php?page=webappick-manage-feeds"
|
href="https://www.fioredellavita.it/wp-admin/admin.php?page=webappick-manage-feeds"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
|
|||||||
@@ -115,6 +115,13 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
function getParamCircuitsToView() {
|
||||||
|
return {
|
||||||
|
'circuit.name': 1,
|
||||||
|
'circuit._id': 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function loadAccount() {
|
function loadAccount() {
|
||||||
// console.log('loadAccount')
|
// console.log('loadAccount')
|
||||||
account.value = circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null
|
account.value = circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null
|
||||||
@@ -148,6 +155,10 @@ export default defineComponent({
|
|||||||
notifStore.setAsRead(idnotif.value)
|
notifStore.setAsRead(idnotif.value)
|
||||||
users_in_circuit.value = data.users_in_circuit
|
users_in_circuit.value = data.users_in_circuit
|
||||||
circuit.value = data.circuit
|
circuit.value = data.circuit
|
||||||
|
|
||||||
|
if (circuit.value!.circuitoIndipendente) {
|
||||||
|
showrules.value = true
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
circuit.value = null
|
circuit.value = null
|
||||||
users_in_circuit.value = []
|
users_in_circuit.value = []
|
||||||
@@ -204,7 +215,9 @@ export default defineComponent({
|
|||||||
name: 1,
|
name: 1,
|
||||||
surname: 1,
|
surname: 1,
|
||||||
date_reg: 1,
|
date_reg: 1,
|
||||||
profile: 1, idapp: 1, 'circuit.name': 1, 'circuit._id': 1
|
profile: 1,
|
||||||
|
idapp: 1,
|
||||||
|
...getParamCircuitsToView(),
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -279,7 +292,7 @@ export default defineComponent({
|
|||||||
verified_by_aportador: 1,
|
verified_by_aportador: 1,
|
||||||
admins: 1,
|
admins: 1,
|
||||||
idapp: 1,
|
idapp: 1,
|
||||||
'circuit.name': 1, 'circuit._id': 1
|
...getParamCircuitsToView(),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -43,17 +43,19 @@
|
|||||||
</q-toolbar-title>
|
</q-toolbar-title>
|
||||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||||
</q-toolbar>
|
</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>
|
<div v-html="t('circuit.disclaimer')"></div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-section class="inset-shadow">
|
<q-card-section class="inset-shadow">
|
||||||
<div style="font-weight: bold; font-size: 1.25rem">
|
<div style="font-weight: bold; font-size: 1.25rem">
|
||||||
Regolamento:
|
{{ t('circuit.regulation') }} {{ circuit.name }}
|
||||||
</div>
|
</div>
|
||||||
<q-btn
|
<q-btn
|
||||||
|
v-if="!showrules"
|
||||||
label="vedi Regolamento"
|
label="vedi Regolamento"
|
||||||
@click="showrules = !showrules"
|
@click="showrules = !showrules"
|
||||||
></q-btn>
|
></q-btn>
|
||||||
|
<br />
|
||||||
<div
|
<div
|
||||||
v-if="showrules && circuit"
|
v-if="showrules && circuit"
|
||||||
v-html="getRegulation(circuit.regulation)"
|
v-html="getRegulation(circuit.regulation)"
|
||||||
@@ -72,7 +74,7 @@
|
|||||||
userStore.my.username,
|
userStore.my.username,
|
||||||
circuit.name,
|
circuit.name,
|
||||||
true,
|
true,
|
||||||
groupnameSel ? groupnameSel.groupname : ''
|
groupnameSel ? groupnameSel.groupname : '',
|
||||||
);
|
);
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
@@ -113,11 +115,12 @@
|
|||||||
v-close-popup
|
v-close-popup
|
||||||
v-if="true"
|
v-if="true"
|
||||||
@click="
|
@click="
|
||||||
saldo !== 0
|
saldo < 0
|
||||||
? tools.showNegativeNotif(
|
? tools.showNegativeNotif(
|
||||||
$q,
|
$q,
|
||||||
t(
|
t(
|
||||||
'circuit.per_uscire_dal_circuito_occorre_essere_a_zero'
|
'circuit.per_uscire_dal_circuito_occorre_essere_a_zero',
|
||||||
|
{ symbol: circuit.symbol }
|
||||||
),
|
),
|
||||||
30000
|
30000
|
||||||
)
|
)
|
||||||
@@ -179,7 +182,7 @@
|
|||||||
to="/circuits"
|
to="/circuits"
|
||||||
round
|
round
|
||||||
icon="fas fa-arrow-circle-left"
|
icon="fas fa-arrow-circle-left"
|
||||||
style="position: absolute;"
|
style="position: absolute"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@@ -215,7 +218,7 @@
|
|||||||
rounded
|
rounded
|
||||||
dense
|
dense
|
||||||
color="green"
|
color="green"
|
||||||
style="height: 40px;"
|
style="height: 40px"
|
||||||
icon="fas fa-redo"
|
icon="fas fa-redo"
|
||||||
class="q-mx-sm"
|
class="q-mx-sm"
|
||||||
@click="aggiornaSaldo()"
|
@click="aggiornaSaldo()"
|
||||||
@@ -336,7 +339,7 @@
|
|||||||
v-if="userStore.IsMyCircuitByName(circuit.name)"
|
v-if="userStore.IsMyCircuitByName(circuit.name)"
|
||||||
:label="t('circuit.movements_made')"
|
:label="t('circuit.movements_made')"
|
||||||
@click="showMov = !showMov"
|
@click="showMov = !showMov"
|
||||||
icon="img: images/1ris_rosso_100.png"
|
:icon="tools.getSymbolByCircuit(circuit) === 'RIS' ? 'img: images/1ris_rosso_100.png' : undefined"
|
||||||
rounded
|
rounded
|
||||||
color="primary"
|
color="primary"
|
||||||
></q-btn>
|
></q-btn>
|
||||||
@@ -394,6 +397,7 @@
|
|||||||
v-if="
|
v-if="
|
||||||
userStore.my.profile &&
|
userStore.my.profile &&
|
||||||
userStore.my.profile.calc &&
|
userStore.my.profile.calc &&
|
||||||
|
!circuit.circuitoIndipendente &&
|
||||||
userStore.my.profile.calc.numGoodsAndServices <= 0 &&
|
userStore.my.profile.calc.numGoodsAndServices <= 0 &&
|
||||||
globalStore.site.confpages.showRIS &&
|
globalStore.site.confpages.showRIS &&
|
||||||
userStore.IsMyCircuitByName(circuit.name)
|
userStore.IsMyCircuitByName(circuit.name)
|
||||||
@@ -414,6 +418,7 @@
|
|||||||
<q-banner
|
<q-banner
|
||||||
v-else-if="
|
v-else-if="
|
||||||
globalStore.site.confpages.showRIS &&
|
globalStore.site.confpages.showRIS &&
|
||||||
|
!circuit.circuitoIndipendente &&
|
||||||
userStore.my.profile.calc &&
|
userStore.my.profile.calc &&
|
||||||
userStore.my.profile.calc.numGoodsAndServices <= 0
|
userStore.my.profile.calc.numGoodsAndServices <= 0
|
||||||
"
|
"
|
||||||
@@ -442,14 +447,22 @@
|
|||||||
!userStore.IsMyCircuitByName(circuit.name) &&
|
!userStore.IsMyCircuitByName(circuit.name) &&
|
||||||
!userStore.IsAskedCircuitByName(circuit.name) &&
|
!userStore.IsAskedCircuitByName(circuit.name) &&
|
||||||
!userStore.IsRefusedCircuitByName(circuit.name) &&
|
!userStore.IsRefusedCircuitByName(circuit.name) &&
|
||||||
(!circuitStore.isCircuitNational(circuit.name) ||
|
(circuit.circuitoIndipendente ||
|
||||||
|
!circuitStore.isCircuitNational(circuit.name) ||
|
||||||
(circuitStore.isCircuitNational(circuit.name) &&
|
(circuitStore.isCircuitNational(circuit.name) &&
|
||||||
circuitStore.SonoDentroAdAlmeno1CircuitoConFido()))
|
circuitStore.SonoDentroAdAlmeno1CircuitoConFido()))
|
||||||
"
|
"
|
||||||
:disable="circuitStore.IsNationalAndNotEnterInLocal(circuit.name)"
|
:disable="
|
||||||
|
!circuit.circuitoIndipendente &&
|
||||||
|
circuitStore.IsNationalAndNotEnterInLocal(circuit.name)
|
||||||
|
"
|
||||||
icon="fas fa-user-plus"
|
icon="fas fa-user-plus"
|
||||||
color="primary"
|
color="primary"
|
||||||
:label="$t('circuit.ask')"
|
:label="
|
||||||
|
circuit.askManagerToEnter
|
||||||
|
? $t('circuit.ask')
|
||||||
|
: $t('circuit.enter')
|
||||||
|
"
|
||||||
@click="
|
@click="
|
||||||
requestToEnterCircuit = true;
|
requestToEnterCircuit = true;
|
||||||
groupnameSel = null;
|
groupnameSel = null;
|
||||||
@@ -740,7 +753,7 @@
|
|||||||
<q-separator />
|
<q-separator />
|
||||||
|
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
<div class="text-h8 q-mb-sm">
|
<div v-if="tools.getSymbolByCircuit(circuit) === 'RIS'" class="text-h8 q-mb-sm">
|
||||||
<div v-html="$t('circuit.aggiuntive')"></div>
|
<div v-html="$t('circuit.aggiuntive')"></div>
|
||||||
</div>
|
</div>
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
@@ -838,6 +851,7 @@
|
|||||||
<div :class="$q.screen.lt.sm ? '' : 'row'">
|
<div :class="$q.screen.lt.sm ? '' : 'row'">
|
||||||
<div class="sezioni">
|
<div class="sezioni">
|
||||||
<CCurrencyValue
|
<CCurrencyValue
|
||||||
|
v-if="!circuit.ignoreLimits"
|
||||||
:symbol="tools.getSymbolByCircuit(circuit)"
|
:symbol="tools.getSymbolByCircuit(circuit)"
|
||||||
:color="tools.getColorByCircuit(circuit)"
|
:color="tools.getColorByCircuit(circuit)"
|
||||||
color_border="red"
|
color_border="red"
|
||||||
@@ -849,6 +863,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="sezioni">
|
<div class="sezioni">
|
||||||
<CCurrencyValue
|
<CCurrencyValue
|
||||||
|
v-if="!circuit.ignoreLimits"
|
||||||
:symbol="tools.getSymbolByCircuit(circuit)"
|
:symbol="tools.getSymbolByCircuit(circuit)"
|
||||||
:color="tools.getColorByCircuit(circuit)"
|
:color="tools.getColorByCircuit(circuit)"
|
||||||
color_border="green"
|
color_border="green"
|
||||||
@@ -857,6 +872,16 @@
|
|||||||
:label="t('circuit.qta_max_default')"
|
:label="t('circuit.qta_max_default')"
|
||||||
:tips="t('circuit.qta_max_default_tips')"
|
:tips="t('circuit.qta_max_default_tips')"
|
||||||
></CCurrencyValue>
|
></CCurrencyValue>
|
||||||
|
<CCurrencyValue
|
||||||
|
v-if="circuit.creditodiPartenza > 0"
|
||||||
|
:symbol="tools.getSymbolByCircuit(circuit)"
|
||||||
|
:color="tools.getColorByCircuit(circuit)"
|
||||||
|
color_border="blue"
|
||||||
|
v-model="circuit.creditodiPartenza"
|
||||||
|
icon="fas fa-battery-quarter"
|
||||||
|
:label="t('circuit.creditodiPartenza')"
|
||||||
|
:tips="t('circuit.creditodiPartenza_tips')"
|
||||||
|
></CCurrencyValue>
|
||||||
</div>
|
</div>
|
||||||
<!--<div v-if="circuit.qta_max_default_grp" class="sezioni">
|
<!--<div v-if="circuit.qta_max_default_grp" class="sezioni">
|
||||||
<CCurrencyValue
|
<CCurrencyValue
|
||||||
@@ -884,7 +909,7 @@
|
|||||||
</div>
|
</div>
|
||||||
-->
|
-->
|
||||||
</div>
|
</div>
|
||||||
<div class="sezioni">
|
<div v-if="circuit.totTransato" class="sezioni">
|
||||||
<q-icon name="fas fa-stats" class="iconcirc"></q-icon>
|
<q-icon name="fas fa-stats" class="iconcirc"></q-icon>
|
||||||
{{ t('circuit.stats') }}:
|
{{ t('circuit.stats') }}:
|
||||||
<br />
|
<br />
|
||||||
@@ -949,13 +974,14 @@
|
|||||||
|
|
||||||
<q-card v-if="circuit.name">
|
<q-card v-if="circuit.name">
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
<div class="text-h8">{{ t('circuit.regulation') }}:</div>
|
<div class="text-h8">{{ t('circuit.regulation') }} {{ circuit.name }}: </div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
|
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
<div class="centermydiv">
|
<div class="centermydiv">
|
||||||
<q-btn
|
<q-btn
|
||||||
|
v-if="!showrules"
|
||||||
label="vedi Regolamento"
|
label="vedi Regolamento"
|
||||||
@click="showrules = !showrules"
|
@click="showrules = !showrules"
|
||||||
></q-btn>
|
></q-btn>
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ export default defineComponent({
|
|||||||
|
|
||||||
const filter = ref(costanti.MY_CIRCUITS)
|
const filter = ref(costanti.MY_CIRCUITS)
|
||||||
|
|
||||||
|
const ind = ref(0)
|
||||||
|
|
||||||
const isfinishLoading = computed(() => globalStore.finishLoading)
|
const isfinishLoading = computed(() => globalStore.finishLoading)
|
||||||
|
|
||||||
function mounted() {
|
function mounted() {
|
||||||
@@ -32,6 +34,9 @@ export default defineComponent({
|
|||||||
if (userStore.my.profile.mycircuits.length <= 0) {
|
if (userStore.my.profile.mycircuits.length <= 0) {
|
||||||
filter.value = costanti.FIND_CIRCUIT
|
filter.value = costanti.FIND_CIRCUIT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ind.value = tools.getIndMainCardsByTable(shared_consts.TABLES_CIRCUITS)
|
||||||
|
|
||||||
// const filt_loaded = tools.getCookie(tools.COOK_SEARCH + tools.CIRCUIT_SEARCH, costanti.FIND_CIRCUIT, true)
|
// const filt_loaded = tools.getCookie(tools.COOK_SEARCH + tools.CIRCUIT_SEARCH, costanti.FIND_CIRCUIT, true)
|
||||||
// console.log('filt_loaded', filt_loaded)
|
// console.log('filt_loaded', filt_loaded)
|
||||||
// filter.value = filt_loaded ? filt_loaded : costanti.FIND_CIRCUIT
|
// filter.value = filt_loaded ? filt_loaded : costanti.FIND_CIRCUIT
|
||||||
@@ -51,6 +56,7 @@ export default defineComponent({
|
|||||||
toolsext,
|
toolsext,
|
||||||
isfinishLoading,
|
isfinishLoading,
|
||||||
tools,
|
tools,
|
||||||
|
ind,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -5,11 +5,12 @@
|
|||||||
|
|
||||||
<CMyCircuits v-model="filter" :finder="true" :showfinder="true" :showBarSelection="true">
|
<CMyCircuits v-model="filter" :finder="true" :showfinder="true" :showBarSelection="true">
|
||||||
<CFinder
|
<CFinder
|
||||||
:ind="tools.getIndMainCardsByTable(shared_consts.TABLES_CIRCUITS)"
|
:ind="ind"
|
||||||
:table="shared_consts.TABLES_CIRCUITS"
|
:table="shared_consts.TABLES_CIRCUITS"
|
||||||
:noButtAdd="!tools.isManager()"
|
:noButtAdd="!tools.isManager()"
|
||||||
:showFilterPersonal="true"
|
:showFilterPersonal="true"
|
||||||
:showBarSelection="false"
|
:showBarSelection="false"
|
||||||
|
:labelBtnAddExtra="(ind >= 0 && tools.isManager()) ? `Aggiungi ` + costanti.MAINCARDS[ind].strsingolo : ''"
|
||||||
/>
|
/>
|
||||||
</CMyCircuits>
|
</CMyCircuits>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||