From 621848d9d7a8d1039c120b7aaf055764ce9df0dc Mon Sep 17 00:00:00 2001 From: paoloar77 Date: Sat, 12 Feb 2022 22:12:49 +0100 Subject: [PATCH] - fixed cookie too down to the screen - fix verified: if Telegram OK is not necessary the email verification. - contribtype fix --- src/server/populate/contribtypes.js | 127 +++++- src/server/populate/skills.js | 30 +- src/server/populate/subskills.js | 589 ++++++++++++++-------------- src/server/router/index_router.js | 54 +-- src/server/router/users_router.js | 27 ++ src/server/telegram/telegrambot.js | 39 +- src/server/tools/general.js | 29 +- src/server/tools/globalTables.js | 178 +++++++++ 8 files changed, 732 insertions(+), 341 deletions(-) create mode 100755 src/server/tools/globalTables.js diff --git a/src/server/populate/contribtypes.js b/src/server/populate/contribtypes.js index 35c884e..dd0f55a 100644 --- a/src/server/populate/contribtypes.js +++ b/src/server/populate/contribtypes.js @@ -5,66 +5,169 @@ module.exports = { { "_id" : ObjectID("615a353c002c8298f4495be7"), "idapp" : "1", - "label" : "Dono" + "label" : "Dono", + "__v" : 0 }, { "_id" : ObjectID("61bc466567de9a1f54b25494"), "idapp" : "1", - "label" : "Offerta Libera" + "label" : "Offerta Libera", + "__v" : 0 }, { "_id" : ObjectID("61bc454867de9a1f54b25462"), "idapp" : "1", - "label" : "Baratto (scambio Beni o Servizi)" + "label" : "Baratto (scambio Beni o Servizi)", + "__v" : 0 }, { "_id" : ObjectID("61bc482667de9a1f54b2549c"), "idapp" : "1", - "label" : "Scambio Lavoro" + "label" : "Scambio Lavoro", + "__v" : 0 }, { "_id" : ObjectID("61bc482667de9a1f54b2649c"), "idapp" : "1", - "label" : "Monete Alternative" + "label" : "Monete Alternative", + "__v" : 0 }, { "_id" : ObjectID("61bc482667de9a1f54b3549e"), "idapp" : "1", - "label" : "Euro" + "label" : "Euro", + "__v" : 0 }, { "_id" : ObjectID("615a353c002c8298f4495bf7"), "idapp" : "12", - "label" : "Dono" + "label" : "Dono", + "__v" : 0 }, { "_id" : ObjectID("61bc466567de9a1f54b254f4"), "idapp" : "12", - "label" : "Offerta Libera" + "label" : "Offerta Libera", + "__v" : 0 }, { "_id" : ObjectID("61bc454867de9a1f54b254f2"), "idapp" : "12", - "label" : "Baratto (scambio Beni o Servizi)" + "label" : "Baratto (scambio Beni o Servizi)", + "__v" : 0 }, { "_id" : ObjectID("61bc482667de9a1f54b25412"), "idapp" : "12", - "label" : "Scambio Lavoro" + "label" : "Scambio Lavoro", + "__v" : 0 }, { "_id" : ObjectID("61bc482667de9a1f64b254ab"), "idapp" : "12", - "label" : "Monete Alternative" + "label" : "Monete Alternative", + "__v" : 0 }, { "_id" : ObjectID("61bc482667de9a1f64b254fb"), "idapp" : "12", - "label" : "Euro" + "label" : "Euro", + "__v" : 0 + }, + { + "_id" : ObjectID("5dbc6b0801234f629f75e98d"), + "idapp" : "2", + "__v" : 0, + "label" : "Offerta Libera" + }, + /* 2 */ + { + "_id" : ObjectID("5dbc6b1001234f629f75e98e"), + "idapp" : "2", + "__v" : 0, + "label" : "Ingresso Gratuito" + }, + + /* 3 */ + { + "_id" : ObjectID("5dbc6b1801234f629f75e98f"), + "idapp" : "2", + "__v" : 0, + "label" : "Contributo", + "showprice" : true + }, + + /* 4 */ + { + "_id" : ObjectID("5dbc6b3001234f629f75e990"), + "idapp" : "2", + "__v" : 0 + }, + + { + "_id" : ObjectID("602c315137d9f0738ded312f"), + "idapp" : "10", + "__v" : 0, + "label" : "Contributo", + "showprice" : true + }, + + /* 7 */ + { + "_id" : ObjectID("602c316037d9f0738ded3132"), + "idapp" : "10", + "__v" : 0, + "label" : "Gratuito" + }, + + /* 8 */ + { + "_id" : ObjectID("60514b3f733ce468d09366f2"), + "idapp" : "10", + "__v" : 0, + "label" : "Evento ONLINE Gratuito" + }, + { + "_id" : ObjectID("515a353c002c8298f4495bf7"), + "idapp" : "13", + "label" : "Dono", + "__v" : 0 + }, + + { + "_id" : ObjectID("51bc466567de9a1f54b254f4"), + "idapp" : "13", + "label" : "Offerta Libera", + "__v" : 0 + }, + + { + "_id" : ObjectID("51bc454867de9a1f54b254f2"), + "idapp" : "13", + "label" : "Baratto (scambio Beni o Servizi)", + "__v" : 0 + }, + { + "_id" : ObjectID("51bc482667de9a1f54b25412"), + "idapp" : "13", + "label" : "Scambio Lavoro", + "__v" : 0 + }, + { + "_id" : ObjectID("51bc482667de9a1f64b254ab"), + "idapp" : "13", + "label" : "Monete Alternative", + "__v" : 0 + }, + { + "_id" : ObjectID("51bc482667de9a1f64b254fb"), + "idapp" : "13", + "label" : "Euro", + "__v" : 0 }, ] } diff --git a/src/server/populate/skills.js b/src/server/populate/skills.js index 08c84af..86f8a18 100644 --- a/src/server/populate/skills.js +++ b/src/server/populate/skills.js @@ -2,7 +2,7 @@ module.exports = { list: [ {idSector: [1], descr: 'Arredamento'}, {idSector: [1], descr: 'Costruzioni'}, - {idSector: [1], descr: 'Ecovillaggi'}, + {idSector: [1], descr: 'Ecovillaggi / Comunità'}, {idSector: [1], descr: 'Giardini'}, {idSector: [1], descr: 'Impianti TV'}, {idSector: [1], descr: 'Pozzi Acqua'}, @@ -24,6 +24,7 @@ module.exports = { {idSector: [3], descr: 'Toelettatura cani'}, {idSector: [3], descr: 'Toelettatura gatti'}, {idSector: [3], descr: 'Vendita prodotti'}, + {idSector: [3], descr: 'Cura degli animali'}, {idSector: [3], descr: 'Veterinario'}, {idSector: [4], descr: 'Ballo'}, {idSector: [4], descr: 'Canto'}, @@ -32,14 +33,18 @@ module.exports = { {idSector: [4], descr: 'Letteratura'}, {idSector: [4], descr: 'Musica'}, {idSector: [4], descr: 'Pittura'}, + {idSector: [4], descr: 'Libri'}, + {idSector: [4], descr: 'Teatro'}, + {idSector: [4], descr: 'Moda'}, {idSector: [5], descr: 'Benessere Corpo'}, {idSector: [5], descr: 'Benessere Olistico'}, {idSector: [5], descr: 'Centro Benessere'}, {idSector: [5], descr: 'Gravidanza'}, {idSector: [5], descr: 'Medicina Alternativa'}, {idSector: [5], descr: 'Medicina Convenzionale'}, + {idSector: [5], descr: 'Pronto Soccorso'}, {idSector: [5], descr: 'Operatore Olistico'}, - {idSector: [5], descr: 'Operatori'}, + {idSector: [5], descr: 'Operatori Sanitari'}, {idSector: [5], descr: 'Salute Corpo'}, {idSector: [5], descr: 'Salute Globale'}, {idSector: [5], descr: 'Salute Psiche'}, @@ -52,13 +57,14 @@ module.exports = { {idSector: [6], descr: 'Frigorista'}, {idSector: [6], descr: 'Giardiniere'}, {idSector: [6], descr: 'Idraulico'}, - {idSector: [6], descr: 'Imbiancatura e tinteggiatura'}, + {idSector: [6], descr: 'Imbianchino'}, {idSector: [6], descr: 'Impermeabilizzazioni'}, {idSector: [6], descr: 'Installatore Linea Telefono e Modem'}, {idSector: [6], descr: 'Installazioni'}, {idSector: [6], descr: 'Restaurazione'}, {idSector: [6], descr: 'Riparazioni Casa'}, {idSector: [6], descr: 'Servizio Traslochi'}, + {idSector: [6], descr: 'Riscaldamento'}, {idSector: [6], descr: 'Smontaggio e Montaggio'}, {idSector: [6], descr: 'Strutturazioni e Riparazioni'}, {idSector: [6], descr: 'Tuttofare'}, @@ -71,13 +77,21 @@ module.exports = { {idSector: [7], descr: 'Assistenza Persone'}, {idSector: [7], descr: 'Baby sitter'}, {idSector: [7], descr: 'Corsi'}, + {idSector: [7], descr: 'Corsi per Bambini e Adolescenti'}, {idSector: [7], descr: 'Finanza'}, {idSector: [7], descr: 'Insegnante'}, {idSector: [7], descr: 'Interprete e traduzioni'}, - {idSector: [7], descr: 'Istruzione'}, + {idSector: [7], descr: 'Educazione'}, + {idSector: [7], descr: 'Formazione'}, + {idSector: [7], descr: 'Gruppi di Acquisto'}, + {idSector: [7], descr: 'Banca del Tempo'}, + {idSector: [7], descr: 'Collabora con noi'}, + {idSector: [7], descr: 'Eventi'}, + {idSector: [7], descr: 'Laboratori'}, + {idSector: [7], descr: 'Idee'}, + {idSector: [7], descr: 'Progetti'}, {idSector: [7], descr: 'Mobilità'}, {idSector: [7], descr: 'Oggettistica'}, - {idSector: [7], descr: 'Organizzazione eventi'}, {idSector: [7], descr: 'Solidarietà'}, {idSector: [7], descr: 'Sport'}, {idSector: [7], descr: 'Trasporti'}, @@ -85,8 +99,10 @@ module.exports = { {idSector: [8], descr: 'Biologia'}, {idSector: [8], descr: 'Chimica'}, {idSector: [8], descr: 'Informatica'}, + {idSector: [8], descr: 'Elettronica'}, {idSector: [8], descr: 'Meccanica'}, {idSector: [8], descr: 'Telefonia'}, {idSector: [9], descr: 'Vacanze'}, - ], -}; + {idSector: [9], descr: 'Receptionist'} + ] +} diff --git a/src/server/populate/subskills.js b/src/server/populate/subskills.js index 66195dc..a7f9360 100644 --- a/src/server/populate/subskills.js +++ b/src/server/populate/subskills.js @@ -59,6 +59,7 @@ module.exports = { {idSkill: 11, descr: 'Efficientamento energetico'}, {idSkill: 11, descr: 'Giardini e terrazze'}, {idSkill: 11, descr: 'Interior Design'}, + {idSkill: 11, descr: 'Design'}, {idSkill: 11, descr: 'Intonaco'}, {idSkill: 11, descr: 'Irrigazione'}, {idSkill: 11, descr: 'Lamatura e levigatura parquet'}, @@ -88,6 +89,7 @@ module.exports = { {idSkill: 14, descr: 'Orto Tradizionale'}, {idSkill: 14, descr: 'Permacultura'}, {idSkill: 14, descr: 'Idroponica'}, + {idSkill: 14, descr: 'Elettrocoltura'}, {idSkill: 14, descr: 'Microrganismi Effettivi (E.M.)'}, {idSkill: 15, descr: 'Bar'}, {idSkill: 15, descr: 'Catering casalingo'}, @@ -127,301 +129,318 @@ module.exports = { {idSkill: 19, descr: 'Frutta'}, {idSkill: 19, descr: 'Farina'}, {idSkill: 19, descr: 'Uova'}, - {idSkill: 33, descr: 'Estetista'}, - {idSkill: 33, descr: 'Ginnastica in gravidanza'}, - {idSkill: 33, descr: 'Ginnastica posturale'}, - {idSkill: 33, descr: 'Massaggi'}, - {idSkill: 33, descr: 'Parrucchiere/a'}, - {idSkill: 33, descr: 'Personal trainer e benessere'}, - {idSkill: 33, descr: 'Shiatsu'}, - {idSkill: 33, descr: 'Pilates'}, - {idSkill: 33, descr: 'Aerobica'}, - {idSkill: 33, descr: 'Centro dimagrimento'}, - {idSkill: 34, descr: 'Trattamenti Energetici'}, - {idSkill: 34, descr: 'Reiki'}, - {idSkill: 34, descr: 'Yoga'}, - {idSkill: 34, descr: 'Feldenkrais'}, - {idSkill: 34, descr: 'Musicoterapia'}, - {idSkill: 34, descr: 'Watsu'}, - {idSkill: 36, descr: 'Ostetrica'}, - {idSkill: 36, descr: 'Doula'}, - {idSkill: 36, descr: 'Puericultrici'}, - {idSkill: 37, descr: 'Terapia Domiciliare'}, - {idSkill: 37, descr: 'Omeopatia'}, - {idSkill: 37, descr: 'Fitoterapia'}, - {idSkill: 37, descr: 'Agopuntura'}, - {idSkill: 37, descr: 'antroposofica'}, - {idSkill: 37, descr: 'Ayurvedica'}, - {idSkill: 37, descr: 'Medicina Tradizionale Cinese (MTC)'}, - {idSkill: 37, descr: 'Osteopatia'}, - {idSkill: 37, descr: 'Chiropratica'}, - {idSkill: 38, descr: 'Medico di Base'}, - {idSkill: 38, descr: 'Pediatra'}, - {idSkill: 38, descr: 'Infermiere/a'}, - {idSkill: 38, descr: 'Oncologo'}, - {idSkill: 38, descr: 'Endocrinologo'}, - {idSkill: 38, descr: 'Chirurgo'}, - {idSkill: 38, descr: 'Ottico'}, - {idSkill: 38, descr: 'Oculista'}, - {idSkill: 38, descr: 'Ginecologo/a'}, - {idSkill: 38, descr: 'Podologo'}, - {idSkill: 40, descr: 'OSS (Operatore Socio Sanitario)'}, - {idSkill: 41, descr: 'Fisioterapia'}, - {idSkill: 41, descr: 'Logopedia'}, - {idSkill: 41, descr: 'Nutrizionista'}, - {idSkill: 41, descr: 'Osteopata'}, - {idSkill: 41, descr: 'Dentista'}, - {idSkill: 41, descr: 'Dermatologo'}, - {idSkill: 41, descr: 'Dieta a zona'}, - {idSkill: 41, descr: 'Assistenza Socio Sanitaria'}, - {idSkill: 41, descr: 'Assistenza infermieristica'}, - {idSkill: 42, descr: 'Naturopata'}, - {idSkill: 42, descr: 'Igienismo Naturale'}, - {idSkill: 43, descr: 'Counseling psicologico'}, - {idSkill: 43, descr: 'Facilitazione-Orientamento e Tessitura Sociale'}, - {idSkill: 43, descr: 'Psicanalista'}, - {idSkill: 43, descr: 'Assistenza Demenze Senili'}, - {idSkill: 43, descr: 'Psichiatra'}, - {idSkill: 43, descr: 'Psicologo e coaching'}, - {idSkill: 43, descr: 'Psicologo infantile'}, - {idSkill: 43, descr: 'Psicoterapia cognitivo comportamentale'}, - {idSkill: 44, descr: 'Assistenza anziani'}, - {idSkill: 45, descr: 'Centro Olistico'}, - {idSkill: 45, descr: 'Centro Benessere'}, - {idSkill: 46, descr: 'Dichiarazione di conformità impianto elettrico'}, - {idSkill: 46, descr: 'Dichiarazione di conformità impianto gas'}, - {idSkill: 46, descr: 'Dichiarazione di rispondenza impianto idrico'}, - {idSkill: 46, descr: 'Dichiarazione di rispondenza impianto termico'}, + {idSkill: 34, descr: 'Scrittore'}, + {idSkill: 34, descr: 'Editore'}, + {idSkill: 37, descr: 'Estetista'}, + {idSkill: 37, descr: 'Ginnastica in gravidanza'}, + {idSkill: 37, descr: 'Ginnastica posturale'}, + {idSkill: 37, descr: 'Massaggi'}, + {idSkill: 37, descr: 'Parrucchiere/a'}, + {idSkill: 37, descr: 'Personal trainer e benessere'}, + {idSkill: 37, descr: 'Shiatsu'}, + {idSkill: 37, descr: 'Pilates'}, + {idSkill: 37, descr: 'Aerobica'}, + {idSkill: 37, descr: 'Centro dimagrimento'}, + {idSkill: 38, descr: 'Trattamenti Energetici'}, + {idSkill: 38, descr: 'Reiki'}, + {idSkill: 38, descr: 'Yoga'}, + {idSkill: 38, descr: 'Feldenkrais'}, + {idSkill: 38, descr: 'Musicoterapia'}, + {idSkill: 38, descr: 'Watsu'}, + {idSkill: 38, descr: 'Educazione visiva'}, + {idSkill: 38, descr: 'Meditazione'}, + {idSkill: 38, descr: 'Mindfulness'}, + {idSkill: 38, descr: 'Qi gong'}, + {idSkill: 39, descr: 'Bagni di foresta'}, + {idSkill: 40, descr: 'Ostetrica'}, + {idSkill: 40, descr: 'Doula'}, + {idSkill: 40, descr: 'Puericultrici'}, + {idSkill: 41, descr: 'Terapia Domiciliare'}, + {idSkill: 41, descr: 'Omeopatia'}, + {idSkill: 41, descr: 'Fitoterapia'}, + {idSkill: 41, descr: 'Agopuntura'}, + {idSkill: 41, descr: 'antroposofica'}, + {idSkill: 41, descr: 'Ayurvedica'}, + {idSkill: 41, descr: 'Medicina Tradizionale Cinese (MTC)'}, + {idSkill: 41, descr: 'Osteopatia'}, + {idSkill: 41, descr: 'Chiropratica'}, + {idSkill: 41, descr: 'Iridologia'}, + {idSkill: 41, descr: 'Kinesiologia'}, + {idSkill: 41, descr: 'Morfochirologia'}, + {idSkill: 42, descr: 'Medico di Base'}, + {idSkill: 42, descr: 'Pediatra'}, + {idSkill: 42, descr: 'Infermiere/a'}, + {idSkill: 42, descr: 'Oncologo'}, + {idSkill: 42, descr: 'Endocrinologo'}, + {idSkill: 42, descr: 'Chirurgo'}, + {idSkill: 42, descr: 'Ottico'}, + {idSkill: 42, descr: 'Oculista'}, + {idSkill: 42, descr: 'Ginecologo/a'}, + {idSkill: 42, descr: 'Podologo'}, + {idSkill: 45, descr: 'OSS'}, + {idSkill: 46, descr: 'Fisioterapia'}, + {idSkill: 46, descr: 'Logopedia'}, + {idSkill: 46, descr: 'Nutrizionista'}, + {idSkill: 46, descr: 'Osteopata'}, + {idSkill: 46, descr: 'Dentista'}, + {idSkill: 46, descr: 'Dermatologo'}, + {idSkill: 46, descr: 'Dieta a zona'}, + {idSkill: 46, descr: 'Assistenza Socio Sanitaria'}, + {idSkill: 46, descr: 'Assistenza infermieristica'}, + {idSkill: 47, descr: 'Naturopata'}, + {idSkill: 47, descr: 'Igienismo Naturale'}, + {idSkill: 48, descr: 'Counseling psicologico'}, + {idSkill: 48, descr: 'Facilitazione-Orientamento e Tessitura Sociale'}, + {idSkill: 48, descr: 'Psicanalista'}, + {idSkill: 48, descr: 'Assistenza Demenze Senili'}, + {idSkill: 48, descr: 'Psichiatra'}, + {idSkill: 48, descr: 'Psicologo e coaching'}, + {idSkill: 48, descr: 'Psicologo infantile'}, + {idSkill: 48, descr: 'Psicoterapia cognitivo comportamentale'}, + {idSkill: 49, descr: 'Assistenza anziani'}, + {idSkill: 50, descr: 'Centro Olistico'}, + {idSkill: 50, descr: 'Centro Benessere'}, + {idSkill: 50, descr: 'Centro Anziani'}, + {idSkill: 51, descr: 'Dichiarazione di conformità impianto elettrico'}, + {idSkill: 51, descr: 'Dichiarazione di conformità impianto gas'}, + {idSkill: 51, descr: 'Dichiarazione di rispondenza impianto idrico'}, + {idSkill: 51, descr: 'Dichiarazione di rispondenza impianto termico'}, {idSkill: 2, descr: 'Piastrellista'}, - {idSkill: 54, descr: 'Impermeabilizzazione balcone'}, - {idSkill: 54, descr: 'Impermeabilizzazione muri controterra'}, - {idSkill: 54, descr: 'Impermeabilizzazione terrazzo'}, - {idSkill: 54, descr: 'Impermeabilizzazione tetto'}, - {idSkill: 56, descr: 'antifurto casa'}, - {idSkill: 56, descr: 'aria condizionata'}, - {idSkill: 56, descr: 'Installazione ascensore'}, + {idSkill: 59, descr: 'Impermeabilizzazione balcone'}, + {idSkill: 59, descr: 'Impermeabilizzazione muri controterra'}, + {idSkill: 59, descr: 'Impermeabilizzazione terrazzo'}, + {idSkill: 59, descr: 'Impermeabilizzazione tetto'}, + {idSkill: 61, descr: 'antifurto casa'}, + {idSkill: 61, descr: 'aria condizionata'}, + {idSkill: 61, descr: 'Installazione ascensore'}, { - idSkill: 56, + idSkill: 61, descr: 'Installazione Assistenza Caldaie/Condizionatori/Camini e stufe', }, - {idSkill: 56, descr: 'Automazione basculante'}, - {idSkill: 56, descr: 'Caldaia a condensazione'}, - {idSkill: 56, descr: 'Camino'}, - {idSkill: 56, descr: 'Cancello'}, - {idSkill: 56, descr: 'Canna fumaria'}, - {idSkill: 56, descr: 'Citofono'}, - {idSkill: 56, descr: 'Elettrodomestici'}, - {idSkill: 56, descr: 'Impianti elettrici'}, - {idSkill: 56, descr: 'Impianto fotovoltaico'}, - {idSkill: 56, descr: 'Inferriate'}, - {idSkill: 56, descr: 'Pannelli solari'}, - {idSkill: 56, descr: 'Parabola e antenna'}, - {idSkill: 56, descr: 'Pompa di calore'}, - {idSkill: 56, descr: 'Porta garage'}, - {idSkill: 56, descr: 'Rampe per disabili'}, - {idSkill: 56, descr: 'Recinzioni'}, - {idSkill: 56, descr: 'Sanitari'}, - {idSkill: 56, descr: 'Scaldabagno a gas'}, - {idSkill: 56, descr: 'Stufa a legna'}, - {idSkill: 56, descr: 'Stufa a pellet'}, - {idSkill: 56, descr: 'Telecamere'}, - {idSkill: 56, descr: 'Telecamere esterne'}, - {idSkill: 56, descr: 'Chiusura veranda'}, - {idSkill: 56, descr: 'Pensiline'}, - {idSkill: 56, descr: 'Pergolato'}, - {idSkill: 56, descr: 'Zanzariere'}, - {idSkill: 57, descr: 'Restauratore mobili'}, - {idSkill: 57, descr: 'Restauro lampadari'}, - {idSkill: 57, descr: 'Restauro legno'}, - {idSkill: 57, descr: 'Restauro mobili'}, - {idSkill: 57, descr: 'Restauro sedie'}, - {idSkill: 58, descr: 'Coibentazione tetto'}, + {idSkill: 61, descr: 'Automazione basculante'}, + {idSkill: 61, descr: 'Caldaia a condensazione'}, + {idSkill: 61, descr: 'Camino'}, + {idSkill: 61, descr: 'Cancello'}, + {idSkill: 61, descr: 'Canna fumaria'}, + {idSkill: 61, descr: 'Citofono'}, + {idSkill: 61, descr: 'Elettrodomestici'}, + {idSkill: 61, descr: 'Impianti elettrici'}, + {idSkill: 61, descr: 'Impianto fotovoltaico'}, + {idSkill: 61, descr: 'Inferriate'}, + {idSkill: 61, descr: 'Pannelli solari'}, + {idSkill: 61, descr: 'Parabola e antenna'}, + {idSkill: 61, descr: 'Pompa di calore'}, + {idSkill: 61, descr: 'Porta garage'}, + {idSkill: 61, descr: 'Rampe per disabili'}, + {idSkill: 61, descr: 'Recinzioni'}, + {idSkill: 61, descr: 'Sanitari'}, + {idSkill: 61, descr: 'Scaldabagno a gas'}, + {idSkill: 61, descr: 'Stufa a legna'}, + {idSkill: 61, descr: 'Stufa a pellet'}, + {idSkill: 61, descr: 'Telecamere'}, + {idSkill: 61, descr: 'Telecamere esterne'}, + {idSkill: 61, descr: 'Chiusura veranda'}, + {idSkill: 61, descr: 'Pensiline'}, + {idSkill: 61, descr: 'Pergolato'}, + {idSkill: 61, descr: 'Zanzariere'}, + {idSkill: 62, descr: 'Restauratore mobili'}, + {idSkill: 62, descr: 'Restauro lampadari'}, + {idSkill: 62, descr: 'Restauro legno'}, + {idSkill: 62, descr: 'Restauro mobili'}, + {idSkill: 62, descr: 'Restauro sedie'}, + {idSkill: 63, descr: 'Coibentazione tetto'}, + {idSkill: 65, descr: 'Forniture Legna'}, + {idSkill: 65, descr: 'Forniture Pellet'}, {idSkill: 13, descr: 'Cassaforte'}, {idSkill: 13, descr: 'Citofono senza fili'}, {idSkill: 13, descr: 'Videocitofono citofono e campanelli'}, - {idSkill: 60, descr: 'Servizio di smontaggio e montaggio'}, - {idSkill: 61, descr: 'Piscine'}, - {idSkill: 61, descr: 'Porte automatiche'}, - {idSkill: 61, descr: 'Porte e porte blindate'}, - {idSkill: 61, descr: 'Porte tagliafuoco'}, - {idSkill: 61, descr: 'Porticati in ferro'}, - {idSkill: 61, descr: 'Porticato in legno'}, - {idSkill: 61, descr: 'Portoni'}, - {idSkill: 61, descr: 'Posa carta da parati'}, - {idSkill: 61, descr: 'Posa laminato'}, - {idSkill: 61, descr: 'Posa moquette'}, - {idSkill: 61, descr: 'Posa parquet'}, - {idSkill: 61, descr: 'Posa parquet laminato'}, - {idSkill: 61, descr: 'Posa pavimento pvc'}, - {idSkill: 61, descr: 'Posa piastrelle'}, + {idSkill: 66, descr: 'Servizio di smontaggio e montaggio'}, + {idSkill: 67, descr: 'Piscine'}, + {idSkill: 67, descr: 'Porte automatiche'}, + {idSkill: 67, descr: 'Porte e porte blindate'}, + {idSkill: 67, descr: 'Porte tagliafuoco'}, + {idSkill: 67, descr: 'Porticati in ferro'}, + {idSkill: 67, descr: 'Porticato in legno'}, + {idSkill: 67, descr: 'Portoni'}, + {idSkill: 67, descr: 'Posa carta da parati'}, + {idSkill: 67, descr: 'Posa laminato'}, + {idSkill: 67, descr: 'Posa moquette'}, + {idSkill: 67, descr: 'Posa parquet'}, + {idSkill: 67, descr: 'Posa parquet laminato'}, + {idSkill: 67, descr: 'Posa pavimento pvc'}, + {idSkill: 67, descr: 'Posa piastrelle'}, {idSkill: 18, descr: 'Detergenti'}, {idSkill: 18, descr: 'Oggettistica'}, - {idSkill: 64, descr: 'Abiti su misura'}, - {idSkill: 64, descr: 'Abiti usati'}, - {idSkill: 64, descr: 'Camicie personalizzate'}, - {idSkill: 64, descr: 'Piccola sartoria'}, - {idSkill: 64, descr: 'Sartoria e abiti da cerimonia'}, - {idSkill: 65, descr: 'Broker assicurativo'}, - {idSkill: 66, descr: 'Badante'}, - {idSkill: 67, descr: 'Dichiarazione dei redditi'}, - {idSkill: 68, descr: 'Legale'}, - {idSkill: 69, descr: 'Diversamente abili'}, - {idSkill: 69, descr: 'Guardia del corpo'}, - {idSkill: 71, descr: 'Corsi di chitarra per principianti'}, - {idSkill: 71, descr: 'Corsi di cucina'}, - {idSkill: 71, descr: 'Corsi di cucina per bambini'}, - {idSkill: 71, descr: 'Corsi di giardinaggio'}, - {idSkill: 71, descr: 'Corsi di lingue'}, - {idSkill: 71, descr: 'Corsi di massaggio'}, - {idSkill: 71, descr: 'Corsi di musica per bambini'}, - {idSkill: 71, descr: 'Corsi di teatro e recitazione'}, - {idSkill: 71, descr: 'Corsi di yoga'}, - {idSkill: 71, descr: 'Corso autostima'}, - {idSkill: 71, descr: 'Corso barman'}, - {idSkill: 71, descr: 'Corso di calligrafia'}, - {idSkill: 71, descr: 'Corso di comunicazione e public speaking'}, - {idSkill: 71, descr: 'Corso di cucito'}, - {idSkill: 71, descr: 'Corso di disegno e pittura'}, - {idSkill: 71, descr: 'Corso di dizione'}, - {idSkill: 71, descr: 'Corso di grafica e grafica pubblicitaria'}, - {idSkill: 71, descr: 'Corso di marketing'}, - {idSkill: 71, descr: 'Corso di teatro per bambini'}, - {idSkill: 71, descr: 'Corso difesa personale'}, - {idSkill: 71, descr: 'Corso falegnameria'}, - {idSkill: 71, descr: 'Corso makeup artist'}, - {idSkill: 71, descr: 'Corso pasticceria'}, - {idSkill: 71, descr: 'Corso patente nautica'}, - {idSkill: 71, descr: 'Corso public speaking'}, - {idSkill: 72, descr: 'Consulenza bancaria e finanziaria'}, - {idSkill: 73, descr: 'Asilo Nido'}, - {idSkill: 73, descr: 'Scuola Elementare'}, - {idSkill: 73, descr: 'Scuola Media'}, - {idSkill: 73, descr: 'Scuola Superiore'}, - {idSkill: 73, descr: 'Scuola Universitaria'}, - {idSkill: 75, descr: 'Aiuto tesi'}, - {idSkill: 75, descr: 'Parentale e supporto all\'istruzione'}, - {idSkill: 75, descr: 'Privatista'}, - {idSkill: 75, descr: 'Ripetizioni elementari'}, - {idSkill: 75, descr: 'Ripetizioni medie'}, - {idSkill: 75, descr: 'Ripetizioni superiori'}, - {idSkill: 75, descr: 'Ripetizioni università'}, - {idSkill: 75, descr: 'Scuola Parentale'}, - {idSkill: 75, descr: 'Lezioni di italiano'}, - {idSkill: 75, descr: 'Lezioni di musica'}, - {idSkill: 75, descr: 'Lezioni strumenti musicali'}, - {idSkill: 76, descr: 'Trasporto Solidale'}, - {idSkill: 78, descr: 'Addio al celibato/nubilato'}, - {idSkill: 78, descr: 'Buffet di compleanno'}, - {idSkill: 78, descr: 'Cake designer'}, - {idSkill: 78, descr: 'Cantante per matrimonio'}, - {idSkill: 78, descr: 'Compleanni'}, - {idSkill: 78, descr: 'Gruppi musicali per matrimoni'}, - {idSkill: 78, descr: 'Location per eventi'}, - {idSkill: 78, descr: 'Mago per bambini'}, - {idSkill: 78, descr: 'Makeup artist e trucco sposa'}, - {idSkill: 78, descr: 'Matrimoni'}, - {idSkill: 78, descr: 'Noleggio attrezzature e catering'}, - {idSkill: 78, descr: 'Noleggio gazebo'}, - {idSkill: 78, descr: 'Noleggio gonfiabili'}, - {idSkill: 78, descr: 'Ricevimento e sala ricevimenti'}, - {idSkill: 78, descr: 'Torta matrimonio'}, - {idSkill: 78, descr: 'Torte di compleanno'}, - {idSkill: 78, descr: 'Trucco matrimonio'}, - {idSkill: 78, descr: 'Video matrimonio'}, - {idSkill: 78, descr: 'Ville per matrimoni'}, - {idSkill: 78, descr: 'Wedding planner'}, - {idSkill: 79, descr: 'Supporto nella spesa'}, - {idSkill: 79, descr: 'Volontariato'}, - {idSkill: 80, descr: 'Agonistico'}, - {idSkill: 80, descr: 'Escursioni per esperti'}, - {idSkill: 80, descr: 'Escursioni semplici'}, - {idSkill: 80, descr: 'Non Agonistico'}, - {idSkill: 80, descr: 'Corsi di arti marziali'}, - {idSkill: 81, descr: 'Noleggio furgoni'}, - {idSkill: 81, descr: 'Noleggio minivan'}, - {idSkill: 81, descr: 'Autista privato'}, + {idSkill: 70, descr: 'Produzione Abiti'}, + {idSkill: 70, descr: 'Abiti usati'}, + {idSkill: 70, descr: 'Camicie personalizzate'}, + {idSkill: 70, descr: 'Piccola sartoria'}, + {idSkill: 70, descr: 'Sartoria e abiti da cerimonia'}, + {idSkill: 71, descr: 'Broker assicurativo'}, + {idSkill: 72, descr: 'Badante'}, + {idSkill: 73, descr: 'Dichiarazione dei redditi'}, + {idSkill: 74, descr: 'Legale'}, + {idSkill: 75, descr: 'Diversamente abili'}, + {idSkill: 75, descr: 'Guardia del corpo'}, + {idSkill: 77, descr: 'Chitarra per principianti'}, + {idSkill: 77, descr: 'Cucina'}, + {idSkill: 77, descr: 'Giardinaggio'}, + {idSkill: 77, descr: 'Lingue'}, + {idSkill: 77, descr: 'Massaggio'}, + {idSkill: 77, descr: 'Teatro e recitazione'}, + {idSkill: 77, descr: 'Yoga'}, + {idSkill: 77, descr: 'Tai Chi'}, + {idSkill: 77, descr: 'Kung Fu'}, + {idSkill: 77, descr: 'Karate'}, + {idSkill: 77, descr: 'Aikido'}, + {idSkill: 77, descr: 'Judo'}, + {idSkill: 77, descr: 'Yoga della risata'}, + {idSkill: 77, descr: 'Autostima'}, + {idSkill: 77, descr: 'Barman'}, + {idSkill: 77, descr: 'Calligrafia'}, + {idSkill: 77, descr: 'Comunicazione e public speaking'}, + {idSkill: 77, descr: 'Cucito'}, + {idSkill: 77, descr: 'Disegno e pittura'}, + {idSkill: 77, descr: 'Dizione'}, + {idSkill: 77, descr: 'Grafica e grafica pubblicitaria'}, + {idSkill: 77, descr: 'Marketing'}, + {idSkill: 77, descr: 'Difesa personale'}, + {idSkill: 77, descr: 'Falegnameria'}, + {idSkill: 77, descr: 'Makeup artist'}, + {idSkill: 77, descr: 'Pasticceria'}, + {idSkill: 77, descr: 'Patente nautica'}, + {idSkill: 77, descr: 'Public speaking'}, + {idSkill: 77, descr: 'Riconoscimento Piante'}, + {idSkill: 77, descr: 'Antichi Mestieri'}, + {idSkill: 77, descr: 'Produzione di Olii per automedicazione'}, + {idSkill: 77, descr: 'Orto Sinergico'}, + {idSkill: 78, descr: 'Corso di Yoga'}, + {idSkill: 78, descr: 'Corso di Teatro'}, + {idSkill: 78, descr: 'Corso di Musica'}, + {idSkill: 78, descr: 'Corso di Canto'}, + {idSkill: 78, descr: 'Corso di Cucina'}, + {idSkill: 78, descr: 'Corso di Disegno'}, + {idSkill: 79, descr: 'Consulenza bancaria e finanziaria'}, + {idSkill: 80, descr: 'Asilo Nido'}, + {idSkill: 80, descr: 'Scuola Elementare'}, + {idSkill: 80, descr: 'Scuola Media'}, + {idSkill: 80, descr: 'Scuola Superiore'}, + {idSkill: 80, descr: 'Scuola Universitaria'}, + {idSkill: 82, descr: 'Parentale e supporto all\'istruzione'}, + {idSkill: 82, descr: 'Privatista'}, + {idSkill: 82, descr: 'Ripetizioni elementari'}, + {idSkill: 82, descr: 'Ripetizioni medie'}, + {idSkill: 82, descr: 'Ripetizioni superiori'}, + {idSkill: 82, descr: 'Ripetizioni università'}, + {idSkill: 82, descr: 'Scuola Parentale'}, + {idSkill: 82, descr: 'Home Schooling'}, + {idSkill: 82, descr: 'Lezioni di italiano'}, + {idSkill: 82, descr: 'Lezioni di musica'}, + {idSkill: 82, descr: 'Lezioni strumenti musicali'}, + {idSkill: 82, descr: 'Asili nel Bosco'}, + {idSkill: 82, descr: 'Asili Montessoriani'}, + {idSkill: 82, descr: 'Asili Steineriani'}, + {idSkill: 82, descr: 'Asili Sistemici'}, + {idSkill: 91, descr: 'Trasporto Solidale'}, + {idSkill: 93, descr: 'Supporto nella spesa'}, + {idSkill: 93, descr: 'Volontariato'}, + {idSkill: 94, descr: 'Agonistico'}, + {idSkill: 94, descr: 'Escursioni per esperti'}, + {idSkill: 94, descr: 'Escursioni semplici'}, + {idSkill: 94, descr: 'Non Agonistico'}, + {idSkill: 94, descr: 'Corsi di arti marziali'}, + {idSkill: 95, descr: 'Noleggio furgoni'}, + {idSkill: 95, descr: 'Noleggio minivan'}, + {idSkill: 95, descr: 'Autista privato'}, + {idSkill: 95, descr: 'Car Sharing'}, {idSkill: 18, descr: 'Sapone'}, {idSkill: 18, descr: 'Cosmesi'}, {idSkill: 18, descr: 'Shampoo'}, - {idSkill: 82, descr: 'Agenzia video'}, - {idSkill: 82, descr: 'Corso videomaker'}, - {idSkill: 82, descr: 'Noleggio videoproiettori'}, - {idSkill: 82, descr: 'Puntamento parabola'}, - {idSkill: 82, descr: 'Recording studio'}, - {idSkill: 82, descr: 'Riparazione altoparlanti'}, - {idSkill: 82, descr: 'Riparazione casse acustiche'}, - {idSkill: 82, descr: 'Riparazione stereo'}, - {idSkill: 82, descr: 'Riprese con drone'}, - {idSkill: 82, descr: 'Service audio'}, - {idSkill: 82, descr: 'Studio registrazione audio'}, - {idSkill: 82, descr: 'Tecnico del suono'}, - {idSkill: 82, descr: 'Videomaking'}, - {idSkill: 29, descr: 'Book fotografico'}, - {idSkill: 29, descr: 'Corso di fotografia'}, - {idSkill: 29, descr: 'Foto e-commerce'}, - {idSkill: 29, descr: 'Foto prima comunione'}, - {idSkill: 29, descr: 'Fotografia di moda'}, - {idSkill: 29, descr: 'Fotografo battesimo'}, - {idSkill: 29, descr: 'Fotografo industriale'}, - {idSkill: 29, descr: 'Fotografo interni'}, - {idSkill: 29, descr: 'Fotografo matrimonio'}, - {idSkill: 29, descr: 'Fotografo neonati'}, - {idSkill: 29, descr: 'Recupero foto e video cancellati'}, - {idSkill: 29, descr: 'Riparazione macchine fotografiche'}, - {idSkill: 29, descr: 'Servizi fotografici bambini'}, - {idSkill: 85, descr: 'Assistenza computer/software/stampante'}, - {idSkill: 85, descr: 'Corsi Informatica'}, - {idSkill: 85, descr: 'Corso di programmazione'}, - {idSkill: 85, descr: 'Noleggio fotocopiatrici e stampanti'}, - {idSkill: 85, descr: 'Realizzazione e-commerce'}, - {idSkill: 85, descr: 'Realizzazione App per Cellulare'}, - {idSkill: 85, descr: 'Recupero dati'}, - {idSkill: 85, descr: 'Rendering 3D'}, - {idSkill: 85, descr: 'Riparazione iMac'}, - {idSkill: 85, descr: 'Riparazione notebook'}, - {idSkill: 85, descr: 'Riparazione plotter'}, - {idSkill: 85, descr: 'Riparazione stampanti'}, - {idSkill: 85, descr: 'Riparazione tablet'}, - {idSkill: 85, descr: 'Sistemista'}, - {idSkill: 85, descr: 'Soluzioni informatiche'}, - {idSkill: 85, descr: 'Sviluppatore'}, - {idSkill: 85, descr: 'Sviluppo app per cellulare'}, - {idSkill: 85, descr: 'Sviluppo software'}, - {idSkill: 85, descr: 'Tecnico informatico'}, - {idSkill: 85, descr: 'Web Agency'}, - {idSkill: 85, descr: 'Webmaster'}, - {idSkill: 85, descr: 'WordPress developer'}, - {idSkill: 86, descr: 'Antifurti auto e moto'}, - {idSkill: 86, descr: 'Gommista'}, - {idSkill: 86, descr: 'Installazione autoradio'}, - {idSkill: 86, descr: 'Lavaggio auto'}, - {idSkill: 86, descr: 'Lavaggio auto a domicilio'}, - {idSkill: 86, descr: 'Lavaggio moto'}, - {idSkill: 86, descr: 'Lavaggio tappezzeria auto'}, - {idSkill: 86, descr: 'Lucidatura auto'}, - {idSkill: 86, descr: 'Manutenzione Auto'}, - {idSkill: 86, descr: 'Manutenzione Motocicli/Biciclette'}, - {idSkill: 86, descr: 'Restauro auto d\'epoca'}, - {idSkill: 86, descr: 'Restauro moto d\'epoca'}, - {idSkill: 86, descr: 'Revisione bombole metano'}, - {idSkill: 86, descr: 'Revisione impianto gpl'}, - {idSkill: 86, descr: 'Riparazione carrozzeria auto'}, - {idSkill: 86, descr: 'Riparazione cerchi in lega'}, - {idSkill: 86, descr: 'Riparazione radiatori'}, - {idSkill: 86, descr: 'Riparazione sedili auto'}, - {idSkill: 86, descr: 'Sanificazione auto'}, - {idSkill: 86, descr: 'Tagliando auto'}, - {idSkill: 86, descr: 'Tappezziere per auto'}, - {idSkill: 87, descr: 'Riparazione cellulari e telefoni'}, - {idSkill: 87, descr: 'Riparazione schede elettroniche'}, - {idSkill: 81, descr: 'Noleggio auto e veicoli'}, - {idSkill: 81, descr: 'Noleggio camper'}, - {idSkill: 81, descr: 'Noleggio Camper e roulotte ad uso vacanze'}, - {idSkill: 81, descr: 'Noleggio roulotte'}, - {idSkill: 88, descr: 'Affitto case'}, - {idSkill: 88, descr: 'Affitto camere'}, - {idSkill: 88, descr: 'Agenzia viaggi'}, - {idSkill: 88, descr: 'Vacanze studio'}, - {idSkill: 88, descr: 'B&B'}, - ], + {idSkill: 96, descr: 'Agenzia video'}, + {idSkill: 96, descr: 'Corso videomaker'}, + {idSkill: 96, descr: 'Noleggio videoproiettori'}, + {idSkill: 96, descr: 'Puntamento parabola'}, + {idSkill: 96, descr: 'Recording studio'}, + {idSkill: 96, descr: 'Riparazione altoparlanti'}, + {idSkill: 96, descr: 'Riparazione casse acustiche'}, + {idSkill: 96, descr: 'Riparazione stereo'}, + {idSkill: 96, descr: 'Riprese con drone'}, + {idSkill: 96, descr: 'Service audio'}, + {idSkill: 96, descr: 'Studio registrazione audio'}, + {idSkill: 96, descr: 'Tecnico del suono'}, + {idSkill: 96, descr: 'Videomaking'}, + {idSkill: 30, descr: 'Book fotografico'}, + {idSkill: 30, descr: 'Corso di fotografia'}, + {idSkill: 30, descr: 'Foto e-commerce'}, + {idSkill: 30, descr: 'Foto prima comunione'}, + {idSkill: 30, descr: 'Fotografia di moda'}, + {idSkill: 30, descr: 'Fotografo battesimo'}, + {idSkill: 30, descr: 'Fotografo industriale'}, + {idSkill: 30, descr: 'Fotografo interni'}, + {idSkill: 30, descr: 'Fotografo matrimonio'}, + {idSkill: 30, descr: 'Fotografo neonati'}, + {idSkill: 30, descr: 'Recupero foto e video cancellati'}, + {idSkill: 30, descr: 'Riparazione macchine fotografiche'}, + {idSkill: 30, descr: 'Servizi fotografici bambini'}, + {idSkill: 99, descr: 'Esperto Informatico'}, + {idSkill: 99, descr: 'Assistenza computer/software/stampante'}, + {idSkill: 99, descr: 'Corsi Informatica'}, + {idSkill: 99, descr: 'Corso di programmazione'}, + {idSkill: 99, descr: 'Noleggio fotocopiatrici e stampanti'}, + {idSkill: 99, descr: 'Realizzazione e-commerce'}, + {idSkill: 99, descr: 'Realizzazione App per Cellulare'}, + {idSkill: 99, descr: 'Recupero dati'}, + {idSkill: 99, descr: 'Rendering 3D'}, + {idSkill: 99, descr: 'Riparazione iMac'}, + {idSkill: 99, descr: 'Riparazione notebook'}, + {idSkill: 99, descr: 'Riparazione plotter'}, + {idSkill: 99, descr: 'Riparazione stampanti'}, + {idSkill: 99, descr: 'Riparazione tablet'}, + {idSkill: 99, descr: 'Sistemista'}, + {idSkill: 99, descr: 'Soluzioni informatiche'}, + {idSkill: 99, descr: 'Sviluppatore'}, + {idSkill: 99, descr: 'Sviluppo app per cellulare'}, + {idSkill: 99, descr: 'Sviluppo software'}, + {idSkill: 99, descr: 'Tecnico informatico'}, + {idSkill: 99, descr: 'Web Agency'}, + {idSkill: 99, descr: 'Webmaster'}, + {idSkill: 99, descr: 'WordPress developer'}, + {idSkill: 100, descr: 'Riparazione Elettrodomestici'}, + {idSkill: 100, descr: 'Riparazione Strumenti Informatici'}, + {idSkill: 101, descr: 'Antifurti auto e moto'}, + {idSkill: 101, descr: 'Gommista'}, + {idSkill: 101, descr: 'Installazione autoradio'}, + {idSkill: 101, descr: 'Lavaggio auto'}, + {idSkill: 101, descr: 'Lavaggio auto a domicilio'}, + {idSkill: 101, descr: 'Lavaggio moto'}, + {idSkill: 101, descr: 'Lavaggio tappezzeria auto'}, + {idSkill: 101, descr: 'Lucidatura auto'}, + {idSkill: 101, descr: 'Manutenzione Auto'}, + {idSkill: 101, descr: 'Manutenzione Motocicli/Biciclette'}, + {idSkill: 101, descr: 'Restauro auto d\'epoca'}, + {idSkill: 101, descr: 'Restauro moto d\'epoca'}, + {idSkill: 101, descr: 'Revisione bombole metano'}, + {idSkill: 101, descr: 'Revisione impianto gpl'}, + {idSkill: 101, descr: 'Riparazione carrozzeria auto'}, + {idSkill: 101, descr: 'Riparazione cerchi in lega'}, + {idSkill: 101, descr: 'Riparazione radiatori'}, + {idSkill: 101, descr: 'Riparazione sedili auto'}, + {idSkill: 101, descr: 'Sanificazione auto'}, + {idSkill: 101, descr: 'Tagliando auto'}, + {idSkill: 101, descr: 'Tappezziere per auto'}, + {idSkill: 102, descr: 'Riparazione cellulari e telefoni'}, + {idSkill: 102, descr: 'Riparazione schede elettroniche'}, + {idSkill: 95, descr: 'Noleggio auto e veicoli'}, + {idSkill: 95, descr: 'Noleggio camper'}, + {idSkill: 95, descr: 'Noleggio Camper e roulotte ad uso vacanze'}, + {idSkill: 95, descr: 'Noleggio roulotte'}, + {idSkill: 103, descr: 'Affitto casa'}, + {idSkill: 103, descr: 'Affitto camera'}, + {idSkill: 103, descr: 'Agenzia viaggi'}, + {idSkill: 103, descr: 'Vacanze studio'}, + {idSkill: 103, descr: 'Offresi ospitalità'}, + {idSkill: 103, descr: 'Offresi ospitalità (per 1 notte)'}, + {idSkill: 103, descr: 'Offresi ospitalità (per 3 notti)'}, + {idSkill: 103, descr: 'Offresi ospitalità (per 7 notti)'}, + {idSkill: 103, descr: 'B&B'}], }; diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js index 1e0898a..b5381a0 100755 --- a/src/server/router/index_router.js +++ b/src/server/router/index_router.js @@ -271,6 +271,8 @@ function getTableByTableName(tablename) { mytable = MyEvent; else if (tablename === 'contribtypes') mytable = Contribtype; + else if (tablename === 'contribtype') + mytable = Contribtype; else if (tablename === 'paymenttypes') mytable = PaymentType; else if (tablename === 'disciplines') @@ -864,32 +866,32 @@ router.patch('/callfunz', authenticate, async (req, res) => { }); router.get('/copyfromapptoapp/:idapporig/:idappdest', async (req, res) => { -// const idapporig = req.params.idapporig; -// const idappdest = req.params.idappdest; -// if (!idapporig || !idappdest) -// res.status(400).send(); -// -// const mytablesstr = ['settings', 'users', 'templemail', 'contribtype']; -// -// try { -// let numrectot = 0; -// for (const table of mytablesstr) { -// const mytable = getTableByTableName(table); -// -// tools.mylogshow('copyfromapptoapp: ', table, mytable); -// -// await mytable.DuplicateAllRecords(idapporig, idappdest).then((numrec) => { -// // tools.mylogshow(' REC TO MODIFY: ', rec); -// numrectot += numrec -// }); -// } -// -// res.send({ code: server_constants.RIS_CODE_OK, msg: '', numrectot }); -// -// } catch (e) { -// tools.mylogserr('Error copyfromapptoapp: ', e); -// res.status(400).send(); -// } + // const idapporig = req.params.idapporig; + // const idappdest = req.params.idappdest; + // if (!idapporig || !idappdest) + // res.status(400).send(); + // + // const mytablesstr = ['settings', 'users', 'templemail']; + // + // try { + // let numrectot = 0; + // for (const table of mytablesstr) { + // const mytable = getTableByTableName(table); + // + // tools.mylogshow('copyfromapptoapp: ', table, mytable); + // + // await mytable.DuplicateAllRecords(idapporig, idappdest).then((numrec) => { + // // tools.mylogshow(' REC TO MODIFY: ', rec); + // numrectot += numrec + // }); + // } + // + // res.send({ code: server_constants.RIS_CODE_OK, msg: '', numrectot }); + // + // } catch (e) { + // tools.mylogserr('Error copyfromapptoapp: ', e); + // res.status(400).send(); + // } }); router.delete('/delrec/:table/:id', authenticate, async (req, res) => { diff --git a/src/server/router/users_router.js b/src/server/router/users_router.js index 86c7c84..6151fa6 100755 --- a/src/server/router/users_router.js +++ b/src/server/router/users_router.js @@ -872,6 +872,33 @@ async function eseguiDbOp(idapp, mydata, locale) { populate.rewriteTable('contribtypes'); + } else if (mydata.dbop === 'copyFrom1To13') { + const idapporig = 1; + const idappdest = 13; + if (!idapporig || !idappdest) + return; + + const globalTables = require('../tools/globalTables'); + + const mytablesstr = ['settings', 'users', 'templemail', 'contribtypes']; + + try { + let numrectot = 0; + for (const table of mytablesstr) { + const mytable = globalTables.getTableByTableName(table); + + tools.mylogshow('copyfromapptoapp: ', table, mytable); + + await mytable.DuplicateAllRecords(idapporig, idappdest). + then((numrec) => { + // tools.mylogshow(' REC TO MODIFY: ', rec); + numrectot += numrec + }); + } + }catch (e){ + console.log('e', e); + } + } else if (mydata.dbop === 'emptyDbSkill') { const {Sector} = require('../models/sector'); diff --git a/src/server/telegram/telegrambot.js b/src/server/telegram/telegrambot.js index 9039d38..dda599f 100755 --- a/src/server/telegram/telegrambot.js +++ b/src/server/telegram/telegrambot.js @@ -1,8 +1,8 @@ const tools = require('../tools/general'); -const appTelegram = [tools.FREEPLANET]; +const appTelegram = [tools.FREEPLANET, tools.ISP]; -const appTelegram_TEST = [tools.FREEPLANET, tools.PDNM]; +const appTelegram_TEST = [tools.FREEPLANET, tools.PDNM, tools.ISP]; const appTelegram_DEVELOP = [tools.PDNM]; const appTelegramFinti = ['2', tools.CNM]; @@ -487,6 +487,13 @@ const txt_es = { MSG_EXIT_TELEGRAM: 'La cuenta ha sido desconectada de Telegram BOT.', MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Acaba de registrarse "%s (n. %s)"\n(Invitado de %s)', + MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', + MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!', + MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!', + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + + '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.
Contattalo per farti abilitare !', + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + + '🚫 %s Non è stato Abilitato !', MSG_MSG_SENT: emoji.get('envelope') + ' Mensajes enviados !', MSG_MSG_TOSENT: emoji.get('envelope') + ' Mensajes a enviar', MSG_MSG_INCORSO: emoji.get('envelope') + @@ -515,6 +522,13 @@ const txt_fr = { MSG_EXIT_TELEGRAM: 'L\'account a été déconnecté de Telegram BOT.', MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Vous venez à peine de vous inscrire "%s (n. %s) %s', + MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', + MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!', + MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!', + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + + '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.
Contattalo per farti abilitare !', + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + + '🚫 %s Non è stato Abilitato !', MSG_MSG_SENT: emoji.get('envelope') + ' Messages envoyés !', MSG_MSG_TOSENT: emoji.get('envelope') + ' Messages à envoyer', MSG_MSG_INCORSO: emoji.get('envelope') + @@ -541,6 +555,13 @@ const txt_si = { MSG_EXIT_TELEGRAM: 'Račun se nahaja v programu Telegram BOT.', MSG_APORTADOR_USER_REGISTERED: emo.FIRE + 'Registracija registracije %s (n. %s)\n(povabil ga %s)', + MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', + MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!', + MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!', + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + + '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.
Contattalo per farti abilitare !', + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + + '🚫 %s Non è stato Abilitato !', }; const txt_en = { @@ -566,6 +587,13 @@ const txt_en = { MSG_EXIT_TELEGRAM: 'The account has now been disconnected from this Telegram BOT.', MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' He/She\'s just registered "%s (n. %s)"\n(Invited from %s)', + MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', + MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!', + MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!', + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + + '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.
Contattalo per farti abilitare !', + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + + '🚫 %s Non è stato Abilitato !', MSG_MSG_SENT: emoji.get('envelope') + ' Sent Messages !', MSG_MSG_TOSENT: emoji.get('envelope') + ' Messages to Send', MSG_MSG_INCORSO: emoji.get('envelope') + @@ -594,6 +622,13 @@ const txt_pt = { MSG_EXIT_TELEGRAM: 'A conta foi agora desconectada deste Telegrama BOT.', MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Acabou de se registar "%s (n. %s)"\n(Convidado por %s)', + MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍‍♂️ Abilita Nuova Registrazione: %s', + MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!', + MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!', + MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK + + '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.
Contattalo per farti abilitare !', + MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK + + '🚫 %s Non è stato Abilitato !', MSG_MSG_SENT: emoji.get('envelope') + ' Mensagens Enviadas !', MSG_MSG_TOSENT: emoji.get('envelope') + ' Mensagens a enviar', MSG_MSG_INCORSO: emoji.get('envelope') + diff --git a/src/server/tools/general.js b/src/server/tools/general.js index ebf2706..74cce4c 100755 --- a/src/server/tools/general.js +++ b/src/server/tools/general.js @@ -389,6 +389,7 @@ module.exports = { AYNI: '7', CNM: '10', PDNM: '12', + ISP: '13', HELP_CHAT: '', TYPECONF_ZOOM: 'zoom', @@ -1589,7 +1590,7 @@ module.exports = { // Before check if exist more than 1 record in the destination, // if Yes don't copy if (numrec <= 0) { - return await mythistable.findAllIdApp(idapporig).then(async (arrrec) => { + return mythistable.findAllIdApp(idapporig).then(async (arrrec) => { let num = 0; for (let ind = 0; ind < arrrec.length; ind++) { @@ -1597,12 +1598,16 @@ module.exports = { newrec._id = new ObjectID(); newrec.idapp = idappdest; - await newrec.save((err, rec) => { - if (rec) { - num++; - } + try { + await newrec.save((err, rec) => { + if (rec) { + num++; + } - }); + }); + }catch (e) { + console.error('e', e); + } } return num; @@ -2340,10 +2345,16 @@ module.exports = { blockwords(mystr) { const arrwords = ['http', 'Http', 'Asasfasfas', '://', 'mrbit', 'admin', 'superuser']; - for (const myword of arrwords) { - if (mystr.includes(myword)) { - return true; + try { + for (const myword of arrwords) { + if (mystr) { + if (mystr.includes(myword)) { + return true; + } + } } + } catch (e) { + } return false; diff --git a/src/server/tools/globalTables.js b/src/server/tools/globalTables.js new file mode 100755 index 0000000..a94404c --- /dev/null +++ b/src/server/tools/globalTables.js @@ -0,0 +1,178 @@ +const os = require('os'); + +const fs = require('fs'); + +const path = require('path'); + +require('../config/config'); + +require('../models/subscribers'); + +const {ObjectID} = require('mongodb'); + +const {User} = require('../models/user'); +const {MyGroup} = require('../models/mygroup'); +const {Booking} = require('../models/booking'); +const {Operator} = require('../models/operator'); +const {Where} = require('../models/where'); +const {MyEvent} = require('../models/myevent'); +const {Contribtype} = require('../models/contribtype'); +const {PaymentType} = require('../models/paymenttype'); +const {Discipline} = require('../models/discipline'); +const {Skill} = require('../models/skill'); +const {SubSkill} = require('../models/subskill'); +const {MySkill} = require('../models/myskill'); +const {StatusSkill} = require('../models/statusSkill'); +const {City} = require('../models/city'); +const {Province} = require('../models/province'); +const {Sector} = require('../models/sector'); +const {CatGrp} = require('../models/catgrp'); +const {Level} = require('../models/level'); +const {AdType} = require('../models/adtype'); +const Pickup = require('../models/pickup'); +const {Newstosent} = require('../models/newstosent'); +const {MyPage} = require('../models/mypage'); +const {MyBot} = require('../models/bot'); +const {CalZoom} = require('../models/calzoom'); +const {Gallery} = require('../models/gallery'); +const {TemplEmail} = require('../models/templemail'); +const {OpzEmail} = require('../models/opzemail'); +const {MailingList} = require('../models/mailinglist'); +const {Settings} = require('../models/settings'); +const {SendMsg} = require('../models/sendmsg'); +const {Permission} = require('../models/permission'); +const {MsgTemplate} = require('../models/msg_template'); +const Product = require('../models/product'); +const Producer = require('../models/producer'); +const Cart = require('../models/cart'); +const OrdersCart = require('../models/orderscart'); +const Storehouse = require('../models/storehouse'); +const Department = require('../models/department'); +const ShareWithUs = require('../models/sharewithus'); +const Site = require('../models/site'); +const IscrittiConacreis = require('../models/iscrittiConacreis'); +const Group = require('../models/group'); +const {Todo} = require('../models/todo'); +const Hours = require('../models/hours'); +const Order = require('../models/order'); +const Cash = require('../models/cash'); +const CashCategory = require('../models/cashCategory'); +const CashSubCategory = require('../models/cashSubCategory'); + +const tools = require('./general'); + +module.exports = { + + getTableByTableName(tablename) { + + let mytable = ''; + if (tablename === 'users') + mytable = User; + else if (tablename === 'mygroups') + mytable = MyGroup; + else if (tablename === 'tessitura') + mytable = Tessitura; + // else if (tablename === 'extralist') + // mytable = ExtraList; + else if (tablename === 'bookings') + mytable = Booking; + else if (tablename === 'operators') + mytable = Operator; + else if (tablename === 'products') + mytable = Product; + else if (tablename === 'storehouses') + mytable = Storehouse; + else if (tablename === 'departments') + mytable = Department; + else if (tablename === 'sharewithus') + mytable = ShareWithUs; + else if (tablename === 'sites') + mytable = Site; + else if (tablename === 'iscritticonacreis') + mytable = IscrittiConacreis; + else if (tablename === 'groups') + mytable = Group; + else if (tablename === 'todos') + mytable = Todo; + else if (tablename === 'hours') + mytable = Hours; + else if (tablename === 'orders') + mytable = Order; + else if (tablename === 'cashs') + mytable = Cash; + else if (tablename === 'cashCategorys') + mytable = CashCategory; + else if (tablename === 'cashSubCategorys') + mytable = CashSubCategory; + else if (tablename === 'producers') + mytable = Producer; + else if (tablename === 'carts') + mytable = Cart; + else if (tablename === 'orderscart') + mytable = OrdersCart; + else if (tablename === 'sendmsgs') + mytable = SendMsg; + else if (tablename === 'wheres') + mytable = Where; + else if (tablename === 'myevents') + mytable = MyEvent; + else if (tablename === 'contribtypes') + mytable = Contribtype; + else if (tablename === 'paymenttypes') + mytable = PaymentType; + else if (tablename === 'disciplines') + mytable = Discipline; + else if (tablename === 'newstosent') + mytable = Newstosent; + else if (tablename === 'gallery') + mytable = Gallery; + else if (tablename === 'mypage') + mytable = MyPage; + else if (tablename === 'mybots') + mytable = MyBot; + else if (tablename === 'calzoom') + mytable = CalZoom; + else if (tablename === 'templemail') + mytable = TemplEmail; + else if (tablename === 'opzemail') + mytable = OpzEmail; + else if (tablename === 'settings') + mytable = Settings; + else if (tablename === 'permissions') + mytable = Permission; + else if (tablename === 'mailinglist') + mytable = MailingList; + else if (tablename === 'msg_templates') + mytable = MsgTemplate; + else if (tablename === 'navepersistente') + mytable = NavePersistente; + // else if (tablename === 'listaingressos') + // mytable = ListaIngresso; + else if (tablename === 'graduatorias') + mytable = Graduatoria; + else if (tablename === 'skills') + mytable = Skill; + else if (tablename === 'subskills') + mytable = SubSkill; + else if (tablename === 'myskills') + mytable = MySkill; + else if (tablename === 'statusSkills') + mytable = StatusSkill; + else if (tablename === 'cities') + mytable = City; + else if (tablename === 'provinces') + mytable = Province; + else if (tablename === 'sectors') + mytable = Sector; + else if (tablename === 'catgrps') + mytable = CatGrp; + else if (tablename === 'levels') + mytable = Level; + else if (shared_consts.TablePickup.includes(tablename)) + mytable = Pickup; + //else if (shared_consts.TableCities.includes(tablename)) + // mytable = City; + + return mytable; + }, +};