/// <summary> /// Función que permite enviar un correo de solicitud de talonario al encargado de sorteos /// </summary> /// <param name="usuario"></param> public static void SolicitarTalonario(string usuario) { Colaborador persona = ColaboradorService.Obtiene(usuario); if (persona != null) { Code.CorreoUtil.Enviar( new string[] { ConfigurationManager.AppSettings["Correo.SolicitudTalonario"] }, "Solicitud de Talonario", String.Format("<html><head></head><body><style>body {{ font-family: Arial, Helvetica, Verdana, Tahoma, Sans-Serif; }}</style><p>Solicitud de Talonario:</p><ul><li>Id de Estudiante: <b>{1}</b></li><li>Nombre: <b>{0}</b></li><li>Talonarios: <b>1</b></li></ul></body></html>", persona.nombre_completo, persona.identificador) ); } }
/// <summary> /// Función que obtiene los talonarios de un usuario /// </summary> /// <param name="usuario"></param> /// <returns></returns> public static Talonario[] ObtienePorUsuario(string usuario) { List <string> folios = new List <string>(); List <Talonario> talonarios = new List <Talonario>(); /* Traemos los datos del usuario del cual se quiere obtener los talonarios */ Colaborador persona = ColaboradorService.Obtiene(usuario); /* Traemos los datos del sorteo activo */ Sorteo sorteo_activo = SorteoService.ObtenerActivo(); /* Si la persona existe y tenemos un sorteo activo, abrimos la conexión a la base de datos para obtener sus talonarios*/ if (persona != null && sorteo_activo != null) { database db = new database(); /* Traemos los folios de los talonarios digitales asignados a un colaborador en el sorteo activo */ ResultSet dbTalonarios = db.getTable(String.Format(@" SELECT tal.FOLIO FROM TALONARIOS tal INNER JOIN SORTEOS_COLABORADORES_TALONARIOS ctal ON tal.PK1 = ctal.PK_TALONARIO WHERE tal.DIGITAL = 1 AND ctal.PK_SORTEO = {0} AND ctal.PK_COLABORADOR = {1} ORDER BY tal.FOLIO", sorteo_activo.clave, persona.clave)); /* Por cada talonario, agregamos el folio a la lista*/ while (dbTalonarios.Next()) { folios.Add(dbTalonarios.Get("FOLIO")); } db.Close(); /* Por cada folio obtenido, traemos los datos del talonario*/ foreach (string folio in folios) { /* Traemos los datos del talonario */ talonarios.Add(Obtiene(folio, persona.clave)); } ; } return(talonarios.ToArray()); }
/// <summary> /// Función que permite enviar un boleto por correo /// </summary> /// <param name="clave">Clave del boleto al que se le va enviar el correo</param> /// <param name="clave_persona">Clave de la persona dueña del talonario</param> public static void EnviarBoleto(long clave, long clave_persona) { /* Traemos los datos del sorteo activo */ Sorteo sorteo_activo = SorteoService.ObtenerActivo(); Boleto boleto = ObtieneBoleto(clave, clave_persona); Colaborador colaborador = ColaboradorService.ObtienePorClave(clave_persona); /* Si el talonario existe, traemos sus datos */ if (boleto != null && boleto.comprador != null) { string urlBoleto = string.Format("{0}/boleto/{1}", ConfigurationManager.AppSettings["App.Url.Base"], boleto.token); MemoryStream qrImage = GenerateQRCode(urlBoleto); String nombreArchivo = String.Format("boleto-{0}", boleto.folio); System.Net.Mail.Attachment qrAttachment = new System.Net.Mail.Attachment(qrImage, nombreArchivo, System.Net.Mime.MediaTypeNames.Image.Jpeg) { ContentId = String.Format("{0}@anahuac.mx", nombreArchivo), ContentType = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Image.Jpeg), Name = String.Format("{0}.jpg", nombreArchivo) }; qrAttachment.ContentDisposition.Inline = true; System.Drawing.Image frenteBoleto = Bitmap.FromFile(System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Imagenes/Boleto_final_Sorteo_2017.png")); Graphics g = Graphics.FromImage(frenteBoleto); g.DrawString(boleto.folio, System.Drawing.SystemFonts.DefaultFont, System.Drawing.Brushes.Black, new RectangleF(832, 13, 85, 29)); MemoryStream frenteImage = new MemoryStream(); frenteBoleto.Save(frenteImage, System.Drawing.Imaging.ImageFormat.Jpeg); frenteImage.Position = 0; System.Net.Mail.Attachment boletoAttach = new System.Net.Mail.Attachment(frenteImage, String.Format("Boleto_final_Sorteo_2017_{0}.jpg", boleto.folio), System.Net.Mime.MediaTypeNames.Image.Jpeg) { ContentId = "*****@*****.**" }; boletoAttach.ContentDisposition.Inline = true; System.Net.Mail.Attachment reversoAttach = new System.Net.Mail.Attachment(System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Imagenes/Boleto_final_Sorteo.png")) { ContentId = "*****@*****.**" }; reversoAttach.ContentDisposition.Inline = true; System.Net.Mail.Attachment logoAttach = new System.Net.Mail.Attachment(System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Imagenes/AHC_Logo-Correo.png")) { ContentId = "*****@*****.**" }; logoAttach.ContentDisposition.Inline = true; Code.CorreoUtil.Enviar( new string[] { boleto.comprador.correo }, String.Format("Sorteo Anáhuac: Boleto {0}", boleto.folio), String.Format(@"<html> <head> </head> <body> <style type=""text/css""> #boleto-logo img {{ width: 120px; }} #contenido-correo {{ font-family: Tahoma, Verdana, Arial, sans-serif; text-align: center; }} #contenido-correo h3 {{ color: #ea7200; font-style: italic; font-size: 1.1em; }} #contenido-correo p.boleto-descripcion {{ color: #666; }} .boletos-conteo {{ color: #ea7200; }} #boleto-detalle-contenido {{ margin-top: 1em; text-align: center; }} .boleto-contacto, .boleto-url {{ color: #666; font-size: 0.8em; }} .boleto-contacto span {{ color: #000; font-size: 1.3em; font-weight: bold; }} #qrURL-boleto, #reverso-boleto {{ margin-bottom: 1.2em; }} #frente-boleto img, #reverso-boleto img {{ width: 75%; }} </style> <div id=""contenido-correo""> <p> <div id=""boleto-logo""><img src=""cid:{16}"" /></div> </p> <h2 class=""talonario-boletos-header con-flecha-llamada"">Boleto <span class=""boletos-conteo"">{0}</span></h2> <h3>¡Felicidades!</h3> <p class=""boleto-descripcion"">Has comprado el <b>boleto {0}</b> del Sorteo Anáhuac.<br/>A continuación te presentamos los datos de tu compra:</p> <div id=""boleto-detalle-contenido""> <p class=""boleto-contacto""> Dueño<br/> <span>{1} {2}</span> </p> <p class=""boleto-contacto""> Domicilio:<br/> <span>{6}</span> <span>{7}</span><br/> <span>{8}</span>, <span>{9}</span> </p> <p class=""boleto-contacto""> Teléfono fijo:<br/> <span>{5}</span> </p> <p class=""boleto-contacto""> Teléfono móvil:<br/> <span>{4}</span> </p> <p class=""boleto-contacto""> Correo electrónico:<br/> <span>{3}</span> </p> <p class=""boleto-contacto""> Cuenta bancaria:<br/> <span>{12}</span> </p> <p class=""boleto-contacto""> Referencia bancaria:<br/> <span>{13}</span> </p> <p> <div id=""qrURL-boleto""><img src=""cid:{11}"" /></div> </p> <p class=""boleto-contacto""> {17} </p> <p> <div id=""frente-boleto""><img src=""cid:{14}"" /></div> <div id=""reverso-boleto""><img src=""cid:{15}"" /></div> </p> <p class=""boleto-contacto""> Para más información, puedes revisar nuestro sitio web en<br/><a href=""http://www.sorteoanahuac.mx/"" target=""_blank"">http://www.sorteoanahuac.mx/</a>. </p> </div> </div> </body> <html>", boleto.folio, boleto.comprador.nombre, boleto.comprador.apellidos, boleto.comprador.correo, boleto.comprador.celular, boleto.comprador.direccion.telefono, boleto.comprador.direccion.calle, boleto.comprador.direccion.numero, boleto.comprador.direccion.municipio, boleto.comprador.direccion.estado, boleto.token, qrAttachment.ContentId, sorteo_activo.cuenta_bancaria, colaborador.referencia_bancaria, boletoAttach.ContentId, reversoAttach.ContentId, logoAttach.ContentId, urlBoleto), new System.Net.Mail.Attachment[] { qrAttachment, boletoAttach, reversoAttach, logoAttach }); return; } }