/// <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); }
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 })); }
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 })); }