protected void btnAsignarPrimero_Click(object sender, EventArgs e)
        {
            using (CobranzasDataContext db = new CobranzasDataContext())
            {
                int idAviso = Convert.ToInt32(Request["idAviso"]);
                //Entidades.Avisos Aviso = db.Avisos.Single(x => x.idAviso == idAviso);
                //Aviso.FechaCancelado = DateTime.Now;
                Int32           Lugar = ((db.Colas.Where(x => x.idOperador == Sesion.Operador.idOperador /*&& x.idPersona == Convert.ToInt32(idPersona.Value)*/).Max(x => (int?)x.Lugar) ?? 1) + 1);
                Entidades.Colas Cola  = db.Colas.SingleOrDefault(x => x.idOperador == Sesion.Operador.idOperador && x.idPersona == Convert.ToInt32(idPersona.Value));
                if (Cola == null)
                {
                    Cola = new Entidades.Colas {
                        idOperador = Sesion.Operador.idOperador, idPersona = Convert.ToInt32(idPersona.Value), Lugar = Lugar, Fecha = DateTime.Now
                    };
                    db.Colas.InsertOnSubmit(Cola);
                }
                else
                {
                    Cola.Lugar = Lugar;
                }


                try
                {
                    db.SubmitChanges();
                    ScriptManager.RegisterStartupScript(Page, typeof(Page), "ini", "window.parent.CerrarAviso();window.parent.Avisos_Actualizar();", true);
                }

                catch (Exception Ex)
                {
                    UI.Mensaje("Avisos", "Ya tiene una Prioridad activa con el mismo consignatario.", "", Page);
                }
            }
        }
Example #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            using (CobranzasDataContext db = new CobranzasDataContext())
            {
                int idAviso = Convert.ToInt32(Request["idAviso"]);
                Page.Title = idAviso.ToString();

                Entidades.Avisos Aviso = db.Avisos.Single(x => x.idAviso == idAviso);
                try
                {
                    Aviso.VecesMostrada = Aviso.VecesMostrada + 1;
                    db.SubmitChanges();
                }
                catch (Exception Ex)
                {
                    Ex.Registrar();
                }
                lblAviso.Text = Aviso.Aviso;
                if (Aviso.Personas == null)
                {
                    btnCuenta.Text  = "«Sin Persona Asignada»";
                    idPersona.Value = "";
                }
                else
                {
                    btnCuenta.Text  = Aviso.Personas.Nombre;
                    idPersona.Value = Aviso.idPersona.ToString();
                }
                lblHora.Text     = Aviso.FechaAviso.AFechaHora();
                lblCreacion.Text = Aviso.FechaCrea.AFechaHora();
                lblOriginal.Text = Aviso.FechaOriginal.AFechaHora();
                lblUsuario.Text  = Aviso.Operadores1.Nombre;
                //var b=(new wsCobranzas()).Avisos_lst(0);
            }
        }
Example #3
0
        public static int Registrar(this Exception Ex)
        {
            //if (!EventLog.SourceExists("Cobranzas"))
            //EventLog.CreateEventSource("Cobranzas", "Application");
            String Evento = Ex.Serializar();

            try
            {
                EventLog.WriteEntry("Application", Evento, EventLogEntryType.Error);
            }
            catch { }
            try
            {
                using (CobranzasDataContext db = new CobranzasDataContext())
                {
                    var Error = new Cobranzas.Entidades.Errores {
                        Error = Evento, Fecha = DateTime.Now, Usuario = Cobranzas.Sesion.Operador.Login
                    };
                    db.Errores.InsertOnSubmit(Error);
                    db.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
                    return(Error.idError);
                }
            }
            catch { }
            return(0);
        }
Example #4
0
 protected void btnRechazarPago_Click(object sender, EventArgs e)
 {
     using (CobranzasDataContext db = new CobranzasDataContext())
     {
         Entidades.Pagos Pago;
         try
         {
             Pago = db.Pagos.Single(x => x.idPago == Convert.ToInt32(this.idPago.Value));
             Pago.idStatusPago   = 7;//Rechazado Procesamiento
             Pago.Resultado      = txtRechazo.Text;
             Pago.FechaResultado = DateTime.Now;
             Pago.Confirmado     = false;
             Pago.Aprobado       = false;
             Entidades.Avisos Aviso = new Entidades.Avisos();
             Aviso.Aviso          = "El Pago del cliente(" + Pago.Personas.idPais + "): " + Pago.Personas.Codigo + ", Referencia: " + Pago.Referencia + ", Ha sido rechazado por el SCI por el siguiente motivo: " + txtRechazo.Text;
             Aviso.FechaAviso     = DateTime.Now.AddMinutes(5);
             Aviso.FechaCancelado = null;
             Aviso.FechaOriginal  = DateTime.Now.AddMinutes(5);
             Aviso.FechaCrea      = DateTime.Now;
             Aviso.idOperador     = Pago.idOperadorCrea ?? Pago.idOperador ?? 1;
             Aviso.idOperadorCrea = 1;
             Aviso.idPersona      = Pago.idPersona;
             Aviso.VecesMostrada  = 0;
             db.Avisos.InsertOnSubmit(Aviso);
             db.SubmitChanges();
         }
         catch (Exception Ex)
         {
             Response.Write("Error Rechazando el Pago");
             return;
         }
     }
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            btnAceptar.Visible = false;
            using (CobranzasDataContext db = new CobranzasDataContext())
            {
                int idAviso = Convert.ToInt32(Request["idAviso"]);
                Page.Title = idAviso.ToString();

                Entidades.Avisos Aviso = db.Avisos.Single(x => x.idAviso == idAviso);
                try
                {
                    Aviso.VecesMostrada = Aviso.VecesMostrada + 1;
                    db.SubmitChanges();
                }
                catch (Exception Ex)
                {
                    Ex.Registrar();
                }
                lblAviso.Text = Aviso.Aviso;
                if (Aviso.Personas == null)
                {
                    btnCuenta.Text  = "«Sin Persona Asignada»";
                    idPersona.Value = "";
                }
                else
                {
                    btnCuenta.Text  = Aviso.Personas.Nombre;
                    idPersona.Value = Aviso.idPersona.ToString();
                }

                if (Aviso.Prioritario)
                {
                    btnCuenta.Visible         = false;
                    btnPosponer.Visible       = false;
                    btnIgnorar.Visible        = false;
                    btnAsignarPrimero.Visible = false;
                    btnAsignarUltimo.Visible  = false;
                    btnCancelar.Visible       = false;
                    btnAceptar.Visible        = true;
                }
                else
                {
                    btnCuenta.Visible         = true;
                    btnPosponer.Visible       = true;
                    btnIgnorar.Visible        = true;
                    btnAsignarPrimero.Visible = false;
                    btnAsignarUltimo.Visible  = false;
                    btnCancelar.Visible       = true;
                    btnCancelar.Attributes.Add("onclick", "javascript:return confirm('Desea eliminar el Aviso?')");
                    btnAceptar.Visible = false;
                }
                lblHora.Text     = Aviso.FechaAviso.AFechaHora();
                lblCreacion.Text = Aviso.FechaCrea.AFechaHora();
                lblOriginal.Text = Aviso.FechaOriginal.AFechaHora();
                lblUsuario.Text  = Aviso.Operadores1.Nombre;
                //var b=(new wsCobranzas()).Avisos_lst(0);
            }
        }
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            Int32 idPersona = Convert.ToInt32(Request["idPersona"]);

            using (CobranzasDataContext db = new CobranzasDataContext())
            {
                String Comentario = txtComentario.Text;
                db.Personas.Single(x => x.idPersona == idPersona).NotaEspecial = Comentario;
                db.SubmitChanges();
                ScriptManager.RegisterStartupScript(Page, typeof(Page), "ini", "window.parent.ActualizarComentario($('#txtComentario').val());window.parent.CerrarEmergente();", true);
            }
        }
Example #7
0
 protected void CuentaSoporte()
 {
     using (CobranzasDataContext db = new CobranzasDataContext())
     {
         Entidades.Cuentas Cuenta = db.Cuentas.Single(x => x.idCuenta == Convert.ToInt32(Id));
         if (Convert.ToInt32(Val) != Cuenta.idPersona)
         {
             Response.Write("No está autorizado para ver este Soporte");
             return;
         }
         if (Cuenta.Ruta == null)
         {
             Response.Write("El archivo que ha seleccionado no está disponible en este momento, favor intente más tarde.");
             return;
         }
         if (Cuenta.Personas.idPais == "USA" && Cuenta.Soportes.Any(x => x.Codigo == "") && Request["Original"] == null)
         {
             Response.Write("<html><head></head><body><table style='width:100%; height:100%;'><tr>" +
                            "<td style='width:50%'><iframe height='100%' width='100%' seamless src='" + Request.Url + "&Original=1'>Outstanding Debt Notice</iframe></td>" +
                            "<td style='width:50%'><iframe height='100%' width='100%' seamless src='" + Request.Url + "&Original=2'>Invoice</iframe></td>" +
                            "</tr></table></body></html>");
             return;
         }
         String Ruta = "";
         if (Request["Original"] == "2")
         {
             Ruta = Cuenta.Soportes.First(x => x.Codigo == "").Ubicacion;
         }
         else
         {
             Ruta = Cuenta.Ruta;
         }
         try //trata de guardar la gestión
         {
             Entidades.Gestiones Gestion = new Entidades.Gestiones();
             Gestion.idOperador  = 1;
             Gestion.Fecha       = DateTime.Now;
             Gestion.Descripcion = "La persona ha visto el soporte de la factura";
             Gestion.idPersona   = Cuenta.idPersona;
             Gestion.idStatus    = 29;
             Gestion.Cuentas_Gestiones.Add(new Entidades.Cuentas_Gestiones {
                 idCuenta = Cuenta.idCuenta
             });
             db.Gestiones.InsertOnSubmit(Gestion);
             db.SubmitChanges();
         }
         catch { }
         BajarArchivo(Ruta, Response);
         return;
     }
 }
Example #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                String Pais;
                String Codigo;
                if (Request["Pais"] != null)
                {
                    Pais   = Request["Pais"];
                    Codigo = Request["Codigo"];
                }
                else
                {
                    Pais   = Request["Codigo"].Substring(0, 3);
                    Codigo = Request["Codigo"].Substring(3);
                }
                using (CobranzasDataContext db = new CobranzasDataContext())
                {
                    if (Pais == "VEN")
                    {
                        Gestiones Gestion = new Gestiones();
                        Gestion.idPersona   = db.Personas.Single(x => x.Codigo == Codigo && x.idPais == Pais).idPersona;
                        Gestion.idOperador  = 1;
                        Gestion.idStatus    = 139;
                        Gestion.Descripcion = "La persona ha hecho click en el enlace de la encuesta";
                        Gestion.Fecha       = DateTime.Now;

                        db.Gestiones.InsertOnSubmit(Gestion);
                        db.SubmitChanges();
                        Response.Redirect("https://docs.google.com/forms/d/1n_8ciMTiSrZyPC7gCRQX73c2R0yoOiwAjssdktl2d3Q/viewform?usp=send_form");
                    }
                    else
                    {
                        db.ExecuteCommand("INSERT INTO _Encuestas values('" + Pais + "','" + Codigo + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "')");
                        if ("COL,CRI,HND,MEX,PAN".IndexOf(Pais) != -1)
                        {
                            Response.Redirect("https://docs.google.com/forms/d/1q2PsQyktqFXUDWTIYSz-AhjErMNDYB3p9sun8oxjf50/viewform?usp=send_form");
                        }
                        else
                        {
                            Response.Redirect("https://docs.google.com/forms/d/1Pe4HO1jxNFPzRC5ohdSnYwYE3SzU8IVJ-9LpOvsCvpg/viewform?usp=send_form");
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                //File.WriteAllText(@"C:\Cobranzas\LogEncuesta.txt",Ex.Message+"\n"+Request["Pais"]+"\n"+Request["Codigo"]);
            }
        }
Example #9
0
 protected void Log(string Msg, Int32 idProceso, Int32 Indice = 0)
 {
     using (CobranzasDataContext db = new CobranzasDataContext())
     {
         Entidades.Logs Log = new Entidades.Logs();
         Log.idProceso   = idProceso;
         Log.Descripcion = Msg;
         Log.Fecha       = DateTime.Now;
         Log.Indice      = Indice;
         Log.TipoProceso = "Correos";
         db.Logs.InsertOnSubmit(Log);
         db.SubmitChanges();
     }
     //System.IO.File.AppendAllText(String.Format(AppDomain.CurrentDomain.BaseDirectory + @"\Log{0}.log", DateTime.Now.ToString("yyyyMMdd")), Msg + "\n");
 }
Example #10
0
 protected void btnEnviar_Click(object sender, EventArgs e)
 {
     if (txtContrasena.Text.Trim() == "")
     {
         UI.Mensaje("Sistema de Cobranzas", "Debe especificar una Contraseña", "", Page);
         return;
     }
     using (CobranzasDataContext db = new CobranzasDataContext())
     {
         Entidades.Operadores Operador = db.Operadores.Single(x => x.idOperador == Sesion.Operador.idOperador);
         Operador.POP3Password = txtContrasena.Text;
         Operador.POP3Login    = Operador.Login;
         Operador.UltimaFechaCorreoEntrante = Convert.ToDateTime("2014-04-08");
         db.SubmitChanges();
     }
     ScriptManager.RegisterStartupScript(Page, typeof(Page), "Inicio", "window.parent.CerrarEmergente();", true);
 }
        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            Int32 idPersona         = Convert.ToInt32(Request["idPersona"]);
            Int32?idPersonaContacto = Request["idPersonaContacto"] != null ? (Convert.ToInt32(Request["idPersonaContacto"])) : (Int32?)null;
            Int32 idTelefono        = 0;

            using (CobranzasDataContext db = new CobranzasDataContext())
            {
                Entidades.Telefonos Telefono = new Entidades.Telefonos {
                    idOperador = Sesion.idOperador, idPersona = idPersona, idPersonaContacto = idPersonaContacto, CodigoArea = txtCodigoArea.Text, Reputacion = null, Telefono = txtTelefono.Text, CodigoPais = "+58"
                };
                db.Telefonos.InsertOnSubmit(Telefono);
                db.SubmitChanges();
                idTelefono = Telefono.idTelefono;
            }

            ScriptManager.RegisterStartupScript(Page, typeof(Page), "Inicio", "window.parent.InsertarTelefono({idTelefono:" + idTelefono.ToString() + ",CodigoArea:'" + txtCodigoArea.Text + "',Telefono:'" + txtTelefono.Text + "'});window.parent.Mensaje({mensaje:'Teléfono Registrado satisfactoriamente'});window.parent.CerrarEmergente();", true);
        }
 protected void btnPosponer_Click(object sender, EventArgs e)
 {
     using (CobranzasDataContext db = new CobranzasDataContext())
     {
         int idAviso            = Convert.ToInt32(Request["idAviso"]);
         Entidades.Avisos Aviso = db.Avisos.Single(x => x.idAviso == idAviso);
         Aviso.FechaAviso = DateTime.Now.AddMinutes(10);
         try
         {
             db.SubmitChanges();
             ScriptManager.RegisterStartupScript(Page, typeof(Page), "ini", "window.parent.CerrarAviso();window.parent.Avisos_Actualizar();", true);
         }
         catch (Exception Ex)
         {
             UI.Mensaje("Avisos", Ex.Message, "", Page);
         }
     }
 }
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            Int32 idPersona         = Convert.ToInt32(Request["idPersona"]);
            Int32 idPersonaContacto = 0;

            using (CobranzasDataContext db = new CobranzasDataContext())
            {
                try
                {
                    Entidades.PersonasContacto Cont = new Entidades.PersonasContacto();
                    Cont.Cargo     = txtCargo.Text;
                    Cont.Nombre    = txtNombre.Text;
                    Cont.Email     = txtEmail.Text;
                    Cont.idPersona = idPersona;
                    Cont.Activa    = true;
                    foreach (String TelefonoCrudo in txtTelefonos.Text.Replace(";", ",").Split(','))
                    {
                        String Telefono = General.ObtenerNumeros(TelefonoCrudo);
                        if (!new System.Text.RegularExpressions.Regex(@"^\d{11}$").IsMatch(Telefono.Trim()))
                        //if ((Telefono.Trim().Length != 11 && Telefono.Trim().Length != 7) || !new System.Text.RegularExpressions.Regex(@"^\d{7}(\d{4})?$").IsMatch(Telefono.Trim()))
                        {
                            UI.Mensaje("", "El teléfono: \"" + TelefonoCrudo + "\" no tiene el formato correcto", "", Page);
                            //ScriptManager.RegisterStartupScript(Page, typeof(Page), "Inicio", "", true);
                            return;
                        }
                        Cont.Telefonos.Add(new Entidades.Telefonos {
                            CodigoPais = "+58", CodigoArea = Telefono.Trim().Substring(0, 4), Telefono = Telefono.Trim().Substring(4), Confirmado = false, Importado = false, idOperador = Sesion.idOperador
                        });
                    }
                    db.PersonasContacto.InsertOnSubmit(Cont);
                    db.SubmitChanges();
                    idPersonaContacto = Cont.idPersonaContacto;
                }
                catch (Exception Ex)
                {
                }
            }

            ScriptManager.RegisterStartupScript(Page, typeof(Page), "Inicio", "var p=window.parent;p.Mensaje({mensaje:'Contacto Registrado satisfactoriamente'});p.CargarPersonaContacto(" + idPersonaContacto.ToString() + ");p.CerrarEmergente();", true);
        }
Example #14
0
 public static void Actividad(String Accion, System.Web.SessionState.HttpSessionState sesion = null, DateTime?Tiempo = null)
 {
     try
     {
         using (CobranzasDataContext db = new CobranzasDataContext())
         {
             if (sesion == null)
             {
                 sesion = HttpContext.Current.Session;
             }
             Entidades.Acciones Ac = new Entidades.Acciones()
             {
                 Accion = Accion, Fecha = Tiempo ?? DateTime.Now, idOperador = Sesion.idOperador
             };
             db.Acciones.InsertOnSubmit(Ac);
             db.SubmitChanges();
         }
     }
     catch (Exception Ex)
     {
         //Ex.Registrar();
     }
 }
 protected void btnCancelar_Click(object sender, EventArgs e)
 {
     if (txtComentario.Text.Trim() == "")
     {
         UI.Mensaje("Avisos", "Debe especificar un comentario para cancelar el Aviso.", "", Page);
         return;
     }
     using (CobranzasDataContext db = new CobranzasDataContext())
     {
         int idAviso            = Convert.ToInt32(Request["idAviso"]);
         Entidades.Avisos Aviso = db.Avisos.Single(x => x.idAviso == idAviso);
         Aviso.FechaCancelado = DateTime.Now;
         Aviso.Comentario     = txtComentario.Text;
         try
         {
             db.SubmitChanges();
             ScriptManager.RegisterStartupScript(Page, typeof(Page), "ini", "window.parent.CerrarAviso();window.parent.Avisos_Actualizar();", true);
         }
         catch (Exception Ex)
         {
             UI.Mensaje("Avisos", Ex.Message, "", Page);
         }
     }
 }
 protected void btnAsignarUltimo_Click(object sender, EventArgs e)
 {
     using (CobranzasDataContext db = new CobranzasDataContext())
     {
         int idAviso = Convert.ToInt32(Request["idAviso"]);
         //Entidades.Avisos Aviso = db.Avisos.Single(x => x.idAviso == idAviso);
         //Aviso.FechaCancelado = DateTime.Now;
         Int32           Lugar = (db.Colas.Where(x => x.idOperador == Sesion.Operador.idOperador /*&& x.idPersona == Convert.ToInt32(idPersona.Value)*/).Max(x => (int?)x.Lugar) ?? -1) + 1;
         Entidades.Colas Cola  = db.Colas.SingleOrDefault(x => x.idOperador == Sesion.Operador.idOperador && x.idPersona == Convert.ToInt32(idPersona.Value));
         if (Cola == null)
         {
             Cola = new Entidades.Colas {
                 idOperador = Sesion.Operador.idOperador, idPersona = Convert.ToInt32(idPersona.Value), Lugar = Lugar
             };
             db.Colas.InsertOnSubmit(Cola);
         }
         else
         {
             Cola.Lugar = Lugar;
         }
         db.SubmitChanges();
         ScriptManager.RegisterStartupScript(Page, typeof(Page), "ini", "window.parent.CerrarAviso();window.parent.Avisos_Actualizar();", true);
     }
 }
Example #17
0
        protected void PrepararCorreo()
        {
            try
            {
                using (CobranzasDataContext db = new CobranzasDataContext())
                {
                    idOperador.Value = Request["idOperador"];//Sesion.idOperador.ToString();
                    int id   = Convert.ToInt32(Request["idCorreo"]);
                    int Tipo = Convert.ToInt32(Request["Tipo"]);
                    idCorreo.Value = id.ToString();
                    Entidades.Correos Correo = db.Correos.Single(x => x.idCorreo == id);
                    try
                    {
                        List <Entidades.Correos> CorreoAnterior;
                        List <Entidades.Correos> CorreoSiguiente;
                        if (Tipo == 1)
                        {
                            CorreoSiguiente = db.Correos.Where(x => x.idOperador == Correo.idOperador && x.FechaCreacion < Correo.FechaCreacion && x.TipoEspecial == null && !x.Correos_Personas.Any() && x.RutaEml != null).OrderByDescending(x => x.FechaCreacion).Take(1).ToList();
                            CorreoAnterior  = db.Correos.Where(x => x.idOperador == Correo.idOperador && x.FechaCreacion > Correo.FechaCreacion && x.TipoEspecial == null && !x.Correos_Personas.Any() && x.RutaEml != null).OrderBy(x => x.FechaCreacion).Take(1).ToList();
                        }
                        else if (Tipo == 2)
                        {
                            CorreoSiguiente = db.Correos.Where(x => x.idOperador == Correo.idOperador && x.FechaCreacion < Correo.FechaCreacion && x.Correos_Personas.Any() && x.RutaEml != null && !x.Leido).OrderByDescending(x => x.FechaCreacion).Take(1).ToList();
                            CorreoAnterior  = db.Correos.Where(x => x.idOperador == Correo.idOperador && x.FechaCreacion > Correo.FechaCreacion && x.Correos_Personas.Any() && x.RutaEml != null && !x.Leido).OrderBy(x => x.FechaCreacion).Take(1).ToList();
                        }
                        else
                        {
                            CorreoSiguiente = new List <Entidades.Correos>();
                            CorreoAnterior  = new List <Entidades.Correos>();
                        }

                        if (CorreoSiguiente.Count == 0)
                        {
                            lnkSiguiente.Visible = false;
                        }
                        else
                        {
                            lnkSiguiente.HRef = "ctrlCorreo.aspx?idCorreo=" + CorreoSiguiente.First().idCorreo + "&idOperador=" + idOperador.Value + "&Tipo=" + Tipo;
                        }
                        if (CorreoAnterior.Count == 0)
                        {
                            lnkAnterior.Visible = false;
                        }
                        else
                        {
                            lnkAnterior.HRef = "ctrlCorreo.aspx?idCorreo=" + CorreoAnterior.First().idCorreo + "&idOperador=" + idOperador.Value + "&Tipo=" + Tipo;
                        }
                    }
                    catch { }
                    Correo.Leido = true;
                    db.SubmitChanges();
                    lblAsunto.Text                   = Correo.Asunto;
                    lblDestinatarios.Text            = Server.HtmlEncode(Correo.Destinatarios);
                    lblDestinatariosCopia.Text       = Server.HtmlEncode(Correo.DestinatariosCopia);
                    lblDestinatariosCopiaOculta.Text = Server.HtmlEncode(Correo.DestinatariosCopiaOculta);
                    lblFecha.Text = Correo.FechaCreacion.ToString("dd/MM/yyyy HH:mm:ss tt");
                    String Mensaje = "";
                    //Boolean isHTML = true;
                    if (Correo.Mensaje != null)
                    {
                        Mensaje = Correo.Mensaje;
                    }
                    if (Correo.RutaEml != null)
                    {
                        List <String>            NoAdjuntos = new List <string>();
                        String                   Ruta       = db.Parametros.Single(x => x.Clave == "RutaCorreos").Valor;
                        OpenPop.Mime.Message     m          = OpenPop.Mime.Message.Load(new System.IO.FileInfo(Ruta + Correo.RutaEml + ".eml"));
                        OpenPop.Mime.MessagePart Parte      = m.FindFirstHtmlVersion();
                        if (Parte == null)
                        {
                            Parte = m.FindFirstPlainTextVersion();
                        }
                        Mensaje = Parte.GetBodyAsText();
                        //isHTML = !m.MessagePart.IsText;
                        if (Parte.ContentType.MediaType.ToLower() == "text/plain")
                        {
                            Mensaje = "<pre>" + Mensaje + "</pre>";
                        }
                        try
                        {
                            foreach (Match Match in Regex.Matches(Mensaje, "\"(cid:(\\S+))\""))
                            {
                                //Debug.Print(Match.ToString());
                                String ID = Match.Groups[2].Value;
                                NoAdjuntos.Add(ID);
                                try
                                {
                                    OpenPop.Mime.MessagePart Parte2 = BuscarParte(ID, m.MessagePart);
                                    String Ext = Parte2.FileName;
                                    try
                                    {
                                        Ext = Ext.Substring(Ext.LastIndexOf("."));
                                    }
                                    catch
                                    {
                                        Ext = "";
                                    }
                                    String Ruta2 = Guardar(Parte2, id.ToString());
                                    //Parte2.Save(new FileInfo(MapPath(Ruta2)));
                                    Mensaje = Mensaje.Replace(Match.Groups[0].Value, "\"" + Ruta2 + "\"");
                                }
                                catch { }
                            }
                            foreach (OpenPop.Mime.MessagePart Adjunto in m.FindAllAttachments())
                            {
                                if (NoAdjuntos.Contains(Adjunto.ContentId))
                                {
                                    continue;
                                }
                                String Ruta2 = Guardar(Adjunto, id.ToString());
                                lblAdjuntos.Text += String.Format(@"</span><a href=""{0}"" title=""{2}"" target=""_blank"" class=""AdjuntoSL"">{1}</a><span>", Ruta2, Adjunto.ContentDisposition.FileName ?? "Adjunto", Adjunto.ContentDescription);
                            }
                        }
                        catch { }
                    }
                    //lblAdjuntos.Text=@"</span><a href=""http://www.google.com"" target=""_blank"" class=""Adjunto"">aquí</a><span>";
                    lblRemitente.Text = Correo.Remitente;
                    try
                    {
                        String RutaCorreo = (@"/Temp/Correo" + id.ToString() + (true ? ".html" : ".txt"));
                        iframe.Attributes["src"] = RutaCorreo;
                        File.WriteAllText(MapPath(RutaCorreo), Mensaje, System.Text.Encoding.UTF8);
                    }
                    catch { }
                }
            }
            catch (Exception Ex)
            {
                Ex.Registrar();
            }
        }
Example #18
0
        private void LeerCorreo(object IdOperador)
        {
            Int32 idProcesoPersonal = idProceso;

            try
            {
                Int32 idOperador = (int)IdOperador;
                using (CobranzasDataContext db = new CobranzasDataContext())
                {
                    List <Entidades.CorreosFiltros> Filtros = db.CorreosFiltros./*Where(x => x.idOperador == idOperador).*/ ToList();

                    String Ruta             = Parametro("RutaCorreos", db);
                    Entidades.Operadores op = db.Operadores.Single(x => x.idOperador == idOperador);
                    Log("Leyendo: " + op.Nombre, idProcesoPersonal, idOperador);
                    String Servidor = (op.POP3Host ?? Parametro("POP3Host", db));
                    if (Servidor == null)
                    {
                        Log("Saltando, por no tener definido un servidor", idProcesoPersonal, idOperador);
                        return;
                    }
                    Int32   Puerto   = (op.POP3Port ?? Convert.ToInt32(Parametro("POP3Port", db)));
                    Boolean SSL      = op.POP3SSL ?? (Parametro("POP3SSL", db) == "1");
                    String  Usuario  = op.POP3Login;
                    String  Password = op.POP3Password;
                    if (op.POP3Password == null)
                    {
                        Log("Saltando, por no tener contraseña", idProcesoPersonal, idOperador);
                        return;
                    }
                    DateTime?UltimaFecha = op.UltimaFechaCorreoEntrante;
                    using (OpenPop.Pop3.Pop3Client POP3 = new OpenPop.Pop3.Pop3Client())//Iniciando el servidor POP3;
                    {
                        POP3.Connect(Servidor, Puerto, SSL);
                        POP3.Authenticate(Usuario, Password);
                        int Count = POP3.GetMessageCount();

                        Int32 Inicio = Count;
                        while (true)
                        {
                            OpenPop.Mime.Header.MessageHeader mh = POP3.GetMessageHeaders(Inicio);
                            if (db.Correos.Any(x => x.idOperador == idOperador && x.IdPop3 == mh.MessageId))
                            {
                                break;
                            }
                            Inicio--;
                            if (Inicio == 0)
                            {
                                break;
                            }
                        }
                        Inicio++;
                        //Inicio = UltimaFecha == null ? 1 : BuscarIdPorFecha(1, Count, POP3, UltimaFecha.Value);
                        //Inicio -= 4;
                        //if (Inicio < 1) Inicio = 1;


                        Log(op.Login + " Inicio:" + Inicio + ", Total:" + Count, idProcesoPersonal, idOperador);
                        Int32 ErroresSeguidos = 0;
                        if (Inicio > Count)
                        {
                            Log("No hay correos nuevos para: " + op.Login, idProcesoPersonal, idOperador);
                        }
                        for (int i = Inicio; i <= Count; i++)//últimos 5 correos para verificar.
                        {
                            if (ErroresSeguidos == 5)
                            {
                                Log("Abortando Lectura de " + op.Login + " Por 5 erorres consecutivos", idProcesoPersonal, idOperador);
                                break;
                            }
                            try
                            {
                                OpenPop.Mime.Header.MessageHeader mh = POP3.GetMessageHeaders(i);

                                /*if (UltimaFecha != null && mh.DateSent.ToLocalTime() <= UltimaFecha)
                                 * {
                                 *  Log("Saltando Mensaje", idProcesoPersonal, i);
                                 *  continue;
                                 * }*/
                                if (db.Correos.Any(x => x.idOperador == idOperador && x.IdPop3 == mh.MessageId))
                                {
                                    Log("Saltando Mensaje de " + op.Login + " " + i.ToString() + "/" + Count.ToString(), idProcesoPersonal, idOperador);
                                    continue;
                                }
                                Log("Leyendo Mensaje de " + op.Login + " " + i.ToString() + "/" + Count.ToString(), idProcesoPersonal, idOperador);

                                OpenPop.Mime.Message m = POP3.GetMessage(i);
                                UltimaFecha = mh.DateSent.ToLocalTime();
                                String idLimpio      = Limpiar(mh.MessageId);
                                String Directorio    = UltimaFecha.Value.ToString("yyyyMMdd") + "\\";
                                String Prefijo       = UltimaFecha.Value.ToString("mmss") + "_";
                                String RutaCompleta  = Ruta + Directorio + Prefijo + idLimpio + ".eml";
                                Int32  idCorreoNuevo = 0;
                                if (!File.Exists(RutaCompleta))
                                {
                                    Directory.CreateDirectory(Ruta + Directorio);
                                    m.Save(new FileInfo(RutaCompleta));
                                }
                                Entidades.Correos Correo = new Entidades.Correos();
                                Correo.IdPop3                   = mh.MessageId;
                                Correo.idOperador               = idOperador;
                                Correo.Asunto                   = Limitar(mh.Subject, 2000);
                                Correo.Remitente                = Limitar(mh.From.Raw, 500);
                                Correo.FechaCreacion            = mh.DateSent.ToLocalTime();
                                Correo.Destinatarios            = Limitar(String.Join(",", mh.To.Select(x => x.Raw)), 5000);
                                Correo.DestinatariosCopia       = Limitar(String.Join(",", mh.Cc.Select(x => x.Raw)), 5000);
                                Correo.DestinatariosCopiaOculta = Limitar(String.Join(",", mh.Bcc.Select(x => x.Raw)), 5000);
                                Correo.RutaEml                  = Directorio + Prefijo + idLimpio;
                                var Personas = Filtros.Where(x => mh.From.Address.ToLower() == x.De.ToLower()).Select(x => x.idPersona);
                                foreach (int idPersona in Personas)
                                {
                                    Correo.Correos_Personas.Add(new Entidades.Correos_Personas()
                                    {
                                        idPersona = idPersona
                                    });
                                }
                                db.Correos.InsertOnSubmit(Correo);
                                Correo.Fecha = DateTime.Now;
                                db.SubmitChanges();
                                idCorreoNuevo = Correo.idCorreo;

                                db.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, op);
                                op.UltimaFechaCorreoEntrante = UltimaFecha;
                                db.SubmitChanges();
                                Log("Leido Mensaje de " + op.Login + " " + i.ToString() + "/" + Count.ToString() + "#" + idCorreoNuevo, idProcesoPersonal, idOperador);
                                ErroresSeguidos = 0;
                            }
                            catch (OpenPop.Pop3.Exceptions.InvalidLoginException Ex)
                            {
                                ErroresSeguidos++;
                                Log("Error en Mensaje: IL Op: " + op.Login + "(" + i.ToString() + "/" + Count.ToString() + "), Mensaje:" + Ex.Message, idProcesoPersonal, idOperador);
                            }
                            catch (OpenPop.Pop3.Exceptions.InvalidUseException Ex)
                            {
                                ErroresSeguidos++;
                                Log("Error en Mensaje: IU Op: " + op.Login + "(" + i.ToString() + "/" + Count.ToString() + "), Mensaje:" + Ex.Message, idProcesoPersonal, idOperador);
                            }
                            catch (OpenPop.Pop3.Exceptions.LoginDelayException Ex)
                            {
                                ErroresSeguidos++;
                                Log("Error en Mensaje: LD Op: " + op.Login + "(" + i.ToString() + "/" + Count.ToString() + "), Mensaje:" + Ex.Message, idProcesoPersonal, idOperador);
                            }
                            catch (OpenPop.Pop3.Exceptions.PopServerException Ex)
                            {
                                ErroresSeguidos++;
                                Log("Error en Mensaje: PS Op: " + op.Login + "(" + i.ToString() + "/" + Count.ToString() + "), Mensaje:" + Ex.Message, idProcesoPersonal, idOperador);
                            }
                            catch (OpenPop.Pop3.Exceptions.PopServerLockedException Ex)
                            {
                                ErroresSeguidos++;
                                Log("Error en Mensaje: PSL Op: " + op.Login + "(" + i.ToString() + "/" + Count.ToString() + "), Mensaje:" + Ex.Message, idProcesoPersonal, idOperador);
                            }
                            catch (OpenPop.Pop3.Exceptions.PopServerNotAvailableException Ex)
                            {
                                ErroresSeguidos++;
                                Log("Error en Mensaje: PSNA Op: " + op.Login + "(" + i.ToString() + "/" + Count.ToString() + "), Mensaje:" + Ex.Message, idProcesoPersonal, idOperador);
                            }
                            catch (OpenPop.Pop3.Exceptions.PopServerNotFoundException Ex)
                            {
                                ErroresSeguidos++;
                                Log("Error en Mensaje: SNF Op: " + op.Login + "(" + i.ToString() + "/" + Count.ToString() + "), Mensaje:" + Ex.Message, idProcesoPersonal, idOperador);
                            }
                            catch (OpenPop.Pop3.Exceptions.PopClientException Ex)
                            {
                                ErroresSeguidos++;
                                Log("Error en Mensaje: PC Op: " + op.Login + "(" + i.ToString() + "/" + Count.ToString() + "), Mensaje:" + Ex.Message, idProcesoPersonal, idOperador);
                            }
                            catch (Exception Ex)
                            {
                                ErroresSeguidos++;
                                Log("Error en Mensaje: Op: " + op.Login + "(" + i.ToString() + "/" + Count.ToString() + "), Mensaje:" + Ex.Message, idProcesoPersonal, idOperador);
                            }
                        }
                        POP3.Disconnect();
                    }
                    Log("Fin Lectura: " + op.Nombre, idProcesoPersonal, idOperador);
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "Server did not accept user credentials")
                {
                    try
                    {
                        using (CobranzasDataContext db = new CobranzasDataContext())
                        {
                            db.Operadores.Single(x => x.idOperador == (Int32)IdOperador).POP3Password = null;
                            db.SubmitChanges();
                            db.Avisos.InsertOnSubmit(new Entidades.Avisos
                            {
                                Aviso          = "El servidor ha rechazado su contraseña, por favor actualice su contraseña de correo nuevamente",
                                FechaAviso     = DateTime.Now.AddMinutes(2),
                                FechaCrea      = DateTime.Now,
                                FechaOriginal  = DateTime.Now.AddMinutes(2),
                                idOperador     = (Int32)IdOperador,
                                idOperadorCrea = 1,
                                VecesMostrada  = 0
                            });
                            db.SubmitChanges();
                        }
                    }
                    catch { }
                }
                Log("Error General: Op:" + IdOperador + ", Mensaje:" + Ex.Message, idProcesoPersonal, (int)IdOperador);
            }
        }
Example #19
0
        protected void btnLlevarPago_Click(object sender, EventArgs e)
        {
            using (CobranzasDataContext db = new CobranzasDataContext())
            {
                Entidades.Pagos Pago;
                try
                {
                    Pago = db.Pagos.Single(x => x.idPago == Convert.ToInt32(this.idPago.Value));
                }
                catch (Exception Ex)
                {
                    Response.Write("Error Llevando el Pago a SCI");
                    return;
                }
                int?idOrigen = Pago.Pagos_Cuentas.First().Cuentas.idOrigen;
                Entidades.Origenes Origen = db.Origenes.Single(x => x.idOrigen == idOrigen);
                //OleDbConnection Conn = new OleDbConnection("Provider=SQLOLEDB.1;Persist Security Info=False;User ID=mberroteran;Password=mberroteran;Initial Catalog=SCI;Data Source=VECCSVS020");
                OleDbConnection Conn = new OleDbConnection(Origen.ConnectionString);//"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=mberroteran;Password=mberroteran;Initial Catalog=milleniumv2;Data Source=VECCSVS020");
                Conn.Open();

                OleDbCommand Comm = Conn.CreateCommand();
                Comm.CommandTimeout = 10 * 60;
                Comm.CommandType    = CommandType.StoredProcedure;
                Comm.CommandText    = "transact_Cobros";

                Comm.Parameters.Add("transactId", OleDbType.Integer);
                Comm.Parameters.Add("cobroPaisId", OleDbType.Integer).Direction = ParameterDirection.Output;
                Comm.Parameters.Add("fechaCobro", OleDbType.Date).Direction     = ParameterDirection.Output;
                Comm.Parameters.Add("empresaPaisId", OleDbType.Integer);
                Comm.Parameters.Add("descripcion", OleDbType.VarChar);
                Comm.Parameters.Add("ptocreacion", OleDbType.VarChar);
                Comm.Parameters.Add("moneda", OleDbType.Boolean);
                Comm.Parameters.Add("cobradorPaisId", OleDbType.Integer);
                Comm.Parameters.Add("clientePaisId", OleDbType.Integer);

                OleDbCommand Comm2 = Conn.CreateCommand();
                Comm2.CommandTimeout = 10 * 60;
                Comm2.CommandType    = CommandType.StoredProcedure;
                Comm2.CommandText    = "transact_entradasbanco";

                Comm2.Parameters.Add("transactId", OleDbType.Integer);
                Comm2.Parameters.Add("entradaID", OleDbType.Integer).Direction = ParameterDirection.Output;
                Comm2.Parameters.Add("empresaPaisId", OleDbType.Integer);
                Comm2.Parameters.Add("cuentaID", OleDbType.Integer);
                Comm2.Parameters.Add("fecharecepcion", OleDbType.Date);
                Comm2.Parameters.Add("transferencia", OleDbType.Boolean);
                Comm2.Parameters.Add("numdeposito", OleDbType.Integer);
                Comm2.Parameters.Add("cobroPaisId", OleDbType.Integer);
                Comm2.Parameters.Add("montoefectivo", OleDbType.Decimal);


                OleDbCommand Comm3 = Conn.CreateCommand();
                Comm3.CommandTimeout = 10 * 60;
                Comm3.CommandType    = CommandType.StoredProcedure;
                Comm3.CommandText    = "transact_cheques";

                Comm3.Parameters.Add("transactId", OleDbType.Integer);
                Comm3.Parameters.Add("IDcheque", OleDbType.Integer).Direction = ParameterDirection.Output;
                Comm3.Parameters.Add("entradaID", OleDbType.Integer);
                Comm3.Parameters.Add("chequeId", OleDbType.VarChar);
                Comm3.Parameters.Add("chequebco", OleDbType.VarChar);
                Comm3.Parameters.Add("montocheque", OleDbType.Decimal);

                //Comm3.Parameters.Add("IDcheque", OleDbType.Numeric).Direction = ParameterDirection.Output;
                //Comm3.Parameters.Add("entradaID", OleDbType.Numeric);
                //Comm3.Parameters.Add("chequeid", OleDbType.Char);
                //Comm3.Parameters.Add("chequebco", OleDbType.Char);
                //Comm3.Parameters.Add("montocheque", OleDbType.Numeric);
                //Comm3.Parameters.Add("cobroid", OleDbType.Numeric);
                //Comm3.Parameters.Add("bancoid", OleDbType.Char);
                //Comm3.Parameters.Add("numdeposito", OleDbType.Char);
                //Comm3.Parameters.Add("chequefecha", OleDbType.Char);
                //Comm3.Parameters.Add("bolivar", OleDbType.Boolean);

                OleDbCommand Comm4 = Conn.CreateCommand();
                Comm4.CommandTimeout = 10 * 60;
                Comm4.CommandType    = CommandType.StoredProcedure;
                Comm4.CommandText    = "Cobranzas.Insertar_Pagos_Cuentas";
                Comm4.Parameters.Add("CodigoPago", OleDbType.VarChar);
                Comm4.Parameters.Add("CodigoCuenta", OleDbType.VarChar);
                Comm4.Parameters.Add("Monto", OleDbType.Decimal);
                Comm4.Parameters.Add("Retencion1", OleDbType.Decimal);
                Comm4.Parameters.Add("Retencion2", OleDbType.Decimal);
                Comm4.Parameters.Add("Pais", OleDbType.Char, 3);

                OleDbCommand Comm5 = Conn.CreateCommand();
                Comm5.CommandTimeout = 10 * 60;
                Comm5.CommandType    = CommandType.Text;
                Comm5.CommandText    = "SELECT Empresapaisid FROM OEmpresapais as ep inner join opais as p on ep.pais=p.pais where p.iso3='" + Pago.Personas.idPais + "'";
                Int32 EmpresaPaisId = Convert.ToInt32(Comm5.ExecuteScalar());

                Comm5.CommandText = "select cuentaid from tbancocuenta as bc inner join tbanco as  b on bc.bancoid=b.bancoid where b.bancopaisid='" + Pago.BancosPropios.Bancos.Codigo + "' and b.empresapaisid=" + EmpresaPaisId.ToString() + " and bc.numcuenta='" + Pago.BancosPropios.NroCuenta + "'";
                Int32 CuentaId = Convert.ToInt32(Comm5.ExecuteScalar());

                Comm5.CommandText = "SELECT Top 1 OS.puertoid FROM dstEstacion AS ES INNER JOIN SubRedSerie AS SS ON SS.subrID=ES.subrID INNER JOIN oOficSerie AS OS ON OS.serie=SS.serieDMDG AND OS.empresaPaisID=SS.empresaPaisID INNER JOIN oEmpresapais as EP on SS.Empresapaisid=Ep.empresapaisid INNER JOIN oPais as P on Ep.pais=p.pais WHERE ES.usuario=SUSER_NAME()and p.iso3='" + Pago.Personas.idPais + "'";
                String PuertoCreacion = Convert.ToString(Comm5.ExecuteScalar());

                OleDbTransaction Trans     = Conn.BeginTransaction();
                Boolean          PagoListo = false;
                try
                {
                    Comm.Transaction  = Trans;
                    Comm2.Transaction = Trans;
                    Comm3.Transaction = Trans;
                    Comm4.Transaction = Trans;


                    //    String PuertoCreacion = Pago.Pagos_Cuentas.First().Cuentas.Datos.Descendants("Dato").Where(x => x.Attribute("Clave").Value == "Port").First().Value;
                    Comm.Parameters["transactId"].Value     = 1;
                    Comm.Parameters["empresaPaisId"].Value  = EmpresaPaisId;
                    Comm.Parameters["descripcion"].Value    = Pago.Descripcion;
                    Comm.Parameters["ptocreacion"].Value    = PuertoCreacion;
                    Comm.Parameters["moneda"].Value         = Pago.idMoneda == "USD" ? 0 : 1;
                    Comm.Parameters["cobradorPaisId"].Value = db.Operadores_Asignaciones.Single(x => x.idOperador == Pago.idOperador && x.idPais == Pago.Personas.idPais).Codigo;
                    Comm.Parameters["clientePaisId"].Value  = Pago.Personas.Codigo;
                    Comm.ExecuteNonQuery();
                    Pago.Codigo = Comm.Parameters["cobroPaisId"].Value.ToString();
                    //Comm.Parameters["fechaCobro", OleDbType.Date).Direction = ParameterDirection.Output;

                    Comm2.Parameters["transactId"].Value     = 1;
                    Comm2.Parameters["empresaPaisId"].Value  = EmpresaPaisId;
                    Comm2.Parameters["cuentaID"].Value       = CuentaId;
                    Comm2.Parameters["fecharecepcion"].Value = Pago.Fecha;
                    Comm2.Parameters["transferencia"].Value  = Pago.TipoPago == 2;
                    Comm2.Parameters["numdeposito"].Value    = Pago.Referencia;
                    Comm2.Parameters["cobroPaisId"].Value    = Pago.Codigo;
                    Comm2.Parameters["montoefectivo"].Value  = Pago.MontoEfectivo;
                    Comm2.ExecuteNonQuery();
                    Int32 Entrada = Convert.ToInt32(Comm2.Parameters["entradaID"].Value);

                    foreach (Entidades.Pagos_Cuentas PC in Pago.Pagos_Cuentas)
                    {
                        Comm4.Parameters["CodigoPago"].Value   = Pago.Codigo;
                        Comm4.Parameters["CodigoCuenta"].Value = PC.Cuentas.Codigo;
                        Comm4.Parameters["Monto"].Value        = PC.Monto;
                        Comm4.Parameters["Retencion1"].Value   = PC.Retencion1;
                        Comm4.Parameters["Retencion2"].Value   = PC.Retencion2;
                        Comm4.Parameters["Pais"].Value         = Pago.Personas.idPais;
                        Comm4.ExecuteNonQuery();
                    }

                    foreach (Entidades.PagosDet Cheque in Pago.PagosDet)
                    {
                        Comm3.Parameters["transactId"].Value  = 1;
                        Comm3.Parameters["entradaID"].Value   = Entrada;
                        Comm3.Parameters["chequeId"].Value    = Cheque.NroCheque;
                        Comm3.Parameters["chequebco"].Value   = Cheque.Bancos.Codigo;
                        Comm3.Parameters["montocheque"].Value = Cheque.Monto;
                        Comm3.ExecuteNonQuery();
                        Cheque.Codigo = Comm3.Parameters["IDcheque"].Value.ToString();
                    }
                    Trans.Commit();
                    PagoListo         = true;
                    Pago.idStatusPago = 6;//Aprobado Procesamiento
                    ClientScript.RegisterStartupScript(typeof(Page), "Aviso", "alert('El código del Pago Generado es:" + Pago.Codigo + "')");

                    db.SubmitChanges();

                    try//Crear Gestión
                    {
                        Int32 Status = Convert.ToInt32(db.Parametros.Single(x => x.Clave == "_STPago" + Pago.Personas.idPais).Valor);
                        Entidades.Gestiones Gestion = new Entidades.Gestiones();
                        Gestion.Descripcion = Pago.Descripcion;
                        db.Gestiones.InsertOnSubmit(Gestion);
                        Gestion.Fecha      = DateTime.Now;
                        Gestion.idOperador = Pago.idOperadorCrea.Value;
                        Gestion.idPersona  = Pago.idPersona;
                        Gestion.idStatus   = Status;
                        foreach (Int32 idCuenta in Pago.Pagos_Cuentas.Select(x => x.idCuenta))
                        {
                            Entidades.Cuentas_Gestiones CG = new Entidades.Cuentas_Gestiones();
                            CG.idCuenta = idCuenta;
                            Gestion.Cuentas_Gestiones.Add(CG);
                        }
                        db.SubmitChanges();
                    }
                    catch (Exception Ex)
                    {
                    }
                }
                catch (Exception Ex)
                {
                    if (!PagoListo)
                    {
                        Response.Write("Error Llevando Pago " + Pago.idPago + "Mensaje: " + Ex.Message);
                        Trans.Rollback();
                        db.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, Pago);
                        Pago.Codigo         = null;
                        Pago.Resultado      = Ex.Message;
                        Pago.FechaResultado = DateTime.Now;
                        Pago.Confirmado     = false;
                        Pago.Aprobado       = false;
                        Pago.idStatusPago   = 2;
                        db.SubmitChanges();
                        Entidades.Avisos Aviso = new Entidades.Avisos();

                        Aviso.Aviso          = "El Pago del cliente(" + Pago.Personas.idPais + "): " + Pago.Personas.Codigo + ", Referencia: " + Pago.Referencia + ", Ha sido rechazado por el SCI por el siguiente motivo: " + Ex.Message;
                        Aviso.FechaAviso     = DateTime.Now.AddMinutes(5);
                        Aviso.FechaCancelado = null;
                        Aviso.FechaOriginal  = DateTime.Now.AddMinutes(5);
                        Aviso.FechaCrea      = DateTime.Now;
                        Aviso.idOperador     = Pago.idOperadorCrea ?? Pago.idOperador ?? 1;
                        Aviso.idOperadorCrea = 1;
                        Aviso.idPersona      = Pago.idPersona;
                        Aviso.VecesMostrada  = 0;
                        db.Avisos.InsertOnSubmit(Aviso);
                        db.SubmitChanges();
                    }
                }
            }
        }