Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            }
        }