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) { function _generateMailDTO(dataInscription) {
let inscriptionDTO = {}; let inscriptionDTO = {};
//console.log('*******ENTRO****', dataInscription); //console.log('*******ENTRO****', dataInscription);
const inscription = dataInscription.inscription ? dataInscription.inscription : dataInscription; const inscription = dataInscription.inscription ? dataInscription.inscription : dataInscription;
const event = dataInscription.event ? dataInscription.event : dataInscription.inscription.event; const event = dataInscription.event ? dataInscription.event : dataInscription.inscription.event;
const reservation = dataInscription.reservation ? dataInscription.reservation : null; const reservation = dataInscription.reservation ? dataInscription.reservation : null;
@ -29,6 +29,7 @@ function _generateMailDTO(dataInscription) {
inscriptionDTO.id = inscription.id; inscriptionDTO.id = inscription.id;
inscriptionDTO.source = inscription.source; inscriptionDTO.source = inscription.source;
inscriptionDTO.event_name = event ? event.name : "N/A"; 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_date = event ? event.init_date : "N/A";
inscriptionDTO.event_marketing_list = event ? event.marketing_list : null; inscriptionDTO.event_marketing_list = event ? event.marketing_list : null;
inscriptionDTO.date_inscription = inscription.date; inscriptionDTO.date_inscription = inscription.date;
@ -38,36 +39,42 @@ function _generateMailDTO(dataInscription) {
inscriptionDTO.reservation_code = reservation ? reservation.reservation_code : null; inscriptionDTO.reservation_code = reservation ? reservation.reservation_code : null;
inscriptionDTO.color = reservation ? reservation.color : 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.qrConfig = null;
inscriptionDTO.qrCode = null; inscriptionDTO.qrCode = null;
if (user) { if (user) {
//Era para mailchimp //Era para mailchimp
/// inscriptionDTO.marketing_memberId = inscription.marketing_memberId ? inscription.marketing_memberId : null; /// inscriptionDTO.marketing_memberId = inscription.marketing_memberId ? inscription.marketing_memberId : null;
inscriptionDTO.email = user.email; inscriptionDTO.email = user.email;
inscriptionDTO.name = user.name; inscriptionDTO.name = user.name;
inscriptionDTO.surname = user.surname; inscriptionDTO.surname = user.surname;
inscriptionDTO.userId = user.id; 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; return inscriptionDTO;
} }
function generateHeaderMail(member) { function generateHeaderMail(member) {
let headerMail = null; let headerMail = null;
let AsuntoOnline = lodash.words(member.type).includes("online") ? "Inscripción online" : ""; 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) { if (member) {
headerMail = { headerMail = {
to: member.email, to: member.email,
name: member.name + " " + member.surname, name: member.name + " " + member.surname,
subject: 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 generateHeaderMailReservation(reservation) {
function _getDestinationMail() { function _getDestinationMail() {
if (lodash.isNull(reservation.Entity)) { if (lodash.isNull(reservation.Entity)) {
return reservation.contact_email; return reservation.contact_email;
@ -98,12 +104,12 @@ function generateHeaderMailReservation(reservation) {
}; };
} }
} }
console.log('generateHeaderMailReservation>>>>>>>', headerMail); console.log("generateHeaderMailReservation>>>>>>>", headerMail);
return headerMail; return headerMail;
} }
function generateBodyMailReservation(reservation) { function generateBodyMailReservation(reservation) {
console.log('generateBodyMailReservation>>>>>>>', reservation); console.log("generateBodyMailReservation>>>>>>>", reservation);
const event = reservation.Event ? reservation.Event : reservation.event; const event = reservation.Event ? reservation.Event : reservation.event;
let bodyMail = null; let bodyMail = null;
if (reservation) { if (reservation) {
@ -115,14 +121,18 @@ function generateBodyMailReservation(reservation) {
reservationDescription: reservation.description, reservationDescription: reservation.description,
}; };
} }
console.log('generateBodyMailReservation>>>>>>>', bodyMail); console.log("generateBodyMailReservation>>>>>>>", bodyMail);
return bodyMail; return bodyMail;
} }
function generateBodyMail(member) { function generateBodyMail(member) {
//console.log('>>>generateBodyMail>>>>> ', member); //console.log('>>>generateBodyMail>>>>> ', member);
let bodyMail = null; 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) { if (member) {
bodyMail = { bodyMail = {
@ -133,15 +143,15 @@ function generateBodyMail(member) {
color: member.qrConfig.color, color: member.qrConfig.color,
codeTicket: member.code_ticket, codeTicket: member.code_ticket,
eventName: member.event_name, 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 "), dateInscription: moment(member.date_inscription).format("DD/MM/YY HH:mm "),
}; };
} }
//console.log('>>>retunr>>>>> ', bodyMail); //console.log('>>>retunr>>>>> ', bodyMail);
return bodyMail; return bodyMail;
} }
async function sendEmailConfirm(dataUser, dataInscription) { async function sendEmailConfirm(dataUser, dataInscription) {
dataInscription.user = dataUser.userResult.user; dataInscription.user = dataUser.userResult.user;
const isOnline = lodash.words(dataInscription.type).includes("online"); const isOnline = lodash.words(dataInscription.type).includes("online");
@ -155,17 +165,14 @@ async function sendEmailConfirm(dataUser, dataInscription) {
//console.log(headerMail, bodyMail); //console.log(headerMail, bodyMail);
try { try {
if (isOnline) if (isOnline) emailHelper.sendTicketOnline(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
emailHelper.sendTicketOnline(generateHeaderMail(mailDTO), generateBodyMail(mailDTO)) else if (dataInscription.inscription.validated)
else emailHelper.sendTicket(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
if (dataInscription.inscription.validated) else {
emailHelper.sendTicket(generateHeaderMail(mailDTO), generateBodyMail(mailDTO)); if (lodash.words(mailDTO.type).includes("group"))
else { emailHelper.sendPendienteConfirmacion(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
if (lodash.words(mailDTO.type).includes("group")) else emailHelper.sendListaEspera(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
emailHelper.sendPendienteConfirmacion(generateHeaderMail(mailDTO), generateBodyMail(mailDTO)) }
else
emailHelper.sendListaEspera(generateHeaderMail(mailDTO), generateBodyMail(mailDTO));
};
} catch (error) { } catch (error) {
console.log("No se ha podido mandar email con entrada>>> ", 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>>>>>>>>>>>>>>>>>>>>>>>>>>>"); console.log("Mandamos mail con la cancelacion>>>>>>>>>>>>>>>>>>>>>>>>>>>");
try { try {
emailHelper.sendCancelacion(headerMail, generateBodyMail(mailDTO)); 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; return true;
} }
/*async function _sendInscriptionEmail(dataInscription, member) { /*async function _sendInscriptionEmail(dataInscription, member) {
let mailDTO = _generateMailDTO(inscription); let mailDTO = _generateMailDTO(inscription);
member.qrConfig = QRHelper.generateQRConfig(member); member.qrConfig = QRHelper.generateQRConfig(member);
@ -210,7 +218,10 @@ async function sendEmailCancelate(inscription) {
async function sendReservationEmail(reservation) { async function sendReservationEmail(reservation) {
try { try {
emailHelper.sendReservationCode(generateHeaderMailReservation(reservation), generateBodyMailReservation(reservation)); emailHelper.sendReservationCode(
generateHeaderMailReservation(reservation),
generateBodyMailReservation(reservation)
);
} catch (error) { } catch (error) {
console.log("No se ha podido mandar email _sendReservationEmail", error); console.log("No se ha podido mandar email _sendReservationEmail", error);
} }
@ -218,13 +229,15 @@ async function sendReservationEmail(reservation) {
async function sendReservationCollegeEmail(reservation) { async function sendReservationCollegeEmail(reservation) {
try { try {
emailHelper.sendReservationCodeCollege(generateHeaderMailReservation(reservation), generateBodyMailReservation(reservation)); emailHelper.sendReservationCodeCollege(
generateHeaderMailReservation(reservation),
generateBodyMailReservation(reservation)
);
} catch (error) { } catch (error) {
console.log("No se ha podido mandar email _sendReservationCodeCollege", error); console.log("No se ha podido mandar email _sendReservationCodeCollege", error);
} }
} }
module.exports = { module.exports = {
sendEmailConfirm, sendEmailConfirm,
sendEmailCancelate, sendEmailCancelate,
@ -235,4 +248,3 @@ module.exports = {
generateBodyMail, generateBodyMail,
generateBodyMailReservation, generateBodyMailReservation,
}; };