a
This commit is contained in:
parent
aca1bf193b
commit
b11c48626c
@ -463,12 +463,11 @@ console.log(mailOptions);
|
||||
|
||||
|
||||
getReservationsExcel: async (req, res, next) => {
|
||||
console.log('exxxxxxxxxxxxxxxcel');
|
||||
const params = extractParamsFromRequest(req, res, {});
|
||||
const eventId = params.params.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") {
|
||||
console.log(result);
|
||||
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
||||
@ -479,7 +478,26 @@ console.log(mailOptions);
|
||||
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,
|
||||
);
|
||||
|
||||
routes.get('/admin/events/:id/inscriptions/excel',
|
||||
isAdministratorUser,
|
||||
eventController.getInscripcionsExcel,
|
||||
);
|
||||
|
||||
routes.get('/admin/events/:eventId/partners/:entityId/reservations',
|
||||
isAdministratorUser,
|
||||
eventReservationController.find(),
|
||||
|
||||
@ -7,8 +7,11 @@ const { generateService, parseParamsToFindOptions } = require('../../helpers/ser
|
||||
const models = require('../../core/models');
|
||||
const marketing = require('../../helpers/mailchimp.helper')
|
||||
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() {
|
||||
|
||||
@ -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);
|
||||
Loading…
Reference in New Issue
Block a user