protected void btnAccept_Click(object sender, ImageClickEventArgs e) { try { if (!DataOk()) { return; } if (newRecord) { revision = new Revision(); } UnloadData(revision); CntLainsaSci.CTXGuardar(ctx); CntLainsaSci.EliminarInferiores(revision, ctx); CntLainsaSci.ProgramarSiguienteRevision(revision, ctx, true); CntLainsaSci.ProgramarInferiores(revision, 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); } }
//private void GuardarRevisiones(TDispositivo disp, SqlCeConnection conn) //{ // IList<TRevision> revisiones = CntSciTerminal.GetTRevisiones(disp, conn); // foreach (TRevision rev in revisiones) // { // Revision revision = null; // var rs = (from d in ctx.Revisions // where d.RevisionId == rev.RevisionId // select d).FirstOrDefault<Revision>(); // //siempre existirá la revisión ya que no se permite la creación de nuevas en TERMINAL // if (rs != null) // { // revision = rs; // if (rev.FechaRevision != null) // revision.FechaRevision = rev.FechaRevision; // revision.FechaPlanificada = rev.FechaPlanificada; // revision.Resultado = rev.Resultado; // revision.Observaciones = rev.Comentario; // if (rev.Usuario != null) // revision.Usuario = CntLainsaSci.GetUsuario(rev.Usuario.UsuarioId, ctx); // revision.Estado = rev.Estado; // if (rev.TTipoAnomalia != null) // revision.TipoAnomalia = CntLainsaSci.GetTipoAnomalia(rev.TTipoAnomalia.TipoAnomaliaId, ctx); // if (rev.Dispositivo.CodBarras != null) // revision.CodBarras = rev.Dispositivo.CodBarras; // CargarDatosRevision(rev, conn); // revision.ResumenInforme = CntLainsaSci.GetResumenInforme(revision, ctx); // ctx.SaveChanges(); // // ahora esta secuencia solo tiene sentido en el caso de periodicas // if (!revision.PlantillaRevision.NoPeriodica) // { // CntLainsaSci.EliminarInferiores(revision, ctx); // CntLainsaSci.ProgramarSiguienteRevision(revision, ctx, true); // CntLainsaSci.ProgramarInferiores(revision, ctx); // } // } // else // { // // revision = new Revision(); // // revision.FechaRevision = rev.FechaRevision; // // revision.Resultado = rev.Resultado; // // if (rev.Usuario != DBNull.Value) // // revision.Usuario = CntLainsaSci.GetUsuario(rev.Usuario.UsuarioId, ctx); // // revision.ResumenInforme = CntLainsaSci.GetResumenInforme(revision, ctx); // // revision.Estado = rev.Estado; // // if (rev.TTipoAnomalia != DBNull.Value) // // revision.TipoAnomalia = CntLainsaSci.GetTipoAnomalia(rev.TTipoAnomalia.TipoAnomaliaId, ctx); // // revision.Dispositivo = CntLainsaSci.GetDispositivo(rev.Dispositivo.DispositivoId, ctx); // //// revision.ResumenInforme = CntLainsaSci.GetResumenInforme(revision, ctx); // // ctx.Add(revision); // } // } //} private void GuardarRevisiones(SqlCeConnection conn) { IList <TRevision> revisiones = CntSciTerminal.GetTRevisiones(conn); foreach (TRevision rev in revisiones) { Revision revision = null; var rs = (from d in ctx.Revisions where d.RevisionId == rev.RevisionId select d).FirstOrDefault <Revision>(); //siempre existirá la revisión ya que no se permite la creación de nuevas en TERMINAL if (rs != null) { revision = rs; if (rev.FechaRevision != null) { revision.FechaRevision = rev.FechaRevision; } revision.Resultado = rev.Resultado; revision.Observaciones = rev.Comentario; if (rev.Usuario != null) { revision.Usuario = CntLainsaSci.GetUsuario(rev.Usuario.UsuarioId, ctx); } CargarDatosRevision(rev, conn); revision.ResumenInforme = CntLainsaSci.GetResumenInforme(revision, ctx); revision.Estado = rev.Estado; if (revision.Programa != null) { revision.Programa.Estado = CntLainsaSci.EstadoPrograma(revision.Programa); } if (rev.TTipoAnomalia != null) { revision.TipoAnomalia = CntLainsaSci.GetTipoAnomalia(rev.TTipoAnomalia.TipoAnomaliaId, ctx); } ctx.SaveChanges(); // ahora esta secuencia solo tiene sentido en el caso de periodicas if (!revision.PlantillaRevision.NoPeriodica) { CntLainsaSci.EliminarInferiores(revision, ctx); CntLainsaSci.ProgramarSiguienteRevision(revision, ctx, true); CntLainsaSci.ProgramarInferiores(revision, ctx); } } } }
protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) { string valor = e.Argument; string tipo = valor.Substring(0, 1); valor = valor.Substring(1); switch (tipo) { case "A": DateTime fechaBaja; if (DateTime.TryParse(valor, out fechaBaja)) { revision.Dispositivo.Caducado = true; revision.Dispositivo.FechaBaja = fechaBaja; ctx.SaveChanges(); CntLainsaSci.EliminarRevisionesPendientes(revision.Dispositivo, ctx, revision); string mensaje = String.Format("El dispositivo ha sido dado de baja con fecha {0:dd/MM/yyyy}", fechaBaja); RadWindowManager1.RadAlert(mensaje, 330, 110, "DADO DE BAJA", "retornoAlert"); RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller)); //string jCommand = String.Format("radalert('{0}');", mensaje); //RadAjaxManager1.ResponseScripts.Add(jCommand); } else { string mensaje = (string)GetGlobalResourceObject("ResourceLainsaSci", "DateNeeded"); mensaje = "La fecha introducida es incorrecta"; RadWindowManager1.RadAlert(mensaje, 330, 110, "AVISO", "retornoAlert"); //string jCommand = String.Format("radalert('{0}');", mensaje); //RadAjaxManager1.ResponseScripts.Add(jCommand); } break; case "B": if (valor == "true") { // quiere descambiar Sustitucion s = revision.Sustitucions[0]; // solo tiene que estar el cambio inicial Sustitucion ns = new Sustitucion() { DispositivoOriginal = s.DispositivoSustituto, DispositivoSustituto = s.DispositivoOriginal, Fecha = DateTime.Now, Revision = revision }; ns.Estado = "REALIZADA"; // si llega aquí es realizada fijo. // control de estados Dispositivo dspo = ns.DispositivoOriginal; Dispositivo dsps = ns.DispositivoSustituto; dspo.Estado = "A"; if (dsps.Funcion == "R") { dsps.Estado = "S"; } else { dsps.Estado = "N"; } dsps.Posicion = dsps.Posicion; dspo.Posicion = "SUSTITUIDOS"; ctx.Add(ns); } else { Sustitucion s = revision.Sustitucions[0]; // solo tiene que estar el cambio inicial s.DispositivoOriginal.Funcion = "R"; } // Como si hubiera pulsado el botón. UnloadData(revision); CntLainsaSci.CTXGuardar(ctx); CntLainsaSci.EliminarInferiores(revision, ctx); CntLainsaSci.ProgramarSiguienteRevision(revision, ctx, true); CntLainsaSci.ProgramarInferiores(revision, ctx); RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller)); break; } }
private void GuardarRevisiones(SqlCeConnection conn) { IList <TRevision> revisiones = CntSciTerminal.GetTRevisiones(conn); foreach (TRevision rev in revisiones) { // no tiene sentido modificar revisiones que no se han tocado if (rev.Abm == 0) { continue; } Revision revision = null; var rs = (from d in ctx.Revisions where d.RevisionId == rev.RevisionId select d).FirstOrDefault <Revision>(); // si no corresponde a un programa la omitimos (no se como la han dado de alta) if (rev.TPrograma == null) { continue; } if (rs == null) { // por si ha habido cambios de ID debido a // a generaciones, tenemos este control para a pesar de eso // intentar encontrar la resiion rs = (from r in ctx.Revisions where r.Dispositivo.DispositivoId == rev.Dispositivo.DispositivoId && r.Programa.ProgramaId == rev.TPrograma.ProgramaId && r.PlantillaRevision.Descripcion == rev.Plantilla select r).FirstOrDefault <Revision>(); } if (rs == null) { // un último intento con el mínimo de informacion rs = (from r in ctx.Revisions where r.Dispositivo.DispositivoId == rev.Dispositivo.DispositivoId && r.Programa.ProgramaId == rev.TPrograma.ProgramaId && r.Estado != "REALIZADA" select r).FirstOrDefault <Revision>(); } //siempre existirá la revisión ya que no se permite la creación de nuevas en TERMINAL if (rs != null) { revision = rs; if (rev.FechaRevision != null) { revision.FechaRevision = rev.FechaRevision; } revision.Resultado = rev.Resultado; revision.Observaciones = rev.Comentario; if (rev.Usuario != null) { revision.Usuario = CntLainsaSci.GetUsuario(rev.Usuario.UsuarioId, ctx); } CargarDatosRevision(rev, conn); revision.ResumenInforme = CntLainsaSci.GetResumenInforme(revision, ctx); revision.Estado = rev.Estado; if (revision.Programa != null) { revision.Programa.Estado = CntLainsaSci.EstadoPrograma(revision.Programa); } if (rev.TTipoAnomalia != null) { revision.TipoAnomalia = CntLainsaSci.GetTipoAnomalia(rev.TTipoAnomalia.TipoAnomaliaId, ctx); } ctx.SaveChanges(); // ahora esta secuencia solo tiene sentido en el caso de periodicas if (!revision.PlantillaRevision.NoPeriodica) { CntLainsaSci.EliminarInferiores(revision, ctx); CntLainsaSci.ProgramarSiguienteRevision(revision, ctx, true); CntLainsaSci.ProgramarInferiores(revision, ctx); } } } }