/// <summary>
 /// grega una nueva notificacion
 /// </summary>
 /// <param name="usuario"></param>
 /// <param name="mensaje"></param>
 /// <param name="icono"></param>
 /// <returns></returns>
 public string Agregar(string usuario, string mensaje, string icono, string url)
 {
     try
     {
         Model          context      = new Model();
         notificaciones notificacion = new notificaciones {
             usuario        = usuario,
             notificacion   = mensaje,
             icono          = icono,
             leido          = false,
             url            = url,
             fecha_registro = DateTime.Now
         };
         context.notificaciones.Add(notificacion);
         context.SaveChanges();
         return("");
     }
     catch (DbEntityValidationException ex)
     {
         var errorMessages = ex.EntityValidationErrors
                             .SelectMany(x => x.ValidationErrors)
                             .Select(x => x.ErrorMessage);
         var fullErrorMessage = string.Join("; ", errorMessages);
         return(fullErrorMessage.ToString());
     }
 }
        public List <notificaciones> ObtenerPorUsuario(int id)
        {
            List <notificaciones> lista   = new List <notificaciones>();
            notificaciones        entidad = new notificaciones();

            try
            {
                AbrirConexion();
                StringBuilder CadenaSql = new StringBuilder();

                SqlCommand comandoSelect = new SqlCommand();

                comandoSelect.Connection  = Conexion;
                comandoSelect.CommandType = CommandType.Text;
                comandoSelect.CommandText = "  SELECT [id_notificacion],[id_ticket],[fecha],[dbo].[usuarios].[id_usuario],[notificado],[asunto],[estado],[tipo_notificacion],[foto],"
                                            + " [dbo].[usuarios].[nombre]  FROM[dbo].[notificaciones] left join[dbo].[usuarios]"
                                            + " on[dbo].[notificaciones].id_usuario= [dbo].[usuarios].id_usuario"
                                            + " where  notificado is null and id_ticket in (select id_ticket from tickets where  id_usuario=@IdUsuario union all "
                                            + " select id_ticket from detalle_ticket where id_agente=@IdUsuario)";

                comandoSelect.Parameters.AddWithValue("@IdUsuario", id);

                using (var dr = comandoSelect.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        entidad = new notificaciones();
                        entidad.id_notificacion = int.Parse(dr["id_notificacion"].ToString());
                        entidad.id_ticket       = int.Parse(dr["id_ticket"].ToString());
                        entidad.asunto          = dr["asunto"].ToString();
                        entidad.fecha           = DateTime.Parse(dr["fecha"].ToString());
                        entidad.id_usuario      = int.Parse(dr["id_usuario"].ToString());
                        if (dr["notificado"].ToString() != string.Empty)
                        {
                            entidad.notificado = int.Parse(dr["notificado"].ToString());
                        }
                        entidad.estado            = dr["estado"].ToString();
                        entidad.tipo_notificacion = dr["tipo_notificacion"].ToString();
                        if (dr["foto"].ToString() != string.Empty)
                        {
                            entidad.foto = Convert.ToBase64String((byte[])dr["foto"]);
                        }
                        entidad.nombre = dr["nombre"].ToString();
                        lista.Add(entidad);
                    }
                }
            }
            catch (InvalidCastException ex)
            {
                ApplicationException excepcion = new ApplicationException("Se genero un error de conversión de tipos con el siguiente mensaje: " + ex.Message, ex);
                excepcion.Source = "Insertar notificaciones";
                throw excepcion;
            }
            catch (Exception ex)
            {
                ApplicationException excepcion = new ApplicationException("Se genero un error de aplicación con el siguiente mensaje: " + ex.Message, ex);
                excepcion.Source = "Insertar notificaciones";
                throw excepcion;
            }
            finally
            {
                CerrarConexion();
            }
            return(lista);
        }
Beispiel #3
0
        public ActionResult BrowserAutorizacionesRepuestos(int?id_s, int?menu)
        {
            configuracion_envio_correos correoconfig = db.configuracion_envio_correos.Where(d => d.activo).FirstOrDefault();
            int            usuario_actual            = Convert.ToInt32(Session["user_usuarioid"]);
            int            id           = Convert.ToInt32(Request["autorizacion_id"]);
            autorizaciones autorizacion = db.autorizaciones.Find(id);

            if (autorizacion == null)
            {
                return(HttpNotFound());
            }

            autorizacion.fecha_autorizacion = DateTime.Now;
            autorizacion.user_autorizacion  = Convert.ToInt32(Session["user_usuarioid"]);
            autorizacion.autorizado         = Convert.ToBoolean(Request["autorizado"]);
            autorizacion.comentario         = Request["comentario"];
            db.Entry(autorizacion).State    = EntityState.Modified;
            db.SaveChanges();
            TempData["mensaje"] = "Autorización guardada correctamente";

            // envio de notificacion
            try
            {
                users  user_destinatario = db.users.Find(autorizacion.user_creacion);
                users  user_remitente    = db.users.Find(autorizacion.user_autorizacion);
                string autorizado        = autorizacion.autorizado ? "Autorizado" : "No autorizado";

                MailAddress de   = new MailAddress(correoconfig.correo, correoconfig.nombre_remitente);
                MailAddress para = new MailAddress(user_destinatario.user_email,
                                                   user_destinatario.user_nombre + " " + user_destinatario.user_apellido);
                MailMessage mensaje = new MailMessage(de, para);
                mensaje.Bcc.Add("*****@*****.**");
                mensaje.Bcc.Add("*****@*****.**");
                mensaje.ReplyToList.Add(new MailAddress(user_remitente.user_email,
                                                        user_remitente.user_nombre + " " + user_remitente.user_apellido));
                mensaje.Subject      = "Respuesta Autorización facturación referencia " + autorizacion.ref_codigo;
                mensaje.BodyEncoding = Encoding.Default;
                mensaje.IsBodyHtml   = true;
                string html = "";
                html += "<h4>Cordial Saludo</h4><br>";
                html += "<p>Respuesta solicitud autorización de facturación de la referencia <b>" +
                        autorizacion.ref_codigo + "</b> precio de venta menor al costo </p><br>";
                html += "<p><b>Fecha de solicitud: </b>" + autorizacion.fecha_creacion + "</p>";
                html += "<p><b>Referencia: </b>" + autorizacion.ref_codigo + "</p>";
                html += "<p><b>Estado Solicitud: " + autorizado + " </b></p>";
                html += "<p><b>Observaciones: </b>" + autorizacion.comentario + "</p>";
                html += "<p><b>Fecha Respuesta: </b>" + autorizacion.fecha_autorizacion + "</p>";
                html += "<p><b>Usuario Autorización: </b>" + user_remitente.user_nombre + " " +
                        user_remitente.user_apellido + "</p>";
                mensaje.Body = html;

                SmtpClient cliente = new SmtpClient(correoconfig.smtp_server)
                {
                    Port        = correoconfig.puerto,
                    Credentials = new NetworkCredential(correoconfig.usuario, correoconfig.password),
                    EnableSsl   = true
                };
                cliente.Send(mensaje);

                notificaciones envio = new notificaciones
                {
                    user_remitente    = autorizacion.user_autorizacion,
                    asunto            = "Notificación respuesta autorización facturación referencia",
                    fecha_envio       = DateTime.Now,
                    enviado           = true,
                    user_destinatario = autorizacion.user_creacion,
                    autorizacion_id   = autorizacion.id
                };
                db.notificaciones.Add(envio);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                notificaciones envio = new notificaciones
                {
                    user_remitente    = autorizacion.user_autorizacion,
                    asunto            = "Notificación respuesta autorización facturación referencia",
                    fecha_envio       = DateTime.Now,
                    enviado           = false,
                    user_destinatario = autorizacion.user_creacion,
                    autorizacion_id   = autorizacion.id,
                    razon_no_envio    = ex.Message
                };
                db.notificaciones.Add(envio);
                db.SaveChanges();
            }

            //var autorizaciones = db.autorizaciones.Where(x => x.tipo_autorizacion == 4 && x.user_autorizacion == usuario_actual).ToList();
            BuscarFavoritos(menu);
            return(RedirectToAction("BrowserAutorizacionesRepuestos", new { menu }));
        }
Beispiel #4
0
        public ActionResult BrowserAutorizaciones(int?id_s, int?menu)
        {
            configuracion_envio_correos correoconfig = db.configuracion_envio_correos.Where(d => d.activo).FirstOrDefault();
            int            id           = Convert.ToInt32(Request["autorizacion_id"]);
            autorizaciones autorizacion = db.autorizaciones.Find(id);

            if (autorizacion == null)
            {
                return(HttpNotFound());
            }

            autorizacion.fecha_autorizacion = DateTime.Now;
            autorizacion.user_autorizacion  = Convert.ToInt32(Session["user_usuarioid"]);
            autorizacion.autorizado         = Convert.ToBoolean(Request["autorizado"]);
            autorizacion.comentario         = Request["comentario"];
            db.Entry(autorizacion).State    = EntityState.Modified;
            db.SaveChanges();

            int idPedido = db.vpedido.OrderByDescending(x => x.id)
                           .FirstOrDefault(x => x.planmayor == autorizacion.plan_mayor).id;

            if (autorizacion.autorizado)
            {
                bitacoraExcepcionFactura bitacora = new bitacoraExcepcionFactura
                {
                    id_excepcion           = Convert.ToInt32(Request["excepcion"]),
                    id_Autorizacion        = autorizacion.id,
                    id_Bodega              = autorizacion.bodega,
                    id_Pedido              = idPedido,
                    id_usuario_solicitante = autorizacion.user_creacion,
                    id_usuario_apobador    = Convert.ToInt32(Session["user_usuarioid"]),
                    fecha_aprobacion       = DateTime.Now
                };
                db.bitacoraExcepcionFactura.Add(bitacora);
            }

            db.SaveChanges();

            TempData["mensaje"] = "Autorización guardada correctamente";

            #region envio de notificacion

            try
            {
                users  user_destinatario = db.users.Find(autorizacion.user_creacion);
                users  user_remitente    = db.users.Find(autorizacion.user_autorizacion);
                string autorizado        = autorizacion.autorizado ? "Autorizado" : "No autorizado";

                MailAddress de   = new MailAddress(correoconfig.correo, correoconfig.nombre_remitente);
                MailAddress para = new MailAddress(user_destinatario.user_email,
                                                   user_destinatario.user_nombre + " " + user_destinatario.user_apellido);
                MailMessage mensaje = new MailMessage(de, para);
                mensaje.Bcc.Add("*****@*****.**");
                mensaje.Bcc.Add("*****@*****.**");
                mensaje.ReplyToList.Add(new MailAddress(user_remitente.user_email,
                                                        user_remitente.user_nombre + " " + user_remitente.user_apellido));
                mensaje.Subject      = "Respuesta Autorización plan mayor " + autorizacion.icb_vehiculo.plan_mayor;
                mensaje.BodyEncoding = Encoding.Default;
                mensaje.IsBodyHtml   = true;
                string html = "";
                html += "<h4>Cordial Saludo</h4><br>";
                html += "<p>Respuesta solicitud autorización de asignación del vehículo con plan mayor <b>" +
                        autorizacion.icb_vehiculo.plan_mayor + "</b> por averia </p><br>";
                html += "<p><b>Fecha de solicitud: </b>" + autorizacion.fecha_creacion + "</p>";
                html += "<p><b>Plan Mayor: </b>" + autorizacion.icb_vehiculo.plan_mayor + "</p>";
                html += "<p><b>Estado Solicitud: " + autorizado + " </b></p>";
                html += "<p><b>Observaciones: </b>" + autorizacion.comentario + "</p>";
                html += "<p><b>Fecha Respuesta: </b>" + autorizacion.fecha_autorizacion + "</p>";
                html += "<p><b>Usuario Autorización: </b>" + user_remitente.user_nombre + " " +
                        user_remitente.user_apellido + "</p>";
                mensaje.Body = html;

                SmtpClient cliente = new SmtpClient(correoconfig.smtp_server)
                {
                    Port        = correoconfig.puerto,
                    Credentials = new NetworkCredential(correoconfig.usuario, correoconfig.password),
                    EnableSsl   = true
                };
                cliente.Send(mensaje);

                notificaciones envio = new notificaciones
                {
                    user_remitente    = autorizacion.user_autorizacion,
                    asunto            = "Notificación respuesta autorización por averia",
                    fecha_envio       = DateTime.Now,
                    enviado           = true,
                    user_destinatario = autorizacion.user_creacion,
                    autorizacion_id   = autorizacion.id
                };
                db.notificaciones.Add(envio);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                notificaciones envio = new notificaciones
                {
                    user_remitente    = autorizacion.user_autorizacion,
                    asunto            = "Notificación respuesta autorización por averia",
                    fecha_envio       = DateTime.Now,
                    enviado           = false,
                    user_destinatario = autorizacion.user_creacion,
                    autorizacion_id   = autorizacion.id,
                    razon_no_envio    = ex.Message
                };
                db.notificaciones.Add(envio);
                db.SaveChanges();
            }

            #endregion

            //var autorizaciones = db.autorizaciones.Include(x => x.icb_vehiculo.icb_vehiculo_eventos).Where(x=> x.tipo_autorizacion == 1).ToList();
            BuscarFavoritos(menu);
            return(RedirectToAction("BrowserAutorizaciones", new { menu }));
        }