public static MemoryStream generarPDF(string clave) { var reportStream = new MemoryStream(); using (var conexion = new DataModelFE()) { string xml = ""; string mensaje = ""; if (clave.Substring(29, 2) == TipoDocumento.PROFORMA) { WSRecepcionPOSTProforma dato = conexion.WSRecepcionPOSTProforma.Find(clave); xml = dato.comprobanteXml; mensaje = dato.mensaje; } else { WSRecepcionPOST dato = conexion.WSRecepcionPOST.Find(clave); xml = dato.comprobanteXml; mensaje = dato.mensaje; } DocumentoElectronico documento = (DocumentoElectronico)EncodeXML.XMLUtils.getObjetcFromXML(xml); Empresa empresa = conexion.Empresa.Find(documento.emisor.identificacion.numero); if (empresa != null && "EN".Equals(empresa.idioma)) { using (RptComprobanteEN report = new RptComprobanteEN()) { object dataSource = UtilidadesReporte.cargarObjetoImpresion(documento, mensaje, empresa); report.objectDataSource1.DataSource = dataSource; string enviroment_url = ConfigurationManager.AppSettings["ENVIROMENT_URL"].ToString(); report.xrBarCode1.Text = (enviroment_url + documento.clave).ToUpper(); if (empresa != null && empresa.logo != null) { report.pbLogo.Image = byteArrayToImage(empresa.logo); } report.CreateDocument(); report.ExportToPdf(reportStream); } } else { using (RptComprobante report = new RptComprobante()) { object dataSource = UtilidadesReporte.cargarObjetoImpresion(documento, mensaje, empresa); report.objectDataSource1.DataSource = dataSource; string enviroment_url = ConfigurationManager.AppSettings["ENVIROMENT_URL"].ToString(); report.xrBarCode1.Text = (enviroment_url + documento.clave).ToUpper(); if (empresa != null && empresa.logo != null) { report.pbLogo.Image = byteArrayToImage(empresa.logo); } report.CreateDocument(); report.ExportToPdf(reportStream); } } } return(reportStream); }
public static bool sendMailProforma(string emisor, string destinatario, string asunto, string mensaje, string alias, string xml, string consecutivo, string clave, List <string> cc) { try { using (var conexion = new DataModelFE()) { ConfiguracionCorreo mailConfig = conexion.ConfiguracionCorreo.Where(x => x.estado == Estado.ACTIVO.ToString() && x.codigo == emisor).FirstOrDefault(); if (mailConfig == null) { mailConfig = conexion.ConfiguracionCorreo.Where(x => x.estado == Estado.ACTIVO.ToString() && x.codigo == Usuario.USUARIO_AUTOMATICO).FirstOrDefault(); } if (mailConfig != null) { MailMessage correo = new MailMessage(); SmtpClient smtp = new SmtpClient(); correo.From = new MailAddress(mailConfig.user, alias); if (string.IsNullOrWhiteSpace(destinatario)) { correo.To.Add(cc[0]); } else { correo.To.Add(destinatario); } if (cc != null) { foreach (var item in cc) { correo.CC.Add(item); } } //correo.Subject = String.Format("SPAM-LOW: {0}", asunto); correo.Subject = asunto; correo.Body = mensaje; if (xml != null) { correo.Attachments.Add(new Attachment(GenerateStreamFromMemoryStream(UtilidadesReporte.generarPDF(clave)), string.Format("{0}.pdf", consecutivo))); //correo.Attachments.Add(new Attachment(GenerateStreamFromString(xml), string.Format("{0}.xml", consecutivo))); } correo.Priority = MailPriority.Normal; correo.IsBodyHtml = true; smtp.Credentials = new NetworkCredential(mailConfig.user, Ale5Util.DesEncriptar(mailConfig.password)); smtp.Host = mailConfig.host; smtp.Port = int.Parse(mailConfig.port); if (Confirmacion.SI.ToString().Equals(mailConfig.ssl)) { smtp.EnableSsl = true; } else { smtp.EnableSsl = false; } smtp.Send(correo); correo.Dispose(); } else { return(false); } } return(true); } catch (Exception e) { e.ToString(); return(false); } }