- Iscrizione Conacreis

This commit is contained in:
Paolo Arena
2021-06-04 10:07:57 +02:00
parent cf97870cc7
commit 9d5eda50ae
20 changed files with 3048 additions and 1525 deletions

View File

@@ -19,7 +19,13 @@ span CAP: 
span Nazione:  span Nazione: 
strong #{iscritto.residency_country}<br> strong #{iscritto.residency_country}<br>
span Data di Nascita:&nbsp; span Data di Nascita:&nbsp;
strong #{iscritto.dateofbirth}<br> strong #{data_nascita}<br>
span Città di Nascita:&nbsp;
strong #{iscritto.born_city}<br>
span Provincia di Nascita:&nbsp;
strong #{iscritto.born_province}<br>
span Paese di Nascita:&nbsp;
strong #{iscritto.born_country}<br>
span Cellulare:&nbsp; span Cellulare:&nbsp;
strong #{iscritto.cell_phone}<br> strong #{iscritto.cell_phone}<br>
span Abilita le Newsletter? :&nbsp; span Abilita le Newsletter? :&nbsp;

View File

@@ -43,6 +43,7 @@ html
- var descr = product._doc.order.product.name - var descr = product._doc.order.product.name
- var img = product._doc.order.product.img - var img = product._doc.order.product.img
- var price = product._doc.order.price - var price = product._doc.order.price
- var after_price = product._doc.order.after_price
- var qty = product._doc.order.quantity - var qty = product._doc.order.quantity
- index = index + 1 - index = index + 1
@@ -64,7 +65,7 @@ html
p #{descr} p #{descr}
tr tr
td(class="sectionContent", valign="top") td(class="sectionContent", valign="top")
p Prezzo: #{price} € p Prezzo: #{price} € #{after_price}
tr tr
td(class="sectionContent", valign="top") td(class="sectionContent", valign="top")
p Quantità: #{qty} p Quantità: #{qty}

View File

@@ -43,6 +43,7 @@ html
- var descr = product._doc.order.product.name - var descr = product._doc.order.product.name
- var img = product._doc.order.product.img - var img = product._doc.order.product.img
- var price = product._doc.order.price - var price = product._doc.order.price
- var after_price = product._doc.order.after_price
- var qty = product._doc.order.quantity - var qty = product._doc.order.quantity
- index = index + 1 - index = index + 1
@@ -64,7 +65,7 @@ html
p #{descr} p #{descr}
tr tr
td(class="sectionContent", valign="top") td(class="sectionContent", valign="top")
p Prezzo: #{price} € p Prezzo: #{price} € #{after_price}
tr tr
td(class="sectionContent", valign="top") td(class="sectionContent", valign="top")
p Quantità: #{qty} p Quantità: #{qty}

View File

@@ -89,6 +89,8 @@ html
- imgev = event.img - imgev = event.img
- var teacher1 = '' - var teacher1 = ''
- var teacher2 = '' - var teacher2 = ''
- var teacher3 = ''
- var teacher4 = ''
- var contrib = '' - var contrib = ''
- var myclteach = 'q-chip' - var myclteach = 'q-chip'
- if (event.op1[0] && event.op1[0].username !== 'nessuno') - if (event.op1[0] && event.op1[0].username !== 'nessuno')
@@ -96,6 +98,10 @@ html
- if ((event.op2[0] && event.op2[0].username !== 'nessuno')) - if ((event.op2[0] && event.op2[0].username !== 'nessuno'))
- teacher2 = event.op2[0].name + ' ' + event.op2[0].surname - teacher2 = event.op2[0].name + ' ' + event.op2[0].surname
- myclteach = 'q-chip2' - myclteach = 'q-chip2'
- if (event.op3[0] && event.op3[0].username !== 'nessuno')
- teacher3 = "<br>" . event.op3[0].name + ' ' + event.op3[0].surname
- if (event.op4[0] && event.op4[0].username !== 'nessuno')
- teacher4 = "<br>" . event.op4[0].name + ' ' + event.op4[0].surname
- if (event.contrib[0]) - if (event.contrib[0])
- contrib = event.contrib[0].label - contrib = event.contrib[0].label
@@ -114,7 +120,7 @@ html
tr tr
td td
img(src=baseimg + imgev, alt="", width="150") img(src=baseimg + imgev, alt="", width="150")
p(class="teacher") #{teacher1} <br> #{teacher2} p(class="teacher") #{teacher1} <br> #{teacher2} #{teacher3} #{teacher4}
td(class="column", valign="top") td(class="column", valign="top")
table(cellpadding="0", cellspacing="0", summary="", border="0") table(cellpadding="0", cellspacing="0", summary="", border="0")

View File

@@ -12,7 +12,7 @@
"test-watch": "nodemon --exec 'npm test'" "test-watch": "nodemon --exec 'npm test'"
}, },
"engines": { "engines": {
"node": "^12.14.0" "node": "^14.4.0"
}, },
"author": "Paolo Arena", "author": "Paolo Arena",
"license": "MIT", "license": "MIT",
@@ -25,33 +25,33 @@
"crypto-js": "^3.1.6", "crypto-js": "^3.1.6",
"dotenv": "^8.2.0", "dotenv": "^8.2.0",
"ejs": "^2.7.1", "ejs": "^2.7.1",
"email-templates": "^6.1.1", "email-templates": "^8.0.4",
"express": "^4.17.1", "express": "^4.17.1",
"formidable": "^1.2.1", "formidable": "^1.2.1",
"i18n": "^0.8.4", "i18n": "^0.8.4",
"jade": "^1.11.0", "jade": "^1.11.0",
"jsonwebtoken": "^8.5.1", "jsonwebtoken": "^8.5.1",
"lodash": "^4.17.15", "lodash": "^4.17.21",
"mongodb": "^3.4.1", "mongodb": "^3.4.1",
"mongoose": "^5.9.3", "mongoose": "^5.12.12",
"mysql": "^2.17.1", "mysql": "^2.17.1",
"node-cron": "^2.0.3", "node-cron": "^2.0.3",
"node-emoji": "^1.10.0", "node-emoji": "^1.10.0",
"node-pre-gyp": "^0.14.0", "node-pre-gyp": "^0.14.0",
"node-telegram-bot-api": "^0.40.0", "node-telegram-bot-api": "^0.40.0",
"nodemailer": "^6.4.2", "nodemailer": "^6.6.0",
"preview-email": "^1.0.2", "preview-email": "^3.0.4",
"pug": "^2.0.4", "pug": "^3.0.2",
"rate-limiter-flexible": "^1.3.1", "rate-limiter-flexible": "^1.3.1",
"save": "^2.4.0", "save": "^2.4.0",
"superagent": "^5.1.3", "superagent": "^5.1.3",
"url-parse": "^1.4.7", "url-parse": "^1.5.1",
"validator": "^12.1.0", "validator": "^12.1.0",
"web-push": "^3.4.0", "web-push": "^3.4.0",
"xoauth2": "^1.2.0" "xoauth2": "^1.2.0"
}, },
"devDependencies": { "devDependencies": {
"browser-sync": "^2.26.7", "browser-sync": "^2.26.14",
"expect": "^24.9.0", "expect": "^24.9.0",
"gulp": "^4.0.2", "gulp": "^4.0.2",
"gulp-inline-css": "^3.4.0", "gulp-inline-css": "^3.4.0",
@@ -59,8 +59,8 @@
"gulp-rename": "^2.0.0", "gulp-rename": "^2.0.0",
"gulp-replace": "^1.0.0", "gulp-replace": "^1.0.0",
"gulp-sass": "^4.0.2", "gulp-sass": "^4.0.2",
"jest": "^24.9.0", "jest": "^26.6.3",
"mocha": "^7.0.0", "mocha": "^8.4.0",
"nodemon": "^2.0.2", "nodemon": "^2.0.2",
"supertest": "^4.0.2" "supertest": "^4.0.2"
} }

View File

@@ -13,7 +13,7 @@ process.env.LINK_UPDATE_PWD = '/updatepwd';
process.env.LINK_CHECK_UPDATES = '/checkupdates'; process.env.LINK_CHECK_UPDATES = '/checkupdates';
process.env.KEY_APP_ID = 'KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF'; process.env.KEY_APP_ID = 'KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF';
console.log("FILE : " + file); console.log("Starting Node with : " + file);
require('dotenv').config({ path: file }); require('dotenv').config({ path: file });
process.env.DATABASE = process.env.DATABASE || 'FreePlanet'; process.env.DATABASE = process.env.DATABASE || 'FreePlanet';

View File

@@ -16,6 +16,7 @@ const options = {
// pass: process.env.PDB, // pass: process.env.PDB,
// useMongoClient: true, // useMongoClient: true,
// useNewUrlParser: true, // non supportato // useNewUrlParser: true, // non supportato
// useMongoClient: false,
useNewUrlParser: true, useNewUrlParser: true,
useFindAndModify: false, useFindAndModify: false,
useCreateIndex: true, useCreateIndex: true,
@@ -42,12 +43,13 @@ const db = mongoose.connection;
// mongoose.connect(process.env.MONGODB_URI + '?authSource=admin', { options }) // mongoose.connect(process.env.MONGODB_URI + '?authSource=admin', { options })
console.log(' -> PASSAGGIO PARAMETRI MONGOOSE')
mongoose.connect(process.env.MONGODB_URI, options); mongoose.connect(process.env.MONGODB_URI, options);
db.on('error', console.error.bind(console, 'connection error:')); db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() { db.once('open', function() {
// we're connected! // we're connected!
console.log('connection succesful ' + process.env.MONGODB_URI + ' db: ' + process.env.DATABASE) console.log('*** CONNESSIONE EFFETTUATA ! ' + process.env.MONGODB_URI + ' db: ' + process.env.DATABASE)
}); });

View File

@@ -19,6 +19,10 @@ const IscrittiConacreisSchema = new Schema({
userId: { userId: {
type: String, type: String,
}, },
numTesseraInterna: {
type: Number,
default: 0,
},
name: { name: {
type: String, type: String,
trim: true, trim: true,
@@ -81,6 +85,9 @@ const IscrittiConacreisSchema = new Schema({
metodo_pagamento: { metodo_pagamento: {
type: Number, type: Number,
}, },
ha_pagato: {
type: Boolean,
},
iscrizione_compilata: { iscrizione_compilata: {
type: Boolean, type: Boolean,
}, },
@@ -120,6 +127,20 @@ const IscrittiConacreisSchema = new Schema({
}); });
IscrittiConacreisSchema.pre('save', async function (next) {
if (this.isNew) {
const myrec = await IscrittiConacreis.findOne().limit(1).sort({ numTesseraInterna: -1 });
if (!!myrec) {
this.numTesseraInterna = myrec._doc.numTesseraInterna + 1;
} else {
this.numTesseraInterna = 0;
}
}
next();
});
var IscrittiConacreis = module.exports = mongoose.model('IscrittiConacreis', IscrittiConacreisSchema); var IscrittiConacreis = module.exports = mongoose.model('IscrittiConacreis', IscrittiConacreisSchema);
module.exports.getFieldsForSearch = function () { module.exports.getFieldsForSearch = function () {
@@ -128,6 +149,8 @@ module.exports.getFieldsForSearch = function () {
{ field: 'email', type: tools.FieldType.string }] { field: 'email', type: tools.FieldType.string }]
}; };
module.exports.executeQueryTable = function (idapp, params) { module.exports.executeQueryTable = function (idapp, params) {
params.fieldsearch = this.getFieldsForSearch(); params.fieldsearch = this.getFieldsForSearch();
return tools.executeQueryTable(this, idapp, params); return tools.executeQueryTable(this, idapp, params);

View File

@@ -70,6 +70,12 @@ const MyEventSchema = new Schema({
teacher2: { teacher2: {
type: String, type: String,
}, },
teacher3: {
type: String,
},
teacher4: {
type: String,
},
infoextra: { infoextra: {
type: String, type: String,
}, },
@@ -115,12 +121,18 @@ const MyEventSchema = new Schema({
note: { note: {
type: String, type: String,
}, },
pagefooter: [{
type: String,
}],
deleted: { deleted: {
type: Boolean, type: Boolean,
}, },
dupId: { dupId: {
type: mongoose.Schema.Types.ObjectId, type: mongoose.Schema.Types.ObjectId,
}, },
facebook: {
type: String,
},
modified: { modified: {
type: Boolean, type: Boolean,
}, },
@@ -185,6 +197,22 @@ MyEventSchema.statics.getLastEvents = async function (idapp) {
as: 'op2' as: 'op2'
} }
}, },
{
$lookup: {
from: 'operators',
localField: 'teacher3',
foreignField: 'username',
as: 'op3'
}
},
{
$lookup: {
from: 'operators',
localField: 'teacher4',
foreignField: 'username',
as: 'op4'
}
},
{ "$addFields": { "contribtype": { "$toObjectId": "$contribtype" } } }, { "$addFields": { "contribtype": { "$toObjectId": "$contribtype" } } },
{ {
$lookup: { $lookup: {

View File

@@ -110,6 +110,9 @@ const MyPageSchema = new Schema({
l_child: { l_child: {
type: Number, type: Number,
}, },
internalpage: {
type: Boolean,
},
infooter: { infooter: {
type: Boolean, type: Boolean,
}, },
@@ -159,6 +162,23 @@ MyPageSchema.statics.findOnlyStruttRec = async function (idapp) {
}); });
}; };
MyPageSchema.statics.findInternalPages = async function (idapp) {
const MyPage = this;
const myfind = { idapp,
internalpage: { $exists: true, $eq: true }
};
return MyPage.find(myfind, {
title: 1,
path: 1,
onlyif_logged: 1,
only_residenti: 1,
}, (err, arrrec) => {
return arrrec
});
};
const MyPage = mongoose.model('MyPage', MyPageSchema); const MyPage = mongoose.model('MyPage', MyPageSchema);
module.exports = { MyPage }; module.exports = { MyPage };

View File

@@ -36,6 +36,9 @@ const orderSchema = new Schema({
price: { price: {
type: Number type: Number
}, },
after_price: {
type: String
},
color: { color: {
type: String type: String
}, },

View File

@@ -45,6 +45,9 @@ const productSchema = new Schema({
price: { price: {
type: Number type: Number
}, },
after_price: {
type: String
},
color: { color: {
type: String type: String
}, },
@@ -101,7 +104,7 @@ module.exports.executeQueryTable = function (idapp, params) {
}; };
module.exports.findAllIdApp = async function (idapp, code) { module.exports.findAllIdApp = async function (idapp, code) {
let myfind = { idapp }; let myfind = { idapp, active: true };
if (code) { if (code) {
myfind = { ...myfind, code } myfind = { ...myfind, code }

View File

@@ -1132,11 +1132,30 @@ router.post('/duprec/:table/:id', authenticate, (req, res) => {
}); });
router.get('/loadsite/:userId/:idapp', authenticate_noerror, (req, res) => { router.get('/loadsite/:userId/:idapp', authenticate_noerror, (req, res) => {
load(req, res, '0');
});
router.get('/loadsite/:userId/:idapp/:vers', authenticate_noerror, (req, res) => {
let version = req.params.vers;
version = version.replace('.', '');
version = version.replace('.', '');
load(req, res, parseInt(version));
});
function load(req, res, version) {
const userId = req.params.userId; const userId = req.params.userId;
const idapp = req.params.idapp; const idapp = req.params.idapp;
const sall = (User.isAdmin(req.user.perm) || User.isManager(req.user.perm) || User.isEditor(req.user.perm)) ? '1' : '0'
if (!version) {
version = '0';
}
let sall = '0';
if (!!req.user) {
sall = (User.isAdmin(req.user.perm) || User.isManager(req.user.perm) || User.isEditor(req.user.perm)) ? '1' : '0'
}
// var category = req.params.category; // var category = req.params.category;
@@ -1158,6 +1177,7 @@ router.get('/loadsite/:userId/:idapp', authenticate_noerror, (req, res) => {
// Extract all the todos of the userId only // Extract all the todos of the userId only
const eventlist = MyEvent.findAllIdApp(socioresidente, idapp); const eventlist = MyEvent.findAllIdApp(socioresidente, idapp);
const operators = Operator.findAllIdApp(idapp); const operators = Operator.findAllIdApp(idapp);
const internalpages = MyPage.findInternalPages(idapp);
const wheres = Where.findAllIdApp(idapp); const wheres = Where.findAllIdApp(idapp);
const contribtype = Contribtype.findAllIdApp(idapp); const contribtype = Contribtype.findAllIdApp(idapp);
const paymenttype = PaymentType.findAllIdApp(idapp); const paymenttype = PaymentType.findAllIdApp(idapp);
@@ -1168,7 +1188,11 @@ router.get('/loadsite/:userId/:idapp', authenticate_noerror, (req, res) => {
let newstosent = Promise.resolve([]); let newstosent = Promise.resolve([]);
let mailinglist = Promise.resolve([]); let mailinglist = Promise.resolve([]);
let mypage = MyPage.findOnlyStruttRec(idapp); let mypage;
if (version > 91)
mypage = MyPage.findOnlyStruttRec(idapp);
else
mypage = MyPage.findAllIdApp(idapp);
let calzoom = CalZoom.findAllIdApp(idapp); let calzoom = CalZoom.findAllIdApp(idapp);
let gallery = Gallery.findAllIdApp(idapp); let gallery = Gallery.findAllIdApp(idapp);
let producers = Producer.findAllIdApp(idapp); let producers = Producer.findAllIdApp(idapp);
@@ -1196,7 +1220,7 @@ router.get('/loadsite/:userId/:idapp', authenticate_noerror, (req, res) => {
} }
return Promise.all([bookedevent, eventlist, operators, wheres, contribtype, settings, permissions, disciplines, newstosent, mailinglist, mypage, gallery, paymenttype, calcstat, calzoom, producers, cart, storehouses, departments, orderscart, groups, resps, workers]) return Promise.all([bookedevent, eventlist, operators, wheres, contribtype, settings, permissions, disciplines, newstosent, mailinglist, mypage, gallery, paymenttype, calcstat, calzoom, producers, cart, storehouses, departments, orderscart, groups, resps, workers, internalpages])
.then((arrdata) => { .then((arrdata) => {
// console.table(arrdata); // console.table(arrdata);
const myuser = req.user; const myuser = req.user;
@@ -1229,6 +1253,7 @@ router.get('/loadsite/:userId/:idapp', authenticate_noerror, (req, res) => {
resps: arrdata[21], resps: arrdata[21],
workers: arrdata[22], workers: arrdata[22],
myuser, myuser,
internalpages: arrdata[23],
}); });
}) })
.catch((e) => { .catch((e) => {
@@ -1236,7 +1261,7 @@ router.get('/loadsite/:userId/:idapp', authenticate_noerror, (req, res) => {
res.status(400).send(e); res.status(400).send(e);
}); });
}); }
router.get(process.env.LINK_CHECK_UPDATES, authenticate, async (req, res) => { router.get(process.env.LINK_CHECK_UPDATES, authenticate, async (req, res) => {
const userId = req.user._id; const userId = req.user._id;

View File

@@ -2,12 +2,11 @@ const express = require('express');
const router = express.Router(); const router = express.Router();
const { User } = require('../models/user'); const { User } = require('../models/user');
const { Nave } = require('../models/nave'); // const { Nave } = require('../models/nave');
const { Flotta } = require('../models/flotta');
const Hours = require('../models/hours'); const Hours = require('../models/hours');
const { NavePersistente } = require('../models/navepersistente'); //const { NavePersistente } = require('../models/navepersistente');
const { ListaIngresso } = require('../models/listaingresso'); //const { ListaIngresso } = require('../models/listaingresso');
const { Graduatoria } = require('../models/graduatoria'); //const { Graduatoria } = require('../models/graduatoria');
// const { ExtraList } = require('../models/extralist'); // const { ExtraList } = require('../models/extralist');
const { ObjectID } = require('mongodb'); const { ObjectID } = require('mongodb');
@@ -465,15 +464,19 @@ async function eseguiDbOp(idapp, mydata, locale) {
try { try {
if (mydata.dbop === 'rigeneraTutto') { if (mydata.dbop === '') {
await ListaIngresso.Esegui_CronTab(idapp, mydata);
} else if (mydata.dbop === 'creaNavi') { // } else if (mydata.dbop === 'rigeneraTutto') {
const num = await Nave.generaNave(idapp, mydata, false); // await ListaIngresso.Esegui_CronTab(idapp, mydata);
ris = { num }; } else if (mydata.dbop === 'visuStat') {
} else if (mydata.dbop === 'CreaNaviPersistenti') { ris = await User.visuUtentiNonInNavi(idapp);
const num = await Nave.generaNave(idapp, mydata, true); //} else if (mydata.dbop === 'creaNavi') {
ris = { num }; // const num = await Nave.generaNave(idapp, mydata, false);
} else if (mydata.dbop === 'delNavi') { // ris = { num };
//} else if (mydata.dbop === 'CreaNaviPersistenti') {
// const num = await Nave.generaNave(idapp, mydata, true);
// ris = { num };
/*} else if (mydata.dbop === 'delNavi') {
await Nave.setRiga(idapp, 1); await Nave.setRiga(idapp, 1);
await Nave.setCol(idapp, 1); await Nave.setCol(idapp, 1);
const num = await Nave.deleteOne({ idapp }); const num = await Nave.deleteOne({ idapp });
@@ -483,6 +486,7 @@ async function eseguiDbOp(idapp, mydata, locale) {
// await Nave.setCol(idapp, 1); // await Nave.setCol(idapp, 1);
// const num = await Nave.remove({ idapp, date_start: { $gte: tools.IncDateNow(-1000 * 60 * 60 * 24 * 3) } }); // const num = await Nave.remove({ idapp, date_start: { $gte: tools.IncDateNow(-1000 * 60 * 60 * 24 * 3) } });
// ris = { num }; // ris = { num };
} else if (mydata.dbop === 'delNaviProvvisorie') { } else if (mydata.dbop === 'delNaviProvvisorie') {
ris = await Nave.delNaviProvvisorie(idapp); ris = await Nave.delNaviProvvisorie(idapp);
@@ -490,8 +494,6 @@ async function eseguiDbOp(idapp, mydata, locale) {
} else if (mydata.dbop === 'visuListaNave') { } else if (mydata.dbop === 'visuListaNave') {
mystr = await Nave.showListaOrd(idapp); mystr = await Nave.showListaOrd(idapp);
ris = { mystr }; ris = { mystr };
} else if (mydata.dbop === 'visuStat') {
ris = await User.visuUtentiNonInNavi(idapp);
} else if (mydata.dbop === 'pulisciNonPresenzeInNave') { } else if (mydata.dbop === 'pulisciNonPresenzeInNave') {
mystr = await Nave.pulisciNonPresenzeInNave(idapp); mystr = await Nave.pulisciNonPresenzeInNave(idapp);
ris = { mystr }; ris = { mystr };
@@ -622,6 +624,7 @@ async function eseguiDbOp(idapp, mydata, locale) {
ris = { num }; ris = { num };
} else if (mydata.dbop === 'Corregginumtess') { } else if (mydata.dbop === 'Corregginumtess') {
const listanavi = await Nave.find({ idapp }); const listanavi = await Nave.find({ idapp });
let num = 0; let num = 0;
@@ -639,6 +642,7 @@ async function eseguiDbOp(idapp, mydata, locale) {
} }
ris = { num }; ris = { num };
*/
/* /*
} }
@@ -680,7 +684,7 @@ async function eseguiDbOp(idapp, mydata, locale) {
} }
ris = { num }; */ ris = { num }; */
} else if (mydata.dbop === 'CorreggiDataGiftChat') { /*} else if (mydata.dbop === 'CorreggiDataGiftChat') {
const listanavi = await NavePersistente.find({ idapp }); const listanavi = await NavePersistente.find({ idapp });
let num = 0; let num = 0;
for (let rec of listanavi) { for (let rec of listanavi) {
@@ -694,7 +698,7 @@ async function eseguiDbOp(idapp, mydata, locale) {
} }
ris = { num }; ris = { num };
} else if (mydata.dbop === 'creaUtentiTest') { */} else if (mydata.dbop === 'creaUtentiTest') {
let num = 0; let num = 0;
lastrec = await User.find({ idapp }).sort({ _id: -1 }).limit(1); lastrec = await User.find({ idapp }).sort({ _id: -1 }).limit(1);
@@ -727,7 +731,7 @@ async function eseguiDbOp(idapp, mydata, locale) {
} }
ris = { num }; ris = { num };
} else if (mydata.dbop === 'visuPlacca') { /*} else if (mydata.dbop === 'visuPlacca') {
mystr = '✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨\n' + mystr = '✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨\n' +
'NAVI CHE SALPANO DALLA ' + mydata.riga + '.' + mydata.col + ' ALLA ' + mydata.riga + '.' + (parseInt(mydata.col) + 7) + '\n' + 'NAVI CHE SALPANO DALLA ' + mydata.riga + '.' + mydata.col + ' ALLA ' + mydata.riga + '.' + (parseInt(mydata.col) + 7) + '\n' +
@@ -749,18 +753,12 @@ async function eseguiDbOp(idapp, mydata, locale) {
await telegrambot.sendMsgTelegramToTheAdmin(idapp, mystr, true); await telegrambot.sendMsgTelegramToTheAdmin(idapp, mystr, true);
ris = { mystr }; ris = { mystr };
*/
/*const rec = {};
const placca = await Nave.getPlaccaPerDonatore(idapp, parseInt(mydata.riga), parseInt(mydata.col), false, rec);
telegrambot.sendMsgTelegramToTheAdmin(idapp, placca);
ris = { placca };*/
} else if (mydata.dbop === 'CorreggiTabHours') { } else if (mydata.dbop === 'CorreggiTabHours') {
await Hours.correggiHours(idapp); await Hours.correggiHours(idapp);
} else if (mydata.dbop === 'visuNave') { /*} else if (mydata.dbop === 'visuNave') {
mystr = await Nave.getNavePos(idapp, parseInt(mydata.riga), parseInt(mydata.col)); mystr = await Nave.getNavePos(idapp, parseInt(mydata.riga), parseInt(mydata.col));
const visu_nave_Bot = await Settings.getValDbSettings(idapp, 'VISU_NAVE_BOT'); const visu_nave_Bot = await Settings.getValDbSettings(idapp, 'VISU_NAVE_BOT');
@@ -783,6 +781,8 @@ async function eseguiDbOp(idapp, mydata, locale) {
} }
ris = { data: arrnavi }; ris = { data: arrnavi };
*/
} }

View File

@@ -34,6 +34,18 @@ function checkifSendEmail() {
module.exports = { module.exports = {
sendEmail_base_e_manager: function (idapp, template, to, mylocalsconf, replyTo, transport, previewonly) {
this.sendEmail_base(template, to, mylocalsconf, replyTo, transport, previewonly);
this.sendEmail_base(template, tools.getAdminEmailByIdApp(idapp), mylocalsconf, '', transport, previewonly);
if (tools.isManagAndAdminDifferent(idapp)) {
const email = tools.getManagerEmailByIdApp(idapp);
this.sendEmail_base(template, email, mylocalsconf, '', transport, previewonly);
}
},
sendEmail_base: function (template, to, mylocalsconf, replyTo, transport, previewonly) { sendEmail_base: function (template, to, mylocalsconf, replyTo, transport, previewonly) {
// console.log('mylocalsconf', mylocalsconf); // console.log('mylocalsconf', mylocalsconf);
@@ -210,7 +222,8 @@ module.exports = {
surname: iscritto.surname, surname: iscritto.surname,
emailto: emailto, emailto: emailto,
iscritto, iscritto,
metodo_pagamento: tools.getPaymentTypesById(iscritto.metodo_pagamento) metodo_pagamento: tools.getPaymentTypesById(iscritto.metodo_pagamento),
data_nascita: tools.getstrDate_DD_MM_YYYY(iscritto.dateofbirth)
}; };
this.sendEmail_base('iscrizione_conacreis/' + lang, emailto, mylocalsconf, tools.getreplyToEmailByIdApp(idapp)); this.sendEmail_base('iscrizione_conacreis/' + lang, emailto, mylocalsconf, tools.getreplyToEmailByIdApp(idapp));
@@ -619,7 +632,7 @@ module.exports = {
sendEmail_OrderProduct: async function (lang, idapp, orders, user) { sendEmail_OrderProduct: async function (lang, idapp, orders, user) {
const msginizio = 'Ordine n: ' + orders.numorder + ' ' + user.name + ' ' + user.surname + ' [' + tools.getNomeAppByIdApp(idapp) + ']'; const msginizio = 'Ordine n: ' + orders.numorder + ' ' + user.name + ' ' + user.surname;
console.log(msginizio); console.log(msginizio);
await telegrambot.sendMsgTelegramToTheManagers(idapp, msginizio); await telegrambot.sendMsgTelegramToTheManagers(idapp, msginizio);
@@ -642,12 +655,10 @@ module.exports = {
mylocalsconf = this.replacefields(mylocalsconf); mylocalsconf = this.replacefields(mylocalsconf);
const esito = this.sendEmail_base('ecommerce/makeorder/' + lang, mylocalsconf.emailto, mylocalsconf, mylocalsconf.dataemail.email_reply); this.sendEmail_base_e_manager(idapp, 'ecommerce/makeorder/' + lang, mylocalsconf.emailto, mylocalsconf, mylocalsconf.dataemail.email_reply);
this.sendEmail_base('ecommerce/makeorder/' + lang, tools.getAdminEmailByIdApp(idapp), mylocalsconf, '');
}, },
sendEmail_Order: async function (lang, idapp, orders, user, ordertype) { sendEmail_Order: async function (lang, idapp, orders, user, ordertype, status) {
const msginizio = 'INIZIO - sendEmail_Order ' + ordertype + ': ' + tools.getNomeAppByIdApp(idapp); const msginizio = 'INIZIO - sendEmail_Order ' + ordertype + ': ' + tools.getNomeAppByIdApp(idapp);
console.log(msginizio); console.log(msginizio);
@@ -672,9 +683,15 @@ module.exports = {
mylocalsconf = this.replacefields(mylocalsconf); mylocalsconf = this.replacefields(mylocalsconf);
const esito = this.sendEmail_base('ecommerce/' + ordertype + '/' + lang, mylocalsconf.emailto, mylocalsconf, mylocalsconf.dataemail.email_reply); if ((status !== shared_consts.OrderStatus.CANCELED) && (status !== shared_consts.OrderStatus.RECEIVED)) {
const esito = this.sendEmail_base('ecommerce/' + ordertype + '/' + lang, mylocalsconf.emailto, mylocalsconf, mylocalsconf.dataemail.email_reply);
this.sendEmail_base('ecommerce/' + ordertype + '/' + lang, tools.getAdminEmailByIdApp(idapp), mylocalsconf, ''); this.sendEmail_base('ecommerce/' + ordertype + '/' + lang, tools.getAdminEmailByIdApp(idapp), mylocalsconf, '');
if (tools.isManagAndAdminDifferent(idapp)) {
this.sendEmail_base('ecommerce/' + ordertype + '/' + lang, tools.getManagerEmailByIdApp(idapp), mylocalsconf, '');
}
}
}, },

View File

@@ -1,8 +1,13 @@
require('./config/config'); require('./config/config');
// console.log(" lodash");
const _ = require('lodash'); const _ = require('lodash');
// console.log(" cors");
const cors = require('cors'); const cors = require('cors');
// console.log(" 2) fs");
const fs = require('fs'); const fs = require('fs');
//const throttle = require('express-throttle-bandwidth'); //const throttle = require('express-throttle-bandwidth');
@@ -10,17 +15,27 @@ const fs = require('fs');
const port = process.env.PORT; const port = process.env.PORT;
console.log(" 2b) express");
const express = require('express'); const express = require('express');
// console.log(" 2c) body-parser");
const bodyParser = require('body-parser'); const bodyParser = require('body-parser');
const path = require('path'); const path = require('path');
console.log(" 3) cron");
const cron = require('node-cron'); const cron = require('node-cron');
console.log(" 4) mongoose");
require('./db/mongoose');
console.log(" 5) settings");
const { Settings } = require('./models/settings'); const { Settings } = require('./models/settings');
i18n = require("i18n"); i18n = require("i18n");
// console.log(" 5) key");
if ((process.env.NODE_ENV === 'production') || (process.env.NODE_ENV === 'test')) { if ((process.env.NODE_ENV === 'production') || (process.env.NODE_ENV === 'test')) {
var privateKey = fs.readFileSync(process.env.PATH_CERT_KEY, 'utf8'); var privateKey = fs.readFileSync(process.env.PATH_CERT_KEY, 'utf8');
var certificate = fs.readFileSync(process.env.PATH_SERVER_CRT, 'utf8'); var certificate = fs.readFileSync(process.env.PATH_SERVER_CRT, 'utf8');
@@ -30,11 +45,10 @@ if ((process.env.NODE_ENV === 'production') || (process.env.NODE_ENV === 'test')
var http = require('http'); var http = require('http');
} }
require('./db/mongoose');
console.log("DB: " + process.env.DATABASE); console.log("DB: " + process.env.DATABASE);
console.log("PORT: " + port); // console.log("PORT: " + port);
console.log("MONGODB_URI: " + process.env.MONGODB_URI); // console.log("MONGODB_URI: " + process.env.MONGODB_URI);
var app = express(); var app = express();
@@ -176,6 +190,10 @@ myLoad().then(ris => {
// }); // });
if (process.env.NODE_ENV === 'production'){
console.log("*** PRODUCTION! ");
}
if ((process.env.NODE_ENV === 'production') || (process.env.NODE_ENV === 'test')) { if ((process.env.NODE_ENV === 'production') || (process.env.NODE_ENV === 'test')) {
var httpsServer = https.createServer(credentials, app); var httpsServer = https.createServer(credentials, app);
console.log("httpsServer: port ", port); console.log("httpsServer: port ", port);

View File

@@ -275,6 +275,10 @@ const MenuStandard_AYNI = {
enUs: { menu: [[Menu.enUs.LAVAGNA, Menu.enUs.LINK_CONDIVIDERE], [Menu.enUs.ZOOM, Menu.enUs.ASSISTENZA], [Menu.LANG]] }, enUs: { menu: [[Menu.enUs.LAVAGNA, Menu.enUs.LINK_CONDIVIDERE], [Menu.enUs.ZOOM, Menu.enUs.ASSISTENZA], [Menu.LANG]] },
}; };
const MenuStandard = {
it: { menu: [[Menu.it.LAVAGNA, Menu.it.LINK_CONDIVIDERE], [Menu.it.ZOOM, Menu.it.ASSISTENZA], [Menu.LANG]] },
};
const MenuPerAdmin = { const MenuPerAdmin = {
it: { menu: [[Menu.it.LAVAGNA, Menu.it.LINK_CONDIVIDERE], [Menu.it.ZOOM, Menu.it.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] }, it: { menu: [[Menu.it.LAVAGNA, Menu.it.LINK_CONDIVIDERE], [Menu.it.ZOOM, Menu.it.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
es: { menu: [[Menu.es.LAVAGNA, Menu.es.LINK_CONDIVIDERE], [Menu.es.ZOOM, Menu.es.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] }, es: { menu: [[Menu.es.LAVAGNA, Menu.es.LINK_CONDIVIDERE], [Menu.es.ZOOM, Menu.es.ASSISTENZA], [Menu.LANG, Menu.ADMIN]] },
@@ -369,7 +373,7 @@ const txt = {
'Continua la guida passo passo tornando sul sito di AYNI.\n\nQuesta chat ti servirà per vedere velocemente la tua Lavagna e per ricevere Importanti avvisi su come procedere il tuo cammino.\n\nUsa il menu qui sotto per controllare la tua situazione.' + emo.GREEN_HEART, 'Continua la guida passo passo tornando sul sito di AYNI.\n\nQuesta chat ti servirà per vedere velocemente la tua Lavagna e per ricevere Importanti avvisi su come procedere il tuo cammino.\n\nUsa il menu qui sotto per controllare la tua situazione.' + emo.GREEN_HEART,
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Errore durante il salvataggio sul Server. Riprovare piú tardi', MSG_ERR_UNKNOWN_VERIFY_CODE: 'Errore durante il salvataggio sul Server. Riprovare piú tardi',
MSG_EXIT_TELEGRAM: 'L\'account è stato ora scollegato da questo Telegram BOT.', MSG_EXIT_TELEGRAM: 'L\'account è stato ora scollegato da questo Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Si è appena Registrato "%s (n. %s)"\n(Invitato da %s)', MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Si è appena Registrato "%s (n. %s)',
MSG_ISCRITTO_CONACREIS: emo.FIRE + ' Si è appena Iscritto al Conacreis "%s"', MSG_ISCRITTO_CONACREIS: emo.FIRE + ' Si è appena Iscritto al Conacreis "%s"',
MSG_MSG_SENT: emoji.get('envelope') + ' Messaggi Inviati !', MSG_MSG_SENT: emoji.get('envelope') + ' Messaggi Inviati !',
MSG_MSG_TOSENT: emoji.get('envelope') + ' Messaggi da Inviare', MSG_MSG_TOSENT: emoji.get('envelope') + ' Messaggi da Inviare',
@@ -538,7 +542,7 @@ module.exports = {
NameFrom = await User.getNameSurnameByUsername(mylocalsconf.idapp, userdest) + aportador; NameFrom = await User.getNameSurnameByUsername(mylocalsconf.idapp, userdest) + aportador;
aportador = NameFrom; aportador = NameFrom;
} }
text = printf(getstr(langdest, 'MSG_APORTADOR_USER_REGISTERED'), `${mylocalsconf.user.name} ${mylocalsconf.user.surname} (${mylocalsconf.user.username})`, index, aportador); text = printf(getstr(langdest, 'MSG_APORTADOR_USER_REGISTERED'), `${mylocalsconf.user.name} ${mylocalsconf.user.surname} (${mylocalsconf.user.username})`, index);
} }
let addtext = ""; let addtext = "";

View File

@@ -46,7 +46,6 @@ const ivSize = 128;
const iterations = 100; const iterations = 100;
if (!!process.env.GCM_API_KEY && process.env.GCM_API_KEY !== "") { if (!!process.env.GCM_API_KEY && process.env.GCM_API_KEY !== "") {
webpush.setGCMAPIKey(process.env.GCM_API_KEY); webpush.setGCMAPIKey(process.env.GCM_API_KEY);
@@ -55,8 +54,6 @@ if (!!process.env.GCM_API_KEY && process.env.GCM_API_KEY !== "") {
// console.log('setVapidDetails... config...'); // console.log('setVapidDetails... config...');
// To Translate! // To Translate!
const textlang = { const textlang = {
it: { it: {
@@ -1122,6 +1119,24 @@ module.exports = {
$or: [{ subaccount: { $exists: false } }, { subaccount: { $exists: true, $eq: false } }] $or: [{ subaccount: { $exists: false } }, { subaccount: { $exists: true, $eq: false } }]
}); });
// Iscritti Conacreis
if (params.filterand.includes(shared_consts.FILTER_MISSING_PAYMENT))
filtriadded.push({
$or: [{ ha_pagato: { $exists: false } }, { ha_pagato: { $exists: true, $lt: 1 } }]
});
if (params.filterand.includes(shared_consts.FILTER_TO_MAKE_MEMBERSHIP_CARD))
filtriadded.push({
$or: [{ codiceConacreis: { $exists: false } }, { codiceConacreis: { $exists: true, $eq: '' } }]
});
if (params.filterand.includes(shared_consts.FILTER_MEMBERSHIP_CARD_OK))
filtriadded.push({
codiceConacreis: { $exists: true },
"$expr": { "$gt": [{ "$strLenCP": "$codiceConacreis" }, 0] }
});
} }
@@ -1458,6 +1473,15 @@ module.exports = {
} }
}, },
getstrDate_DD_MM_YYYY(mydate) {
if (mydate) {
// console.log('getstrDate', mytimestamp)
return this.appendLeadingZeroes(mydate.getDate()) + '/' + this.appendLeadingZeroes(mydate.getMonth() + 1) + '/' + this.appendLeadingZeroes(mydate.getFullYear());
} else {
return '';
}
},
getstrDateYYYY_MM_DD(mydate) { getstrDateYYYY_MM_DD(mydate) {
if (mydate) { if (mydate) {
// console.log('getstrDate', mytimestamp) // console.log('getstrDate', mytimestamp)

View File

@@ -25,6 +25,9 @@ module.exports = {
FILTER_ASK_ZOOM_VISTO: 32768, FILTER_ASK_ZOOM_VISTO: 32768,
FILTER_HOURS_MYLIST: 65536, FILTER_HOURS_MYLIST: 65536,
FILTER_HOURS_ALL: 131072, FILTER_HOURS_ALL: 131072,
FILTER_MISSING_PAYMENT: 262144,
FILTER_TO_MAKE_MEMBERSHIP_CARD: 524288,
FILTER_MEMBERSHIP_CARD_OK: 1048576,
REPORT_FILT_RESP: 1, REPORT_FILT_RESP: 1,
REPORT_FILT_ATTIVITA: 2, REPORT_FILT_ATTIVITA: 2,

4257
yarn.lock

File diff suppressed because it is too large Load Diff