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; } } } }
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(); } }
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(); } }