a
This commit is contained in:
parent
aca1bf193b
commit
b11c48626c
@ -463,12 +463,11 @@ console.log(mailOptions);
|
|||||||
|
|
||||||
|
|
||||||
getReservationsExcel: async (req, res, next) => {
|
getReservationsExcel: async (req, res, next) => {
|
||||||
console.log('exxxxxxxxxxxxxxxcel');
|
|
||||||
const params = extractParamsFromRequest(req, res, {});
|
const params = extractParamsFromRequest(req, res, {});
|
||||||
const eventId = params.params.id;
|
const eventId = params.params.id;
|
||||||
const userId = req.user.id;
|
const userId = req.user.id;
|
||||||
|
|
||||||
const inscription = await eventReservationService._getReservationsExcel(req.user, eventId, null, function(result, status){
|
const reservations = await eventReservationService._getReservationsExcel(req.user, eventId, null, function(result, status){
|
||||||
if (result.messenger.code == "S99001") {
|
if (result.messenger.code == "S99001") {
|
||||||
console.log(result);
|
console.log(result);
|
||||||
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
||||||
@ -479,7 +478,26 @@ console.log(mailOptions);
|
|||||||
res.status(status).json(result);
|
res.status(status).json(result);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
|
|
||||||
|
getInscripcionsExcel: async (req, res, next) => {
|
||||||
|
const params = extractParamsFromRequest(req, res, {});
|
||||||
|
const eventId = params.params.id;
|
||||||
|
const userId = req.user.id;
|
||||||
|
|
||||||
|
const inscriptions = await eventInscriptionService._getInscriptionsExcel(req.user, eventId, function (result, status) {
|
||||||
|
if (result.messenger.code == "S99001") {
|
||||||
|
console.log(result);
|
||||||
|
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
||||||
|
res.setHeader('Content-Disposition', 'attachment; filename=' + result.data.name);
|
||||||
|
res.attachment(result.data.name);
|
||||||
|
res.download(path.resolve(result.data.path), result.data.name);
|
||||||
|
} else {
|
||||||
|
res.status(status).json(result);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -333,6 +333,11 @@ routes.get('/admin/events/:id/reservations/excel',
|
|||||||
eventController.getReservationsExcel,
|
eventController.getReservationsExcel,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
routes.get('/admin/events/:id/inscriptions/excel',
|
||||||
|
isAdministratorUser,
|
||||||
|
eventController.getInscripcionsExcel,
|
||||||
|
);
|
||||||
|
|
||||||
routes.get('/admin/events/:eventId/partners/:entityId/reservations',
|
routes.get('/admin/events/:eventId/partners/:entityId/reservations',
|
||||||
isAdministratorUser,
|
isAdministratorUser,
|
||||||
eventReservationController.find(),
|
eventReservationController.find(),
|
||||||
|
|||||||
@ -7,8 +7,11 @@ const { generateService, parseParamsToFindOptions } = require('../../helpers/ser
|
|||||||
const models = require('../../core/models');
|
const models = require('../../core/models');
|
||||||
const marketing = require('../../helpers/mailchimp.helper')
|
const marketing = require('../../helpers/mailchimp.helper')
|
||||||
const Sequelize = require('sequelize');
|
const Sequelize = require('sequelize');
|
||||||
moment.locale('es');
|
const xlsx = require("node-xlsx");
|
||||||
|
const fs = require("fs");
|
||||||
|
const cdnHelper = require('../../helpers/cdn.helper');
|
||||||
|
|
||||||
|
moment.locale('es');
|
||||||
|
|
||||||
function generateNewCodeTicket() {
|
function generateNewCodeTicket() {
|
||||||
|
|
||||||
@ -200,8 +203,88 @@ const extraMethods = {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_getInscriptionsExcel: (user, eventId, callback) => {
|
||||||
|
models.EventInscription.findAll({
|
||||||
|
where: {
|
||||||
|
eventId: eventId,
|
||||||
|
type: 'regular'
|
||||||
|
},
|
||||||
|
include: [{
|
||||||
|
model: models.Event,
|
||||||
|
as: 'event',
|
||||||
|
attributes: ['id', 'name'],
|
||||||
|
}],
|
||||||
|
order:[
|
||||||
|
// [{ model: models.Entity }, 'name', 'ASC'],
|
||||||
|
// [{ model: models.User },'name', 'ASC'],
|
||||||
|
],
|
||||||
|
|
||||||
|
}).then(function (inscriptions) {
|
||||||
|
if (inscriptions.length) {
|
||||||
|
var data = [];
|
||||||
|
|
||||||
|
data.push(["Centro educativo", "Número de entrada", "Nombre", "Apellidos", "Email", "Válido"]);
|
||||||
|
|
||||||
|
for (var c = 0; c < inscriptions.length; c++) {
|
||||||
|
var inscription = inscriptions[c];
|
||||||
|
console.log(inscription);
|
||||||
|
|
||||||
|
var code = inscription.code_ticket;
|
||||||
|
var name = inscription.user.name;
|
||||||
|
var surname = inscription.user.surname ? inscription.user.surname : "";
|
||||||
|
var email = inscription.user.email;
|
||||||
|
var college = inscription.user.entityId ? inscription.user.entity : "";
|
||||||
|
var valid = inscription.validated ? "Válido" : "No válido";
|
||||||
|
|
||||||
|
data.push([college, code, name, surname, email, valid]);
|
||||||
|
}
|
||||||
|
|
||||||
|
var buffer = xlsx.build([{
|
||||||
|
name: inscriptions[0].event.name,
|
||||||
|
data: data
|
||||||
|
}]);
|
||||||
|
|
||||||
|
var fileName = cdnHelper.sanitizeFilename(inscriptions[0].event.name + "-inscripciones.xlsx");
|
||||||
|
var xlsxPath = cdnHelper.getCDNPath('xlsx') + fileName;
|
||||||
|
var wstream = fs.createWriteStream(xlsxPath);
|
||||||
|
wstream.write(buffer);
|
||||||
|
wstream.end();
|
||||||
|
|
||||||
|
wstream.on("close", function () {
|
||||||
|
return callback({
|
||||||
|
messenger: {
|
||||||
|
success: true,
|
||||||
|
message: 'Ok',
|
||||||
|
code: 'S99001'
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
path: xlsxPath,
|
||||||
|
name: fileName
|
||||||
|
}
|
||||||
|
}, 200);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return callback({
|
||||||
|
messenger: {
|
||||||
|
success: true,
|
||||||
|
message: 'Ok',
|
||||||
|
code: 'S99002'
|
||||||
|
}
|
||||||
|
}, 200);
|
||||||
|
}
|
||||||
|
}).catch(function (error) {
|
||||||
|
console.log(error);
|
||||||
|
return callback({
|
||||||
|
messenger: {
|
||||||
|
success: false,
|
||||||
|
message: 'Database error getting inscription.',
|
||||||
|
code: 'E01004'
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = generateService(models.EventInscription, extraMethods);
|
module.exports = generateService(models.EventInscription, extraMethods);
|
||||||
Loading…
Reference in New Issue
Block a user