예제 #1
0
        public void ValidaCorreo()
        {
            DatosCorreo dCorreo = new DatosCorreo();

            dCorreo = conexion.ConsultaDatosCorreo();

            //Se valida que sea el momento de enviar los correos
            if (conexion.ValidaDiaCorreo(dCorreo.DiasAntes))
            {
                //Actualizamos ultima ejecución
                conexion.ActualizaUltimoCorreo();

                EnviarCorreo enviaCorreo = new EnviarCorreo();

                DataSet       datosCliente = conexion.TraerClientesDelMesSiguiente("");
                List <String> listaCorreos = new List <string>();

                foreach (DataRow dr in datosCliente.Tables[0].Rows)
                {
                    String temporal = dr["EMAIL"].ToString();
                    listaCorreos.Add(temporal);
                }
                if (listaCorreos.Count > 0)
                {
                    //String direccionImagen = Server.MapPath("/Imagenes/Correo/image.jpg");
                    //enviaCorreo.Enviar(listaCorreos, direccionImagen);
                    enviaCorreo.Enviar(listaCorreos, dCorreo.SMTP_IMAGEN);
                }
            }
        }
예제 #2
0
        public void Notification()
        {
            var     cookie    = Request["custom"];
            Manager m         = new Manager();
            var     inscritos = m.CreateCorredores(cookie);

            foreach (var item in inscritos)
            {
                DatosCorreo data = new DatosCorreo();
                data.NumCorredor      = item.Folio;
                data.Nombre           = item.Nombres;
                data.Paterno          = item.Paterno;
                data.Materno          = item.Materno;
                data.Edad             = item.Edad;
                data.Telefono         = item.Telefono;
                data.Celular          = item.Celular;
                data.Correo           = item.Correo;
                data.Sexo             = item.Sexo;
                data.Talla            = item.Talla;
                data.Carrera          = m.GetCarreraById(item.IdCarrera).Descripcion;
                data.ConfirmacionPago = item.ConfirmacionPago;
                var body = RenderViewToString(data);
                m.SendMail(item, body);
            }
        }
예제 #3
0
        public static List <DatosCorreo> BDI_DatosCorreoGetByDC_CodTrans(string codtrans)
        {
            List <DatosCorreo> datosCorreos = new List <DatosCorreo>();

            try
            {
                DataSet dataSet = HelperGlobal.ws.BDI_DatosCorreoGetByDC_CodTrans(codtrans);
                if (dataSet.Tables.Count != 0)
                {
                    DataTable item = dataSet.Tables[0];
                    if (item.Rows.Count != 0)
                    {
                        if ((item.TableName == "SqlException" ? true : item.TableName == "Exception"))
                        {
                            throw new IBException(item.Rows[0]["NumeroError"].ToString().Trim(), "SQLIB");
                        }
                        foreach (DataRow row in item.Rows)
                        {
                            datosCorreos.Add(DatosCorreo.getNewDatosCorreo(row));
                        }
                    }
                }
            }
            catch (WebException webException)
            {
                throw new IBException(webException.Message, "SQLIB");
            }
            return(datosCorreos);
        }
예제 #4
0
        public RedirectToRouteResult CreateRunner(Corredor corredor)
        {
            m.CreateCorredor(corredor);

            DatosCorreo data = new DatosCorreo();

            data.NumCorredor      = corredor.Folio;
            data.Nombre           = corredor.Nombres;
            data.Paterno          = corredor.Paterno;
            data.Materno          = corredor.Materno;
            data.Edad             = corredor.Edad;
            data.Telefono         = corredor.Telefono;
            data.Celular          = corredor.Celular;
            data.Correo           = corredor.Correo;
            data.Sexo             = corredor.Sexo;
            data.Talla            = corredor.Talla;
            data.Carrera          = m.GetCarreraById(corredor.IdCarrera).Descripcion;
            data.ConfirmacionPago = corredor.ConfirmacionPago;
            InscripcionController contr = new InscripcionController();
            var body = contr.RenderViewToString(data);

            m.SendMail(corredor, body);

            return(RedirectToAction("Index"));
        }
예제 #5
0
        public String ActualizaDatosCorreo(DatosCorreo datoscorreo)
        {
            string resultado = "OK";

            try
            {
                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.SMTP_CORREO + "' where nombre = 'SMTP_CORREO'");
                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.SMTP_PASS + "' where nombre = 'SMTP_PASS'");

                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.SMTP_MENSAJE + "' where nombre = 'SMTP_MENSAJE'");
                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.SMTP_IMAGEN + "' where nombre = 'IMAGENCORREO'");

                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.SMTP_SUJETO + "' where nombre = 'SMTP_SUJETO'");
                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.SMTP_SSL + "' where nombre = 'SMTP_SSL'");

                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.SMTP_HOST + "' where nombre = 'SMTP_HOST'");
                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.SMTP_PUERTO + "' where nombre = 'SMTP_PUERTO'");

                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.UltimoEnvio + "' where nombre = 'ULTIMOENVIO'");
                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.DiasAntes + "' where nombre = 'DIASANTESDEENVIO'");

                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.PRUEBAS + "' where nombre = 'PRUEBAS'");
                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.SMTP_CORREO_PRUEBA + "' where nombre = 'SMTP_CORREO_PRUEBA'");

                EjecutaQueryInsert("update " + esquema + ".configuracion set valor = '" + datoscorreo.ENV_ESTADO + "' where nombre = 'ENV_CORREO_A'");
            }
            catch (Exception ex)
            {
                resultado = ex.InnerException.Message;
            }

            return(resultado);
        }
        public bool enviarCorreo()
        {
            try
            {
                Comando <List <Entidad> > comando = LogicaCC.Fabrica.FabricaComandos.CrearConsultarTodosVentas();
                List <Entidad>            venta   = comando.Ejecutar();

                foreach (Venta LaVenta in venta)
                {
                    DatosCorreo _datosCorreo =
                        (DatosCorreo)FabricaEntidades.ObtenerDatosCorreo("Recordatorio de Pao", LaVenta.Mail,
                                                                         "mensaje");

                    /*if (vista.adjunto != String.Empty)
                     * {
                     *  _datosCorreo.adjunto = RecursoPresentadorM8.rutaFacturas + vista.adjunto;
                     * }*/

                    Comando <bool> _comandoCorreo = FabricaComandos.CrearEnviarCorreo(_datosCorreo);

                    return(_comandoCorreo.Ejecutar());
                }
                return(true);
            }
            catch (ExceptionsCity ex)
            {
                vista.alertaClase = RecursoPresentadorVenta.alertaError;
                vista.alertaRol   = RecursoPresentadorVenta.tipoAlerta;
                vista.alerta      = RecursoPresentadorVenta.alertaHtml + ex.Mensaje + ex.Excepcion.InnerException.Message
                                    + RecursoPresentadorVenta.alertaHtmlFinal;
                return(false);
            }
        }
        /// <summary>
        /// Método para enviar el correo con sus datos
        /// </summary>
        public bool enviarCorreo()
        {
            try
            {
                DatosCorreo _datosCorreo =
                    (DatosCorreo)FabricaEntidades.ObtenerDatosCorreo(vista.asunto, vista.destinatario,
                                                                     vista.mensaje);

                if (vista.adjunto != String.Empty)
                {
                    _datosCorreo.adjunto = RecursoPresentadorM8.rutaFacturas + vista.adjunto;
                }

                Comando <bool> _comandoCorreo = FabricaComandos.CrearComandoEnviarCorreoGmail(_datosCorreo);

                return(_comandoCorreo.Ejecutar());;
            }
            catch (ExcepcionesTangerine.ExceptionsTangerine ex)
            {
                vista.alertaClase = RecursoPresentadorM8.alertaError;
                vista.alertaRol   = RecursoPresentadorM8.tipoAlerta;
                vista.alerta      = RecursoPresentadorM8.alertaHtml + ex.Mensaje + ex.Excepcion.InnerException.Message
                                    + RecursoPresentadorM8.alertaHtmlFinal;
                return(false);
            }
        }
예제 #8
0
        protected void btnActualizarCorreo_Click(object sender, EventArgs e)
        {
            DatosCorreo datoscorreo = new DatosCorreo();

            datoscorreo.SMTP_CORREO  = txtCorreo.Text;
            datoscorreo.SMTP_PASS    = txtCorreoContraseña.Text;
            datoscorreo.SMTP_MENSAJE = txtMensaje.Text;
            //datoscorreo.SMTP_IMAGEN = txtImagen.Text;
            datoscorreo.SMTP_SUJETO        = txtSujeto.Text;
            datoscorreo.SMTP_SSL           = txtSSL.Text;
            datoscorreo.SMTP_HOST          = txtHost.Text;
            datoscorreo.SMTP_PUERTO        = txtPuerto.Text;
            datoscorreo.UltimoEnvio        = txtUltimoC.Text;
            datoscorreo.DiasAntes          = txtDiasAntes.Text;
            datoscorreo.SMTP_CORREO_PRUEBA = txtCorreoPrueba.Text;

            datoscorreo.PRUEBAS    = (chkPruebas.Checked ? "1" : "0");
            datoscorreo.ENV_ESTADO = ddlEnvCorreo.SelectedValue;    // cambie en Clase DatosCorreo.cs

            datoscorreo.SMTP_IMAGEN = "";
            if (uploadImgCorreo.HasFile)
            {
                string nombreArchivo = uploadImgCorreo.FileName;
                string ruta          = "Imagenes/Correo/" + nombreArchivo;
                uploadImgCorreo.SaveAs(Server.MapPath(ruta));

                datoscorreo.SMTP_IMAGEN = ruta;
            }

            String resultado = connMysql.ActualizaDatosCorreo(datoscorreo);


            sombraMensaje.Visible = true;
            mostrarMensaje((resultado.Trim().Equals("OK") ? "Datos de correo actualizado exitosamente" : resultado));
        }
예제 #9
0
        public bool enviarCorreo()
        {
            try
            {
                Venta ElCorreo = (Venta)FabricaEntidades.VentaVacia();

                ElCorreo.Mail     = vista.Mail;
                ElCorreo.Id_Venta = int.Parse(vista.VenId.ToString());
                ElCorreo.Estatus  = vista.Status;
                DatosCorreo _datosCorreo =
                    (DatosCorreo)FabricaEntidades.ObtenerDatosCorreo("Verificacion de su pago"
                                                                     , ElCorreo.Mail, "Estimado Cliente, su pago fue recibido y clasificado como " + ElCorreo.Estatus
                                                                     + ". Si tiene dudas puede comunicarce a [email protected]. ", ElCorreo.Id_Venta);

                /*if (vista.adjunto != String.Empty)
                 * {
                 *  _datosCorreo.adjunto = RecursoPresentadorM8.rutaFacturas + vista.adjunto;
                 * }*/

                Comando <bool> _comandoCorreo = FabricaComandos.CrearEnviarCorreo(_datosCorreo);

                return(_comandoCorreo.Ejecutar());

                //Comando<List<Entidad>> comando = LogicaCC.Fabrica.FabricaComandos.CrearConsultarTodosVentas();
                //List<Entidad> venta = comando.Ejecutar();
            }
            catch (ExceptionsCity ex)
            {
                vista.alertaClase = RecursoPresentadorVenta.alertaError;
                vista.alertaRol   = RecursoPresentadorVenta.tipoAlerta;
                vista.alerta      = RecursoPresentadorVenta.alertaHtml + ex.Mensaje + ex.Excepcion.InnerException.Message
                                    + RecursoPresentadorVenta.alertaHtmlFinal;
                return(false);
            }
        }
        public void PruebaConstructorObtenerDatosCorreo3()
        {
            _datosCorreo = (DatosCorreo)FabricaEntidades.ObtenerDatosCorreo(_asunto, _destinatario, _mensaje, _adjunto);

            Assert.AreEqual(_datosCorreo.adjunto, _adjunto);
            Assert.AreEqual(_datosCorreo.Id, 0);
            Assert.AreEqual(_datosCorreo.asunto, _asunto);
            Assert.AreEqual(_datosCorreo.destinatario, _destinatario);
            Assert.AreEqual(_datosCorreo.mensjae, _mensaje);
        }
        public void PruebaConstructorObtenerDatosCorreo1()
        {
            _datosCorreo = (DatosCorreo)FabricaEntidades.ObtenerDatosCorreo();

            Assert.AreEqual(_datosCorreo.adjunto, String.Empty);
            Assert.AreEqual(_datosCorreo.Id, 0);
            Assert.AreEqual(_datosCorreo.asunto, String.Empty);
            Assert.AreEqual(_datosCorreo.destinatario, String.Empty);
            Assert.AreEqual(_datosCorreo.mensjae, String.Empty);
        }
예제 #12
0
        public ManejadorCorreos(string correoReceptor, string asunto)
        {
            string correoEmisor    = ConfigurationManager.AppSettings["correoEmisor"];
            string smtpCliente     = ConfigurationManager.AppSettings["smtpCliente"];
            string puertoCorreo    = ConfigurationManager.AppSettings["puertoCorreo"];
            string nombreRemitente = ConfigurationManager.AppSettings["nombreRemitente"];
            string claveCorreo     = ConfigurationManager.AppSettings["claveCorreo"];

            DatosCorreo = new DatosCorreo(correoEmisor, correoReceptor, smtpCliente, puertoCorreo, nombreRemitente, asunto, claveCorreo);
        }
예제 #13
0
 public void EnviarCorreoAsincrono(DatosCorreo datosCorreo)
 {
     try
     {
         EnviarCorreoConHtml_Delegate delegado = new EnviarCorreoConHtml_Delegate(EnviarCorreo);
         delegado.BeginInvoke(datosCorreo, null, null);
     }
     catch (Exception excepcion)
     {
         throw new Exception(excepcion.Message);
     }
 }
예제 #14
0
        /// <summary>
        /// Metodo que ejecuta el comando
        /// </summary>
        /// <returns>booleano que refleja el exito de la ejecucion del comando</returns>
        public override bool Ejecutar()
        {
            try
            {
                DatosCorreo _datosCorreo = (DatosCorreo)LaEntidad;

                Correo      cr   = new Correo();
                MailMessage mnsj = new MailMessage();
                mnsj.From = new MailAddress(ResourceLogica.systemmail, ResourceLogica.SysName);


                mnsj.Subject = _datosCorreo.asunto;
                //mnsj.From = new MailAddress(ResourcesLogic.systemmail, ResourcesLogic.SysName);
                mnsj.Body = _datosCorreo.mensjae;
                /* Si deseamos Adjuntar algún archivo*/
                if (_datosCorreo.adjunto != String.Empty)
                {
                    mnsj.Attachments.Add(new Attachment(_datosCorreo.adjunto));
                }

                string[]      mailArray = _datosCorreo.destinatario.Split(',');
                List <string> mailsList = new List <string>(mailArray.Length);
                mailsList.AddRange(mailArray);
                mailsList.Reverse();

                foreach (String value in mailsList)
                {
                    IsValid(value);
                    mnsj.To.Add(value);
                }

                cr.mandarCorreo(mnsj);
                IDao dao       = FabricaDAOSqlServer.crearDaoVenta();
                bool respuesta = dao.Desactivar(this.LaEntidad);
                return(respuesta);
            }
            catch (ArgumentNullException ex)
            {
                throw new NullArgumentException(ResourcesLogic.Codigo,
                                                ResourcesLogic.Mensaje, ex);
            }
            catch (FormatException ex)
            {
                throw new WrongFormatException(ResourcesLogic.Codigo,
                                               ResourcesLogic.Mensaje_Error_Formato, ex);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #15
0
        public ActionResult ConfirmarPago(DatosCorreo datosCorreo)
        {
            JObject resultado = new JObject();

            try
            {
                CD_Viajeros cdViajeros = new CD_Viajeros();
                if (cdViajeros.ConfirmarViaje(Session["UserID"].ToString()))
                {
                    resultado["Exito"] = true;
                }


                //                clsCorreo test = new clsCorreo();
                //                test.pruebaCorreo(Session["UserID"].ToString());

                //EMPIEZA EL ENVÍO DEL CORREO


                TO_Usuario usuarioObtenido = new TO_Usuario();
                CD_Usuario objetoUsuario   = new CD_Usuario();

                TO_Salida objetoSalida = new TO_Salida();
                CD_Salida salida       = new CD_Salida();


                TO_Viajes objetoViaje = new TO_Viajes();
                CD_Viajes viajes      = new CD_Viajes();

                objetoViaje = viajes.obtenerViaje(datosCorreo.fechaSalida);


                TO_Destino  objetoDestino = new TO_Destino();
                CD_Destinos destino       = new CD_Destinos();

                usuarioObtenido = objetoUsuario.fnObtenerDatosUsuario(Session["UserID"].ToString());
                objetoSalida    = salida.obtenerNombreSalida(datosCorreo.lugarSalida);
                objetoDestino   = destino.obtenerNombreDestino(objetoViaje.Id_Destino);

                clsCorreo test = new clsCorreo();
                test.pruebaCorreo(Session["UserID"].ToString(), usuarioObtenido.Nombre, usuarioObtenido.Apellidos, usuarioObtenido.Telefono, datosCorreo.numeroViajeros, datosCorreo.montoOperacion, objetoSalida.Ciudad, objetoDestino.Destino, objetoViaje.dtFechaSalida.ToString());


                //TERMINA EL ENVÍO DEL CORREO
            }
            catch (Exception x)
            {
                resultado["Exito"] = false;
            }
            return(Content(resultado.ToString()));
        }
예제 #16
0
        /// <summary>
        /// Metodo que ejecuta el comando
        /// </summary>
        /// <returns>booleano que refleja el exito de la ejecucion del comando</returns>
        public override bool Ejecutar()
        {
            try
            {
                DatosCorreo _datosCorreo = (DatosCorreo)LaEntidad;

                CorreoGmailM8 cr   = new CorreoGmailM8();
                MailMessage   mnsj = new MailMessage();

                mnsj.Subject = _datosCorreo.asunto;
                mnsj.From    = new MailAddress(ResourceLogicaM8.systemmail, ResourceLogicaM8.SysName);
                mnsj.Body    = _datosCorreo.mensjae;
                /* Si deseamos Adjuntar algún archivo*/
                if (_datosCorreo.adjunto != String.Empty)
                {
                    mnsj.Attachments.Add(new Attachment(_datosCorreo.adjunto));
                }

                string[]      mailArray = _datosCorreo.destinatario.Split(',');
                List <string> mailsList = new List <string>(mailArray.Length);
                mailsList.AddRange(mailArray);
                mailsList.Reverse();

                foreach (String value in mailsList)
                {
                    IsValid(value);
                    mnsj.To.Add(value);
                }
                cr.mandarCorreo(mnsj);

                return(true);
            }
            catch (ArgumentNullException ex)
            {
                Logger.EscribirError(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name, ex);
                throw new ExcepcionesTangerine.M4.NullArgumentException(ResourceLogicaM8.Codigo,
                                                                        ResourceLogicaM8.Mensaje, ex);
            }
            catch (FormatException ex)
            {
                Logger.EscribirError(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name, ex);

                throw new ExcepcionesTangerine.M8.WrongFormatException(ResourceLogicaM8.Codigo,
                                                                       ResourceLogicaM8.Mensaje_Error_Formato, ex);
            }
            catch (Exception ex)
            {
                Logger.EscribirError(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name, ex);
                throw ex;
            }
        }
예제 #17
0
        /// <summary>
        /// Ejecuta el metodo de envio de correo
        /// </summary>
        /// <param name="parametros"></param>
        private void EjecutaCorreo(object parametros)
        {
            DatosCorreo datosCorreo = parametros as DatosCorreo;

            if (!TipoCorreo(datosCorreo))
            {
                if (Mail.errorCorreo.Equals(""))
                {
                    AdminEventosUI.mostrarMensaje(Mensaje.errConfErroneaCorreo, AdminEventosUI.tipoMensajes.error);
                }
                else
                {
                    AdminEventosUI.mostrarMensaje(Mensaje.err + Mail.errorCorreo, AdminEventosUI.tipoMensajes.error);
                }
            }
        }
        public void Reset()
        {
            _laFactura     = null;
            _laEntidad     = null;
            _monto         = 0;
            _montoRestante = 0;
            _tipoMoneda    = String.Empty;
            _descripcion   = String.Empty;
            _estatus       = 0;
            _idProyecto    = 0;
            _idCompania    = 0;
            _idEntidad     = 0;

            _datosCorreo  = null;
            _asunto       = String.Empty;
            _destinatario = String.Empty;
            _mensaje      = String.Empty;
            _adjunto      = String.Empty;
        }
예제 #19
0
        protected void cargaCorreo()
        {
            DatosCorreo datosCorreo = connMysql.ConsultaDatosCorreo();

            txtCorreo.Text           = datosCorreo.SMTP_CORREO;
            txtCorreoContraseña.Text = datosCorreo.SMTP_PASS;
            txtMensaje.Text          = datosCorreo.SMTP_MENSAJE;
            //txtImagen.Text = datosCorreo.SMTP_IMAGEN;
            txtSujeto.Text    = datosCorreo.SMTP_SUJETO;
            txtSSL.Text       = datosCorreo.SMTP_SSL;
            txtHost.Text      = datosCorreo.SMTP_HOST;
            txtPuerto.Text    = datosCorreo.SMTP_PUERTO;
            txtUltimoC.Text   = datosCorreo.UltimoEnvio;
            txtDiasAntes.Text = datosCorreo.DiasAntes;
            if (datosCorreo.PRUEBAS.Equals("1"))
            {
                chkPruebas.Checked = true;
            }

            txtCorreoPrueba.Text       = datosCorreo.SMTP_CORREO_PRUEBA;
            ddlEnvCorreo.SelectedValue = datosCorreo.ENV_ESTADO;
        }
        protected void btnEnviarCorreo_Click(object sender, EventArgs e)
        {
            DatosCorreo dCorreo = new DatosCorreo();

            dCorreo = connMySql.ConsultaDatosCorreo();

            connMySql.ActualizaUltimoCorreo();

            EnviarCorreo enviaCorreo = new EnviarCorreo();


            DataSet       datosCliente = connMySql.TraerClientesDelMes("", DateTime.Now.Month);
            List <String> listaCorreos = new List <string>();

            foreach (DataRow dr in datosCliente.Tables[0].Rows)
            {
                String temporal = dr["EMAIL"].ToString();
                listaCorreos.Add(temporal);
            }
            if (listaCorreos.Count > 0)
            {
                String direccionImagen = Server.MapPath("Imagenes/Correo/image.jpg");
                bool   respuesta       = enviaCorreo.Enviar(listaCorreos, direccionImagen);

                if (respuesta)
                {
                    lblMensajeJS.Text = "Los correos se han enviado exitosamente";
                }
                else
                {
                    lblMensajeJS.Text = "Ocurrio un problema al enviar los correo, favor de intentarlo nuevamente.";
                }
            }

            sombraJS.Style.Remove("Display");
            CargaJS.Visible   = false;
            lblMensajeJS.Text = "Los correos se han enviado exitosamente";
            divMensajeJS.Style.Add("Height", "125px");
        }
예제 #21
0
 public ActionResult SuccessEmail(DatosCorreo corredor)
 {
     return(View(corredor));
 }
예제 #22
0
        /// <summary>
        /// Metodo para crear un pdf para los documentos fiscales
        /// </summary>
        /// <returns></returns>
        #region Proceso_WebService
        //public bool CrearPDF(string tabla, DatosPDF datosPDF, List<ResguardoPdf> resguardoPdf, string TablaCabezal)
        #endregion Proceso_WebService
        public bool CrearPDF(string tabla, DatosPDF datosPDF, List <ResguardoPdf> resguardoPdf, string TablaCabezal, string origenFE = null)
        {
            bool resultado  = false;
            int  opcFactura = 0;

            //Nombre del archivo sin extension y ruta
            nombreCompuesto = infoComprobante.TipoCFEInt + infoComprobante.SerieComprobante +
                              infoComprobante.NumeroComprobante;


            if (FrmEstadoContingencia.estadoContingencia.Equals("Y"))
            {
                //Nombre de Archivos con ruta para proceso de firma electronica
                archivoSinFirmar = RutasCarpetas.RutaCarpetaContingenciaComprobantes + nombreCompuesto + "sf.pdf";
                archivoFirmado   = RutasCarpetas.RutaCarpetaContingenciaComprobantes + nombreCompuesto + ".pdf";
            }
            else
            {
                //Nombre de Archivos con ruta para proceso de firma electronica
                archivoSinFirmar = RutasCarpetas.RutaCarpetaComprobantes + nombreCompuesto + "sf.pdf";
                archivoFirmado   = RutasCarpetas.RutaCarpetaComprobantes + nombreCompuesto + ".pdf";
            }

            ManteUdoLogo mante = new ManteUdoLogo();

            rutaLogo = mante.Consultar(true);
            bool estadoAdenda = false;

            try
            {
                //Muestra cursor de espera
                Cursor.Current = Cursors.WaitCursor;
                Document comprobante = new Document(PageSize.A4, 10, 10, 100, 160);      //centenario
                // Document comprobante = new Document(PageSize.A4, 10, 10, 230, 110);                //saint

                //Se crea el archivo que va contener el Pdf
                StreamWriter fac = File.CreateText(archivoSinFirmar);
                fac.Close();

                FileStream docCreado = new FileStream(archivoSinFirmar, FileMode.Open
                                                      , FileAccess.Write);

                //Se crea una instancia para escribir el contenido del pdf en el archivo fisico
                PdfWriter writer = PdfWriter.GetInstance(comprobante, docCreado);

                #region Encabezado y Pie de Pagina

                string domicilioFiscalEmisor = ObtenerDomicilioFiscalEmisor();

                //Se envia la informacion contenida en el encabezado de las paginas
                writer.PageEvent = new ZonasCFE.EventosPagina(infoComprobante, infoCAE, domicilioFiscalEmisor,
                                                              rutaLogo, datosPDF.DocNum); //, datosPDF);//saint

                #endregion Encabezado y Pie de Pagina

                //Se abre el documento pdf a crear
                comprobante.Open();

                ZonasCFE.CuerpoComprobante cuerpoComprobante = new ZonasCFE.CuerpoComprobante();

                bool ticket = ComprobarTicket(infoComprobante.TipoCFEInt);

                #region Receptor

                //Genera la zona de informacion del receptor de la factura
                comprobante = cuerpoComprobante.Receptor(infoComprobante, comprobante, writer, ticket,
                                                         datosPDF);

                #endregion Receptor

                #region Detalle Producto o Servicio

                if (infoComprobante.TipoCFEInt != 182 && infoComprobante.TipoCFEInt != 282)
                {
                    //Verificar el si la factura es para productos o servicios
                    if (infoComprobante.TipoDocumentoSAP.ToString().Equals("Servicio"))
                    {
                        opcFactura = 1;
                    }

                    //Comprueba si hay que agregar la adenda
                    if (Adenda())
                    {
                        estadoAdenda = true;
                    }

                    ///Genera el detalle de productos para la factura;
                    comprobante = cuerpoComprobante.DetalleMercaderia(comprobante, opcFactura, kilosComprobante,
                                                                      tabla, datosPDF, infoComprobante, TablaCabezal);
                }
                else
                {
                    List <ResguardoPdf> listaResguardo = new List <ResguardoPdf>();


                    foreach (ResguardoPdf facturaResguardo in resguardoPdf)
                    {
                        facturaResguardo.FechaFactura = infoComprobante.FechaComprobante;

                        if (datosPDF.DescuentoGeneral > 0)
                        {
                            facturaResguardo.MontoImponible = (double.Parse(facturaResguardo.MontoImponible) - datosPDF.DescuentoGeneral).ToString();
                        }
                        else if (datosPDF.DescuentoExtranjero > 0)
                        {
                            facturaResguardo.MontoImponible = (double.Parse(facturaResguardo.MontoImponible) - datosPDF.DescuentoExtranjero).ToString();
                        }

                        listaResguardo.Add(facturaResguardo);
                    }

                    comprobante = cuerpoComprobante.DetalleResguardo(comprobante, listaResguardo, infoComprobante.FechaComprobante);
                }


                #endregion Detalle Producto o Servicio

                //Se cierran los documentos utilizados
                comprobante.Close();
                docCreado.Close();

                //Firma digitalmente al documento creado
                FirmaDigital firma = new FirmaDigital();

                ManteUdoCertificadoDigital cerDigital = new ManteUdoCertificadoDigital();

                //Se obtiene informacion del certificado digital
                string rutaCertificado = cerDigital.ObtenerRutaCertificado();
                string passCertificado = cerDigital.ObtenerPassCertificado();

                if (rutaCertificado.Equals("") || passCertificado.Equals(""))
                {
                    errorCertificado = true;
                }
                else
                {
                    if (firma.infoCertificado(archivoSinFirmar, archivoFirmado, rutaCertificado, passCertificado))
                    {
                        //Valida que exista la ruta a borrar
                        if (!archivoSinFirmar.Equals(""))
                        {
                            //Borra el archivo pdf sin la firma electronica
                            System.IO.File.Delete(PDFs.archivoSinFirmar);
                        }

                        if (!FrmEstadoContingencia.estadoContingencia.Equals("Y"))
                        {
                            AccionesFueraHilo acciones = new AccionesFueraHilo();

                            #region Proceso_WebService
                            //acciones.Imprimir(archivoFirmado);
                            if (origenFE == null)
                            {
                                acciones.Imprimir(archivoFirmado);
                            }
                            else
                            {
                                string copiaArchivo = archivoFirmado.Replace(RutasCarpetas.RutaCarpetaComprobantes, RutasCarpetas.RutaCarpetaImpresion);
                                System.IO.File.Copy(archivoFirmado, copiaArchivo, false);
                                Program.colaImpresion.Enqueue(copiaArchivo);
                            }
                            #endregion Proceso_WebService

                            DatosCorreo datosCorreo = new DatosCorreo();
                            datosCorreo.CorreoReceptor  = infoComprobante.CorreoReceptor;
                            datosCorreo.EstadoAdenda    = estadoAdenda;
                            datosCorreo.NombreCompuesto = nombreCompuesto;
                            acciones.EjecutarCorreo(datosCorreo);
                            resultado = true;
                        }
                        else
                        {
                            resultado = true;
                        }
                    }
                    else
                    {
                        errorFirma = true;
                    }
                }
            }
            catch (Exception ex)
            {
                SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ERROR: CrearPDF/ " + ex.ToString());
            }
            finally
            {
                //Se quita el cursor de espera
                Cursor.Current = Cursors.AppStarting;
            }

            return(resultado);
        }
예제 #23
0
        public void EnviarCorreo(DatosCorreo datosCorreo)
        {
            try
            {
                MailMessage mail       = new MailMessage();
                SmtpClient  SmtpServer = new SmtpClient(datosCorreo.SmtpCliente);
                mail.From       = new MailAddress(datosCorreo.CorreoEmisor, datosCorreo.NombreRemitente, Encoding.UTF8);
                mail.Subject    = datosCorreo.Asunto;
                mail.Body       = datosCorreo.CuerpoHTML;
                mail.IsBodyHtml = true;
                mail.Priority   = MailPriority.High;

                if (datosCorreo.EsCorreoMultiDestinatario)
                {
                    foreach (string correo in datosCorreo.MultiplesDestinatarios)
                    {
                        mail.To.Add(correo.ToLower());
                    }
                }
                else
                {
                    mail.To.Add(datosCorreo.CorreoReceptor.ToLower());
                }

                bool correoAEnviarConCopiaNoEstaVacio = datosCorreo.CorreoAEnviarConCopia != string.Empty;
                if (correoAEnviarConCopiaNoEstaVacio)
                {
                    MailAddress copy = new MailAddress(datosCorreo.CorreoAEnviarConCopia.ToLower());
                    mail.CC.Add(copy);
                }

                bool correosAEnviarConCopiaNoEstaVacio = datosCorreo.ListadoCorreosAEnviarConCopia.Count > 0;
                if (correosAEnviarConCopiaNoEstaVacio)
                {
                    foreach (string correoCc in datosCorreo.ListadoCorreosAEnviarConCopia)
                    {
                        MailAddress copy = new MailAddress(correoCc.ToLower());
                        mail.CC.Add(copy);
                    }
                }

                bool correoAEnviarConCopiaOcultaNoEstaVacio = datosCorreo.CorreoAEnviarConCopia != string.Empty;
                if (correoAEnviarConCopiaOcultaNoEstaVacio)
                {
                    MailAddress cco = new MailAddress(datosCorreo.CorreoAEnviarConCopiaOculta.ToLower());
                    mail.Bcc.Add(cco);
                }

                bool existeArchivosAdjuntos = datosCorreo.MultiplesRutasDeArchivosAdjuntos.Count > 0;
                if (existeArchivosAdjuntos)
                {
                    foreach (var rutaArchivo in datosCorreo.MultiplesRutasDeArchivosAdjuntos)
                    {
                        Attachment archivoSubir = new Attachment(rutaArchivo);
                        archivoSubir.Name = Path.GetFileName(rutaArchivo);
                        mail.Attachments.Add(archivoSubir);
                    }
                }

                SmtpServer.Port = Convert.ToInt32(datosCorreo.PuertoCorreo);
                SmtpServer.UseDefaultCredentials = false;
                SmtpServer.Credentials           = new System.Net.NetworkCredential(datosCorreo.CorreoEmisor, datosCorreo.ClaveCorreo);
                SmtpServer.EnableSsl             = true;
                SmtpServer.Send(mail);
                mail.Dispose();
            }
            catch (Exception excepcion)
            {
                throw new Exception(excepcion.Message);
            }
        }
예제 #24
0
        public DatosCorreo ConsultaDatosCorreo()
        {
            DatosCorreo resultado = new DatosCorreo();

            try
            {
                connMySql.Open();

                MySqlCommand    mySqlCommand    = new MySqlCommand("Select nombre, valor from " + esquema + ".configuracion ", connMySql);
                MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();

                if (mySqlDataReader.HasRows)
                {
                    while (mySqlDataReader.Read())
                    {
                        switch (mySqlDataReader.GetString(0))
                        {
                        case "SMTP_SSL":
                            resultado.SMTP_SSL = mySqlDataReader.GetString(1);
                            break;

                        case "SMTP_CORREO":
                            resultado.SMTP_CORREO = mySqlDataReader.GetString(1);
                            break;

                        case "SMTP_PASS":
                            resultado.SMTP_PASS = mySqlDataReader.GetString(1);
                            break;

                        case "SMTP_HOST":
                            resultado.SMTP_HOST = mySqlDataReader.GetString(1);
                            break;

                        case "SMTP_PUERTO":
                            resultado.SMTP_PUERTO = mySqlDataReader.GetString(1);
                            break;

                        case "SMTP_SUJETO":
                            resultado.SMTP_SUJETO = mySqlDataReader.GetString(1);
                            break;

                        case "SMTP_MENSAJE":
                            resultado.SMTP_MENSAJE = mySqlDataReader.GetString(1);
                            break;

                        case "ULTIMOENVIO":
                            resultado.UltimoEnvio = mySqlDataReader.GetString(1);
                            break;

                        case "DIASANTESDEENVIO":
                            resultado.DiasAntes = mySqlDataReader.GetString(1);
                            break;

                        case "IMAGENCORREO":
                            resultado.SMTP_IMAGEN = mySqlDataReader.GetString(1);
                            break;

                        case "PRUEBAS":
                            resultado.PRUEBAS = mySqlDataReader.GetString(1);
                            break;

                        case "SMTP_CORREO_PRUEBA":
                            resultado.SMTP_CORREO_PRUEBA = mySqlDataReader.GetString(1);
                            break;

                        case "ENV_CORREO_A":
                            resultado.ENV_ESTADO = mySqlDataReader.GetString(1);
                            break;
                        }
                    }
                }
                mySqlDataReader.Close();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                cerrar_conexion();
            }
            return(resultado);
        }
예제 #25
0
        /// <summary>
        /// Determina que tipo de cuentas de correo utilizar
        /// </summary>
        /// <returns></returns>
        public bool TipoCorreo(DatosCorreo datosCorreo)
        {
            bool resultado = false;

            string contenido = datosCorreo.NombreEmisor + " - " + Mensaje.pdfContenido;
            string asunto    = datosCorreo.NombreEmisor + " " + datosCorreo.TipoCFE + " " + datosCorreo.NombreCompuesto;
            string emisor    = datosCorreo.NombreEmisor + "<{0}>";

            try
            {
                //Se obtiene credenciales para el envio del correo
                ManteUdoCorreos manteUdo = new ManteUdoCorreos();
                Correo          correo   = manteUdo.Consultar();

                if (correo != null)
                {
                    emisor = String.Format(emisor, correo.Cuenta);

                    string[] adjuntos = new string[2];//2

                    //Se agregan las rutas de los archivos adjuntos
                    adjuntos[0] = RutasCarpetas.RutaCarpetaComprobantes + datosCorreo.NombreCompuesto + Mensaje.pdfExt;
                    if (datosCorreo.EstadoAdenda)
                    {
                        adjuntos[1] = CambiarNombre(RutasCarpetas.RutaCarpetaSobresComprobantesAdenda + datosCorreo.NombreCompuesto + ".xml", datosCorreo.NombreCompuesto + ".xml");
                    }
                    else
                    {
                        adjuntos[1] = CambiarNombre(RutasCarpetas.RutaCarpetaSobres + datosCorreo.NombreCompuesto + ".xml", datosCorreo.NombreCompuesto + ".xml");
                    }

                    //0 == Gmail
                    if (correo.Opcion.Equals("0"))
                    {
                        if (!adjuntos[1].Equals(""))
                        {
                            ///Envia correo con una cuenta de gmail

                            /*Mail mail = new Mail(datosCorreo.CorreoReceptor, correo.Cuenta, datosCorreo.NombreCompuesto,
                            *    Mensaje.pdfContenido, Mensaje.pdfServidorGmail, correo.Cuenta, correo.Clave, adjuntos, 587);*/
                            Mail mail = new Mail(datosCorreo.CorreoReceptor, emisor, asunto, contenido, Mensaje.pdfServidorGmail, correo.Cuenta, correo.Clave, adjuntos, 587);
                            if (mail.enviarCorreoGmail())
                            {
                                if (!adjuntos[1].Equals(""))
                                {
                                    //Borra el archivo de sobre copiado para enviar en el correo
                                    System.IO.File.Delete(adjuntos[1]);
                                }
                                resultado = true;
                            }
                        }
                    }
                    //1 == Outlook
                    else if (correo.Opcion.Equals("1"))
                    {
                        if (!adjuntos[1].Equals(""))
                        {
                            ///Envia correo con una cuenta de outlook
                            //Mail mail = new Mail(datosCorreo.CorreoReceptor, Mensaje.pdfAsunto, Mensaje.pdfContenido, adjuntos);
                            Mail mail = new Mail(datosCorreo.CorreoReceptor, asunto, contenido, adjuntos);
                            if (mail.enviarOutlook())
                            {
                                if (!adjuntos[1].Equals(""))
                                {
                                    //Borra el archivo de sobre copiado para enviar en el correo
                                    System.IO.File.Delete(adjuntos[1]);
                                }
                                resultado = true;
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
            }

            return(resultado);
        }
예제 #26
0
 public void CrearCuerpoCorreo(string rutaPlantilla, Dictionary <string, string> diccionarioDatos)
 {
     DatosCorreo.CrearCuerpoCorreo(rutaPlantilla, diccionarioDatos);
 }