Ejemplo n.º 1
0
 protected void btnAccept_Click(object sender, ImageClickEventArgs e)
 {
     try
     {
         if (!DataOk())
         {
             return;
         }
         if (newRecord)
         {
             resumenRevision = new ResumenRevision();
         }
         UnloadData(resumenRevision);
         if (newRecord)
         {
             ctx.Add(resumenRevision);
         }
         ctx.SaveChanges();
         if (newRecord)
         {
             RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller));
         }
         else
         {
             RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller));
         }
     }
     catch (Exception ex)
     {
         ControlDeError(ex);
     }
 }
Ejemplo n.º 2
0
        public static void CrearResumenesRevision(Dispositivo dsp, LainsaSci ctx)
        {
            if (dsp == null)
            {
                return;
            }
            IList <PlantillaRevision> lpr = (from p in dsp.TipoDispositivo.PlantillaRevisions
                                             where p.NoPeriodica == false
                                             select p).ToList <PlantillaRevision>();

            foreach (PlantillaRevision pr in lpr)
            {
                ResumenRevision rr = (from rsr in dsp.ResumenesRevisones
                                      where rsr.PlantillaRevision.PlantillaId == pr.PlantillaId
                                      select rsr).FirstOrDefault <ResumenRevision>();
                if (rr == null)
                {
                    rr                   = new ResumenRevision();
                    rr.Dispositivo       = dsp;
                    rr.PlantillaRevision = pr;
                    ctx.Add(rr);
                }
            }
            ctx.SaveChanges();
        }
Ejemplo n.º 3
0
 protected void UnloadData(ResumenRevision rr)
 {
     if (rdtFechaUltima.SelectedDate != null)
     {
         rr.FechaUltima = (DateTime)rdtFechaUltima.SelectedDate;
         if (CntLainsaSci.FechaNula(rr.FechaSiguiente))
         {
             rr.FechaInicio = rr.FechaUltima;
         }
         CntLainsaSci.PlanificarRevisiones(rr, ctx);
     }
 }
Ejemplo n.º 4
0
    protected void Page_Init(object sender, EventArgs e)
    {
        // it gets an appropiate context (LainsaSciCTX -> web.config)
        ctx = new LainsaSci("LainsaSciCTX");
        // verify if a Usuario is logged
        Usuario = CntWinWeb.IsSomeoneLogged(this, ctx);
        if (Usuario == null)
        {
            Response.Redirect("Default.aspx");
        }
        else
        {
            Session["UsuarioId"] = Usuario.UsuarioId;
        }
        //
        // si llega aquí está autorizado
        permiso = CntLainsaSci.GetPermiso(Usuario.GrupoUsuario, "dispositivogrid", ctx);
        if (permiso == null)
        {
            RadNotification1.Text = String.Format("<b>{0}</b><br/>{1}",
                                                  (string)GetGlobalResourceObject("ResourceLainsaSci", "Warning"),
                                                  (string)GetGlobalResourceObject("ResourceLainsaSci", "NoPermissionsAssigned"));
            RadNotification1.Show();
            RadAjaxManager1.ResponseScripts.Add("closeWindow();");
        }
        btnAccept.Visible = permiso.Modificar;
        // Si esto no va antes de ResumenRevisionID tendrás problemas.
        if (Request.QueryString["Caller"] != null)
        {
            caller = Request.QueryString["Caller"];
            caller = caller.Replace("'", "");
        }

        // Is it a new record or not?
        if (Request.QueryString["ResumenRevisionId"] != null)
        {
            resumenRevision = CntLainsaSci.GetResumenRevision(int.Parse(Request.QueryString["ResumenRevisionId"]), ctx);
            LoadData(resumenRevision);
            if (CntLainsaSci.HayRevisionesHechas(resumenRevision, ctx))
            {
                rdtFechaUltima.Enabled = false;
            }
            newRecord = false;
        }
        // control de skin
        if (Session["Skin"] != null)
        {
            RadSkinManager1.Skin = Session["Skin"].ToString();
        }
    }
Ejemplo n.º 5
0
 public static void PlanificarRevisionesAccesorios(ResumenRevision rr, LainsaSci ctx)
 {
     foreach (Dispositivo d in rr.Dispositivo.Accesorios)
     {
         foreach (ResumenRevision r in d.ResumenesRevisones)
         {
             if (r.PlantillaRevision.PlantillaId == rr.PlantillaRevision.PlantillaId)
             {
                 r.FechaUltima = rr.FechaUltima;
                 PlanificarRevisiones(r, ctx);
             }
         }
     }
     return;
 }
Ejemplo n.º 6
0
        public static bool HayRevisionesHechas(ResumenRevision rr, LainsaSci ctx)
        {
            bool res = false;
            // Eliminar todas las revisiones de ese dispositivo para esa plantilla, no realizadas
            var rs = from r in rr.Dispositivo.Revisiones
                     where r.PlantillaRevision.PlantillaId == rr.PlantillaRevision.PlantillaId
                     select r;

            foreach (Revision r in rs)
            {
                if (!CntLainsaSci.FechaNula(r.FechaRevision))
                {
                    res = true;
                }
            }
            return(res);
        }
Ejemplo n.º 7
0
 protected void LoadData(ResumenRevision rr)
 {
     txtResumenRevisionId.Text = rr.ResumenRevisionId.ToString();
     txtDispositivo.Text       = rr.Dispositivo.Nombre;
     txtPlantilla.Text         = rr.PlantillaRevision.Descripcion;
     if (!CntLainsaSci.FechaNula(rr.FechaInicio))
     {
         txtFechaInicio.Text = String.Format("{0:dd/MM/yyyy}", rr.FechaUltima);
     }
     if (!CntLainsaSci.FechaNula(rr.FechaUltima))
     {
         rdtFechaUltima.SelectedDate = rr.FechaUltima;
     }
     if (!CntLainsaSci.FechaNula(rr.FechaSiguiente))
     {
         txtFechaSiguiente.Text = String.Format("{0:dd/MM/yyyy}", rr.FechaSiguiente);
     }
 }
    protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
    {
        // we only process commands with a datasource (our image buttons)
        if (e.CommandSource == null)
        {
            return;
        }
        string typeOfControl = e.CommandSource.GetType().ToString();

        if (typeOfControl.Equals("System.Web.UI.WebControls.ImageButton"))
        {
            int         id   = 0;
            ImageButton imgb = (ImageButton)e.CommandSource;
            if (imgb.ID != "New" && imgb.ID != "Exit")
            {
                id = (int)e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex][e.Item.OwnerTableView.DataKeyNames[0]];
            }
            switch (imgb.ID)
            {
            case "Select":
                break;

            case "Edit":
                break;

            case "Delete":
                try
                {
                    ResumenRevision ResumenRevision = CntLainsaSci.GetResumenRevision(id, ctx);
                    CntLainsaSci.CTXEliminar(ResumenRevision, ctx);
                    CntLainsaSci.CTXGuardar(ctx);
                    RefreshGrid(true);
                }
                catch (Exception ex)
                {
                    ControlDeError(ex);
                }
                break;
            }
        }
    }
Ejemplo n.º 9
0
        public static void ProgramarSiguienteRevision(Revision rev, LainsaSci ctx, bool controlSuperiores)
        {
            // si la plantilla no es periódica no hay nada que planificar
            if (rev.PlantillaRevision.NoPeriodica)
            {
                return;
            }
            // si el dispositivo está caducado no hay nada que planificar.
            if (rev.Dispositivo.Caducado)
            {
                return;
            }
            // si la revisión actual no tiene fecha tampoco podemos planificar.
            if (CntLainsaSci.FechaNula(rev.FechaRevision))
            {
                return;
            }
            Dispositivo dsp = rev.Dispositivo;

            // controlamos si el dispositivo en el intermedio no está operativo y no se planifican
            if (!dsp.Operativo && !dsp.SiguePlan)
            {
                return;
            }
            PlantillaRevision pr = rev.PlantillaRevision;
            ResumenRevision   rr = (from rsr in dsp.ResumenesRevisones
                                    where rsr.PlantillaRevision.PlantillaId == pr.PlantillaId
                                    select rsr).FirstOrDefault <ResumenRevision>();
            // lo primero es conocer cuando tocaría la siguiente.
            DateTime fechaFin = SiguienteFecha(rev.FechaRevision, pr);
            // controlar que no hay una revisión de periodo mayor que coincida con ella
            //if (controlSuperiores)
            //{
            //    if (HayPlanificadaSuperior(fechaFin, rev, ctx))
            //        return;
            //}

            // buscamos si ya había una revisión que exactamente [fecha y tipo]
            // coi-ncida con la que vamos a dar de alta
            Revision rev2 = (from r in ctx.Revisions
                             where r.Dispositivo.DispositivoId == dsp.DispositivoId &&
                             r.PlantillaRevision.PlantillaId == pr.PlantillaId &&
                             r.FechaPlanificada == fechaFin
                             select r).FirstOrDefault <Revision>();

            if (rev2 == null)
            {
                rev2                   = new Revision();
                rev2.Dispositivo       = rev.Dispositivo;
                rev2.FechaPlanificada  = fechaFin;
                rev2.PlantillaRevision = pr;
                rev2.Estado            = "PLANIFICADA";
                // Comprobamos si caemos en caducidad
                if (fechaFin >= dsp.FechaCaducidad)
                {
                    rev2.CaduProx = true;
                }
                else
                {
                    // calculamos en que fecha caerá la siguiente y si es fuera de caducidad
                    DateTime fechaSS = SiguienteFecha(fechaFin, pr);
                    if (fechaSS >= dsp.FechaCaducidad)
                    {
                        rev2.CaduProx = true;
                    }
                }

                ctx.Add(rev2);
                foreach (Campo c in pr.Campos)
                {
                    DatosRevision dr = new DatosRevision();
                    dr.Campo = c;
                    // Miramos los valores de campo en la anterior para copiarlos
                    DatosRevision dr2 = (from d in rev.DatosRevisions
                                         where d.Campo.Nombre == c.Nombre
                                         select d).FirstOrDefault <DatosRevision>();
                    if (dr2 != null)
                    {
                        dr.Valor = dr2.Valor;
                    }

                    dr.Revision = rev2;
                    ctx.Add(dr);
                }
                // Eliminmos las posibles inferiores a la planificada.
                if (controlSuperiores)
                {
                    EliminarInferiores(rev2, ctx);                    // esto ya se ha hecho antes
                }
                ctx.SaveChanges();
            }
            // Por último actulaizar la fecha en resumen
            rr.FechaUltima    = rev.FechaRevision;
            rr.FechaSiguiente = fechaFin;

            ctx.SaveChanges();
        }
Ejemplo n.º 10
0
        public static void PlanificarRevisiones(ResumenRevision rr, LainsaSci ctx)
        {
            // Hay que evitar que un dispositivo que no sigue planificación planifique.
            if (!rr.Dispositivo.Operativo && !rr.Dispositivo.SiguePlan)
            {
                return;
            }
            // NO se planifican dispositivos caducados
            if (rr.Dispositivo.Caducado)
            {
                return;
            }
            // Eliminar todas las revisiones de ese dispositivo para esa plantilla, no realizadas
            var rs = from r in rr.Dispositivo.Revisiones
                     where r.PlantillaRevision.PlantillaId == rr.PlantillaRevision.PlantillaId
                     select r;
            IList <Revision> revisiones = new List <Revision>();

            foreach (Revision r in rs)
            {
                if (CntLainsaSci.FechaNula(r.FechaRevision))
                {
                    // hay que salvar las programadas para poder recargarlas
                    if (r.Programa != null)
                    {
                        Revision rev = new Revision
                        {
                            Dispositivo       = r.Dispositivo,
                            PlantillaRevision = r.PlantillaRevision,
                            FechaPlanificada  = r.FechaPlanificada,
                            Programa          = r.Programa,
                            FechaProgramada   = r.FechaPlanificada
                        };
                        revisiones.Add(rev);
                    }
                    ctx.Delete(r.DatosRevisions);
                    ctx.Delete(r.Sustitucions);
                    ctx.Delete(r);
                }
            }
            ctx.SaveChanges();
            if (CntLainsaSci.FechaNula(rr.FechaUltima))
            {
                return;
            }
            DateTime fechaBase      = rr.FechaUltima;
            DateTime fechaSiguiente = SiguienteFecha(fechaBase, rr.PlantillaRevision);
            // buscamos si ya había una revisión que coincida con la que vamos a dar de alta
            Revision rev2 = (from r in ctx.Revisions
                             where r.Dispositivo.DispositivoId == rr.Dispositivo.DispositivoId && r.PlantillaRevision.PlantillaId == rr.PlantillaRevision.PlantillaId && r.FechaRevision == fechaSiguiente && r.Dispositivo.Operativo == true
                             select r).FirstOrDefault <Revision>();

            if (rev2 == null)
            {
                rev2                  = new Revision();
                rev2.Dispositivo      = rr.Dispositivo;
                rev2.FechaPlanificada = fechaSiguiente;
                // Comprobamos si caemos en caducidad
                if (fechaSiguiente >= rev2.Dispositivo.FechaCaducidad)
                {
                    rev2.CaduProx = true;
                }
                else
                {
                    // calculamos en que fecha caerá la siguiente y si es fuera de caducidad
                    DateTime fechaSS = SiguienteFecha(fechaSiguiente, rr.PlantillaRevision);
                    if (fechaSS >= rev2.Dispositivo.FechaCaducidad)
                    {
                        rev2.CaduProx = true;
                    }
                }
                rev2.PlantillaRevision = rr.PlantillaRevision;
                rev2.Estado            = "PLANIFICADA";

                //Respetamos la programación en función de las revisiones anteriores
                foreach (Revision r in revisiones)
                {
                    if (r.Dispositivo.DispositivoId == rev2.Dispositivo.DispositivoId && r.PlantillaRevision.PlantillaId == rev2.PlantillaRevision.PlantillaId && r.FechaPlanificada == rev2.FechaPlanificada)
                    {
                        rev2.Programa        = r.Programa;
                        rev2.FechaProgramada = r.FechaProgramada;
                        rev2.Estado          = "PROGRAMADA";
                        r.Programa.Revisions.Add(rev2);
                    }
                }
                ctx.Add(rev2);
                // buscamos la revisión anterior que tenga datos
                Revision rva = (from rv in ctx.Revisions
                                where rv.Dispositivo.DispositivoId == rev2.Dispositivo.DispositivoId &&
                                rv.PlantillaRevision.PlantillaId == rev2.PlantillaRevision.PlantillaId &&
                                rv.Estado == "REALIZADA" &&
                                rv.FechaRevision < rev2.FechaPlanificada
                                select rv).FirstOrDefault <Revision>();

                foreach (Campo c in rr.PlantillaRevision.Campos)
                {
                    DatosRevision dr = new DatosRevision();
                    dr.Campo = c;
                    // si hay anterior copiamos
                    if (rva != null)
                    {
                        DatosRevision dr2 = (from d in rva.DatosRevisions
                                             where d.Campo.Nombre == c.Nombre
                                             select d).FirstOrDefault <DatosRevision>();
                        if (dr2 != null)
                        {
                            dr.Valor = dr2.Valor;
                        }
                    }
                    dr.Revision = rev2;
                    ctx.Add(dr);
                }

                ctx.SaveChanges();
            }
            // Actualizamos la fecha siguiente en esta plantilla
            rr.FechaSiguiente = fechaSiguiente;
            ctx.SaveChanges();
        }