Incluir en el email de la inscripción, el lugar y la hora de inicio

This commit is contained in:
David Arranz 2024-10-30 11:05:23 +01:00
parent 95b8359400
commit 9325a9f6aa

View File

@ -19,7 +19,7 @@ const emailHelper = require("../../helpers/mail.helper");
*/
function _generateMailDTO(dataInscription) {
let inscriptionDTO = {};
//console.log('*******ENTRO****', dataInscription);
//console.log('*******ENTRO****', dataInscription);
const inscription = dataInscription.inscription ? dataInscription.inscription : dataInscription;
const event = dataInscription.event ? dataInscription.event : dataInscription.inscription.event;
const reservation = dataInscription.reservation ? dataInscription.reservation : null;
@ -29,6 +29,7 @@ function _generateMailDTO(dataInscription) {
inscriptionDTO.id = inscription.id;
inscriptionDTO.source = inscription.source;
inscriptionDTO.event_name = event ? event.name : "N/A";
inscriptionDTO.event_venue = event.venue ? event.venue.name : null;
inscriptionDTO.event_date = event ? event.init_date : "N/A";
inscriptionDTO.event_marketing_list = event ? event.marketing_list : null;
inscriptionDTO.date_inscription = inscription.date;
@ -38,36 +39,42 @@ function _generateMailDTO(dataInscription) {
inscriptionDTO.reservation_code = reservation ? reservation.reservation_code : null;
inscriptionDTO.color = reservation ? reservation.color : null;
inscriptionDTO.description = ((reservation ? reservation.description : "Entrada").toUpperCase() + (lodash.words(inscription.type).includes("online") ? " online" : ""));
inscriptionDTO.description =
(reservation ? reservation.description : "Entrada").toUpperCase() +
(lodash.words(inscription.type).includes("online") ? " online" : "");
inscriptionDTO.qrConfig = null;
inscriptionDTO.qrCode = null;
if (user) {
//Era para mailchimp
//Era para mailchimp
/// inscriptionDTO.marketing_memberId = inscription.marketing_memberId ? inscription.marketing_memberId : null;
inscriptionDTO.email = user.email;
inscriptionDTO.name = user.name;
inscriptionDTO.surname = user.surname;
inscriptionDTO.userId = user.id;
inscriptionDTO.entity = reservation && reservation.Entity ? reservation.Entity.name : (user.Entity ? user.Entity.name : user.entityId);
};
inscriptionDTO.entity =
reservation && reservation.Entity ? reservation.Entity.name : user.Entity ? user.Entity.name : user.entityId;
}
}
console.log('*******SALGO****', inscriptionDTO);
console.log("*******SALGO****", inscriptionDTO);
return inscriptionDTO;
}
function generateHeaderMail(member) {
let headerMail = null;
let AsuntoOnline = lodash.words(member.type).includes("online") ? "Inscripción online" : "";
let AsuntoOnsite = member.validated ? "Entrada" : (lodash.words(member.type).includes("group") ? "Pendiente de confirmación" : "Lista de espera");
let AsuntoOnsite = member.validated
? "Entrada"
: lodash.words(member.type).includes("group")
? "Pendiente de confirmación"
: "Lista de espera";
if (member) {
headerMail = {
to: member.email,
name: member.name + " " + member.surname,
subject:
((AsuntoOnline === "") ? AsuntoOnsite : AsuntoOnline) + " para el congreso " + member.event_name + " confirmada",
(AsuntoOnline === "" ? AsuntoOnsite : AsuntoOnline) + " para el congreso " + member.event_name + " confirmada",
};
}
@ -75,7 +82,6 @@ function generateHeaderMail(member) {
}
function generateHeaderMailReservation(reservation) {
function _getDestinationMail() {
if (lodash.isNull(reservation.Entity)) {
return reservation.contact_email;
@ -98,12 +104,12 @@ function generateHeaderMailReservation(reservation) {
};
}
}
console.log('generateHeaderMailReservation>>>>>>>', headerMail);
console.log("generateHeaderMailReservation>>>>>>>", headerMail);
return headerMail;
}
function generateBodyMailReservation(reservation) {
console.log('generateBodyMailReservation>>>>>>>', reservation);
console.log("generateBodyMailReservation>>>>>>>", reservation);
const event = reservation.Event ? reservation.Event : reservation.event;
let bodyMail = null;
if (reservation) {
@ -115,14 +121,18 @@ function generateBodyMailReservation(reservation) {
reservationDescription: reservation.description,
};
}
console.log('generateBodyMailReservation>>>>>>>', bodyMail);
console.log("generateBodyMailReservation>>>>>>>", bodyMail);
return bodyMail;
}
function generateBodyMail(member) {
//console.log('>>>generateBodyMail>>>>> ', member);
let bodyMail = null;
let tipoEntrada = lodash.words(member.type).includes("online") ? "Inscripción online confirmada" : (member.validated ? "Entrada" : "Lista de espera");
let tipoEntrada = lodash.words(member.type).includes("online")
? "Inscripción online confirmada"
: member.validated
? "Entrada"
: "Lista de espera";
if (member) {
bodyMail = {
@ -133,15 +143,15 @@ function generateBodyMail(member) {
color: member.qrConfig.color,
codeTicket: member.code_ticket,
eventName: member.event_name,
dateEvent: moment(member.event_date).format("D [de] MMMM [de] YYYY"),
venueName: member.venue_name,
dateEvent: moment(member.event_date).format("D [de] MMMM [de] YYYY, [a las] HH:mm"),
dateInscription: moment(member.date_inscription).format("DD/MM/YY HH:mm "),
};
}
//console.log('>>>retunr>>>>> ', bodyMail);
//console.log('>>>retunr>>>>> ', bodyMail);
return bodyMail;
}
async function sendEmailConfirm(dataUser, dataInscription) {
dataInscription.user = dataUser.userResult.user;
const isOnline = lodash.words(dataInscription.type).includes("online");
@ -155,17 +165,14 @@ async function sendEmailConfirm(dataUser, dataInscription) {
//console.log(headerMail, bodyMail);
try {
if (isOnline)
emailHelper.sendTicketOnline(generateHeaderMail(mailDTO), generateBodyMail(mailDTO))
else
if (dataInscription.inscription.validated)
emailHelper.sendTicket(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
else {
if (lodash.words(mailDTO.type).includes("group"))
emailHelper.sendPendienteConfirmacion(generateHeaderMail(mailDTO), generateBodyMail(mailDTO))
else
emailHelper.sendListaEspera(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
};
if (isOnline) emailHelper.sendTicketOnline(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
else if (dataInscription.inscription.validated)
emailHelper.sendTicket(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
else {
if (lodash.words(mailDTO.type).includes("group"))
emailHelper.sendPendienteConfirmacion(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
else emailHelper.sendListaEspera(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
}
} catch (error) {
console.log("No se ha podido mandar email con entrada>>> ", error);
}
@ -185,12 +192,13 @@ async function sendEmailCancelate(inscription) {
console.log("Mandamos mail con la cancelacion>>>>>>>>>>>>>>>>>>>>>>>>>>>");
try {
emailHelper.sendCancelacion(headerMail, generateBodyMail(mailDTO));
} catch (error) { console.log("No se ha podido mandar email con cancelación") };
} catch (error) {
console.log("No se ha podido mandar email con cancelación");
}
return true;
}
/*async function _sendInscriptionEmail(dataInscription, member) {
let mailDTO = _generateMailDTO(inscription);
member.qrConfig = QRHelper.generateQRConfig(member);
@ -210,7 +218,10 @@ async function sendEmailCancelate(inscription) {
async function sendReservationEmail(reservation) {
try {
emailHelper.sendReservationCode(generateHeaderMailReservation(reservation), generateBodyMailReservation(reservation));
emailHelper.sendReservationCode(
generateHeaderMailReservation(reservation),
generateBodyMailReservation(reservation)
);
} catch (error) {
console.log("No se ha podido mandar email _sendReservationEmail", error);
}
@ -218,13 +229,15 @@ async function sendReservationEmail(reservation) {
async function sendReservationCollegeEmail(reservation) {
try {
emailHelper.sendReservationCodeCollege(generateHeaderMailReservation(reservation), generateBodyMailReservation(reservation));
emailHelper.sendReservationCodeCollege(
generateHeaderMailReservation(reservation),
generateBodyMailReservation(reservation)
);
} catch (error) {
console.log("No se ha podido mandar email _sendReservationCodeCollege", error);
}
}
module.exports = {
sendEmailConfirm,
sendEmailCancelate,
@ -235,4 +248,3 @@ module.exports = {
generateBodyMail,
generateBodyMailReservation,
};