/*
         * Steven Camacho B
         * 27/06/2019
         * Metodo que redirecciona a la pantalla donde se realiza el mantenimiento preventivo de un activo
         * se activa cuando se presiona el boton de mantenimiento
         */
        protected void btnMantenimiento_Click(object sender, EventArgs e)
        {
            int idActivo = Convert.ToInt32((((LinkButton)(sender)).CommandArgument).ToString());

            List <ActivoPlanPreventivo> listaPlan = (List <ActivoPlanPreventivo>)Session["listaPlanFiltrada"];

            ActivoPlanPreventivo activoPlan = new ActivoPlanPreventivo();

            foreach (ActivoPlanPreventivo activo in listaPlan)
            {
                if (activo.Placa == idActivo)
                {
                    activoPlan = activo;
                    break;
                }
            }
            Activo enviarActivo = new Activo();

            enviarActivo.Placa             = activoPlan.Placa;
            Session["activoMantenimiento"] = enviarActivo;
            Session["procedencia"]         = "mantenimientoPreventivo";
            String url = Page.ResolveUrl("~/Catalogos/MantenimientosCorrectivos/NuevoMantenimientoCorrectivo.aspx");

            Response.Redirect(url);
        }
Пример #2
0
        }//guardarListaPlan

        /// <summary>
        /// Steven Camacho
        /// 17/06/2019
        /// Efecto: devuelve una lista con todos los activos en orden de prioridad, tomando en cuenta solo último mantenimiento en caso de tenerlo.
        /// Devuelve: lista de activos procesados para realizar mantenimiento.
        /// </summary>
        public List <ActivoPlanPreventivo> obtenerListaActivoPorPrioridad()
        {
            conexion.Close();
            List <ActivoPlanPreventivo> listaActivos = new List <ActivoPlanPreventivo>();
            SqlCommand sqlCommand = new SqlCommand("select a.placa,m.fecha,e.id_edificio,u.numero_aula  from activo a " +
                                                   "left join mantenimiento m " +
                                                   "on a.placa = m.placa_activo and year(m.fecha)>= year(getdate())-2 and m.es_correctivo=0 " +
                                                   "left join  ubicacion u " +
                                                   "on m.id_ubicacion = u.id_ubicacion " +
                                                   "left join edificio e " +
                                                   "on e.id_edificio = u.id_edificio " +
                                                   "where a.placa not in(select placa_activo from mantenimiento where id_ubicacion=1) " +
                                                   "order by m.fecha ,e.id_edificio,u.numero_aula", conexion);
            SqlDataReader reader;

            conexion.Open();
            reader = sqlCommand.ExecuteReader();
            while (reader.Read())
            {
                ActivoPlanPreventivo activoNuevo = new ActivoPlanPreventivo();
                activoNuevo.Placa = Int32.Parse(reader.GetValue(0).ToString());
                foreach (var activo in listaActivos)
                {
                    if (activoNuevo.Placa == activo.Placa)
                    {
                        listaActivos.Remove(activo);
                        break;
                    }
                }
                listaActivos.Add(activoNuevo);
            }
            conexion.Close();
            return(listaActivos);
        }//obtenerListaActivoPorPrioridad
Пример #3
0
        }//obtenerListaActivoPorPrioridad

        /// <summary>
        /// Steven Camacho
        /// 17/06/2019
        /// Efecto: devuelve una lista con todos los elementos del plan de mantenimiento preventivo, tomando los diferentes datos de una consulta de varias tablas
        /// Devuelve: lista de activos plan preventivo.
        /// </summary>
        public List <ActivoPlanPreventivo> obtenerTodo()
        {
            List <ActivoPlanPreventivo> listaActivos = new List <ActivoPlanPreventivo>();
            SqlCommand sqlCommand = new SqlCommand("" +
                                                   "select p.placa_activo,a.descripcion,f.nombre,e.nombre,u.numero_aula,p.mes,m.fecha,m.es_correctivo " +
                                                   "from Propuesta_Mantenimiento_Preventivo p " +
                                                   "join Activo a on a.placa=p.placa_activo and p.esta_aprovado=0 " +
                                                   "left join Mantenimiento m on m.placa_activo=p.placa_activo and m.id_mantenimiento= " +
                                                   "(select Top 1 id_mantenimiento from Mantenimiento ma " +
                                                   "where ma.placa_activo= p.placa_activo " +
                                                   "order by id_mantenimiento desc ) " +
                                                   "left join Funcionario f on f.id=m.id_funcionario " +
                                                   "left join Ubicacion u on u.id_ubicacion=m.id_ubicacion " +
                                                   "left join Edificio e on e.id_edificio= u.id_edificio " +
                                                   "where p.placa_activo not in(select placa_activo from mantenimiento where es_correctivo=0 " +
                                                   "and id_plan= (select top(1) id_plan from [plan] Order By id_plan desc)) and " +
                                                   "p.id_plan =(select top(1) id_plan from [plan] Order By id_plan desc ) " +
                                                   "order by p.mes asc", conexion);

            SqlDataReader reader;

            conexion.Open();
            reader = sqlCommand.ExecuteReader();
            while (reader.Read())
            {
                ActivoPlanPreventivo activoNuevo = new ActivoPlanPreventivo();
                activoNuevo.Placa        = Int32.Parse(reader.GetValue(0).ToString());
                activoNuevo.Equipo       = reader.GetValue(1).ToString();
                activoNuevo.Funcionario  = reader.GetValue(2).ToString();
                activoNuevo.Edificio     = reader.GetValue(3).ToString();
                activoNuevo.Ubicacion    = reader.GetValue(4).ToString();
                activoNuevo.MesPropuesto = Int32.Parse(reader.GetValue(5).ToString());
                string fechaMantenimiento = reader.GetValue(6).ToString();
                if (fechaMantenimiento == "")
                {
                    activoNuevo.UltimoMantenimiento = "";
                }
                else
                {
                    activoNuevo.UltimoMantenimiento = (DateTime.Parse(fechaMantenimiento)).ToShortDateString();
                }
                String es_correctivo = reader.GetValue(7).ToString();
                if (es_correctivo == "True")
                {
                    es_correctivo = "Correctivo";
                }
                else if (es_correctivo == "False")
                {
                    es_correctivo = "Preventivo";
                }
                else
                {
                    es_correctivo = "Sin Mantenimiento";
                }
                activoNuevo.Es_correctivo = es_correctivo;
                listaActivos.Add(activoNuevo);
            }
            conexion.Close();
            return(listaActivos);
        }
Пример #4
0
 /// <summary>
 /// Steven Camacho
 /// 16/06/1019
 /// Clase que genera la información que se incluirá respecto al plan preventivo anual de activos
 /// Modifica la tabla del plan preventivo, asociando activos con meses determinados en base a último mantenimiento, edificio y mes.
 /// </summary>
 public bool generarPlanPreventivo()
 {
     if (!planPreventivoDatos.existePlanVigente())
     {
         List <ActivoPlanPreventivo> listaActivos = planPreventivoDatos.obtenerListaActivoPorPrioridad();
         double totalActivos  = listaActivos.Count();            //determina la cantidad total de activos que entrarán en el plan de mantenimeinto.
         double activosPorMes = Math.Ceiling(totalActivos / 10); //determina la cantidad de activos a revisar por mes.
         int    contador      = 0;
         int    numMes        = 2;                               //empieza en el mes de febrero la asignación.
         List <ActivoPlanPreventivo> listaPlanActivos = new List <ActivoPlanPreventivo>();
         foreach (var activo in listaActivos)
         {
             if (contador == activosPorMes)
             {
                 numMes  += 1;
                 contador = 0;
             }
             ActivoPlanPreventivo nuevoActivoPlan = new ActivoPlanPreventivo();
             nuevoActivoPlan.Placa        = activo.Placa;
             nuevoActivoPlan.MesPropuesto = numMes;
             listaPlanActivos.Add(nuevoActivoPlan);
             contador++;
         }
         planPreventivoDatos.guardarListaPlan(listaPlanActivos);
         return(true);
     }
     return(false);
 }//Metodo Generar Plan