示例#1
0
 public SolicitudController()
 {
     _bita                = new BitacoraSolicitudesRepository();
     _rolpersonaRepo      = new RolPersonaRepository();
     _SolicitudRepository = new SolicitudRepository();
     _PersonasRepository  = new PersonasRepository();
 }
示例#2
0
        // GET: Solicitud/AgregarSolicitud()
        public ActionResult AgregarSolicitud()
        {
            SolicitudRepository SolRepo = new SolicitudRepository();

            ViewBag.Auto = SolRepo.ObtenerAutosList();
            return(View());
        }
        private async Task <Solicitud> GeneraSolicitud(PropiedadIndustrial pi)
        {
            try
            {
                DateTime  hoy       = DateTime.Now;
                Solicitud solicitud = new Solicitud()
                {
                    ClavePersona      = pi.ClavePersona,
                    TipoInformacionId = 16,
                    InformacionId     = pi.PropiedadIndustrialId.ToString(),
                    FechaSolicitud    = hoy,
                    EstadoFlujoId     = pi.EstadoFlujoId,
                    titulo            = pi.Titulo
                };
                SolicitudRepository sol = new SolicitudRepository();
                var existe = await sol.existe(solicitud.TipoInformacionId, solicitud.InformacionId);

                if (existe == null)
                {
                    solicitud = await sol.Create(solicitud);
                }
                else
                {
                    existe.EstadoFlujoId = 2;
                    solicitud            = await sol.UpdateEstadoActualizacion(existe);
                }

                return(solicitud);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
示例#4
0
        public ActionResult Obtener(string id)
        {
            try
            {
                ProyectoRepository     pr  = new ProyectoRepository();
                SolicitudRepository    sr  = new SolicitudRepository();
                ResponsableRepository  rr  = new ResponsableRepository();
                TipoProyectoRepository tpr = new TipoProyectoRepository();
                AmbienteRepository     ar  = new AmbienteRepository();

                ProyectoView pv = new ProyectoView();
                pv.UsuarioLogueado = ObtenerUsuario();
                pv.Mensaje         = "";
                Proyecto p = pr.Obtener(id);
                pv.Proyecto      = p;
                pv.Responsables  = rr.Listar(String.Empty);
                pv.TipoProyectos = tpr.Listar(String.Empty);
                p.Solicitudes    = sr.ListarPorProyecto(p.Id);
                pv.Ambientes     = ar.Listar(String.Empty);
                p.Correos        = pr.ListarCorreo(p);
                return(View("Obtener", pv));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new ProyectoView {
                    Mensaje = ex.Message
                }));
            }
        }
        private async Task Aprobar(PropiedadIndustrial pin)
        {
            try
            {
                Solicitud solicitud = new Solicitud()
                {
                    TipoInformacionId = 16,
                    InformacionId     = pin.PropiedadIndustrialId.ToString()
                };
                SolicitudRepository sol = new SolicitudRepository();
                var existe = await sol.existe(solicitud.TipoInformacionId, solicitud.InformacionId);

                if (existe != null)
                {
                    existe.EstadoFlujoId = 3;
                    solicitud            = await sol.UpdateEstadoActualizacion(existe);

                    //registra bitacora

                    await RegistraBitacora(existe.SolicitudId, existe.ClavePersona, "Aprobado: " + pin.Justificacion, existe.EstadoFlujoId, 1);
                }



                //enviar correo de rechazo
                await Notifica(pin, "Aprobada");

                await CreaNuevoOC(pin);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e.InnerException);
            }
        }
示例#6
0
        public FileResult ObtenerArchivoLog(string id)
        {
            SolicitudRepository sr      = new SolicitudRepository();
            Archivo             archivo = sr.ObtenerArchivoLog(int.Parse(id));

            return(File(archivo.Contenido, System.Net.Mime.MediaTypeNames.Application.Octet, archivo.Nombre));
        }
示例#7
0
        private async Task <Solicitud> GeneraSolicitud(DerechosAutor da)
        {
            try
            {
                DateTime  hoy       = DateTime.Now;
                Solicitud solicitud = new Solicitud()
                {
                    ClavePersona      = da.ClavePersona,
                    TipoInformacionId = 15,
                    InformacionId     = da.DerechosAutorId.ToString(),
                    FechaSolicitud    = hoy,
                    EstadoFlujoId     = da.EstadoFlujoId
                };
                SolicitudRepository sol = new SolicitudRepository();
                var existe = await sol.existe(solicitud.TipoInformacionId, solicitud.InformacionId);

                if (existe == null)
                {
                    solicitud = await sol.Create(solicitud);
                }
                else
                {
                    existe.EstadoFlujoId = 2;
                    solicitud            = await sol.UpdateEstadoActualizacion(existe);
                }

                return(solicitud);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
示例#8
0
        public ActionResult Actualizar(UsuarioView UsuarioView)
        {
            try
            {
                string id             = Request.Form["txtId"];
                string usuarioUsuario = Request.Form["txtUsuarioUsuario"];
                string correoUsuario  = Request.Form["txtCorreoUsuario"];
                string celular        = Request.Form["txtCelular"];
                string anexo          = Request.Form["txtAnexo"];
                string skype          = Request.Form["txtSkype"];

                bool administrador = EvaluarCheckBox("chkAdministradorUsuario");
                bool operador      = EvaluarCheckBox("chkOperadorUsuario");
                bool lector        = EvaluarCheckBox("chkLectorUsuario");
                bool cm            = EvaluarCheckBox("chkCMUsuario");
                bool rm            = EvaluarCheckBox("chkRMUsuario");
                bool ejecutor      = EvaluarCheckBox("chkEjecutorUsuario");
                bool test          = EvaluarCheckBox("chkTestUsuario");

                Usuario p = new Usuario();
                p.Id            = int.Parse(id);
                p.Nombre        = usuarioUsuario;
                p.Correo        = correoUsuario;
                p.Administrador = administrador;
                p.Operador      = operador;
                p.Lector        = lector;
                p.CM            = cm;
                p.RM            = rm;
                p.Ejecutor      = ejecutor;
                p.Test          = test;
                p.Celular       = celular;
                p.Anexo         = anexo;
                p.Skype         = skype;

                UsuarioRepository pr = new UsuarioRepository();

                p = pr.Actualizar(p);
                if (p.Id == 0)
                {
                    UsuarioView.Mensaje = "Hubo un error al crear el Usuario";
                    return(View("Crear", UsuarioView));
                }

                UsuarioView pp = new UsuarioView();
                pp.Mensaje = "Usuario Actualizado";
                pp.Usuario = p;
                SolicitudRepository sr = new SolicitudRepository();
                pp.Usuario.Solicitudes = sr.ListarPorSolicitante(p.Id);
                pp.Roles           = new RolRepository().Listar("");
                pp.UsuarioLogueado = ObtenerUsuario();
                return(View("Obtener", pp));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new UsuarioView {
                    Mensaje = ex.Message
                }));
            }
        }
示例#9
0
        // GET:Solicitud/ActualizarSolicituds/5
        public ActionResult ActualizarSolicitud(int id)
        {
            SolicitudRepository SolRep = new SolicitudRepository();

            ViewBag.Auto = SolRep.ObtenerAutosList();

            return(View(SolRep.ObtenerSolicitud().Find(Aut => Aut.IdSolicitud == id)));
        }
示例#10
0
文件: Util.cs 项目: raulmercadox/cmdb
        public static Solicitud ActualizarSolicitud(DateTime ahora, Usuario usuario, Solicitud s, string rol, List <Archivo> archivos, string cboAccion, string txtInteresados, string cboObservacion, string txtComentario)
        {
            ObservacionRepository observacionRepository = new ObservacionRepository();
            SolicitudRepository   solicitudRepository   = new SolicitudRepository();

            EventLog.WriteEntry("Util", "linea 470");
            if (!String.IsNullOrEmpty(cboAccion))
            {
                var estadoAntiguo = s.Estado;
                s.Estado = solicitudRepository.ObtenerEstado(rol, s.Estado, cboAccion);
                if (String.IsNullOrEmpty(s.Estado))
                {
                    s.Estado = estadoAntiguo;
                }
            }
            EventLog.WriteEntry("Util", "linea 473");
            s.CopiarA = txtInteresados;
            EventLog.WriteEntry("Util", "linea 475");
            if (!String.IsNullOrEmpty(s.Estado) && !String.IsNullOrEmpty(cboAccion))
            {
                Log log = new Log();
                log.Usuario = usuario;
                log.Accion  = cboAccion;
                EventLog.WriteEntry("Util", "linea 481");
                if (log.Accion.IndexOf("Observar") >= 0)
                {
                    EventLog.WriteEntry("Util", "linea 484");
                    int observacionId;
                    int.TryParse(cboObservacion, out observacionId);
                    log.Observacion = observacionRepository.Obtener(observacionId);
                    log.Comentario  = String.IsNullOrEmpty(txtComentario) ? log.Observacion.Nombre : txtComentario;
                }
                else
                {
                    EventLog.WriteEntry("Util", "linea 492");
                    log.Comentario = txtComentario.Trim();
                }
                if (/*log.Accion.IndexOf("Observar") >= 0 &&*/ archivos.Count > 0 && archivos[0].Contenido.Length > 0)
                {
                    EventLog.WriteEntry("Util", "linea 497");
                    log.Archivo = archivos[0];
                }
                else
                {
                    EventLog.WriteEntry("Util", "linea 502");
                    log.Archivo.Nombre    = String.Empty;
                    log.Archivo.Contenido = new byte[0];
                }
                log.Estado    = s.Estado;
                log.FechaHora = ahora;
                EventLog.WriteEntry("Util", "linea 508");
                s.Logs.Add(log);
            }
            EventLog.WriteEntry("Util", "linea 511");
            s = solicitudRepository.ActualizarOtroSolicitadoxSol(s);
            return(s);
        }
示例#11
0
        public FileResult ObtenerArchivo(string id)
        {
            SolicitudRepository sr = new SolicitudRepository();

            string[] partes      = id.Split(new char[] { '-' });
            int      solicitudId = int.Parse(partes[0].Substring(1));
            int      numArchivo  = int.Parse(partes[1]);
            Archivo  archivo     = sr.ObtenerArchivo(solicitudId, numArchivo);

            return(File(archivo.Contenido, System.Net.Mime.MediaTypeNames.Application.Octet, archivo.Nombre));
        }
 public NotificacionRepository()
 {
     _ctx                 = new SIGCOCHContext();
     _personaRepo         = new PersonasRepository();
     _SolicitudRepository = new SolicitudRepository();
     _db            = new MT_Context();
     _dbGen         = new GEN_Context();
     _ctxGI         = new GI_Context();
     _evaluadorRepo = new EvaluadorIdeaRepository();
     _dbCR          = new CR_Context();
 }
示例#13
0
文件: Util.cs 项目: raulmercadox/cmdb
 public static bool EsPrimerEnvio(Solicitud s)
 {
     try
     {
         SolicitudRepository sr       = new SolicitudRepository();
         int ambienteId               = s.Ambiente.Id;
         List <Solicitud> solicitudes = sr.Listar(String.Empty, ambienteId, s.Proyecto.Id, String.Empty, String.Empty, false, String.Empty, null, null, String.Empty, String.Empty, false);
         return(solicitudes.Count == 1);
     }
     catch
     {
         throw;
     }
 }
示例#14
0
        public ActionResult ActualizarSolicitud(int id, SolicitudModel obj)
        {
            try
            {
                SolicitudRepository AutRep = new SolicitudRepository();
                obj.IdSolicitud = id;

                AutRep.ActualizarSolicitud(obj);

                return(RedirectToAction("ObtenerSolicitud"));
            }
            catch
            {
                return(View());
            }
        }
示例#15
0
 // GET: Solicitud/BorrarSolicitud/5
 public ActionResult BorrarSolicitud(int id)
 {
     try
     {
         SolicitudRepository EmpRepo = new SolicitudRepository();
         if (EmpRepo.BorrarSolicitud(id))
         {
             ViewBag.AlertMsg = "Solicitud borrado satisfactoriamente";
         }
         return(RedirectToAction("ObtenerSolicitud"));
     }
     catch
     {
         return(View());
     }
 }
示例#16
0
        // GET: Aut/ObtenerSolicitud()
        public ActionResult ObtenerSolicitud(string searchString)
        {
            SolicitudRepository SolRepo = new SolicitudRepository();


            //Buscar solicitudes por folio
            var folio = from s in SolRepo.ObtenerSolicitud() select s;


            if (!String.IsNullOrEmpty(searchString))
            {
                folio = folio.Where(s => s.NumeroLote.Equals(searchString));
            }

            ModelState.Clear();

            return(View(folio.ToList()));
        }
示例#17
0
        //
        // GET: /Home/

        public ActionResult Index()
        {
            try
            {
                string  nombreUsuario = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value).UserData;
                Usuario usuario       = new UsuarioRepository().Obtener(nombreUsuario);

                HomeView            hv = new HomeView();
                SolicitudRepository sr = new SolicitudRepository();
                VentanaRepository   vr = new VentanaRepository();
                hv.Pendientes = sr.ListarPendientesCM();
                string nombreVista = "Index";
                if (User.IsInRole("RM"))
                {
                    hv.Pendientes = sr.ListarPendientesRM();
                    hv.Aprobados  = sr.ListarAprobadosRM();
                    hv.Ventanas   = vr.Listar();

                    nombreVista = "IndexRM";
                }
                if (User.IsInRole("CM"))
                {
                    hv.Pendientes = sr.ListarPendientesCM();
                    nombreVista   = "IndexCM";
                }
                if (User.IsInRole("Operador"))
                {
                    hv.Pendientes = sr.ListarPendientesOperador(usuario.Id);
                    nombreVista   = "IndexOperador";
                }
                if (User.IsInRole("Ejecutor"))
                {
                    hv.Pendientes = sr.ListarPendientesEjecutor(usuario.Id);
                    nombreVista   = "IndexEjecutor";
                }
                return(View(nombreVista, hv));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new HomeView {
                    Mensaje = ex.Message
                }));
            }
        }
示例#18
0
        public ActionResult AgregarSolicitud(SolicitudModel Solicitud)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    SolicitudRepository AutRep = new SolicitudRepository();

                    if (AutRep.AgregarSolicitud(Solicitud))
                    {
                        ViewBag.Message = "Solicitud agregado satisfactoriamente";
                    }
                }

                return(RedirectToAction("ObtenerSolicitud"));
            }
            catch
            {
                return(RedirectToAction("ObtenerSolicitud"));
            }
        }
示例#19
0
 public ActionResult Obtener(string id)
 {
     try
     {
         UsuarioView pv = new UsuarioView();
         pv.Mensaje = "";
         UsuarioRepository   pr = new UsuarioRepository();
         Usuario             p  = pr.Obtener(id);
         SolicitudRepository sr = new SolicitudRepository();
         p.Solicitudes      = sr.ListarPorSolicitante(p.Id);
         pv.Usuario         = p;
         pv.Roles           = new RolRepository().Listar("");
         pv.UsuarioLogueado = ObtenerUsuario();
         return(View("Obtener", pv));
     }
     catch (Exception ex)
     {
         return(View("Mensaje", new UsuarioView {
             Mensaje = ex.Message
         }));
     }
 }
 public NotificationController()
 {
     _SolicitudRepository = new SolicitudRepository();
 }
示例#21
0
 public SolicitudBusiness()
 {
     solicitudRepository = new SolicitudRepository();
 }
示例#22
0
        public ActionResult EnviarEjecutor(string id)
        {
            try
            {
                SolicitudRepository sr      = new SolicitudRepository();
                string estadoInicial        = "Aprobado_x_RM";
                string accionSiguiente      = "RM.Enviar_Ejec";
                string nombreUsuario        = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value).UserData;
                string codigoPase           = String.Empty;
                string responsableEjecucion = String.Empty;

                Usuario ux        = new UsuarioRepository().Obtener(nombreUsuario);
                int     ventanaId = int.Parse(Request.Form["cboVentana"]);

                AreaRepository ar    = new AreaRepository();
                List <Area>    areas = ar.Listar("");

                string[]           keys = Request.Form.AllKeys;
                int                solicitudId;
                AmbienteRepository ambienteRepository = new AmbienteRepository();

                List <Solicitud> solicitudes = new List <Solicitud>();
                List <Ambiente>  ambientes   = new List <Ambiente>();

                #region Validar si se están marcando solicitudes de regularización
                var listaReg = new List <string>();
                foreach (var key in keys)
                {
                    if (String.Compare(key.Substring(0, 3), "chk") == 0 && String.Compare(key, "chkTodos") != 0)
                    {
                        if (String.Compare(Request.Form[key], "on") == 0)
                        {
                            solicitudId = int.Parse(key.Substring(3));
                            var s = sr.Obtener(solicitudId);
                            if (s.Regularizacion)
                            {
                                listaReg.Add("S" + s.Id.ToString().PadLeft(6, '0'));
                            }
                        }
                    }
                }
                if (listaReg.Count() > 0)
                {
                    var sbMensaje = new StringBuilder();
                    sbMensaje.Append("<p>No se pueden enviar al ejecutor las siguientes solicitudes de regularizacion</p>");
                    sbMensaje.Append("<ul>");
                    foreach (var item in listaReg)
                    {
                        sbMensaje.Append("<li>" + item + "</li>");
                    }
                    sbMensaje.Append("</ul>");
                    var hv = new HomeView();
                    hv.Mensaje = sbMensaje.ToString();
                    return(View("Mensaje", hv));
                }
                #endregion

                #region Validar si existen areas asignadas a las solicitudes marcadas para enviar
                StringBuilder ambienteEnviar = new StringBuilder();
                StringBuilder validacion     = new StringBuilder();
                validacion.Append("<p>Las siguientes solicitudes no tienen asignados en sus formularios los ejecutores</p>");
                validacion.Append("<ul>");
                bool areasVacias = false;

                foreach (string key in keys)
                {
                    if (String.Compare(key.Substring(0, 3), "chk") == 0 && String.Compare(key, "chkTodos") != 0 && String.Compare(Request.Form[key], "on") == 0)
                    {
                        solicitudId = int.Parse(key.Substring(3));
                        Solicitud s = sr.Obtener(solicitudId);
                        s.Ambiente = ambienteRepository.Obtener(s.Ambiente.Id);
                        if (!ambientes.Exists(p => p.Id == s.Ambiente.Id))
                        {
                            ambientes.Add(s.Ambiente);
                            ambienteEnviar.Append(s.Ambiente.Nombre);
                            ambienteEnviar.Append(",");
                        }
                        if (!Util.Util.ExisteArea(s))
                        {
                            areasVacias = true;
                            validacion.Append("<li>S" + s.Id.ToString().PadLeft(6, '0') + "</li>");
                        }
                    }
                }
                validacion.Append("</ul>");
                if (areasVacias)
                {
                    HomeView hv = new HomeView();
                    hv.Mensaje = validacion.ToString();
                    return(View("Mensaje", hv));
                }
                #endregion
                string listaAmbientes = ambienteEnviar.ToString().Substring(0, ambienteEnviar.ToString().Length - 1);

                string        url = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"));
                StringBuilder sb  = new StringBuilder();
                sb.Append("<table border='1' style='border-collapse:collapse;width:100%;font-family:Arial;font-size:12px;'>");
                sb.Append("<thead>");
                sb.Append("<tr><th style='background-color:#002060;color:#ffffff;'>AMBIENTE</th><th style='background-color:#002060;color:#ffffff;'>SOLICITUD</th><th style='background-color:#002060;color:#ffffff;'>RESPONSABLE DE EJECUCION</th><th style='background-color:#002060;color:#ffffff;'>ANALISTA DESARROLLO</th><th style='background-color:#002060;color:#ffffff;'>PROYECTO</th><th style='background-color:#002060;color:#ffffff;'>FORMULARIO</th></tr>");
                sb.Append("</thead>");
                sb.Append("<tbody>");

                foreach (string key in keys)
                {
                    if (String.Compare(key.Substring(0, 3), "chk") == 0 && String.Compare(key, "chkTodos") != 0)
                    {
                        if (String.Compare(Request.Form[key], "on") == 0)
                        {
                            solicitudId = int.Parse(key.Substring(3));
                            Solicitud s = sr.Obtener(solicitudId);

                            solicitudes.Add(s);
                            List <SolicitudArchivo> solicitudesArchivo = Util.Util.ListarArchivos(s);
                            string solicitudRFC = (s.Ambiente.Final && !String.IsNullOrEmpty(s.RFC)) ? s.RFC : String.Concat("S", s.Id.ToString().PadLeft(6, '0'));
                            foreach (SolicitudArchivo sa in solicitudesArchivo)
                            {
                                if (sa.Area.Correos.Count() > 0)
                                {
                                    responsableEjecucion = sa.Area.Nombre;
                                }
                                else
                                {
                                    responsableEjecucion = s.AnalistaTestProd;
                                }


                                //sb.Append("<tr><td>" + s.Ambiente.Nombre + "</td><td>S" + s.Id.ToString().PadLeft(6, '0') + "</td><td>" + sa.SarID + "</td><td style='background-color:" + sa.Area.Color + ";'>" + responsableEjecucion + "</td><td>" + s.AnalistaDesarrollo + "</td><td>" + s.Proyecto.Codigo + "</td>");
                                sb.Append("<tr><td>" + s.Ambiente.Nombre + "</td><td>" + solicitudRFC + "</td><td style='background-color:" + sa.Area.Color + ";'>" + responsableEjecucion + "</td><td>" + s.AnalistaDesarrollo + "</td><td>" + s.Proyecto.Codigo + " - " + s.Proyecto.Nombre + "</td>");
                                sb.Append("<td>");
                                foreach (Archivo archivo in sa.Archivos)
                                {
                                    sb.Append("<a href='" + url + "/Home/ObtenerArchivo/S" + s.Id.ToString().PadLeft(6, '0') + "-" + archivo.Id.ToString() + "'>" + archivo.Nombre + "</a><br/>");
                                }
                                sb.Append("</td></tr>");
                            }
                            foreach (var otros in s.Aprobaciones)
                            {
                                if (otros.Area != null && otros.Area.Id != 0)
                                {
                                    sb.Append("<tr><td>" + s.Ambiente.Nombre + "</td><td>" + solicitudRFC + "</td><td style='background-color:" + otros.Area.Color + ";'>" + responsableEjecucion + "</td><td>" + s.AnalistaDesarrollo + "</td><td>" + s.Proyecto.Codigo + " - " + s.Proyecto.Nombre + "</td>");
                                    sb.Append("<td>");
                                    sb.Append("<a href='" + url + "/Solicitud/ObtenerAprobacion/" + otros.Id.ToString() + "'>" + otros.Nombre + "</a><br/>");
                                    sb.Append("</td></tr>");
                                }
                            }

                            string estado = sr.ObtenerEstado("RM", estadoInicial, accionSiguiente);

                            s.Estado = estado;
                            if (ventanaId == 0)
                            {
                                s.Ventana           = null;
                                s.EjecutarEmergente = false;
                            }
                            else if (ventanaId == -1)
                            {
                                s.Ventana           = null;
                                s.EjecutarEmergente = true;
                            }
                            else if (ventanaId > 0)
                            {
                                s.Ventana           = new VentanaRepository().Obtener(ventanaId);
                                s.EjecutarEmergente = false;
                            }
                            else
                            {
                                s.Ventana           = null;
                                s.EjecutarEmergente = false;
                            }

                            Log log = new Log();
                            log.Usuario    = ux;
                            log.Accion     = accionSiguiente;
                            log.Comentario = "Se envía a los ejecutores";
                            log.Estado     = s.Estado;
                            log.FechaHora  = DateTime.Now;
                            s.Logs.Add(log);

                            sr.ActualizarRMSolicitadoxSol(s);
                            s.Logs = s.Logs.OrderByDescending(p => p.FechaHora).ToList();
                            EstadoRepository er      = new EstadoRepository();
                            List <Estado>    estados = er.Listar();
                            Estado           estadoX = estados.FirstOrDefault(p => p.Nombre == s.Estado);
                            if (estadoX != null && estadoX.EnviarCorreo)
                            {
                                Util.Util.EnviarCorreo(url, s, "Solicitud S" + s.Id.ToString().PadLeft(6, '0') + (s.Emergente ? " EMERGENTE/Normal Urgente " : " ") + s.Estado);
                            }
                        }
                    }
                }

                sb.Append("</tbody>");
                sb.Append("</table>");

                string ventana = String.Empty;
                if (ventanaId == -1)
                {
                    ventana = "Emergente";
                }
                else if (ventanaId > 0)
                {
                    VentanaRepository vr        = new VentanaRepository();
                    Ventana           vv        = vr.Obtener(ventanaId);
                    string            horaHasta = String.Empty;
                    if (vv.Hasta.HasValue)
                    {
                        horaHasta = " - " + vv.Hasta.Value.ToString("HH:mm");
                    }
                    ventana = String.Concat("Normal a horas ", vv.Desde.ToString("HH:mm"), horaHasta);
                }
                else
                {
                    ventana = Util.Util.ObtenerDescripcionVentana(solicitudes);
                }
                StringBuilder sbPrevio     = new StringBuilder();
                var           mensajeEnvio = Request.Form["txtMensajeEnvio"];
                sbPrevio.Append(mensajeEnvio);
                //sbPrevio.Append("Estimados<br/><br/>");
                //sbPrevio.Append("Se envía la relación de pases a ejecutarse en la ventana: " + ventana + "<br/><br/>");
                var asunto = Request.Form["txtAsunto"];

                /*StringBuilder sb2 = new StringBuilder();
                 * sb2.Append("Pases a ejecutar");
                 * sb2.Append(" Ventana: " + ventana);
                 * sb2.Append(" - Ambiente: " + listaAmbientes.ToUpper());
                 */
                Util.Util.EnviarCorreo(solicitudes.ToArray(), asunto, sbPrevio.ToString() + sb.ToString(), true, true, true, true, true, true, true, true);

                return(View("Mensaje", new HomeView {
                    Mensaje = "Se envió el correo a los ejecutores"
                }));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new HomeView {
                    Mensaje = ex.Message
                }));
            }
        }
示例#23
0
        public ActionResult Actualizar(ProyectoView proyectoView)
        {
            try
            {
                AmbienteRepository ar = new AmbienteRepository();

                string id             = Request.Form["txtId"];
                string codigoProyecto = Request.Form["txtCodigoProyecto"];
                string nombreProyecto = Request.Form["txtNombreProyecto"];
                string pm             = Request.Form["txtPm"];
                string ptl            = Request.Form["txtPtl"];
                char   estado         = Request.Form["cboEstadoProyecto"].ToCharArray()[0];
                //string fechaProduccion = Request.Form["txtFechaProdProy"];
                int    responsableId         = int.Parse(Request.Form["cboResponsable"]);
                bool   mejora                = Request.Form["chkMejora"] == "on";
                string impacto               = mejora ? Request.Form["txtImpacto"] : String.Empty;
                int    tipoProyectoId        = int.Parse(Request.Form["cboTipoProyecto"]);
                string txtCodigoPresupuestal = Request.Form["txtCodigoPresupuestal"];
                string txtCodigoAlterno      = Request.Form["txtCodigoAlterno"];

                Proyecto p = new Proyecto();
                p.Id                 = int.Parse(id);
                p.Codigo             = codigoProyecto;
                p.Nombre             = nombreProyecto;
                p.Pm                 = pm;
                p.Ptl                = ptl;
                p.Estado             = estado;
                p.Mejora             = mejora;
                p.Impacto            = impacto;
                p.CodigoPresupuestal = txtCodigoPresupuestal;
                p.CodigoAlterno      = txtCodigoAlterno;
                if (responsableId > 0)
                {
                    p.Responsable = new Responsable {
                        Id = responsableId
                    };
                }
                if (tipoProyectoId > 0)
                {
                    p.TipoProyecto = new TipoProyecto {
                        Id = tipoProyectoId
                    };
                }

                List <ProyectoAmbiente> proyectoAmbientes = new List <ProyectoAmbiente>();

                #region Ambientes
                string clave = "chkAmbiente";
                foreach (string key in Request.Form.AllKeys)
                {
                    if (key.IndexOf(clave) >= 0)
                    {
                        int              ambienteId = int.Parse(key.Substring(clave.Length));
                        string           fechaBruto = Request.Form["txtFecha" + ambienteId.ToString()];
                        int              anio       = int.Parse(fechaBruto.Substring(6));
                        int              mes        = int.Parse(fechaBruto.Substring(3, 2));
                        int              dia        = int.Parse(fechaBruto.Substring(0, 2));
                        DateTime         fechaPase  = new DateTime(anio, mes, dia);
                        ProyectoAmbiente pa         = new ProyectoAmbiente();
                        pa.Ambiente  = ar.Obtener(ambienteId);
                        pa.FechaPase = fechaPase;
                        proyectoAmbientes.Add(pa);
                    }
                }

                p.Ambientes = proyectoAmbientes;
                #endregion

                #region Aplicaciones
                List <string> nombres = Request.Form.AllKeys.ToList().Where(param => param.Contains("nombreapp")).ToList();
                foreach (string nombre in nombres)
                {
                    string indice           = nombre.Substring("nombreapp".Length);
                    string nombreAplicacion = Request.Form["nombreapp" + indice];
                    string rutaSvn          = Request.Form["svnapp" + indice];
                    string ide       = Request.Form["ideapp" + indice];
                    string version   = Request.Form["versionapp" + indice];
                    char   estadoApp = Request.Form["estadoapp" + indice].ToCharArray()[0];
                    if (!String.IsNullOrEmpty(Request.Form["hdId" + indice]) || Request.Form["eliminadoapp" + indice] == "0")
                    {
                        p.Aplicaciones.Add(new Aplicacion
                        {
                            Id          = String.IsNullOrEmpty(Request.Form["hdId" + indice]) ? 0 : Convert.ToInt32(Request.Form["hdId" + indice]),
                            Nombre      = nombreAplicacion,
                            RutaSVN     = rutaSvn,
                            Herramienta = ide,
                            Version     = version,
                            Eliminar    = Request.Form["eliminadoapp" + indice] == "1",
                            Estado      = estadoApp
                        });
                    }
                }
                #endregion

                #region Desarrolladores
                List <string> idDeses = Request.Form.AllKeys.ToList().Where(param => param.Contains("iddes")).ToList();
                foreach (string idDes in idDeses)
                {
                    string indice = idDes.Substring("iddes".Length);
                    if (!String.IsNullOrEmpty(Request.Form["iddes" + indice]))
                    {
                        if (Request.Form["nuevo" + indice] == "0" || Request.Form["eliminadodes" + indice] == "0")
                        {
                            p.Desarrolladores.Add(new Desarrollador
                            {
                                Id       = int.Parse(Request.Form["iddes" + indice]),
                                Usuario  = Request.Form["usuariodes" + indice],
                                Correo   = Request.Form["correodes" + indice],
                                Nombre   = Request.Form["nombredes" + indice],
                                Eliminar = Request.Form["eliminadodes" + indice] == "1"
                            });
                        }
                    }
                }
                #endregion

                #region Correos
                var prefijo = "proyectocorreonombre";
                var correos = Request.Form.AllKeys.ToList().Where(param => param.Contains(prefijo)).ToList();
                foreach (var item in correos)
                {
                    var indice = item.Substring(prefijo.Length);
                    var correo = Request.Form[prefijo + indice];
                    if (!String.IsNullOrEmpty(Request.Form["hdCorreo" + indice]) || Request.Form["eliminadoCorreo" + indice] == "0")
                    {
                        if (p.Correos == null)
                        {
                            p.Correos = new List <Correo>();
                        }
                        p.Correos.Add(new Correo
                        {
                            Id        = String.IsNullOrEmpty(Request.Form["hdCorreo" + indice]) ? 0 : Convert.ToInt32(Request.Form["hdCorreo" + indice]),
                            Direccion = correo,
                            Eliminar  = Request.Form["eliminadoCorreo" + indice] == "1"
                        });
                    }
                }
                #endregion

                ProyectoRepository pr = new ProyectoRepository();

                p = pr.Actualizar(p);
                if (p.Id == 0)
                {
                    proyectoView.Mensaje = "Hubo un error al actualizar el proyecto";
                    return(View("Crear", proyectoView));
                }

                p.Ambientes = proyectoAmbientes;
                ProyectoView pp = new ProyectoView();
                pp.Mensaje  = "Proyecto Actualizado";
                pp.Proyecto = p;
                SolicitudRepository sr = new SolicitudRepository();
                pp.Proyecto.Solicitudes = sr.ListarPorProyecto(p.Id);
                pp.UsuarioLogueado      = ObtenerUsuario();
                ResponsableRepository  rr  = new ResponsableRepository();
                TipoProyectoRepository tpr = new TipoProyectoRepository();
                pp.Responsables  = rr.Listar(String.Empty);
                pp.TipoProyectos = tpr.Listar(String.Empty);
                pp.Ambientes     = ar.Listar(String.Empty);
                p.Correos        = pr.ListarCorreo(p);
                return(View("Obtener", pp));
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new ProyectoView {
                    Mensaje = ex.Message
                }));
            }
        }
示例#24
0
        public ActionResult ObjetosPendientes(string id)
        {
            try
            {
                AmbienteRepository  ar = new AmbienteRepository();
                ProyectoView        pv = new ProyectoView();
                SolicitudRepository sr = new SolicitudRepository();
                pv.Mensaje   = String.Empty;
                pv.Ambientes = ar.Listar(String.Empty);
                string codigoProyecto = Request.Form["txtCodigoProyecto"];
                int    ambienteId     = int.Parse(Request.Form["cboAmbiente"]);
                int    tipoFormulario = int.Parse(Request.Form["cboTipoFormulario"]);

                //pv.Proyecto = new Proyecto { Codigo = codigoProyecto };
                pv.Ambiente = new Ambiente {
                    Id = ambienteId
                };
                pv.TipoFormulario = tipoFormulario;
                ProyectoRepository pr = new ProyectoRepository();
                pv.Proyecto = pr.Obtener(codigoProyecto);
                if (pv.Proyecto != null && pv.Proyecto.Id > 0)
                {
                    int proyectoId = pv.Proyecto.Id;


                    //UtilExcel utilExcel = new UtilExcel();
                    if (tipoFormulario == 1) // Base de datos
                    {
                        pv.Campos = pr.ListarCampos(proyectoId, ambienteId);

                        pv.ObjetosBD = pr.ListarObjetoBD(proyectoId, ambienteId);

                        pv.PermisosDBU = pr.ListarPermisosDBU(proyectoId, ambienteId);

                        pv.Jobs = pr.ListarJosb(proyectoId, ambienteId);

                        if (pv.ObjetosBD.Count == 0 && pv.Campos.Count == 0 && pv.PermisosDBU.Count == 0 && pv.Jobs.Count == 0)
                        {
                            pv.Mensaje = "No se encontraron registros";
                        }

                        //app.Quit();
                        //ReleaseObject(app);
                    }
                    else if (tipoFormulario == 2) // Configuraciones
                    {
                        pv.Configuraciones = pr.ListarConfiguraciones(proyectoId, ambienteId);


                        if (pv.Configuraciones.Count == 0)
                        {
                            pv.Mensaje = "No se encontraron registros";
                        }
                    }

                    return(View(pv));
                }
                else
                {
                    pv.Mensaje = String.Format("El código de proyecto {0} no existe en el CMS", codigoProyecto);
                    return(View("Mensaje", pv));
                }
            }
            catch (Exception ex)
            {
                return(View("Mensaje", new ProyectoView {
                    Mensaje = ex.Message
                }));
            }
        }
 public BitacoraSolicitudesController()
 {
     _solicitudesRepo    = new SolicitudRepository();
     _repository         = new BitacoraSolicitudesRepository();
     _PersonasRepository = new PersonasRepository();
 }
示例#26
0
        public List <ObjetoBD> Listar(string nombre)
        {
            try
            {
                var ir    = new InstanciaRepository();
                var er    = new EsquemaRepository();
                var tobdr = new TipoObjetoBDRepository();
                var tabdr = new TipoAccionBDRepository();
                var sr    = new SolicitudRepository();

                var objetosBD = new List <ObjetoBD>();
                var cmd       = new SqlCommand("dbo.usp_ListarObjetoBDPorNombre", this.Conexion);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@nombre", SqlDbType.VarChar, 100)).Value = nombre;
                Conexion.Open();
                var sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                while (sdr.Read())
                {
                    var objetoBD = new ObjetoBD();
                    objetoBD.Instancia = new Instancia {
                        Id = Convert.ToInt32(sdr["instanciaId"]), Nombre = sdr["instancianombre"].ToString()
                    };
                    objetoBD.Esquema = new Esquema {
                        Id = Convert.ToInt32(sdr["esquemaid"]), Nombre = sdr["esquemanombre"].ToString()
                    };
                    objetoBD.TipoObjeto = new TipoObjetoBD {
                        Id = Convert.ToInt32(sdr["tipoobjetobdid"]), Nombre = sdr["tipoobjetonombre"].ToString()
                    };
                    objetoBD.TipoAccion = new TipoAccionBD {
                        Id = Convert.ToInt32(sdr["tipoaccionbdid"]), Nombre = sdr["tipoaccionnombre"].ToString()
                    };
                    objetoBD.Solicitud = new Solicitud
                    {
                        Id       = Convert.ToInt32(sdr["solicitudid"]),
                        Ambiente = new Ambiente {
                            Id = Convert.ToInt32(sdr["ambienteid"]), Nombre = sdr["ambientenombre"].ToString()
                        },
                        Proyecto = new Proyecto {
                            Codigo = sdr["proyectocodigo"].ToString(), Nombre = sdr["proyectonombre"].ToString()
                        },
                        Estado        = sdr["estado"].ToString(),
                        FechaCreacion = Convert.ToDateTime(sdr["fechacreacion"])
                    };
                    if (sdr["fechaejecucion"] == DBNull.Value)
                    {
                        objetoBD.Solicitud.FechaEjecucion = null;
                    }
                    else
                    {
                        objetoBD.Solicitud.FechaEjecucion = Convert.ToDateTime(sdr["fechaejecucion"]);
                    }
                    objetoBD.Nombre = sdr["ObjetoBD"].ToString();
                    objetosBD.Add(objetoBD);
                }
                sdr.Close();
                return(objetosBD);
            }
            catch
            {
                throw;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                {
                    Conexion.Close();
                }
            }
        }