예제 #1
0
        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();
            }
        }
        protected void btnClose_Click(object sender, ImageClickEventArgs e)
        {
            if (!DataOk())
            {
                return;
            }
            if (newRecord)
            {
                incidenciaEvo = new IncidenciaEvolucion();
            }
            UnloadData(incidenciaEvo);
            if (newRecord)
            {
                ctx.Add(incidenciaEvo);
            }
            ctx.SaveChanges();
            // si han accedido por esta opción quiere decir que la incidencia se cerrará
            incidencia             = incidenciaEvo.Incidencia;
            incidencia.FechaCierre = incidenciaEvo.FechaEvolucion;
            incidencia.Operativo   = incidenciaEvo.Operativo;
            incidencia.Estado      = CntLainsaSci.GetEstadoCierre(ctx);
            // hay que tocar el dispositivo si lo vamos a dejar operativo
            incidencia.Dispositivo.Operativo = incidencia.Operativo;
            ctx.SaveChanges();
            // si ha cerrado querra cargar toda la incidencia para ver el efecto (OpenOutside)
            string url  = String.Format("IncidenciaForm.aspx?Caller=IncidenciaGrid&IncidenciaId={0}", incidencia.IncidenciaId);
            string name = "IncidenciaForm";
            string js   = String.Format("openOutSideClose('{0}', '{1}');", url, name);

            RadAjaxManager1.ResponseScripts.Add(js);
        }
 protected void btnAccept_Click(object sender, ImageClickEventArgs e)
 {
     try
     {
         if (!DataOk())
         {
             return;
         }
         if (newRecord)
         {
             usuarioextranet = new UsuarioExtranet();
         }
         UnloadData(usuarioextranet);
         if (newRecord)
         {
             ctx.Add(usuarioextranet);
         }
         ctx.SaveChanges();
         //if (newRecord)
         //    RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller));
         //else
         //{
         //    RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller));
         //    RadAjaxManager1.ResponseScripts.Add(String.Format("MyAlert('{0}');", caller));
         //}
         RadNotification1.Text = "Sus datos han sido guardados haga clic en cualquier elemento del árbol a su izquierda para continuar";
         RadNotification1.Show();
     }
     catch (Exception ex)
     {
         ControlDeError(ex);
     }
 }
예제 #4
0
        /// <summary>
        /// Procesa un informe en el sentido de crear, o recrear el documento asociado.
        /// </summary>
        /// <param name="ip">Informe programado</param>
        /// <param name="desdeFecha">Desde fecha</param>
        /// <param name="hastaFecha">Hasta fecha</param>
        /// <param name="periodicidad">Periodicidad</param>
        /// <param name="instalacion">Instalacion</param>
        /// <param name="informe">Informe</param>
        /// <param name="repositorio">repositorio</param>
        /// <param name="ctx">Conector a la base de datos</param>
        public static void ProcesarUnInforme(InformeProgramado ip, DateTime desdeFecha, DateTime hastaFecha, string periodicidad,
                                             Instalacion instalacion, string informe, string repositorio, LainsaSci ctx)
        {
            Documento documento = new Documento();

            if (ip != null)
            {
                documento = ip.Documento;
            }
            else
            {
                ip                     = new InformeProgramado();
                ip.Empresa             = instalacion.Empresa;
                ip.Instalacion         = instalacion;
                ip.Instalacion         = null;
                ip.FechaInicial        = desdeFecha;
                ip.FechaFinal          = hastaFecha;
                ip.ProgramacionInforme = GetProgramacionInforme(informe, periodicidad, ctx);
                ctx.Add(ip);
                documento.Empresa     = instalacion.Empresa;
                documento.Instalacion = instalacion;
                documento.Fecha       = DateTime.Now;
                documento.Comentarios = "Informe generado automáticamente";
                documento.Extension   = "PDF";
                ctx.Add(documento);
                ip.Documento = documento;
                ctx.SaveChanges();
            }
            // en cualquier caso hay que generar el documento y a ello vamos.
            string          directorio      = repositorio;
            string          nombreFichero   = String.Format("{0:000000000}", documento.DocumentoId) + ".PDF";
            string          fichero         = String.Format("{0}\\{1}", directorio, nombreFichero);
            ReportProcessor reportProcessor = new ReportProcessor();
            RenderingResult renderingResult = null;

            switch (informe)
            {
            case "RptResumenEmpresaInstalacion":
                RptResumenEmpresaInstalacion rptR = new RptResumenEmpresaInstalacion(desdeFecha, hastaFecha, instalacion.Empresa.EmpresaId, instalacion.InstalacionId, ctx);
                documento.Nombre = String.Format("Resumen Revisiones {0:dd/MM/yyyy} {1:dd/MM/yyyy} (Programado)", desdeFecha, hastaFecha);
                renderingResult  = reportProcessor.RenderReport("PDF", rptR, null);
                break;

            case "RptFacturableEmpresaInstalacion":
                RptFacturableEmpresaInstalacion rptF = new RptFacturableEmpresaInstalacion(desdeFecha, hastaFecha, instalacion.Empresa.EmpresaId, instalacion.InstalacionId, ctx);
                documento.Nombre = String.Format("Revisiones facturables {0:dd/MM/yyyy} {1:dd/MM/yyyy} (Programado)", desdeFecha, hastaFecha);
                renderingResult  = reportProcessor.RenderReport("PDF", rptF, null);
                break;
            }
            FileStream fs = new FileStream(fichero, FileMode.Create);

            fs.Write(renderingResult.DocumentBytes, 0, renderingResult.DocumentBytes.Length);
            fs.Close();
        }
예제 #5
0
        public static void CrearResumenesRevision(Dispositivo dsp, LainsaSci ctx)
        {
            if (dsp == null)
            {
                return;
            }
            IList <PlantillaRevision> lpr = (from p in dsp.TipoDispositivo.PlantillaRevisions
                                             where p.NoPeriodica == false
                                             select p).ToList <PlantillaRevision>();

            foreach (PlantillaRevision pr in lpr)
            {
                ResumenRevision rr = (from rsr in dsp.ResumenesRevisones
                                      where rsr.PlantillaRevision.PlantillaId == pr.PlantillaId
                                      select rsr).FirstOrDefault <ResumenRevision>();
                if (rr == null)
                {
                    rr                   = new ResumenRevision();
                    rr.Dispositivo       = dsp;
                    rr.PlantillaRevision = pr;
                    ctx.Add(rr);
                }
            }
            ctx.SaveChanges();
        }
예제 #6
0
    protected void btnAccept_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            if (!DataOk())
            {
                return;
            }
            if (newRecord)
            {
                dispositivo = new Dispositivo();
            }
            UnloadData(dispositivo);
            if (newRecord)
            {
                dispositivo.DispositivoPadre = dispositivoPadre;
                ctx.Add(dispositivo);
            }
            ctx.SaveChanges();

            if (newRecord)
            {
                RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller));
            }
            else
            {
                CntLainsaSci.CrearResumenesRevision(dispositivo, ctx);
                RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller));
            }
        }
        catch (Exception ex)
        {
            ControlDeError(ex);
        }
    }
예제 #7
0
 protected void btnAccept_Click(object sender, ImageClickEventArgs e)
 {
     try
     {
         if (!DataOk())
         {
             return;
         }
         if (newRecord)
         {
             usuario = new Usuario();
         }
         UnloadData(usuario);
         if (newRecord)
         {
             ctx.Add(usuario);
         }
         ctx.SaveChanges();
         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);
     }
 }
예제 #8
0
 protected void btnAccept_Click(object sender, ImageClickEventArgs e)
 {
     if (!DataOk())
     {
         return;
     }
     if (newRecord)
     {
         incidencia = new Incidencia();
     }
     UnloadData(incidencia);
     if (newRecord)
     {
         ctx.Add(incidencia);
     }
     ctx.SaveChanges();
     if (!incidencia.Operativo && !incidencia.SiguePlan)
     {
         RadWindowManager1.RadConfirm("Ha elegido no seguir planificando revisiones para este dispositivo. ¿Quiere borrar las no realizadas?", "askRevision", null, null, null, "AVISO");
         return;
     }
     if (newRecord)
     {
         RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller));
     }
     else
     {
         RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller));
     }
 }
예제 #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
         {
             RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", "PlantillaRevisionGrid"));
         }
     }
     catch (Exception ex)
     {
         ControlDeError(ex);
     }
 }
예제 #10
0
        protected void btnAccept_Click(object sender, ImageClickEventArgs e)
        {
            if (!DataOk())
            {
                return;
            }
            if (newRecord)
            {
                incidencia = new Incidencia();
            }
            UnloadData(incidencia);
            if (newRecord)
            {
                ctx.Add(incidencia);
            }
            ctx.SaveChanges();

            if (newRecord)
            {
                RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller));
            }
            else
            {
                RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller));
            }
        }
예제 #11
0
 protected void btnAccept_Click(object sender, ImageClickEventArgs e)
 {
     //try
     //{
     if (!DataOk())
     {
         return;
     }
     if (newRecord)
     {
         dispositivo = new Dispositivo();
     }
     UnloadData(dispositivo);
     if (newRecord)
     {
         dispositivo.DispositivoPadre = dispositivoPadre;
         ctx.Add(dispositivo);
     }
     ctx.SaveChanges();
     if (newRecord)
     {
         dispositivo = CntLainsaSci.GetLastDispositivo(ctx);
     }
     CntLainsaSci.CrearResumenesRevision(dispositivo, ctx);
     //
     if (dispositivo.Caducado)
     {
         // si el dispositivo ha caducado se elimina todas sus revisiones pendientes
         CntLainsaSci.EliminarRevisionesPendientes(dispositivo, ctx);
     }
     if (!dispositivo.Operativo && !dispositivo.SiguePlan)
     {
         RadWindowManager1.RadConfirm("Ha elegido no seguir planificando revisiones para este dispositivo. ¿Quiere borrar las no realizadas?", "askRevision", null, null, null, "AVISO");
         return;
     }
     if (newRecord)
     {
         if (dispositivoPadre == null)
         {
             RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller));
         }
         else
         {
             //string keydisp = CntLainsaSci.GetLastDispositivo(ctx).DispositivoId.ToString();
             string keydisp = dispositivo.DispositivoId.ToString();
             RadAjaxManager1.ResponseScripts.Add(String.Format("newDispositivo({0});", keydisp));
         }
     }
     else
     {
         //CntLainsaSci.CrearResumenesRevision(dispositivo, ctx);
         RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller));
     }
     //}
     //catch (Exception ex)
     //{
     //    ControlDeError(ex);
     //}
 }
예제 #12
0
        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();
            }
        }
예제 #13
0
        // 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;
                    }
                }
            }
        }
 /// <summary>
 /// Descarga los controles y los asigna a los atributos
 /// </summary>
 protected void DescargarControles(ProgramacionInforme prgInf)
 {
     if (prgInf == null)
     {
         prgInf = new ProgramacionInforme();
         ctx.Add(prgInf);
     }
     prgInf.Informe      = rdcInforme.SelectedValue;
     prgInf.Periodicidad = rdcPeriodicidad.SelectedValue;
     prgInf.FechaInicial = (DateTime)rdtFecha.SelectedDate;
     ctx.SaveChanges();
 }
예제 #15
0
 /// <summary>
 /// Descarga los controles y los asigna a los atributos
 /// </summary>
 protected void DescargarControles(Revision revision)
 {
     if (revision == null)
     {
         revision = new Revision();
         ctx.Add(revision);
     }
     revision.Dispositivo       = CntLainsaSci.GetDispositivo(int.Parse(rdcDispositivo.SelectedValue), ctx);
     revision.PlantillaRevision = CntLainsaSci.GetPlantillaRevision(int.Parse(rdcPlantilla.SelectedValue), ctx);
     revision.FechaPlanificada  = (DateTime)rdtFecha.SelectedDate;
     revision.Usuario           = CntLainsaSci.GetUsuario(int.Parse(rdcUsuario.SelectedValue), ctx);
     revision.Estado            = "PLANIFICADA";
     // Ahora hay que crear los datos asociados a esa revisión
     foreach (Campo c in revision.PlantillaRevision.Campos)
     {
         DatosRevision dr = new DatosRevision();
         dr.Campo    = c;
         dr.Revision = revision;
         ctx.Add(dr);
     }
     ctx.SaveChanges();
 }
예제 #16
0
    protected void btnAccept_Click(object sender, ImageClickEventArgs e)
    {
        //try
        //{
        if (!DataOk())
        {
            return;
        }
        if (newRecord)
        {
            dispositivo = new Dispositivo();
        }
        UnloadData(dispositivo);
        if (newRecord)
        {
            dispositivo.DispositivoPadre = dispositivoPadre;
            ctx.Add(dispositivo);
        }
        ctx.SaveChanges();
        if (newRecord)
        {
            dispositivo = CntLainsaSci.GetLastDispositivo(ctx);
        }

        CntLainsaSci.CrearResumenesRevision(dispositivo, ctx);
        if (newRecord)
        {
            if (dispositivoPadre == null)
            {
                RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller));
            }
            else
            {
                //string keydisp = CntLainsaSci.GetLastDispositivo(ctx).DispositivoId.ToString();
                string keydisp = dispositivo.DispositivoId.ToString();
                RadAjaxManager1.ResponseScripts.Add(String.Format("newDispositivo({0});", keydisp));
            }
        }
        else
        {
            //CntLainsaSci.CrearResumenesRevision(dispositivo, ctx);
            RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller));
        }
        //}
        //catch (Exception ex)
        //{
        //    ControlDeError(ex);
        //}
    }
예제 #17
0
 protected void btnAccept_Click(object sender, ImageClickEventArgs e)
 {
     try
     {
         if (!DataOk())
         {
             return;
         }
         if (newRecord)
         {
             sustitucion = new Sustitucion();
             if (revision != null)
             {
                 sustitucion.Revision = revision;
             }
         }
         UnloadData(sustitucion);
         if (newRecord)
         {
             ctx.Add(sustitucion);
         }
         ctx.SaveChanges();
         if (revision == null)
         {
             if (newRecord)
             {
                 RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');"
                                                                   , caller));
             }
             else
             {
                 RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');"
                                                                   , caller));
             }
         }
         else
         {
             RadAjaxManager1.ResponseScripts.Add("closeWindow();");
         }
     }
     catch (Exception ex)
     {
         ControlDeError(ex);
     }
 }
 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);
     }
 }
예제 #19
0
 protected void btnAgregar_Click(object sender, EventArgs e)
 {
     if (txtFiltro.Text != "")
     {
         Filtro f = CntLainsaSci.GetFiltro("Dispositivo", txtFiltro.Text, ctx);
         if (f == null)
         {
             f = new Filtro();
             ctx.Add(f);
         }
         f.Tipo      = "Dispositivo";
         f.Nombre    = txtFiltro.Text;
         f.Expresion = RadFilter1.SaveSettings();
         ctx.SaveChanges();
         CargarFiltros(f);
         rdcFiltro.SelectedValue = f.FiltroId.ToString();
         RadNotification1.Text   = String.Format("El filtro '{0}' ha sido agregado, lo puede ver en el desplegable", f.Nombre);
         RadNotification1.Show();
     }
 }
예제 #20
0
        ProgramarSustituciones(Programa prog, LainsaSci ctx)
        {
            // primero buscamos si hay revisiones con marca de sustitución
            var rs = from r in prog.Revisions
                     where r.PlantillaRevision.ConSustitucion == true
                     select r;

            foreach (Revision rev in rs)
            {
                Sustitucion s = new Sustitucion()
                {
                    Fecha = prog.FechaProgramada,
                    DispositivoOriginal = rev.Dispositivo,
                    Estado   = "PROGRAMADA",
                    Revision = rev,
                    Programa = prog
                };
                ctx.Add(s);
            }
        }
예제 #21
0
 public static void CrearPermisos(Proceso pro, LainsaSci ctx)
 {
     // Buscamos para todos los grupos de usuarios
     foreach (GrupoUsuario gpu in ctx.GrupoUsuarios)
     {
         Permiso per = GetPermiso(gpu, pro.Nombre, ctx);
         if (per == null)
         {
             per              = new Permiso();
             per.Proceso      = pro;
             per.GrupoUsuario = gpu;
             per.Ver          = true;  // por defecto los usuarios ven
             per.Crear        = false; // no puden crear por defecto
             per.Modificar    = false; // lo mismo para modificar
             per.Especial     = false; // idem para especial
             ctx.Add(per);
             ctx.SaveChanges();
         }
     }
 }
예제 #22
0
 public void GuardarTerminal()
 {
     try
     {
         terminal = CntLainsaSci.GetCargaTerminal(archivo, ctx);
         if (terminal == null)
         {
             terminal         = new CargaTerminales();
             terminal.Empresa = empresa;
             terminal.Archivo = archivo;
             terminal.Fecha   = DateTime.Now;
             ctx.Add(terminal);
         }
         terminal.Fecha = DateTime.Now;
         ctx.SaveChanges();
     }
     catch (Exception ex)
     {
         ControlDeError(ex);
     }
 }
예제 #23
0
 protected void btnAccept_Click(object sender, ImageClickEventArgs e)
 {
     try
     {
         if (!DataOk())
         {
             return;
         }
         if (newRecord)
         {
             empresa = new Empresa();
         }
         UnloadData(empresa);
         if (newRecord)
         {
             ctx.Add(empresa);
         }
         ctx.SaveChanges();
         if (newRecord)
         {
             string url      = String.Format("EmpresaTab.aspx?Caller=EmpresaGrid&EmpresaId={0}", empresa.EmpresaId);
             string jCommand = String.Format("closeOpen('{0}','{1}');", url, "EmpresaTab");
             RadAjaxManager1.ResponseScripts.Add(jCommand);
             //RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');"
             //    , caller));
         }
         else
         {
             RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');"
                                                               , caller));
         }
     }
     catch (Exception ex)
     {
         ControlDeError(ex);
     }
 }
예제 #24
0
 public static void VerifyPermissions(GrupoUsuario ug, LainsaSci ctx)
 {
     foreach (Proceso pr in ctx.Procesos)
     {
         Permiso per = (from p in ctx.Permisos
                        where p.GrupoUsuario.GrupoUsuarioId == ug.GrupoUsuarioId && p.Proceso.Nombre == pr.Nombre
                        select p).FirstOrDefault <Permiso>();
         if (per == null)
         {
             // permission doesn't exists for this Usuario group
             // we create one.
             per = new Permiso();
             per.GrupoUsuario = ug;
             per.Proceso      = pr;
             // default permissions are asigned.
             per.Ver       = true;
             per.Crear     = false;
             per.Modificar = false;
             per.Especial  = false;
             ctx.Add(per);
         }
     }
     ctx.SaveChanges();
 }
예제 #25
0
        protected void GuardarSustituciones(SqlCeConnection conn, LainsaSci ctx)
        {
            IList <TSustitucion> ltsu = CntSciTerminal.GetTSustituciones(conn);

            foreach (TSustitucion tsu in ltsu)
            {
                if (tsu.Abm == 0)
                {
                    continue;               // no hay cambios
                }
                Sustitucion sustitucion;
                switch (tsu.Abm)
                {
                case 1:
                    // alta
                    // hay que controlar el doble procesamiento del fichero
                    Sustitucion sus = (from st in ctx.Sustitucions
                                       where st.DispositivoOriginal.DispositivoId == tsu.TDispositivoOriginal.DispositivoId &&
                                       st.DispositivoSustituto.DispositivoId == tsu.TDispositivoSustituto.DispositivoId &&
                                       st.Fecha == tsu.Fecha
                                       select st).FirstOrDefault <Sustitucion>();
                    if (sus != null)
                    {
                        break;                  // entendemos que ya se ha dado de alta en otro procesamiento.
                    }
                    sustitucion = new Sustitucion();
                    // atributos directos
                    sustitucion.Fecha       = tsu.Fecha;
                    sustitucion.Comentarios = tsu.Comentarios;
                    sustitucion.Estado      = tsu.Estado;
                    // atributos como objetos
                    if (tsu.TUsuario != null)
                    {
                        sustitucion.Usuario = CntLainsaSci.GetUsuario(tsu.TUsuario.UsuarioId, ctx);
                    }
                    if (tsu.TDispositivoOriginal != null)
                    {
                        sustitucion.DispositivoOriginal = CntLainsaSci.GetDispositivo(tsu.TDispositivoOriginal.DispositivoId, ctx);
                    }
                    if (tsu.TDispositivoSustituto != null)
                    {
                        sustitucion.DispositivoSustituto = CntLainsaSci.GetDispositivo(tsu.TDispositivoSustituto.DispositivoId, ctx);
                    }
                    if (tsu.TRevision != null)
                    {
                        sustitucion.Revision = CntLainsaSci.GetRevision(tsu.TRevision.RevisionId, ctx);
                    }
                    if (tsu.TPrograma != null)
                    {
                        sustitucion.Programa = CntLainsaSci.GetPrograma(tsu.TPrograma.ProgramaId, ctx);
                    }
                    ctx.Add(sustitucion);
                    ctx.SaveChanges();
                    break;

                case 2:
                    // baja
                    sustitucion = CntLainsaSci.GetSustitucion(tsu.SustitucionId, ctx);
                    if (sustitucion != null)
                    {
                        ctx.Delete(sustitucion);
                        ctx.SaveChanges();
                    }
                    break;

                case 3:
                    // modificacion
                    sustitucion = CntLainsaSci.GetSustitucion(tsu.SustitucionId, ctx);
                    if (sustitucion != null)
                    {
                        // atributos directos
                        sustitucion.Fecha       = tsu.Fecha;
                        sustitucion.Comentarios = tsu.Comentarios;
                        sustitucion.Estado      = tsu.Estado;
                        // atributos como objetos
                        if (tsu.TUsuario != null)
                        {
                            sustitucion.Usuario = CntLainsaSci.GetUsuario(tsu.TUsuario.UsuarioId, ctx);
                        }
                        if (tsu.TDispositivoOriginal != null)
                        {
                            sustitucion.DispositivoOriginal = CntLainsaSci.GetDispositivo(tsu.TDispositivoOriginal.DispositivoId, ctx);
                        }
                        if (tsu.TDispositivoSustituto != null)
                        {
                            sustitucion.DispositivoSustituto = CntLainsaSci.GetDispositivo(tsu.TDispositivoSustituto.DispositivoId, ctx);
                        }
                        if (tsu.TRevision != null)
                        {
                            sustitucion.Revision = CntLainsaSci.GetRevision(tsu.TRevision.RevisionId, ctx);
                        }
                        if (tsu.TPrograma != null)
                        {
                            sustitucion.Programa = CntLainsaSci.GetPrograma(tsu.TPrograma.ProgramaId, ctx);
                        }
                        ctx.SaveChanges();
                    }
                    break;
                }
            }
        }
예제 #26
0
    protected void CrearInforme(Filtro f, string repositorio)
    {
        string consulta = string.Empty;

        Documento documento = new Documento();

        documento.Nombre      = f.Nombre;
        documento.Empresa     = usuario.Empresa;
        documento.Instalacion = usuario.Instalacion;
        documento.Fecha       = DateTime.Now;
        documento.Comentarios = "Informe generado automáticamente";
        documento.Extension   = "PDF";
        ctx.Add(documento);
        ctx.SaveChanges();

        string directorio    = repositorio;
        string nombreFichero = String.Format("{0:000000000}", documento.DocumentoId) + ".PDF";
        string fichero       = String.Format("{0}\\{1}", directorio, nombreFichero);

        ReportProcessor reportProcessor = new ReportProcessor();
        RenderingResult renderingResult = null;

        switch (f.Tipo)
        {
        case "Dsipositivo":
            List <string> dispositivos = new List <string>();
            //ConsDisp.AllowPaging = false;// disabling paging
            //ConsDisp.Rebind();
            foreach (GridDataItem item in ConsDisp.MasterTableView.Items)
            {
                dispositivos.Add(item["DispositivoId"].Text);
            }
            Session["Filtro"] = dispositivos;
            //ConsDisp.AllowPaging = true;// disabling paging
            //ConsDisp.Rebind();
            consulta = "Consulta dispositivos. " + f.Nombre;
            RptConsultaDispositivos cd = new RptConsultaDispositivos(dispositivos, consulta);
            renderingResult = reportProcessor.RenderReport("PDF", cd, null);
            break;

        case "Revision":
            List <string> revisiones = new List <string>();
            //ConsRev.AllowPaging = false;// disabling paging
            //ConsRev.Rebind();
            foreach (GridDataItem item in ConsRev.MasterTableView.Items)
            {
                revisiones.Add(item["RevisionId"].Text);
            }
            Session["Filtro"] = revisiones;
            //ConsRev.AllowPaging = true;// disabling paging
            //ConsDisp.Rebind();
            consulta = "Consulta revisiones. " + f.Nombre;
            IList <Revision> lr = new List <Revision>();
            foreach (string rid in revisiones)
            {
                lr.Add(CntLainsaSci.GetRevision(int.Parse(rid), ctx));
            }
            RptInfConsultaRevision icr = new RptInfConsultaRevision(lr, consulta);
            renderingResult = reportProcessor.RenderReport("PDF", icr, null);
            break;
        }

        FileStream fs = new FileStream(fichero, FileMode.Create);

        fs.Write(renderingResult.DocumentBytes, 0, renderingResult.DocumentBytes.Length);
        fs.Close();
    }
예제 #27
0
    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;
        }
    }
예제 #28
0
        //
        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();
            }
        }
예제 #29
0
    protected void btnAccept_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            if (!DataOk())
            {
                return;
            }
            if (newRecord)
            {
                documento = new Documento();
            }
            UnloadData(documento);
            if (newRecord)
            {
                ctx.Add(documento);
            }
            ctx.SaveChanges();
            //---

            if (newRecord)
            {
                // Aqui hay que copiar el fichero del directorio temporal al definitivo
                // (1) Obtener la extensión
                int pos = fileName.LastIndexOf('.');
                if (pos != -1)
                {
                    string extension   = fileName.Substring(pos);
                    string newFileName = String.Format("{0:000000000}", documento.DocumentoId) + extension;
                    string origen      = MapPath("/") + "Repo\\" + fileName;
                    string repodir     = ConfigurationManager.AppSettings["Repositorio"];
                    string destino     = repodir + "\\" + newFileName;
                    File.Copy(origen, destino, true);
                    File.Delete(origen);
                    documento.Extension = extension;
                    ctx.SaveChanges();
                }
            }
            //---
            if (newRecord)
            {
                if (empresa != null)
                {
                    // cuando hay una generación automática, al menos la empresa se pasa
                    RadAjaxManager1.ResponseScripts.Add("closeWindow();");
                }
                else
                {
                    RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'new');", caller));
                }
            }
            else
            {
                RadAjaxManager1.ResponseScripts.Add(String.Format("closeWindowRefreshGrid('{0}', 'edit');", caller));
            }
        }
        catch (Exception ex)
        {
            ControlDeError(ex);
        }
    }
예제 #30
0
        // 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();
            }
        }