コード例 #1
0
 protected void btnAccept_Click(object sender, ImageClickEventArgs e)
 {
     try
     {
         if (!DataOk())
         {
             return;
         }
         if (newRecord)
         {
             plantillaRevision = new PlantillaRevision();
         }
         UnloadData(plantillaRevision);
         if (newRecord)
         {
             ctx.Add(plantillaRevision);
         }
         ctx.SaveChanges();
         if (newRecord)
         {
             string url      = String.Format("PlantillaRevisionTab.aspx?Caller=PlantillaRevisionGrid&PlantillaId={0}", plantillaRevision.PlantillaId);
             string jCommand = String.Format("closeOpen('{0}','{1}');", url, "PlantillaRevisionTab");
             RadAjaxManager1.ResponseScripts.Add(jCommand);
             //RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller));
         }
         else
         {
             RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", "PlantillaRevisionGrid"));
         }
     }
     catch (Exception ex)
     {
         ControlDeError(ex);
     }
 }
コード例 #2
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, "PlantillaRevisiongrid", 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 PlantillaRevisionID tendrás problemas.
        if (Request.QueryString["Caller"] != null)
        {
            caller = Request.QueryString["Caller"];
            caller = caller.Replace("'", "");
        }
        //
        CargarTiposPeriodo("");
        // Is it a new record or not?
        if (Request.QueryString["PlantillaId"] != null)
        {
            plantillaRevision = CntLainsaSci.GetPlantillaRevision(int.Parse(Request.QueryString["PlantillaId"]), ctx);
            LoadData(plantillaRevision);
            this.Title = String.Format("PlantillaRevision: {0}", plantillaRevision.Descripcion);
            newRecord  = false;
        }
        if (Request.QueryString["TipoId"] != null)
        {
            tipoId = int.Parse(Request.QueryString["TipoId"]);
            tipo   = CntLainsaSci.GetTipoDispositivo(tipoId, ctx);
            if (tipo != null)
            {
                rdcTipoDisp.Items.Clear();
                rdcTipoDisp.Items.Add(new RadComboBoxItem(tipo.Nombre, tipo.TipoId.ToString()));
                rdcTipoDisp.SelectedValue = tipo.TipoId.ToString();
                rdcTipoDisp.Enabled       = false;
                imgbTipo.Enabled          = false;
            }
        }
    }
コード例 #3
0
 protected void UnloadData(PlantillaRevision plantillaRevision)
 {
     plantillaRevision.Descripcion     = txtDescripcion.Text;
     plantillaRevision.TipoDispositivo = CntLainsaSci.GetTipoDispositivo(int.Parse(rdcTipoDisp.SelectedValue), ctx);
     plantillaRevision.TipoPeriodo     = rdcTipoPeriodo.SelectedValue;
     plantillaRevision.NumeroPeriodos  = (int)txtNumeroPeriodos.Value;
     plantillaRevision.Comentarios     = txtComentarios.Text;
     plantillaRevision.ConSustitucion  = chkConSustitucion.Checked;
 }
コード例 #4
0
ファイル: CampoForm.aspx.cs プロジェクト: rafaelgr/lainsa-sci
    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, "campogrid", 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;

        if (Request.QueryString["Caller"] != null)
        {
            caller = Request.QueryString["Caller"];
            caller = caller.Replace("'", "");
        }

        if (Request.QueryString["PlantillaId"] != null)
        {
            plantilla = CntLainsaSci.GetPlantillaRevision(int.Parse(Request.QueryString["PlantillaId"]), ctx);
            CargaPlantilla(plantilla);
        }
        CargaTipos(new TipoCampo());
        // Is it a new record or not?
        if (Request.QueryString["CampoId"] != null)
        {
            campo = CntLainsaSci.GetCampo(int.Parse(Request.QueryString["CampoId"]), ctx);
            LoadData(campo);
            newRecord = false;
        }
        else
        {
            CargarInformeDe("");
        }
        // control de skin
        if (Session["Skin"] != null)
        {
            RadSkinManager1.Skin = Session["Skin"].ToString();
        }
    }
コード例 #5
0
    protected void btnPlanificar_Click(object sender, ImageClickEventArgs e)
    {
        bool noRealizadPreviamente = false;

        try
        {
            if (!DataOk())
            {
                return;
            }
            if (newRecord)
            {
                revision = new Revision();
            }
            UnloadData(revision);
            CntLainsaSci.CTXGuardar(ctx);
            // peso de esta revisión
            PlantillaRevision pr = revision.PlantillaRevision;
            int peso             = CntLainsaSci.CalculoPeso(pr.TipoPeriodo) * pr.NumeroPeriodos;
            // Buscamos los resúmenes de revisón de ese dispositivo
            foreach (ResumenRevision rr in revision.Dispositivo.ResumenesRevisones)
            {
                // cargamos la plantilla correspondiente
                pr = rr.PlantillaRevision;
                // si la revisón no es periódica no la tocamos
                if (pr.NoPeriodica)
                {
                    continue;
                }
                // calculamos su peso
                int peso2 = CntLainsaSci.CalculoPeso(pr.TipoPeriodo) * pr.NumeroPeriodos;
                // comprobamos si su plantilla es igual o inferior
                if (peso2 <= peso)
                {
                    // actualizamos la última fecha de revisión como esta
                    rr.FechaUltima = revision.FechaRevision;
                    // ya ahora planificamos con las fechas actualizadas
                    CntLainsaSci.PlanificarRevisiones(rr, ctx);
                }
            }
            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);
        }
    }
コード例 #6
0
 protected void LoadData(PlantillaRevision plantillaRevision)
 {
     txtPlantillaId.Text = plantillaRevision.PlantillaId.ToString();
     txtDescripcion.Text = plantillaRevision.Descripcion;
     // cargar el tipo de dispositivo
     rdcTipoDisp.Items.Clear();
     rdcTipoDisp.Items.Add(new RadComboBoxItem(plantillaRevision.TipoDispositivo.Nombre, plantillaRevision.TipoDispositivo.TipoId.ToString()));
     rdcTipoDisp.SelectedValue = plantillaRevision.TipoDispositivo.TipoId.ToString();
     //
     CargarTiposPeriodo(plantillaRevision.TipoPeriodo);
     txtNumeroPeriodos.Value   = plantillaRevision.NumeroPeriodos;
     txtComentarios.Text       = plantillaRevision.Comentarios;
     chkConSustitucion.Checked = plantillaRevision.ConSustitucion;
 }
コード例 #7
0
ファイル: CampoGrid.aspx.cs プロジェクト: rafaelgr/lainsa-sci
 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, "campogrid", 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();");
     }
     CntWinWeb.TranslateRadGridFilters(RadGrid1);
     if (Request.QueryString["InTab"] != null)
     {
         mode = Request.QueryString["InTab"];
     }
     if (Request.QueryString["Caller"] != null)
     {
         caller = Request.QueryString["Caller"];
     }
     if (Request.QueryString["PlantillaId"] != null)
     {
         plantilla = CntLainsaSci.GetPlantillaRevision(int.Parse(Request.QueryString["PlantillaId"]), ctx);
         if (plantilla != null)
         {
             RadGrid1.Columns.FindByDataField("PlantillaRevision.Descripcion").Visible = false;
         }
     }
     // control de skin
     if (Session["Skin"] != null)
     {
         RadSkinManager1.Skin = Session["Skin"].ToString();
     }
 }
コード例 #8
0
 protected void CargaPlantilla(PlantillaRevision plantilla)
 {
     if (plantilla == null)
     {
         rdcPlantilla.DataSource     = CntLainsaSci.GetPlantillaRevisiones(ctx);
         rdcPlantilla.DataTextField  = "Nombre";
         rdcPlantilla.DataValueField = "PlantillaId";
     }
     rdcPlantilla.Items.Clear();
     rdcPlantilla.Items.Add(new RadComboBoxItem(plantilla.Descripcion, plantilla.PlantillaId.ToString()));
     rdcPlantilla.SelectedValue = plantilla.PlantillaId.ToString();
     if (caller.Equals("PlantillaRevisionTab"))
     {
         ImageButton1.Enabled = false;
         rdcPlantilla.Enabled = false;
     }
 }
コード例 #9
0
 protected void btnAccept_Click(object sender, ImageClickEventArgs e)
 {
     try
     {
         if (!DataOk())
         {
             return;
         }
         if (newRecord)
         {
             plantillaRevision = new PlantillaRevision();
         }
         UnloadData(plantillaRevision);
         if (newRecord)
         {
             ctx.Add(plantillaRevision);
         }
         ctx.SaveChanges();
         if (newRecord)
         {
             string url      = String.Format("PlantillaRevisionTab.aspx?Caller=PlantillaRevisionGrid&PlantillaId={0}", plantillaRevision.PlantillaId);
             string jCommand = String.Format("closeOpen('{0}','{1}');", url, "PlantillaRevisionTab");
             RadAjaxManager1.ResponseScripts.Add(jCommand);
             //RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller));
         }
         else
         {
             lblCarga.Visible = true;
             foreach (ResumenRevision rr in plantillaRevision.ResumenesRevisones)
             {
                 CntLainsaSci.PlanificarRevisiones(rr, ctx);
                 if (rr.Dispositivo.Accesorios.Count > 0)
                 {
                     CntLainsaSci.PlanificarRevisionesAccesorios(rr, ctx);
                 }
             }
             RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller));
         }
     }
     catch (Exception ex)
     {
         ControlDeError(ex);
     }
 }
コード例 #10
0
    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
                {
                    PlantillaRevision plantillaRevision = CntLainsaSci.GetPlantillaRevision(id, ctx);
                    CntLainsaSci.CTXEliminar(plantillaRevision, ctx);
                    CntLainsaSci.CTXGuardar(ctx);
                    RefreshGrid(true);
                }
                catch (Exception ex)
                {
                    ControlDeError(ex);
                }
                break;
            }
        }
    }
コード例 #11
0
        //
        public static DateTime SiguienteFecha(DateTime fechaBase, PlantillaRevision pr)
        {
            DateTime fechaFin = fechaBase;

            switch (pr.TipoPeriodo)
            {
            case "D":
                fechaFin = fechaBase.AddDays((double)pr.NumeroPeriodos);
                break;

            case "S":
                fechaFin = fechaBase.AddDays((double)pr.NumeroPeriodos * 7);
                break;

            case "M":
                fechaFin = fechaBase.AddMonths(pr.NumeroPeriodos);
                break;

            case "A":
                fechaFin = fechaBase.AddYears(pr.NumeroPeriodos);
                break;
            }
            return(fechaFin);
        }
コード例 #12
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();
        }