private void GuardarIncidenciaEvolucions(TIncidencia ti, Incidencia inci, SqlCeConnection conn, LainsaSci ctx)
        {
            IList <TIncidenciaEvolucion> ltie = CntSciTerminal.GetTIncidenciaEvolucions(ti, conn);

            foreach (TIncidenciaEvolucion tie in ltie)
            {
                if (tie.Abm == 0)
                {
                    continue;               // no cambiada
                }
                switch (tie.Abm)
                {
                case 1:
                    // alta
                    // aqui no verificamos un doble pase de fcihero porque lo ha sido en la
                    // incidencia padre.
                    IncidenciaEvolucion ie = new IncidenciaEvolucion();
                    ie.Incidencia     = inci; // en esta rutina la incidencia es conocida
                    ie.FechaEvolucion = tie.FechaEvolucion;
                    ie.Usuario        = CntLainsaSci.GetUsuario(tie.Usuario.UsuarioId, ctx);
                    ie.Comentarios    = tie.Comentarios;
                    ie.Operativo      = tie.Operativo;
                    ctx.Add(ie);
                    break;

                case 2:
                    // baja
                    IncidenciaEvolucion ie2 = CntLainsaSci.GetIncidenciaEvolucion(tie.IncidenciaEvolucionId, ctx);
                    if (ie2 != null)
                    {
                        ctx.Delete(ie2);
                    }
                    break;

                case 3:
                    // modificada
                    // este caso no debería darse pero por si acaso
                    IncidenciaEvolucion ie3 = CntLainsaSci.GetIncidenciaEvolucion(tie.IncidenciaEvolucionId, ctx);
                    if (ie3 != null)
                    {
                        Incidencia i3 = CntLainsaSci.GetIncidencia(tie.Incidencia.IncidenciaId, ctx);
                        ie3.Incidencia     = i3;
                        ie3.FechaEvolucion = tie.FechaEvolucion;
                        ie3.Usuario        = CntLainsaSci.GetUsuario(tie.Usuario.UsuarioId, ctx);
                        ie3.Comentarios    = tie.Comentarios;
                        ie3.Operativo      = tie.Operativo;
                    }
                    break;

                default:
                    break;
                }
                ctx.SaveChanges();
            }
        }
        // guardar las evoluciones relacionadas con una incidencia.
        private void GuardarIncidenciaEvolucion(TIncidencia ti, int abm, SqlCeConnection conn, LainsaSci ctx)
        {
            Incidencia incidencia = CntLainsaSci.GetIncidencia(ti.IncidenciaId, ctx);

            if (incidencia == null)
            {
                return;
            }
            // caso de las bajas, se eliminan todas las asociadas.
            if (abm == 2)
            {
                ctx.Delete(incidencia.IncidenciaEvolucions);
            }
            else
            {
                IncidenciaEvolucion          ie;
                IList <TIncidenciaEvolucion> tlie = CntSciTerminal.GetTIncidenciaEvolucions(ti, conn);
                foreach (TIncidenciaEvolucion tie in tlie)
                {
                    if (tie.Abm == 0)
                    {
                        continue;
                    }
                    switch (tie.Abm)
                    {
                    case 1:
                        // alta
                        ie                = new IncidenciaEvolucion();
                        ie.Incidencia     = incidencia;
                        ie.FechaEvolucion = tie.FechaEvolucion;
                        ie.Comentarios    = tie.Comentarios;
                        ie.Usuario        = CntLainsaSci.GetUsuario(tie.Usuario.UsuarioId, ctx);
                        ctx.Add(ie);
                        break;

                    case 2:
                        // baja
                        // ya ha sido tratado en un paso anterior.
                        break;

                    case 3:
                        // modificación
                        ie = CntLainsaSci.GetIncidenciaEvolucion(tie.IncidenciaEvolucionId, ctx);
                        ie.FechaEvolucion = tie.FechaEvolucion;
                        ie.Comentarios    = tie.Comentarios;
                        ie.Usuario        = CntLainsaSci.GetUsuario(tie.Usuario.UsuarioId, ctx);
                        break;

                    default:
                        break;
                    }
                }
            }
        }
Example #3
0
 string caller = ""; // who's calling the grid form
 #endregion
 #region Init, load, unload events
 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, "IncidenciaGrid", ctx);
     //usuario.GrupoTrabajo = CntLainsaSci.GetGrupoTrabajo(1, 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["IncidenciaId"] != null)
     {
         incidencia = CntLainsaSci.GetIncidencia(int.Parse(Request.QueryString["IncidenciaId"]), ctx);
     }
     // control de skin
     if (Session["Skin"] != null)
     {
         RadSkinManager1.Skin = Session["Skin"].ToString();
     }
 }
Example #4
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
                    {
                        Incidencia incidencia = CntLainsaSci.GetIncidencia(id, ctx);
                        CntLainsaSci.CTXEliminar(incidencia, ctx);
                        CntLainsaSci.CTXGuardar(ctx);
                        RefreshGrid(true);
                    }
                    catch (Exception ex)
                    {
                        ControlDeError(ex);
                    }
                    break;
                }
            }
        }
        //
        private void GuardarIncidenciaEvolucions(SqlCeConnection conn, LainsaSci ctx)
        {
            IList <TIncidenciaEvolucion> ltie = CntSciTerminal.GetTIncidenciaEvolucions(conn);

            foreach (TIncidenciaEvolucion tie in ltie)
            {
                if (tie.Abm == 0)
                {
                    continue;               // no cambiada
                }
                if (tie.Incidencia.Abm == 1)
                {
                    continue;                          // las evoluciones de las incidencias creadas ya han sido procesadas (GuardarIncidencias)
                }
                switch (tie.Abm)
                {
                case 1:
                    // alta
                    // primero evitar un doble procesamiento
                    IncidenciaEvolucion ie1 = (from ine in ctx.IncidenciaEvolucions
                                               where ine.Incidencia.IncidenciaId == tie.Incidencia.IncidenciaId &&
                                               ine.FechaEvolucion == tie.FechaEvolucion &&
                                               ine.Comentarios == tie.Comentarios
                                               select ine).FirstOrDefault <IncidenciaEvolucion>();
                    if (ie1 != null)
                    {
                        break;                  // la evolución entendemos que ya ha sido dada de alta
                    }
                    IncidenciaEvolucion ie = new IncidenciaEvolucion();
                    Incidencia          i  = CntLainsaSci.GetIncidencia(tie.Incidencia.IncidenciaId, ctx);
                    ie.Incidencia     = i;
                    ie.FechaEvolucion = tie.FechaEvolucion;
                    ie.Usuario        = CntLainsaSci.GetUsuario(tie.Usuario.UsuarioId, ctx);
                    ie.Comentarios    = tie.Comentarios;
                    ie.Operativo      = tie.Operativo;
                    ctx.Add(ie);
                    break;

                case 2:
                    // baja
                    IncidenciaEvolucion ie2 = CntLainsaSci.GetIncidenciaEvolucion(tie.IncidenciaEvolucionId, ctx);
                    if (ie2 != null)
                    {
                        ctx.Delete(ie2);
                    }
                    break;

                case 3:
                    // modificada
                    IncidenciaEvolucion ie3 = CntLainsaSci.GetIncidenciaEvolucion(tie.IncidenciaEvolucionId, ctx);
                    if (ie3 != null)
                    {
                        Incidencia i3 = CntLainsaSci.GetIncidencia(tie.Incidencia.IncidenciaId, ctx);
                        ie3.Incidencia     = i3;
                        ie3.FechaEvolucion = tie.FechaEvolucion;
                        ie3.Usuario        = CntLainsaSci.GetUsuario(tie.Usuario.UsuarioId, ctx);
                        ie3.Comentarios    = tie.Comentarios;
                        ie3.Operativo      = tie.Operativo;
                    }
                    break;

                default:
                    break;
                }
                ctx.SaveChanges();
            }
        }
        // lee secuancialmente las incidencias del fichero de terminal y las guarda en la base de datos
        private void GuardarIncidencias(SqlCeConnection conn, LainsaSci ctx)
        {
            IList <TIncidencia> lti = CntSciTerminal.GetTIncidencias(conn);
            Incidencia          incidencia;

            foreach (TIncidencia ti in lti)
            {
                // no ha sufrido cambios
                if (ti.Abm == 0)
                {
                    continue;
                }
                switch (ti.Abm)
                {
                case 1:
                    // alta
                    // comprobar que no se ha dado de alta previamente
                    // es el caso de recarga del mismo fichero
                    Incidencia inci = (from i in ctx.Incidencias
                                       where i.Dispositivo.DispositivoId == ti.TDispositivo.DispositivoId &&
                                       i.FechaApertura == ti.FechaApertura &&
                                       i.Comentarios == ti.Comentarios
                                       select i).FirstOrDefault <Incidencia>();
                    if (inci != null)
                    {
                        break;
                    }
                    incidencia = new Incidencia();
                    incidencia.FechaApertura = ti.FechaApertura;
                    incidencia.FechaPrevista = ti.FechaPrevista;
                    incidencia.FechaCierre   = ti.FechaCierre;
                    incidencia.Dispositivo   = CntLainsaSci.GetDispositivo(ti.TDispositivo.DispositivoId, ctx);
                    if (ti.TEstado != null)
                    {
                        incidencia.Estado = CntLainsaSci.GetEstado(ti.TEstado.EstadoId, ctx);
                    }
                    if (ti.TPrioridad != null)
                    {
                        incidencia.Prioridad = CntLainsaSci.GetPrioridad(ti.TPrioridad.PrioridadId, ctx);
                    }
                    if (ti.TResponsable != null)
                    {
                        incidencia.Responsable = CntLainsaSci.GetResponsable(ti.TResponsable.ResponsableId, ctx);
                    }
                    incidencia.Usuario     = CntLainsaSci.GetUsuario(ti.TUsuario.UsuarioId, ctx);
                    incidencia.Comentarios = ti.Comentarios;
                    incidencia.Operativo   = ti.Operativo;
                    incidencia.SiguePlan   = true;   // hasta que no se cambie el programa de terminal para que contemple ese campo.
                    ctx.Add(incidencia);
                    ctx.SaveChanges();
                    // Si es un alta hay que verificar que las evoluciones asociadas se cree contra
                    // la incidencia de servidor correcta.
                    GuardarIncidenciaEvolucions(ti, incidencia, conn, ctx);
                    break;

                case 2:
                    incidencia = CntLainsaSci.GetIncidencia(ti.IncidenciaId, ctx);
                    if (incidencia != null)
                    {
                        ctx.Delete(incidencia.IncidenciaEvolucions);
                        ctx.SaveChanges();
                        ctx.Delete(incidencia);
                        ctx.SaveChanges();
                    }
                    break;

                case 3:
                    incidencia = CntLainsaSci.GetIncidencia(ti.IncidenciaId, ctx);
                    incidencia.FechaApertura = ti.FechaApertura;
                    incidencia.FechaPrevista = ti.FechaPrevista;
                    incidencia.FechaCierre   = ti.FechaCierre;
                    incidencia.Dispositivo   = CntLainsaSci.GetDispositivo(ti.TDispositivo.DispositivoId, ctx);
                    if (ti.TEstado != null)
                    {
                        incidencia.Estado = CntLainsaSci.GetEstado(ti.TEstado.EstadoId, ctx);
                    }
                    if (ti.TPrioridad != null)
                    {
                        incidencia.Prioridad = CntLainsaSci.GetPrioridad(ti.TPrioridad.PrioridadId, ctx);
                    }
                    if (ti.TResponsable != null)
                    {
                        incidencia.Responsable = CntLainsaSci.GetResponsable(ti.TResponsable.ResponsableId, ctx);
                    }
                    incidencia.Usuario     = CntLainsaSci.GetUsuario(ti.TUsuario.UsuarioId, ctx);
                    incidencia.Comentarios = ti.Comentarios;
                    incidencia.Operativo   = ti.Operativo;
                    break;

                default:
                    break;
                }
                ctx.SaveChanges();
            }
        }
        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, "IncidenciaGrid", 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 DispositivoID 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["IncidenciaEvolucionId"] != null)
            {
                incidenciaEvo = CntLainsaSci.GetIncidenciaEvolucion(int.Parse(Request.QueryString["IncidenciaEvolucionId"]), ctx);
                incidencia    = incidenciaEvo.Incidencia;
                dispositivo   = incidencia.Dispositivo;
                LoadData(incidenciaEvo);
                Title     = String.Format("Inc. Evolución ID:{0}", incidenciaEvo.IncidenciaEvolucionId);
                newRecord = false;
            }
            else
            {
                txtUsuario.Text        = usuario.Nombre;
                txtFechaEvolucion.Text = DateTime.Now.ToString();
            }
            if (Request.QueryString["IncidenciaId"] != null)
            {
                incidencia          = CntLainsaSci.GetIncidencia(int.Parse(Request.QueryString["IncidenciaId"]), ctx);
                dispositivo         = incidencia.Dispositivo;
                txtDispositivo.Text = dispositivo.Nombre;
            }
            if (Request.QueryString["DispositivoId"] != null)
            {
                dispositivo         = CntLainsaSci.GetDispositivo(int.Parse(Request.QueryString["DispositivoId"]), ctx);
                txtDispositivo.Text = dispositivo.Nombre;
            }
            if (Request.QueryString["Modo"] != null)
            {
                modo = Request.QueryString["Modo"];
                if (modo == "S")
                {
                    // en silencio
                    btnAccept.Visible = false;
                }
            }
            // control de skin
            if (Session["Skin"] != null)
            {
                RadSkinManager1.Skin = Session["Skin"].ToString();
            }
        }