private void GuardarIncidencias(Dispositivo dispositivo, TDispositivo disp, SqlCeConnection conn) { IList <TIncidencia> incis = CntSciTerminal.GetTIncidencias(disp, conn); foreach (TIncidencia inc in incis) { Incidencia incidencia; var rs = (from d in ctx.Incidencias where d.IncidenciaId == inc.IncidenciaId && d.Dispositivo.DispositivoId == dispositivo.DispositivoId select d).FirstOrDefault <Incidencia>(); if (rs != null) { incidencia = rs; incidencia.Operativo = inc.Operativo; incidencia.Comentarios = inc.Comentarios; } else { incidencia = new Incidencia() { Fecha = inc.Fecha, Comentarios = inc.Comentarios, Dispositivo = dispositivo, Operativo = inc.Operativo, Usuario = CntLainsaSci.GetUsuario(inc.Usuario.UsuarioId, ctx) }; dispositivo.Operativo = incidencia.Operativo; ctx.Add(incidencia); } ctx.SaveChanges(); } }
private void mnuAceptar_Click(object sender, EventArgs e) { if (!DatosOk()) { return; } Cursor.Current = Cursors.WaitCursor; // miramos si hay algún dispositivo que coincida CntSciTerminal.TOpen(this.conn); if (CntSciTerminal.GetTDispositivo(txtCaptura.Text, conn) != null) { MessageBox.Show("Ya existe un dispositivo dado de alta con ese código", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); Cursor.Current = Cursors.Default; return; } else { dispositivo = new TDispositivo(); DescargarPantalla(); Cursor.Current = Cursors.Default; MessageBox.Show("Dispositivo guardado", "AVISO"); Cursor.Current = Cursors.WaitCursor; DispForm dform = new DispForm(usuario, dispositivo); dform.Show(); this.Close(); } CntSciTerminal.TClose(this.conn); }
private static void CargarIncidencias(Incidencia incidencia, SqlCeConnection conn, LainsaSci ctx) { TUsuario tusu = null; TDispositivo tdispo = null; if (incidencia.Usuario != null) { tusu = CntSciTerminal.GetTUsuario(incidencia.Usuario.UsuarioId, conn); } if (incidencia.Dispositivo != null) { tdispo = CntSciTerminal.GetTDispositivo(incidencia.Dispositivo.DispositivoId, conn); } TIncidencia ts = new TIncidencia() { IncidenciaId = incidencia.IncidenciaId, Fecha = incidencia.Fecha, Operativo = incidencia.Operativo, Dispositivo = tdispo, Usuario = tusu, Comentarios = incidencia.Comentarios }; CntSciTerminal.TSave(ts, conn); }
private void btnS_Click(object sender, EventArgs e) { if (txtDispS.Text != "") { CntSciTerminal.TOpen(this.conn); TDispositivo d = LainsaTerminalLib.CntSciTerminal.GetTDispositivo(txtDispS.Text, conn); if (d == null) { MessageBox.Show("No hay ningún dispositivo con ese código", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } else if (d.Estado == "N") { MessageBox.Show("El dispositivo que ha introducido existe pero no es correcto.\nSu estado NO es de ALMACÉN ni SUSTITUTO.", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } else { lblDSId.Text = txtDispS.Text; txtDispSDatos.Text = String.Format("{0} ({1}) [{2}]", d.Nombre, d.Instalacion.Nombre, d.Tipo.Nombre); } CntSciTerminal.TClose(this.conn); } }
public SustitucionForm(string caller, object callObj, TUsuario usuario) { this.sustitucion = null; this.usuario = usuario; this.callObj = callObj; this.caller = caller; this.conn = CntSciTerminal.TSqlConnection(); InitializeComponent(); dtpFecha.Format = DateTimePickerFormat.Custom; dtpFecha.CustomFormat = "dd/MM/yyyy"; btnEliminar.Visible = false; CargarUsuarios(usuario); CargarEstados(null); switch (caller) { case "dispositivoGrid": case "programa": case "dispRev": revision = (TRevision)callObj; dispositivo = revision.Dispositivo; CargarDispositivoO(); break; case "dispositivo": dispositivo = (TDispositivo)callObj; CargarDispositivoO(); break; default: panel1.Enabled = true; break; } Cursor.Current = Cursors.Default; }
private void DescargarPantalla(bool newRecord) { CntSciTerminal.TOpen(this.conn); sustitucion.TUsuario = CntSciTerminal.GetTUsuario((string)cmbUsuario.SelectedItem, conn); if (dtpFecha.Value != null) { sustitucion.Fecha = dtpFecha.Value; } sustitucion.Estado = (string)cmbEstado.SelectedItem; sustitucion.TDispositivoOriginal = CntSciTerminal.GetTDispositivo(lblDOId.Text, conn); string estado_sust = "A"; if (sustitucion.Estado == "REALIZADA") { sustitucion.TDispositivoOriginal.Estado = "A"; estado_sust = "N"; sustitucion.Fecha = DateTime.Now; } TDispositivo dispS = null; if ((dispS = CntSciTerminal.GetTDispositivo(lblDSId.Text, conn)) != null) { sustitucion.TDispositivoSustituto = dispS; sustitucion.TDispositivoSustituto.Estado = estado_sust; } if (this.revision != null) { sustitucion.TRevision = this.revision; } sustitucion.Comentarios = txtComentario.Text; CntSciTerminal.TSave(newRecord, sustitucion, conn); CntSciTerminal.TClose(this.conn); }
private void button1_Click(object sender, EventArgs e) { if (!DatosOk()) { return; } Cursor.Current = Cursors.WaitCursor; // miramos si hay algún dispositivo que coincida CntSciTerminal.TOpen(this.conn); dispositivo = CntSciTerminal.GetTDispositivo(txtSustituto.Text, conn); CntSciTerminal.TClose(this.conn); if (dispositivo == null) { MessageBox.Show("No existe ningún dispositivo con ese código", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } else if (dispositivo.Estado == "N") { MessageBox.Show("El dispositivo que ha introducido existe pero no es correcto.\nSu estado NO es de ALMACÉN ni SUSTITUTO.", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } else { // ya tenemos el terminal y vamos a mostrarlo. dspSustituto = dispositivo; string modelo = String.Empty; if (dspSustituto.Modelo != null) { modelo = dspSustituto.Modelo.Nombre; } lblInfSustituto.Text = String.Format("{0} ({1}) [{2}]", dspSustituto.Nombre, dspSustituto.Tipo.Nombre, modelo); } Cursor.Current = Cursors.Default; }
private static void CargarDispositivos(Empresa empresa, SqlCeConnection conn, LainsaSci ctx) { var rs = from d in ctx.Dispositivos where d.Instalacion.Empresa.EmpresaId == empresa.EmpresaId select d; foreach (Dispositivo dsp in rs) { TDispositivo tdsp = new TDispositivo() { DispositivoId = dsp.DispositivoId, Nombre = dsp.Nombre, Empresa = dsp.Instalacion.Empresa.Nombre, Instalacion = dsp.Instalacion.Nombre, Tipo = dsp.TipoDispositivo.Nombre, Funcion = dsp.Funcion, Estado = dsp.Estado, FechaCaducidad = dsp.FechaCaducidad, Caducado = dsp.Caducado, FechaBaja = dsp.FechaBaja, CodBarras = dsp.CodBarras }; CntSciTerminal.TSave(tdsp, conn); } }
public DispostitivoForm(TUsuario usuario, TDispositivo disp) { this.usuario = usuario; vDispositivo = disp; conn = CntSciTerminal.TOpen(CntSciTerminal.GetPathDb(), ""); InitializeComponent(); CargarInfo(); CargarGrid(); Cursor.Current = Cursors.Default; }
public DispForm(TUsuario usuario, TDispositivo disp) { this.usuario = usuario; vDispositivo = disp; this.conn = CntSciTerminal.TSqlConnection(); InitializeComponent(); CargarInfo(); CargarGrid(); Cursor.Current = Cursors.Default; }
public IncidenciasGrid(string caller, TDispositivo disposit, TUsuario usuario) { this.conn = CntSciTerminal.TSqlConnection(); this.usuario = usuario; this.caller = caller; this.disposit = disposit; InitializeComponent(); CargarGrid(); Cursor.Current = Cursors.Default; }
public RevisionesGrid(string caller, TDispositivo dsp, TUsuario usuario) { this.caller = caller; this.usuario = usuario; this.conn = CntSciTerminal.TSqlConnection(); InitializeComponent(); vDispositivo = dsp; CargarGrid(); lblInst.Text = dsp.Instalacion.Nombre; Cursor.Current = Cursors.Default; }
public SustitucionesGrid(string caller, TRevision revision, TUsuario usuario) { this.usuario = usuario; this.caller = caller; this.revision = revision; this.dispositivo = revision.Dispositivo; this.conn = CntSciTerminal.TSqlConnection(); InitializeComponent(); CargarGrid(); Cursor.Current = Cursors.Default; }
private void btnAceptar_Click(object sender, EventArgs e) { if (!DatosOk()) { return; } Cursor.Current = Cursors.WaitCursor; // miramos si hay algún dispositivo que coincida CntSciTerminal.TOpen(this.conn); if ((dispositivo = CntSciTerminal.GetTDispositivo(txtCaptura.Text, conn)) == null) { MessageBox.Show("No hay ningún dispositivo con ese código", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); Cursor.Current = Cursors.Default; return; } else { //Miramos si el usuario quiere informaciçon del dispositivo o realizar revisiones if (task) { IList <TRevision> ltr = CntSciTerminal.GetTRevisiones(true, dispositivo, conn); if (ltr.Count > 0) { if (ltr.Count >= 2) { RevisionesGrid Grid = new RevisionesGrid("dispRev", dispositivo, usuario); Grid.Show(); } else { TRevision tr = CntSciTerminal.GetTRevision(ltr[0].RevisionId, conn); DistribuidorForm frmDist = new DistribuidorForm(tr, 0, "dispRev", usuario); } this.Close(); } else { MessageBox.Show("El dispositivo no tiene revisiones pendientes", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } } else { DispForm frmgrdDispositivo = new DispForm(usuario, dispositivo); frmgrdDispositivo.Show(); this.Close(); } } CntSciTerminal.TClose(this.conn); Cursor.Current = Cursors.Default; }
private void GuardarRevisiones(TDispositivo disp, SqlCeConnection conn) { IList <TRevision> revisiones = CntSciTerminal.GetTRevisiones(disp, conn); foreach (TRevision rev in revisiones) { Revision revision; 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); } } 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); } ctx.SaveChanges(); CargarDatosRevision(rev, conn); } }
public SustitucionForm(TSustitucion sustitucion, string caller, TUsuario usuario) { this.sustitucion = sustitucion; this.usuario = usuario; this.caller = caller; this.revision = sustitucion.TRevision; this.dispositivo = sustitucion.TDispositivoOriginal; this.conn = CntSciTerminal.TSqlConnection(); InitializeComponent(); dtpFecha.Format = DateTimePickerFormat.Custom; dtpFecha.CustomFormat = "dd/MM/yyyy"; CargarPantalla(); Cursor.Current = Cursors.Default; }
public IncidenciasForm(TIncidencia incidencia, string caller, TUsuario usuario) { this.incidencia = incidencia; this.usuario = usuario; this.conn = CntSciTerminal.TSqlConnection(); this.caller = caller; this.revision = incidencia.TRevision; InitializeComponent(); dispositivo = incidencia.TDisp; CargarPantalla(); //txtDispO.Enabled = false; //btnDO.Enabled = false; Cursor.Current = Cursors.Default; dtFechaPrevista.Format = DateTimePickerFormat.Custom; dtFechaPrevista.CustomFormat = "dd/MM/yyyy"; }
private static void CargarDispositivos(Empresa empresa, SqlCeConnection conn, LainsaSci ctx, RadProgressContext context) { var rs = from d in ctx.Dispositivos where d.Instalacion.Empresa.EmpresaId == empresa.EmpresaId select d; string texto = context.CurrentOperationText.ToString(); int totReg = 0; int numReg = 0; totReg = rs.Count(); foreach (Dispositivo dsp in rs) { context.CurrentOperationText = String.Format("{0}{1} [{2} de {3}]", texto, dsp.Nombre, numReg, totReg); TModeloDispositivo modelo = null; if (dsp.ModeloDispositivo != null) { modelo = CntSciTerminal.GetTModeloDispositivo(dsp.ModeloDispositivo.ModeloId, conn); } TDispositivo tdsp = new TDispositivo() { DispositivoId = dsp.DispositivoId, Nombre = dsp.Nombre, Empresa = dsp.Instalacion.Empresa.Nombre, Instalacion = CntSciTerminal.GetTInstalacion(dsp.Instalacion.InstalacionId, conn), Tipo = CntSciTerminal.GetTTipoDispositivo(dsp.TipoDispositivo.TipoId, conn), Modelo = modelo, Funcion = dsp.Funcion, Estado = dsp.Estado, FechaCaducidad = dsp.FechaCaducidad, Caducado = dsp.Caducado, FechaBaja = dsp.FechaBaja, CodBarras = dsp.CodBarras, Operativo = dsp.Operativo, Posicion = dsp.Posicion, }; //Debug.WriteLine(String.Format("DSP ID={0}",dsp.DispositivoId)); CntSciTerminal.TSave(tdsp, conn); foreach (Incidencia incidencia in dsp.Incidencias) { CargarIncidencias(incidencia, conn, ctx); } numReg++; } }
private void btnDO_Click(object sender, EventArgs e) { if (txtDispO.Text != "") { CntSciTerminal.TOpen(this.conn); TDispositivo d = LainsaTerminalLib.CntSciTerminal.GetTDispositivo(txtDispO.Text, conn); CntSciTerminal.TClose(this.conn); if (d != null) { lblDOId.Text = txtDispO.Text; txtDispODatos.Text = String.Format("{0} ({1}) [{2}] Operativo:{3}", d.Nombre, d.Instalacion.Nombre, d.Tipo.Nombre, d.Operativo); } else { MessageBox.Show("No hay ningún dispositivo con ese código", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } } }
private void btnIncidencias_Click(object sender, EventArgs e) { // hay que salvar la revisión actual antes de ver incidencias if (!DatosOk()) { return; } Cursor.Current = Cursors.WaitCursor; CntSciTerminal.TOpen(this.conn); SaveDatosRevision(conn); if (!DescargarPantalla()) { return; } if (!SaveRevision(conn)) { return; } // Ahora pueden dejar inopertivo el dispositivo desde // la revisión if (chkInoperativo.Checked) { TDispositivo d = tr.Dispositivo; d.Operativo = false; CntSciTerminal.TSave(d, conn); } CntSciTerminal.TClose(this.conn); Cursor.Current = Cursors.Default; MessageBox.Show("Revisión guardada", "AVISO"); // ahora seguimos con la incidencia Cursor.Current = Cursors.WaitCursor; CntSciTerminal.TOpen(this.conn); DescargarPantalla(); CntSciTerminal.TClose(this.conn); IncidenciasGrid incGrid = new IncidenciasGrid(caller, tr, usuario); incGrid.Show(); this.Close(); }
private static void CargarRevision(Revision r, SqlCeConnection conn, LainsaSci ctx) { TPrograma tpr = null; TUsuario tusu = null; if (r.Usuario != null) { tusu = CntSciTerminal.GetTUsuario(r.Usuario.UsuarioId, conn); } if (r.Programa != null) { tpr = CntSciTerminal.GetTPrograma(r.Programa.ProgramaId, conn); } TDispositivo d = CntSciTerminal.GetTDispositivo(r.Dispositivo.DispositivoId, conn); TRevision tr = new TRevision() { RevisionId = r.RevisionId, Dispositivo = d, Usuario = tusu, FechaPlanificada = r.FechaPlanificada, FechaProgramada = r.FechaProgramada, FechaRevision = r.FechaRevision, Resultado = r.Resultado, Comentario = r.Observaciones, Estado = r.Estado, TPrograma = tpr, Plantilla = r.PlantillaRevision.Descripcion }; if (r.TipoAnomalia != null) { tr.TTipoAnomalia = CntSciTerminal.GetTTipoAnomalia(r.TipoAnomalia.TipoAnomaliaId, conn); } CntSciTerminal.TSave(tr, conn); foreach (DatosRevision dr in r.DatosRevisions) { CargarDatoRevision(dr, conn, ctx); } }
private void btnSustituciones_Click(object sender, EventArgs e) { // Guardamos la revisión if (!DatosOk()) { return; } Cursor.Current = Cursors.WaitCursor; CntSciTerminal.TOpen(this.conn); SaveDatosRevision(conn); if (!DescargarPantalla()) { return; } if (!SaveRevision(conn)) { return; } // Ahora pueden dejar inopertivo el dispositivo desde // la revisión if (chkInoperativo.Checked) { TDispositivo d = tr.Dispositivo; d.Operativo = false; CntSciTerminal.TSave(d, conn); } CntSciTerminal.TClose(this.conn); Cursor.Current = Cursors.Default; MessageBox.Show("Revisión guardada", "AVISO"); // sefuimos con la sustitución Cursor.Current = Cursors.WaitCursor; CntSciTerminal.TOpen(this.conn); DescargarPantalla(); CntSciTerminal.TClose(this.conn); SustitucionesGrid sustGrid = new SustitucionesGrid(caller, tr, usuario); sustGrid.Show(); this.Close(); }
private static void CargarIncidencias(Incidencia incidencia, SqlCeConnection conn, LainsaSci ctx) { TUsuario tusu = null; TDispositivo tdispo = null; if (incidencia.Usuario != null) { tusu = CntSciTerminal.GetTUsuario(incidencia.Usuario.UsuarioId, conn); } if (incidencia.Dispositivo != null) { tdispo = CntSciTerminal.GetTDispositivo(incidencia.Dispositivo.DispositivoId, conn); } TIncidencia ts = new TIncidencia() { IncidenciaId = incidencia.IncidenciaId, FechaApertura = incidencia.FechaApertura, Operativo = incidencia.Operativo, TDispositivo = tdispo, TUsuario = tusu, Comentarios = incidencia.Comentarios }; if (incidencia.FechaCierre != null) { ts.FechaCierre = (DateTime)incidencia.FechaCierre; } if (incidencia.FechaPrevista != null) { ts.FechaPrevista = (DateTime)incidencia.FechaPrevista; } CntSciTerminal.TSave(ts, conn); foreach (IncidenciaEvolucion incidenciaEvolucion in incidencia.IncidenciaEvolucions) { CargarIncidenciaEvolucion(incidenciaEvolucion, conn, ctx); } }
public IncidenciasForm(string caller, object callObj, TUsuario usuario) { this.callObj = callObj; this.incidencia = null; this.usuario = usuario; this.conn = CntSciTerminal.TSqlConnection(); this.caller = caller; InitializeComponent(); CargarEstados(null); CargarPrioridades(null); CargarResponsables(null); txtUser.Text = usuario.Nombre; txtFechaApertura.Text = String.Format("{0:dd/MM/yyyy}", DateTime.Now); dtFechaPrevista.Value = DateTime.Now.AddDays(7); btnEliminar.Visible = false; switch (caller) { case "dispositivoGrid": case "programa": case "dispRev": revision = (TRevision)callObj; dispositivo = revision.Dispositivo; CargarDispositivo(); break; case "dispositivo": dispositivo = (TDispositivo)callObj; CargarDispositivo(); break; default: panel1.Enabled = true; break; } Cursor.Current = Cursors.Default; dtFechaPrevista.Format = DateTimePickerFormat.Custom; dtFechaPrevista.CustomFormat = "dd/MM/yyyy"; }
private static void CargarSustitucion(Sustitucion s, SqlCeConnection conn, LainsaSci ctx) { TPrograma tpr = null; TUsuario tusu = null; TDispositivo tdispo = null; TDispositivo tdisps = null; if (s.Usuario != null) { tusu = CntSciTerminal.GetTUsuario(s.Usuario.UsuarioId, conn); } if (s.Programa != null) { tpr = CntSciTerminal.GetTPrograma(s.Programa.ProgramaId, conn); } if (s.DispositivoOriginal != null) { tdispo = CntSciTerminal.GetTDispositivo(s.DispositivoOriginal.DispositivoId, conn); } if (s.DispositivoSustituto != null) { tdisps = CntSciTerminal.GetTDispositivo(s.DispositivoSustituto.DispositivoId, conn); } TSustitucion ts = new TSustitucion() { SustitucionId = s.SustitucionId, Comentarios = s.Comentarios, Estado = s.Estado, TUsuario = tusu, TDispositivoOriginal = tdispo, TDispositivoSustituto = tdisps, TPrograma = tpr, Fecha = s.Fecha }; CntSciTerminal.TSave(ts, conn); }
private void mnuAceptar_Click(object sender, EventArgs e) { if (!DatosOk()) { return; } Cursor.Current = Cursors.WaitCursor; CntSciTerminal.TOpen(this.conn); SaveDatosRevision(conn); if (!DescargarPantalla()) { return; } if (!SaveRevision(conn)) { return; } // Ahora pueden dejar inopertivo el dispositivo desde // la revisión if (chkInoperativo.Checked) { TDispositivo d = tr.Dispositivo; d.Operativo = false; CntSciTerminal.TSave(d, conn); } CntSciTerminal.TClose(this.conn); Cursor.Current = Cursors.Default; MessageBox.Show("Revisión guardada", "AVISO"); Cursor.Current = Cursors.WaitCursor; switch (caller) { case "programa": RevisionesGrid revGrid = new RevisionesGrid(tr.TPrograma, usuario); revGrid.Show(); break; case "dispositivoGrid": DispForm dspFormGrid = new DispForm(usuario, tr.Dispositivo); dspFormGrid.Show(); break; case "dispRev": CntSciTerminal.TOpen(this.conn); IList <TRevision> ltr = CntSciTerminal.GetTRevisiones(true, tr.Dispositivo, conn); CntSciTerminal.TClose(this.conn); if (ltr.Count > 0) { RevisionesGrid Grid = new RevisionesGrid("dispRev", tr.Dispositivo, usuario); Grid.Show(); } else { Cursor.Current = Cursors.WaitCursor; CodBarrasForm frmCodBarras = new CodBarrasForm(usuario, true); frmCodBarras.Show(); this.Close(); } this.Close(); break; } this.Close(); }
private void GuardarSustituciones(Dispositivo dispositivo, TDispositivo disp, SqlCeConnection conn) { IList <TSustitucion> sustituciones = CntSciTerminal.GetTSustituciones(disp, conn); foreach (TSustitucion sust in sustituciones) { Sustitucion sustitucion; var rs = (from d in ctx.Sustitucions where d.SustitucionId == sust.SustitucionId && d.DispositivoOriginal.DispositivoId == dispositivo.DispositivoId select d).FirstOrDefault <Sustitucion>(); if (rs != null) { sustitucion = rs; sustitucion.Usuario = CntLainsaSci.GetUsuario(sust.TUsuario.UsuarioId, ctx); if (!CntSciTerminal.FechaNula(sust.Fecha)) { sustitucion.Fecha = sust.Fecha; } sustitucion.Estado = sust.Estado; if (sust.TDispositivoSustituto != null) { sustitucion.DispositivoSustituto = CntLainsaSci.GetDispositivo(sust.TDispositivoSustituto.DispositivoId, ctx); } sustitucion.Comentarios = sust.Comentarios; } else { Revision revision = null; if (sust.TRevision != null) { revision = CntLainsaSci.GetRevision(sust.TRevision.RevisionId, ctx); } Programa p = null; if (revision != null && revision.Programa != null) { p = CntLainsaSci.GetPrograma(revision.Programa.ProgramaId, ctx); } DateTime fecha = new DateTime(); if (!CntSciTerminal.FechaNula(sust.Fecha)) { fecha = sust.Fecha; } Dispositivo d = null; if (sust.TDispositivoSustituto != null) { d = CntLainsaSci.GetDispositivo(sust.TDispositivoSustituto.DispositivoId, ctx); } sustitucion = new Sustitucion() { Usuario = CntLainsaSci.GetUsuario(sust.TUsuario.UsuarioId, ctx), Revision = revision, Estado = sust.Estado, Programa = p, Comentarios = sust.Comentarios, Fecha = fecha, DispositivoOriginal = dispositivo, DispositivoSustituto = d, }; ctx.Add(sustitucion); } ctx.SaveChanges(); } }