private bool EnviarMailCanc(string correo, string uuid) { try { if (string.IsNullOrEmpty(correo)) { return(false); } var EM = new EnviarMail(); var servidor = ""; var puerto = 0; var ssl = false; var emailCredencial = ""; var passCredencial = ""; var emailEnviar = ""; DB.Conectar(); DB.CrearComando("select servidorSMTP,puertoSMTP,sslSMTP,userSMTP,passSMTP,emailEnvio from ParametrosSistema"); DbDataReader DR1 = DB.EjecutarConsulta(); while (DR1.Read()) { servidor = DR1[0].ToString(); puerto = Convert.ToInt32(DR1[1].ToString()); ssl = Convert.ToBoolean(DR1[2].ToString()); emailCredencial = DR1[3].ToString(); passCredencial = DR1[4].ToString(); emailEnviar = DR1[5].ToString(); } DB.Desconectar(); var asunto = "Retencion DHL"; var mensaje = "Saludos Cordiales! <br>Se acaba de cancelar el comprobante de retención \"" + uuid + "\""; mensaje += "<br><br>No responder a este correo, es solo informativo"; EM.servidorSTMP(servidor, puerto, ssl, emailCredencial, passCredencial); EM.llenarEmail(emailEnviar, correo, "*****@*****.**", "", asunto, mensaje); //EM.llenarEmail(emailEnviar, "*****@*****.**", "", "", asunto, mensaje); return(EM.enviarEmail()); } catch { return(false); } }
protected void bEnviarEmail_Click(object sender, EventArgs e) { //if (Archivos(idfact)) //{ try { resulVal = consultarResulVal(idfact).Replace("\r", "").Replace("\n", ""); detalleVal = consultarDetalleVal(idfact); //Resultado de la validacion string[] rv = resulVal.Split('*'); estructura = rv[0]; Valsello = rv[1]; existenciaCer = rv[2]; vigeciaCer = rv[3]; versionComprobante = rv[4]; noCertificado = rv[5]; string[] auxCer = noCertificado.Split(':'); noCertificado = auxCer[1].ToString(); cadenaO = rv[6]; string[] auxCO = cadenaO.Split(':'); cadenaO = auxCO[1].ToString() + auxCO[2].ToString() + auxCO[3].ToString(); sello = rv[7]; //estructura = rv[0]; //Valsello = rv[1]; EnviarMail em = new EnviarMail(); mail = tbEmail.Text; string mensaje = ""; string asunto = ""; if (mail.Length > 0) { //Valida que imagen corresponde if (estructura.IndexOf("Válida") != -1) { imgEstruct = @"http://dataexpressintmx.com/ok-small.png"; } else { imgEstruct = @"http://dataexpressintmx.com/x_small.png"; } if (Valsello.IndexOf("Sello válido") != -1) { imgSello = @"http://dataexpressintmx.com/ok-small.png"; } else { imgSello = @"http://dataexpressintmx.com/x_small.png"; } if (existenciaCer.IndexOf("Correcto") != -1) { imgExistCer = @"http://dataexpressintmx.com/ok-small.png"; } else { imgExistCer = @"http://dataexpressintmx.com/x_small.png"; } if (vigeciaCer != "El certificado no esta vigente.") { imgVigCer = @"http://dataexpressintmx.com/ok-small.png"; } else { imgVigCer = @"http://dataexpressintmx.com/x_small.png"; } //Validacion de serie y folio para CFD /*if (!banCFDI) * { * if (banfolser) * { imgFolSer = @"http://dataexpressintmx.com/ok-small.png"; } * * else * { * if (banRangofol) * { * imgRangoFol = @"http://dataexpressintmx.com/x_small.png"; * } * else * { imgRangoFol = @"http://dataexpressintmx.com/ok-small.png"; } * * if (banNoAprob) * { * imgNoaprobfol = @"http://dataexpressintmx.com/x_small.png"; * } * else * { imgNoaprobfol = @"http://dataexpressintmx.com/ok-small.png"; } * * } * }*/ if (versionComprobante.IndexOf("2.2") != -1) { tipocomprobant = "CFD"; versionComprobante = "2.2"; } else { tipocomprobant = "CFDI"; versionComprobante = "3.2"; } if (detalleVal.IndexOf("RE002") != -1 || detalleVal.IndexOf("RE005") != -1 || detalleVal.IndexOf("RE013") != -1) //Facturas invalidas { asunto = "Información sobre la factura que enviaste con Folio. " + folio + serie + ". "; sHtml = @"<h5><Font Color=" + "#3983B7" + "><center>DETALLE DE VALIDACION DE LA FACTURA DIGITAL BASADO EN EL ANEXO 20 <br>DE LA RESOLUCION MISCELANEA FISCAL PUBLICADA POR EL SAT</center></Font></h1></P>" + " <TABLE BORDER=0>" + "<TR>" + "<TD>Estatus completo de la factura digital:</TD>" + "<TD>" + detalleVal + "<TD><img src=" + "http://dataexpressintmx.com/x_small.png" + "></TD>" + "</TD>" + "</TR>" + " </TABLE>" + "<table border=" + "0" + " width=" + "200px" + ">" + "<tr>" + "<th></th>" + "<td> </td>" + "<th> Estatus validación </th>" + "</tr>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Razon Social:</th>" + "<td>" + nombreEmisor + "</td>" + "</tr>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">RFC:</th>" + "<td>" + emisor + "</td>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Tipo comprobante:</th>" + "<td>" + tipocomprobant + "</td>" + "</tr>" + "<tr>" + "<th width=" + "50%" + " align=" + "right" + ">Versión del comprobante:</th>" + "<td>" + versionComprobante + "</td>" + "</tr>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Folio y Serie:</th>" + "<td>" + folio + " " + serie + "</td>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Año No. aprobación:</th>" + "<td>" + anoAprobacion + " " + noAprobacion + "</td>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Estructura:</th>" + "<td>" + estructura + "</td>" + "<th> <img src=" + imgEstruct + "> </th>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Certificado:</th>" + "<td>" + noCertificado + "</td>" + "<th> <img src=" + imgExistCer + "> </th>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Vigencia:</th>" + "<td>" + vigeciaCer + "</td>" + "<th> <img src=" + imgVigCer + "> </th>" + "</tr>" + "</table>" + "<table>" + "<tr>" + "<th align=" + "left" + ">Sello:" + " <img src=" + imgSello + ">" + "</th>" + "</tr>" + "<tr>" + "<th>" + "<textarea rows=" + "6" + " cols=" + "50" + " readonly >" + sello + "</textarea>" + "</th>" + "</tr>" + "</table>" + "<table>" + "<tr>" + "<th align=" + "left" + " >Cadena Original:</th>" + "</tr>" + "<tr>" + "<td width=" + "40%" + "HEIGHT=" + "50%" + "> " + "<textarea rows=" + "6" + " cols=" + "50" + " readonly >" + cadenaO + "</textarea>" + "</td>" + "</tr>" + "</table>"; mensaje += sHtml; } //CFD if (detalleVal.IndexOf("RE004") != -1 || detalleVal.IndexOf("RE003") != -1) { asunto = "Información sobre la factura que enviaste con Folio. " + folio + serie + ". "; sHtml = @"<h5><Font Color=" + "#3983B7" + "><center>DETALLE DE VALIDACION DE LA FACTURA DIGITAL BASADO EN EL ANEXO 20 <br>DE LA RESOLUCION MISCELANEA FISCAL PUBLICADA POR EL SAT</center></Font></h1></P>" + " <TABLE BORDER=0>" + "<TR>" + "<TD>Estatus completo de la factura digital:</TD>" + "<TD>" + detalleVal + "<TD><img src=" + "http://dataexpressintmx.com/x_small.png" + "></TD>" + "</TD>" + "</TR>" + " </TABLE>" + "<table border=" + "0" + " width=" + "200px" + ">" + "<tr>" + "<th></th>" + "<td> </td>" + "<th> Estatus validación </th>" + "</tr>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Razon Social:</th>" + "<td>" + nombreEmisor + "</td>" + "</tr>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">RFC:</th>" + "<td>" + emisor + "</td>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Tipo comprobante:</th>" + "<td>" + tipocomprobant + "</td>" + "</tr>" + "<tr>" + "<th width=" + "50%" + " align=" + "right" + ">Versión del comprobante:</th>" + "<td>" + versionComprobante + "</td>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Folio y Serie:</th>" + "<td>" + folio + " " + serie + "</td>" + "<th> <img src=" + imgRangoFol + "> </th>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Año No. aprobación:</th>" + "<td>" + anoAprobacion + " " + noAprobacion + "</td>" + "<th> <img src=" + imgNoaprobfol + "> </th>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Estructura:</th>" + "<td>" + estructura + "</td>" + "<th> <img src=" + imgEstruct + "> </th>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Certificado:</th>" + "<td>" + noCertificado + "</td>" + "<th> <img src=" + imgExistCer + "> </th>" + "</tr>" + "<tr>" + "<th align=" + "right" + ">Vigencia:</th>" + "<td>" + vigeciaCer + "</td>" + "<th> <img src=" + imgVigCer + "> </th>" + "</tr>" + "</table>" + "<table>" + "<tr>" + "<th align=" + "left" + ">Sello:" + " <img src=" + imgSello + ">" + "</th>" + "</tr>" + "<tr>" + "<th>" + "<textarea rows=" + "6" + " cols=" + "50" + " readonly >" + sello + "</textarea>" + "</th>" + "</tr>" + "</table>" + "<table>" + "<tr>" + "<th align=" + "left" + " >Cadena Original:</th>" + "</tr>" + "<tr>" + "<td width=" + "40%" + "HEIGHT=" + "50%" + "> " + "<textarea rows=" + "6" + " cols=" + "50" + " readonly >" + cadenaO + "</textarea>" + "</td>" + "</tr>" + "</table>"; mensaje += sHtml; } em.servidorSTMP(servidor, puerto, ssl, emailCredencial, passCredencial); em.llenarEmail(emailEnviar, mail, "", "", asunto, mensaje); try { em.enviarEmail(); lMensaje.Text = "E-mail enviado"; DB.Conectar(); DB.CrearComando((@"insert into LogErrorFacturas (detalle,fecha,numeroDocumento) values (@detalle,@fecha,@numeroDocumento)")); DB.AsignarParametroCadena("@detalle", "E-mail enviado: " + mail); DB.AsignarParametroCadena("@fecha", System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss")); DB.AsignarParametroCadena("@numeroDocumento", folio + serie); DB.EjecutarConsulta1(); DB.Desconectar(); } catch (System.Net.Mail.SmtpException ex) { DB.Conectar(); DB.CrearComando((@"insert into LogErrorFacturas (detalle,fecha,numeroDocumento) values (@detalle,@fecha,@numeroDocumento)")); DB.AsignarParametroCadena("@detalle", "E-mail no enviado: " + ex.ToString()); DB.AsignarParametroCadena("@fecha", System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss")); DB.AsignarParametroCadena("@numeroDocumento", folio + serie); DB.EjecutarConsulta1(); string errorConsulta = DB.comando.CommandText; lMensaje.Text = errorConsulta; DB.Desconectar(); } } //if mail.length } catch (Exception ex) { DB.Conectar(); DB.CrearComando((@"insert into LogErrorFacturas (detalle,fecha,numeroDocumento) values (@detalle,@fecha,@numeroDocumento)")); DB.AsignarParametroCadena("@detalle", "E-mail no enviado: " + ex.ToString()); DB.AsignarParametroCadena("@fecha", System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss")); DB.AsignarParametroCadena("@numeroDocumento", folio + serie); DB.EjecutarConsulta1(); DB.Desconectar(); } //} }
private void btnGuardar_Click(object sender, EventArgs e) { string cliente = txtCliente.Text; if (cliente.Equals("")) { MessageBox.Show("Falta datos del Cliente", "Mensaje de advertencia"); } else { for (int count = 0; count < dataGridViewFactura.Rows.Count; count++) { string codigo = (string)dataGridViewFactura.Rows[count].Cells["columnProducto"].Value; contador = contador + 1; } if (contador >= 1) { Console.Write("contador es " + contador); if (consumidorF == true) { txtCliente.Text = ""; txtRUC.Text = ""; txtDireccion.Text = ""; txtTelefono.Text = ""; dataGridViewProducto.ClearSelection(); dataGridViewFactura.Rows.Clear(); txtSubTotal.Text = ""; txtIva.Text = ""; txtTotal.Text = ""; rbFactura.Enabled = false; rbConsumidorFinal.Enabled = false; rbCodigo.Enabled = false; rbProducto.Enabled = false; txtBusqueda.Enabled = false; dataGridViewProducto.Enabled = false; btnGuardar.Enabled = false; btnAgregarProducto.Enabled = false; txtCantidad.Enabled = false; txtEmpleado.Text = Login.ROL; consumidorF = false; } else { contador = 0; // es una factura ced = txtRUC.Text; numFactura = num; Console.Write("num fact " + numFactura); cedEmpleado = MetodosBD.retornaCedulaEmpleado(txtEmpleado.Text); subT = Convert.ToDouble(txtSubTotal.Text); I = Convert.ToDouble(txtIva.Text); T = Convert.ToDouble(txtTotal.Text); string cod = ""; string prod = ""; int cant = 0; double precio = 0; double total = 0; MetodosBD.InsertarFacturaC(numFactura, ced, cedEmpleado, fechaActual, subT, I, T, false); for (int count = 0; count < dataGridViewFactura.Rows.Count; count++) { cod = (string)dataGridViewFactura.Rows[count].Cells["columnProducto"].Value; prod = MetodosBD.buscarCodigoProducto(cod); cant = (int)dataGridViewFactura.Rows[count].Cells["columnCantidad"].Value; precio = (double)dataGridViewFactura.Rows[count].Cells["columnPrecioUnit"].Value; total = (double)dataGridViewFactura.Rows[count].Cells["columnTotal"].Value; MetodosBD.InsertarDetalleFactura(numFactura, prod, cant, precio, total); } string n = lblNumFact.Text; // aqui obtengo el numero de factura FormFacturaC form = new FormFacturaC(); ReportDocument oRep = new ReportDocument(); ParameterField pf = new ParameterField(); ParameterFields pfs = new ParameterFields(); ParameterDiscreteValue pdv = new ParameterDiscreteValue(); pf.Name = "@numFact"; pdv.Value = n; pf.CurrentValues.Add(pdv); pfs.Add(pf); form.crystalReportViewer1.ParameterFieldInfo = pfs; oRep.Load(@"C:\Users\Usuario\Documents\GitHub\ProyectoProgramacion5\ProyectoProgV\ProyectoProgV\Presentacion\reporteFacturaCliente2.rpt"); oRep.ExportToDisk(ExportFormatType.PortableDocFormat, @"C:\Users\Usuario\Documents\GitHub\ProyectoProgramacion5\Facturas\Factura Nro." + n + ".pdf"); form.crystalReportViewer1.ReportSource = oRep; form.Show(); txtCliente.Text = ""; txtRUC.Text = ""; txtDireccion.Text = ""; txtTelefono.Text = ""; lblNumFact.Text = ""; dataGridViewProducto.ClearSelection(); dataGridViewFactura.Rows.Clear(); txtSubTotal.Text = ""; txtIva.Text = ""; txtTotal.Text = ""; rbFactura.Enabled = false; rbConsumidorFinal.Enabled = false; rbCodigo.Enabled = false; rbProducto.Enabled = false; txtBusqueda.Enabled = false; dataGridViewProducto.Enabled = false; btnGuardar.Enabled = false; btnAgregarProducto.Enabled = false; txtCantidad.Enabled = false; txtEmpleado.Text = Login.ROL; consumidorF = false; urlEnvio = "C:\\Users\\Usuario\\Documents\\GitHub\\ProyectoProgramacion5\\Facturas\\Factura Nro." + n + ".pdf"; //creamos nuestro objeto de la clase que hicimos email = MetodosBD.buscarEmailCliente(txtRUC.Text); btnEnviar.Enabled = true; EnviarMail oMail = new EnviarMail(); bool resultado = oMail.enviarCorreo("Gracias por comprar Att. Code Enterprise ", "Facturacion", email, urlEnvio); if (resultado) { MessageBox.Show("Mensaje enviado"); } else { MessageBox.Show("Mensaje no enviado"); } } } else { MessageBox.Show("Falta datos de Productos", "Mensaje de advertencia"); } } }
protected void Button1_Click2(object sender, EventArgs e) { DB.Conectar(); DB.CrearComando("select servidorSMTP,puertoSMTP,sslSMTP,userSMTP,passSMTP,dirdocs,emailEnvio from Par_ParametrosSistema"); DbDataReader DR1 = DB.EjecutarConsulta(); while (DR1.Read()) { servidor = DR1[0].ToString(); puerto = Convert.ToInt32(DR1[1].ToString()); ssl = Convert.ToBoolean(DR1[2].ToString()); emailCredencial = DR1[3].ToString(); passCredencial = DR1[4].ToString(); RutaDOC = DR1[5].ToString(); emailEnviar = DR1[6].ToString(); } DB.Desconectar(); string emails = ""; string asunto = ""; string mensaje = ""; //string temp = ""; Boolean bCHK = false; DB.Desconectar(); consulta = ""; cantidad = gvFacturas.Rows.Count; foreach (GridViewRow row in gvFacturas.Rows) { CheckBox chk_Seleccionar = (CheckBox)row.FindControl("check"); HiddenField hd_SeleccionaPDF = (HiddenField)row.FindControl("checkHdPDF"); HiddenField hd_SeleccionarXML = (HiddenField)row.FindControl("checkHdXML"); Label l_Label2 = (Label)row.FindControl("Label2"); // Label l_Label4 = (Label)row.FindControl("Label4"); Label l_Label5 = (Label)row.FindControl("Label5"); Label l_Label1 = (Label)row.FindControl("Label1"); EM = new EnviarMail(); EM.servidorSTMP(servidor, puerto, ssl, emailCredencial, passCredencial); if (chk_Seleccionar.Checked) { bCHK = true; emails = ""; if (chkReglas.Checked) { if (!l_Label2.Text.Trim().Equals("9999999999999")) { DB.Conectar(); DB.CrearComando("select emailsRegla from Cat_EmailsReglas where Receptor=@rfcrec and estadoRegla=1"); DB.AsignarParametroCadena("@rfcrec", l_Label2.Text.Trim()); DbDataReader DR3 = DB.EjecutarConsulta(); if (DR3.Read()) { emails = DR3[0].ToString(); } } } emails = tbEmail.Text + "," + emails; emails = emails.Trim(); emails = emails.Trim(','); if (checkPDF.Checked) { EM.adjuntar(RutaDOC + hd_SeleccionaPDF.Value.ToString().Replace("docus/", "")); } if (checkXML.Checked) { EM.adjuntar(RutaDOC + hd_SeleccionarXML.Value.ToString().Replace("docus/", "")); } if (emails.Length > 15) { asunto = "Documento electrónico No: " + l_Label5.Text + " de DeCameron Ecuador"; mensaje = @"Estimado(a) cliente; <br> Acaba de recibir su documento electrónico generado el " + l_Label1.Text + @"<br> con folio No: " + l_Label5.Text + "."; mensaje += "<br><br>Saludos cordiales, "; mensaje += "<br>Hotel DeCameron Ecuador, "; mensaje += "<br><br>Servicio proporcionado por DataExpress Latinoamerica"; EM.llenarEmail(emailEnviar, emails.Trim(','), "", "", asunto, mensaje); try { EM.enviarEmail(); lbMsgZip.Text = "E-Mail enviado"; } catch (System.Net.Mail.SmtpException ex) { DB.Desconectar(); DB.Conectar(); DB.CrearComando(@"insert into Log_ErrorFacturas (detalle,fecha,archivo,linea,numeroDocumento,tipo) values (@detalle,@fecha,@archivo,@linea,@numeroDocumento,@tipo)" ); DB.AsignarParametroCadena("@detalle", ex.Message.Replace("'", "''")); DB.AsignarParametroCadena("@fecha", System.DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss")); DB.AsignarParametroCadena("@archivo", ""); DB.AsignarParametroCadena("@linea", ""); DB.AsignarParametroCadena("@tipo", "E-Mail"); DB.AsignarParametroCadena("@numeroDocumento", l_Label5.Text + " "); DB.EjecutarConsulta1(); DB.Desconectar(); lbMsgZip.Text = ex.Message; } } else { lbMsgZip.Text = "Tienes seleccionar algún E-Mail"; } } } if (!bCHK) { lbMsgZip.Text = "Debes seleccionar una factura"; } }
protected void Button1_Click2(object sender, EventArgs e) { string emails = ""; string emailEnviar = ""; string asunto = ""; string mensaje = ""; string FOLFAC = ""; string SERFAC = ""; string FECHEMI = ""; string servidor = ""; int puerto = 25; Boolean ssl = false; string emailCredencial = ""; string passCredencial = ""; string RutaDOC = ""; string RFCREC = ""; ArrayList Arraycons = new ArrayList(); string[] cons; DB.Conectar(); DB.CrearComando("select servidorSMTP,puertoSMTP,sslSMTP,userSMTP,passSMTP,dirdocs,emailEnvio from ParametrosSistema"); DbDataReader DR1 = DB.EjecutarConsulta(); while (DR1.Read()) { servidor = DR1[0].ToString(); puerto = Convert.ToInt32(DR1[1].ToString()); ssl = Convert.ToBoolean(DR1[2].ToString()); emailCredencial = DR1[3].ToString(); passCredencial = DR1[4].ToString(); RutaDOC = DR1[5].ToString(); emailEnviar = DR1[6].ToString(); } DB.Desconectar(); consulta = ""; DT.Clear(); if (tbFolioAnterior.Text.Length != 0) { if (consulta.Length != 0) { consulta = consulta + "FA" + tbFolioAnterior.Text + separador; } else { consulta = "FA" + tbFolioAnterior.Text + separador; } } if (tbNombre.Text.Length != 0) { if (consulta.Length != 0) { consulta = consulta + "RS" + tbNombre.Text + separador; } else { consulta = "RS" + tbNombre.Text + separador; } } if (tbRFC.Text.Length != 0) { if (consulta.Length != 0) { consulta = consulta + "RF" + tbRFC.Text + separador; } else { consulta = "RF" + tbRFC.Text + separador; } } if (tbSerie.Text.Length != 0) { if (consulta.Length != 0) { consulta = consulta + "SE" + tbSerie.Text + separador; } else { consulta = "SE" + tbSerie.Text + separador; } } /* if (ddlTipoDocumento.SelectedIndex != 0) * { * if (consulta.Length != 0) { consulta = consulta + "TD" + ddlTipoDocumento.SelectedValue + separador; } * else { consulta = "TD" + ddlTipoDocumento.SelectedValue + separador; } * }*/ if (ddlSucursal.SelectedIndex != 0) { if (consulta.Length != 0) { consulta = consulta + "SU" + ddlSucursal.SelectedValue + separador; } else { consulta = "SU" + ddlSucursal.SelectedValue + separador; } } if (!calFechaAnterior.SelectedDate.ToString("yyyyMMdd").Equals("00010101") && !calFechaFin.SelectedDate.ToString("yyyyMMdd").Equals("00010101") ) { if (consulta.Length != 0) { consulta = consulta + "DA" + calFechaAnterior.SelectedDate.ToString("MM/dd/yyyy") + separador; } else { consulta = "DA" + calFechaAnterior.SelectedDate.ToString("MM/dd/yyyy") + separador; } } if (!calFechaFin.SelectedDate.ToString("yyyyMMdd").Equals("00010101") && !calFechaAnterior.SelectedDate.ToString("yyyyMMdd").Equals("00010101") ) { if (consulta.Length != 0) { consulta = consulta + "DF" + calFechaFin.SelectedDate.ToString("MM/dd/yyyy") + separador; } else { consulta = "DF" + calFechaFin.SelectedDate.ToString("MM/dd/yyyy") + separador; } } if (consulta.Length != 0) { //if (((String)Session["coFactTodas"])=="") { miSucursal = "S---"; } else { miSucursal = (String)Session["sucursalUser"]; } // miSucursal = "S---"; consulta = consulta.Substring(0, consulta.Length - 1); } if (Convert.ToBoolean(Session["coFactTodas"])) { aux = "1"; } else { aux = "0"; } string a = "sucursal" + (String)Session["sucursalUser"] + " cliente" + (String)Session["rfcCliente"]; DB.Conectar(); DB.CrearComandoProcedimiento("PA_facturasInv_basico_rec"); DB.AsignarParametroProcedimiento("@QUERY", System.Data.DbType.String, consulta); DB.AsignarParametroProcedimiento("@SUCURSAL", System.Data.DbType.String, (String)Session["sucursalUser"]); DB.AsignarParametroProcedimiento("@RFC", System.Data.DbType.String, (String)Session["rfcCliente"]); DB.AsignarParametroProcedimiento("@ROL", System.Data.DbType.Byte, Convert.ToByte(aux)); DB.AsignarParametroProcedimiento("@MODULO", System.Data.DbType.String, (String)modulo); DbDataReader DR = DB.EjecutarConsulta(); while (DR.Read()) { cons = new string[5]; RFCREC = DR[0].ToString(); FOLFAC = DR[3].ToString(); SERFAC = DR[2].ToString(); FECHEMI = DR[5].ToString(); //emails = DR[11].ToString(); cons[0] = RFCREC; cons[1] = FOLFAC; cons[2] = SERFAC; cons[3] = FECHEMI; cons[4] = emails; Arraycons.Add(cons); } DB.Desconectar(); foreach (string[] datFact in Arraycons) { DB.Conectar(); DB.CrearComando("select emailsRegla from EmailsReglas where Receptor=@rfcrec and estadoRegla=1"); DB.AsignarParametroCadena("@rfcrec", datFact[0]); DbDataReader DR3 = DB.EjecutarConsulta(); if (DR3.Read()) { emails = DR3[0].ToString(); } DB.Desconectar(); if (emails.Length > 1) { EM = new EnviarMail(); EM.servidorSTMP(servidor, puerto, ssl, emailCredencial, passCredencial); if (ddlDocumentosEnviar.SelectedValue == "2") { EM.adjuntar(RutaDOC + datFact[0] + "_" + datFact[1] + datFact[2] + ".pdf"); } else if (ddlDocumentosEnviar.SelectedValue == "1") { EM.adjuntar(RutaDOC + datFact[0] + "_" + datFact[1] + datFact[2] + ".xml"); } if (ddlDocumentosEnviar.SelectedValue == "0") { EM.adjuntar(RutaDOC + datFact[0] + "_" + datFact[1] + datFact[2] + ".xml"); EM.adjuntar(RutaDOC + datFact[0] + "_" + datFact[1] + datFact[2] + ".pdf"); } if (emails.Length != 0) { asunto = "Factura con folio" + datFact[1] + datFact[2] + " de BDI de México"; mensaje = @"Buenas! <br> Acabas de Recibir tu factura generada el" + datFact[3] + @"<br> con folio" + datFact[1] + datFact[2] + "."; mensaje += "<br>Saludos cordiales "; mensaje += "<br>BDI Distribuciones de Mexico S. de R.L. de C.V. "; mensaje += "<br><br>Servicio proporcionado por DataExpress"; EM.llenarEmail(emailEnviar, (datFact[4].Trim(',') + "," + emails.Trim(',')).Trim(','), "", "", asunto, mensaje); try { EM.enviarEmail(); lMensaje.Text = "Email enviado"; } catch (System.Net.Mail.SmtpException ex) { //setMsj(ex.Message); DB.Desconectar(); DB.Conectar(); DB.CrearComando(@"insert into LogErrorFacturas (detalle,fecha,archivo,linea,numeroDocumento,tipo) values (@detalle,@fecha,@archivo,@linea,@numeroDocumento,@tipo)"); DB.AsignarParametroCadena("@detalle", ex.Message); DB.AsignarParametroCadena("@fecha", System.DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss")); DB.AsignarParametroCadena("@archivo", ""); DB.AsignarParametroCadena("@linea", ""); DB.AsignarParametroCadena("@tipo", "E-mail"); DB.AsignarParametroCadena("@numeroDocumento", datFact[1] + datFact[2]); DB.EjecutarConsulta1(); DB.Desconectar(); } } } } }