private void GenerarXML(Comprobantes obj) { string filename = GetFolder(obj) + obj.GetFileName("xml"); XmlTextWriter writer = new XmlTextWriter(filename, Encoding.GetEncoding("iso-8859-1")); //Encoding.UTF8 writer.Formatting = Formatting.Indented; XmlDocument factura = new ComprobantesAdapter(obj).GenerarXml(); factura.WriteTo(writer); writer.Flush(); writer.Close(); if (!File.Exists(GetFolder(obj) + "Factura_v1.22.xsl")) { File.Copy(AppDomain.CurrentDomain.BaseDirectory + "Factura_v1.22.xsl", GetFolder(obj) + "Factura_v1.22.xsl"); } }
private void EnviarComprobante(Comprobantes obj, bool show) { try { string homologacion = "", validezLegal = ""; if (ConfigurationManager.AppSettings["FlagEnvir"] == "0") { homologacion = "HOMOLOGACIÓN"; validezLegal = " TENGA PRESENTE QUE EL COMPROBANTE QUE SE ADJUNTA ES SOLO DE PRUEBA Y EL MISMO NO POSEE VALIDEZ LEGAL"; } string filename = GetFolder(obj) + obj.GetFileName(GeneralSettings.Instance.FormatoComprobante.ToString().ToLower().Substring(0, 3)); if (!File.Exists(filename)) { GenerarReporteDetalle(obj, show, filename); } SmtpClient client = new SmtpClient(GeneralSettings.Instance.SmtpServer, GeneralSettings.Instance.SmtpServerPort); client.Credentials = new System.Net.NetworkCredential(GeneralSettings.Instance.SmtpUser, GeneralSettings.Instance.SmtpPass); MailAddress from = new MailAddress(GeneralSettings.Instance.SmtpUser, "Factura electronica de " + obj.Empresa.RazonSocial, System.Text.Encoding.UTF8); //MailAddress from = new MailAddress(GeneralSettings.Instance.SmtpUser, "Factura electronica " + ((homologacion != "") ? ("(" + homologacion + ") ") : ("")) + obj.Empresa.RazonSocial, System.Text.Encoding.UTF8); MailAddress to = new MailAddress(obj.Cliente.Email); MailMessage message = new MailMessage(from, to); message.BodyEncoding = System.Text.Encoding.UTF8; message.Subject = GeneralSettings.Instance.EmailSubject; message.SubjectEncoding = System.Text.Encoding.UTF8; string userState = "Fact elect"; //if (GeneralSettings.Instance.FormatoComprobante == FormatoComprobante.HTML) { // string body = GenerarBodyHTML(filename, obj.GetFileNameDetalle()); // AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, null, "text/html"); // //create the LinkedResource (embedded image) // LinkedResource logo = new LinkedResource(obj.Empresa.LogoEmpresaFileName); // logo.ContentId = "logo"; // //add the LinkedResource to the appropriate view // htmlView.LinkedResources.Add(logo); // //add the views // message.AlternateViews.Add(htmlView); //} message.Attachments.Add(new Attachment(filename)); ExportFormatType formatType = FormatoExportacionComprobante(GeneralSettings.Instance.FormatoComprobante); if (formatType == ExportFormatType.NoFormat) { string filenameXSL = AppDomain.CurrentDomain.BaseDirectory + "Factura_v1.22.xsl"; message.Attachments.Add(new Attachment(filenameXSL)); } //message.Body = ("Ha recibido una factura electrónica de " + obj.Empresa.RazonSocial + ", por favor compruebe que la ha recepcionado correctamente, en caso de no ser así sepa disculpar y contactese con la empresa." + "La informacion contenida en el documento adjunto es de indole estrictamente confidencial."); message.Body = GeneralSettings.Instance.EmailTexto; message.Headers.Add("Disposition-Notification-To", GeneralSettings.Instance.SmtpUser); try { client.SendAsync(message, userState); } catch (Exception ex) { string err = ex.Message; throw ex; } } catch (Exception ex) { throw ex; } }