예제 #1
0
 public void EjecutarVisita(int IdVisita, int IdInspector)
 {
     using (var ctx = new DB_A66D31_intratecPrbEntities1())
     {
         Visitas visita = ctx.Visitas.Where(v => v.IdVisita == IdVisita).FirstOrDefault();
         if (visita != null)
         {
             if (visita.IdEstadoVisitas.Equals("P"))
             {
                 visita.IdEstadoVisitas       = "E";
                 visita.FechaModificacion     = DateTime.Now;
                 visita.IdUsuarioModificacion = IdInspector;
                 ctx.SaveChanges();
             }
         }
     }
 }
예제 #2
0
 //Agregar EquiposVisita
 public void AgregarEquipoVisita(EquiposVisita Equipo, int IdVisita)
 {
     using (var ctx = new DB_A66D31_intratecPrbEntities1())
     {
         Visitas visita = ctx.Visitas.Where(v => v.IdVisita == IdVisita).FirstOrDefault();
         if (visita != null)
         {
             Equipo.Secuencia = ctx.EquiposVisita.Where(fv => fv.IdVisita == Equipo.IdVisita).Count() + 1;
             visita.EquiposVisita.Add(Equipo);
             ctx.SaveChanges();
         }
         else
         {
             throw new Exception("No se encontró la visita");
         }
     }
 }
예제 #3
0
        //Reporte zonas y presencia en visitas
        //TODO => PENDIENTE

        //**************************************************** VISITAS => Todo lo que tenga que ver con visitas
        //Programación Visita
        public void ProgramarVisita(Visitas Visita)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                if (ctx.Visitas.Where(v => v.IdCliente == Visita.IdCliente && v.IdPropiedad == Visita.IdPropiedad && v.FechaVisita == Visita.FechaVisita && v.IdFranja == Visita.IdFranja).FirstOrDefault() != null)
                {
                    throw new Exception($"Ya se tiene programada una visita para esta propiedad en esa misma franja");
                }
                if (ctx.Visitas.Where(v => v.IdInspector == Visita.IdInspector && v.FechaVisita == Visita.FechaVisita && v.IdFranja == Visita.IdFranja).Count() > 1)
                {
                    throw new Exception("Inspector no disponible en la franja seleccionada");
                }

                Visita.FechaCreacion = DateTime.Now;
                ctx.Visitas.Add(Visita);
                ctx.SaveChanges();
            }
        }
예제 #4
0
        public void AgregarCertificadoCompetencias(CertificadosCompetencias CertificadoAgregar)
        {
            CertificadosCompetencias res = null;

            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                res = ctx.CertificadosCompetencias.Where(c => c.FechaExpedicion == CertificadoAgregar.FechaExpedicion).FirstOrDefault();
                if (res != null)
                {
                    CertificadoAgregar.FechaCreacion = DateTime.Now;
                    ctx.CertificadosCompetencias.Add(CertificadoAgregar);
                    ctx.SaveChanges();
                }
                else
                {
                    throw new Exception($"Ya existe un certificado con fecha de expedición: {CertificadoAgregar.FechaExpedicion}");
                }
            }
        }
예제 #5
0
        //Eliminar

        public void EliminarTipoPersona(int IdTipoPersona, int IdUsuarioModificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                TiposPersona TipoPersonaEliminar = ctx.TiposPersona.Where(u => u.IdTipoPersona == IdTipoPersona).FirstOrDefault();
                if (TipoPersonaEliminar != null)
                {
                    TipoPersonaEliminar.Activo = false;

                    TipoPersonaEliminar.FechaModificacion     = DateTime.Now;
                    TipoPersonaEliminar.IdUsuarioModificacion = IdUsuarioModificacion;

                    ctx.SaveChanges();
                }
                else
                {
                    throw new Exception($"No existe un tipo de persona con ID {IdTipoPersona}");
                }
            }
        }
예제 #6
0
        public Usuarios ConsultarUsuarioParaCambioContrasena(string numeroIdentificacion, string email)
        {
            Usuarios res = null;

            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                res = ctx.Usuarios.Where(u => u.NumeroIdentificacion.Equals(numeroIdentificacion) && u.Email.Equals(email)).FirstOrDefault();
                if (res != null)
                {
                    res.tokenCambioContrasena     = $"{res.NumeroIdentificacion}_{DateTime.Now.Ticks}_{res.Email}_{DateTime.Now.Ticks}";
                    res.horaTokenCambioContrasena = DateTime.Now;
                    ctx.SaveChanges();
                    //ctx.Entry(res).Reference(u => u.Roles).Load();
                    //res.Roles.Menus.ToList();
                    //ctx.Entry(res).Reference(u => u.TiposIdentificacion).Load();
                    //ctx.Entry(res).Reference(u => u.Ciudades).Load();
                }
            }
            return(res);
        }
예제 #7
0
        //Eliminar

        public void EliminarUsoPropiedad(int IdUso, int IdUsuarioModificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                UsosPropiedades UsoPropiedadEliminar = ctx.UsosPropiedades.Where(u => u.IdUso == IdUso).FirstOrDefault();
                if (UsoPropiedadEliminar != null)
                {
                    UsoPropiedadEliminar.Activo = false;

                    UsoPropiedadEliminar.FechaModificacion     = DateTime.Now;
                    UsoPropiedadEliminar.IdUsuarioModificacion = IdUsuarioModificacion;

                    ctx.SaveChanges();
                }
                else
                {
                    throw new Exception($"No existe un uso de propiedad con ID {IdUso}");
                }
            }
        }
예제 #8
0
        //Eliminar

        public void EliminarPais(int IdPais, int IdUsuarioModificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                Paises PaisEliminar = ctx.Paises.Where(u => u.IdPais == IdPais).FirstOrDefault();
                if (PaisEliminar != null)
                {
                    PaisEliminar.Activo = false;

                    PaisEliminar.FechaModificacion     = DateTime.Now;
                    PaisEliminar.IdUsuarioModificacion = IdUsuarioModificacion;

                    ctx.SaveChanges();
                }
                else
                {
                    throw new Exception($"No existe un País con ID {IdPais}");
                }
            }
        }
예제 #9
0
        //Eliminar
        public void EliminarMarcaEquipo(int IdMarca, int IdUsuarioModificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                MarcasEquipos MarcaEliminar = ctx.MarcasEquipos.Where(u => u.IdMarcaEquipo == IdMarca).FirstOrDefault();
                if (MarcaEliminar != null)
                {
                    MarcaEliminar.Activo = false;

                    MarcaEliminar.FechaModificacion     = DateTime.Now;
                    MarcaEliminar.IdUsuarioModificacion = IdUsuarioModificacion;

                    ctx.SaveChanges();
                }
                else
                {
                    throw new Exception($"No existe una Marca con ID {IdMarca}");
                }
            }
        }
예제 #10
0
        //5. Ingresar Verificaciones LAB
        public void IngresarVerificacionLAB(VerificacionesLabEquipos Verificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                int sec = 0;
                try { sec = ctx.VerificacionesLabEquipos.Where(v => v.IdEquipo == Verificacion.IdEquipo).Count(); } catch { }
                sec += 1;

                Verificacion.FechaCreacion = DateTime.Now;
                Verificacion.Secuencia     = sec;
                ctx.VerificacionesLabEquipos.Add(Verificacion);

                Equipos eq = ctx.Equipos.Where(e => e.IdEquipo == Verificacion.IdEquipo).FirstOrDefault();
                if (eq != null)
                {
                    eq.FechaProximaVerificacion = Verificacion.FechaVerificacion.AddMonths(int.Parse(eq.PeriodoVerificacion));
                }
                ctx.SaveChanges();
            }
        }
예제 #11
0
        //Eliminar

        public void EliminarCiudad(string IdCiudad, int IdUsuarioModificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                Ciudades CiudadEliminar = ctx.Ciudades.Where(u => u.IdCiudad == IdCiudad).FirstOrDefault();
                if (CiudadEliminar != null)
                {
                    CiudadEliminar.Activo = false;

                    CiudadEliminar.FechaModificacion     = DateTime.Now;
                    CiudadEliminar.IdUsuarioModificacion = IdUsuarioModificacion;

                    ctx.SaveChanges();
                }
                else
                {
                    throw new Exception($"No existe una Ciudad con ID {IdCiudad}");
                }
            }
        }
예제 #12
0
        //Eliminar

        public void EliminarDepartamento(string IdDepartamento, int IdUsuarioModificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                Departamentos DepartamentoEliminar = ctx.Departamentos.Where(u => u.IdDepartamento == IdDepartamento).FirstOrDefault();
                if (DepartamentoEliminar != null)
                {
                    DepartamentoEliminar.Activo = false;

                    DepartamentoEliminar.FechaModificacion     = DateTime.Now;
                    DepartamentoEliminar.IdUsuarioModificacion = IdUsuarioModificacion;

                    ctx.SaveChanges();
                }
                else
                {
                    throw new Exception($"No existe un Depatamento con ID {IdDepartamento}");
                }
            }
        }
예제 #13
0
        public void EditarPropiedad(Propiedades propiedad, int IdUsuarioModificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                Propiedades PropiedadModificar = ctx.Propiedades.Where(c => c.IdPropiedades == propiedad.IdPropiedades).FirstOrDefault();

                PropiedadModificar.Direccion       = propiedad.Direccion;
                PropiedadModificar.IdUso           = propiedad.IdUso;
                PropiedadModificar.Telefono        = propiedad.Telefono;
                PropiedadModificar.Foto            = propiedad.Foto;
                PropiedadModificar.Observaciones   = propiedad.Observaciones;
                PropiedadModificar.IdTipoPropiedad = propiedad.IdTipoPropiedad;
                PropiedadModificar.NroPoliza       = propiedad.NroPoliza;

                PropiedadModificar.FechaModificacion     = DateTime.Now;
                PropiedadModificar.IdUsuarioModificacion = IdUsuarioModificacion;

                ctx.SaveChanges();
            }
        }
예제 #14
0
        public void ActualizarContrasena(int IdUsuario, string Contrasena)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                Usuarios usuarioModificar = ctx.Usuarios.Where(u => u.IdUsuario == IdUsuario).FirstOrDefault();
                if (usuarioModificar != null)
                {
                    usuarioModificar.Password = Convert.ToBase64String(Encoding.UTF8.GetBytes(Contrasena));

                    usuarioModificar.FechaCreacion         = DateTime.Now;
                    usuarioModificar.IdUsuarioModificacion = IdUsuario;
                    usuarioModificar.DebeCambiarContrasena = false;
                    ctx.SaveChanges();
                }
                else
                {
                    throw new Exception("No existe el usuario");
                }
            }
        }
예제 #15
0
 public void CancelarVisita(int IdVisita, string ObservacionCancelacion, int IdUsuarioCancelacion)
 {
     using (var ctx = new DB_A66D31_intratecPrbEntities1())
     {
         Visitas visita = ctx.Visitas.Where(v => v.IdVisita == IdVisita).FirstOrDefault();
         if (visita != null)
         {
             if (visita.IdEstadoVisitas.Equals("P"))
             {
                 visita.ObservacionesCancelacion = ObservacionCancelacion;
                 visita.FechaModificacion        = DateTime.Now;
                 visita.IdUsuarioModificacion    = IdUsuarioCancelacion;
                 visita.IdEstadoVisitas          = "X";
                 ctx.SaveChanges();
             }
             else
             {
                 throw new Exception("No se puede cancelar la visita");
             }
         }
     }
 }
예제 #16
0
        //Editar

        public void EditarTipoIdentificacion(TiposIdentificacion TipoIdentificacion, int IdUsuarioModificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                TiposIdentificacion TipoIdentificacionEditar = ctx.TiposIdentificacion.Where(c => c.IdTipoIdentificacion == TipoIdentificacion.IdTipoIdentificacion).FirstOrDefault();
                if (ctx.TiposIdentificacion.Where(ti => ti.Abreviatura.Equals(TipoIdentificacion.Abreviatura) && ti.IdTipoIdentificacion != TipoIdentificacion.IdTipoIdentificacion).FirstOrDefault() == null)
                {
                    TipoIdentificacionEditar.Abreviatura        = TipoIdentificacion.Abreviatura;
                    TipoIdentificacionEditar.TipoIdentificacion = TipoIdentificacion.TipoIdentificacion;
                    TipoIdentificacionEditar.Activo             = TipoIdentificacion.Activo;

                    TipoIdentificacionEditar.FechaModificacion     = DateTime.Now;
                    TipoIdentificacionEditar.IdUsuarioModificacion = IdUsuarioModificacion;

                    ctx.SaveChanges();
                }
                else
                {
                    throw new Exception($"Ya existe un Tipo de Identificación con abreviatura {TipoIdentificacion.Abreviatura}");
                }
            }
        }
예제 #17
0
        //Editar

        public void EditarPais(Paises Pais, int IdUsuarioModificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                Paises PaisEditar = ctx.Paises.Where(c => c.IdPais == Pais.IdPais).FirstOrDefault();

                if (PaisEditar != null)
                {
                    PaisEditar.CodigoPais = Pais.CodigoPais;
                    PaisEditar.Pais       = Pais.Pais;
                    PaisEditar.Activo     = Pais.Activo;

                    PaisEditar.FechaModificacion     = DateTime.Now;
                    PaisEditar.IdUsuarioModificacion = IdUsuarioModificacion;

                    ctx.SaveChanges();
                }
                else
                {
                }
            }
        }
예제 #18
0
 //Reasignación visita
 public void ReasignacionVisita(int IdVisita, int IdInspector)
 {
     using (var ctx = new DB_A66D31_intratecPrbEntities1())
     {
         Visitas visita = ctx.Visitas.Where(v => v.IdVisita == IdVisita).FirstOrDefault();
         if (visita != null)
         {
             if (visita.IdEstadoVisitas.Equals("P"))
             {
                 visita.IdInspector = IdInspector;
                 ctx.SaveChanges();
             }
             else
             {
                 throw new Exception($"No se puede reasignar la visita en el estado {visita.IdEstadoVisitas}");
             }
         }
         else
         {
             throw new Exception($"No se encontró la visita con ID {IdVisita}");
         }
     }
 }
예제 #19
0
        public void ActualizarEquipo(Equipos equipos, int idUsuarioModificacion)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                Equipos equipoAModificar = ctx.Equipos.Where(e => e.IdEquipo == equipos.IdEquipo).FirstOrDefault();
                equipoAModificar.Activo    = equipos.Activo;
                equipoAModificar.Area      = equipos.Area;
                equipoAModificar.Calibrado = equipos.Calibrado;
                equipoAModificar.FechaProximaCalibracion   = equipos.FechaProximaCalibracion;
                equipoAModificar.FechaProximoMantenimiento = equipos.FechaProximoMantenimiento;
                equipoAModificar.IdMarcaEquipo             = equipos.IdMarcaEquipo;
                equipoAModificar.IdTipoEquipo        = equipos.IdTipoEquipo;
                equipoAModificar.Modelo              = equipos.Modelo;
                equipoAModificar.PeriodoCalibracion  = equipos.PeriodoCalibracion;
                equipoAModificar.PeriodoVerificacion = equipos.PeriodoVerificacion;
                equipoAModificar.SerieIDInterno      = equipos.SerieIDInterno;
                equipoAModificar.Tolerancia          = equipos.Tolerancia;
                equipoAModificar.IdTipoVisitaAplica  = equipos.IdTipoVisitaAplica;

                equipoAModificar.IdUsuarioModificacion = idUsuarioModificacion;
                equipoAModificar.FechaModificacion     = DateTime.Now;
                ctx.SaveChanges();
            }
        }
예제 #20
0
        public int CrearUsuario(Usuarios UsuarioCrear)
        {
            int res = -1;

            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                int us = ctx.Usuarios.Where(u => u.NumeroIdentificacion.Equals(UsuarioCrear.NumeroIdentificacion)).ToList().Count;
                if (us == 0)
                {
                    UsuarioCrear.FechaCreacion         = DateTime.Now;
                    UsuarioCrear.Activo                = true;
                    UsuarioCrear.Password              = Convert.ToBase64String(UTF8Encoding.UTF8.GetBytes(UsuarioCrear.NumeroIdentificacion));
                    UsuarioCrear.DebeCambiarContrasena = true;
                    ctx.Usuarios.Add(UsuarioCrear);
                    ctx.SaveChanges();
                    res = UsuarioCrear.IdUsuario;
                }
                else
                {
                    throw new Exception($"Ya existe un Usuario con Número de Identificación {UsuarioCrear.NumeroIdentificacion}");
                }
            }
            return(res);
        }
예제 #21
0
        //4. Tramitar Equipo a Inspector
        public void TramitarEquipoInspector(int IdEquipo, int?IdInspector, int IdUsuarioTramita, string Tramite, string Observaciones)
        {
            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                DateTime now = DateTime.Now;
                int      sec = 0;
                try { sec = ctx.TramitesEquipo.Where(t => t.IdEquipo == IdEquipo).Count(); } catch { }
                sec += 1;

                UsuariosEquipos ue;
                switch (Tramite)
                {
                case "ASIGNACION":
                    ctx.UsuariosEquipos.Add(new UsuariosEquipos()
                    {
                        IdEquipo = IdEquipo, IdInspector = IdInspector.Value, IdUsuarioAsigna = IdUsuarioTramita, FechaAsignacion = now, Estado = "P"
                    });
                    break;

                case "ACEP_ASIGNACION":
                    ue = ctx.UsuariosEquipos.Where(e => e.IdEquipo == IdEquipo && e.IdInspector == IdInspector && e.Estado == "P").FirstOrDefault();
                    if (ue != null)
                    {
                        ue.Estado = "A";
                    }
                    else
                    {
                        throw new Exception("No se puede aceptar la asignación.");
                    }
                    break;

                case "DEVOLUCION":
                    ue = ctx.UsuariosEquipos.Where(e => e.IdEquipo == IdEquipo && e.IdInspector == IdInspector && e.Estado == "A").FirstOrDefault();
                    if (ue != null)
                    {
                        ue.Estado = "D";
                    }
                    else
                    {
                        throw new Exception("No se puede devolver el equipo.");
                    }
                    break;

                case "ACEP_DEVOLUCION":
                    ue = ctx.UsuariosEquipos.Where(e => e.IdEquipo == IdEquipo && e.IdInspector == IdInspector && e.Estado == "D").FirstOrDefault();
                    if (ue != null)
                    {
                        ctx.UsuariosEquipos.Remove(ue);
                    }
                    else
                    {
                        throw new Exception("No se puede aceptar la devolución del equipo.");
                    }
                    break;

                case "RECHAZO":
                    ue = ctx.UsuariosEquipos.Where(e => e.IdEquipo == IdEquipo && e.IdInspector == IdInspector && e.Estado == "P").FirstOrDefault();
                    if (ue != null)
                    {
                        ctx.UsuariosEquipos.Remove(ue);
                    }
                    else
                    {
                        throw new Exception("No se puede rechazar la asignación del equipo.");
                    }
                    break;

                case "ENV_CALIBRACION":
                    if (ctx.UsuariosEquipos.Where(e => e.IdEquipo == IdEquipo).FirstOrDefault() != null)
                    {
                        throw new Exception("No se puede enviar a Calibración el equipo. Está asignado");
                    }
                    break;

                case "REC_CALIBRACION":
                    if (!ctx.TramitesEquipo.Where(t => t.IdEquipo == IdEquipo).OrderByDescending(d => d.Secuencia).FirstOrDefault().Tramite.Equals("ENV_CALIBRACION"))
                    {
                        throw new Exception("No se puede recibir ya que no fue enviada a Calibración.");
                    }
                    break;
                }

                ctx.TramitesEquipo.Add(new TramitesEquipo()
                {
                    IdEquipo          = IdEquipo,
                    IdInspector       = IdInspector,
                    FechaCreacion     = now,
                    IdUsuarioCreacion = IdUsuarioTramita,
                    Observaciones     = Observaciones,
                    Secuencia         = sec,
                    Tramite           = Tramite
                });

                ctx.SaveChanges();
            }
        }
예제 #22
0
        //8. Actualizar estado Consecutivo: Aplica para aceptación, rechazo y anulación. Permite actualizar más de un consecutivo.
        public void ActualizarEstadoConsecutivo(int IdFormato, List <int> Consecutivos, string IdEstado, int IdUsuarioActualiza, string Observaciones)
        {
            string tramite = string.Empty;

            switch (IdEstado)
            {
            case "A": tramite = "ACEPTACION"; break;

            case "R": tramite = "RECHAZO"; break;

            case "X": tramite = "ANULACION"; break;
            }

            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                foreach (int i in Consecutivos)
                {
                    ConsecutivosFormatos con = ctx.ConsecutivosFormatos.Where(c => c.IdFormato == IdFormato && c.Consecutivo == i).FirstOrDefault();
                    if (con != null)
                    {
                        //Si es rechazo el consecutivo se debe liberar
                        if (!IdEstado.Equals("R"))
                        {
                            con.IdEstadoConsecutivoInspector = IdEstado;
                            con.FechaModificacion            = DateTime.Now;
                            con.IdUsuarioModificacion        = IdUsuarioActualiza;
                        }
                        else
                        {
                            con.IdInspector = null;
                            con.IdEstadoConsecutivoInspector = IdEstado;
                            con.FechaModificacion            = DateTime.Now;
                            con.IdUsuarioModificacion        = IdUsuarioActualiza;
                        }

                        int sec = 0;
                        try
                        {
                            sec = ctx.TramiteConsecutivoFormato.Where(t => t.IdFormato == IdFormato && t.Consecutivo == i).Count();
                        }
                        catch { }
                        sec += 1;

                        ctx.TramiteConsecutivoFormato.Add(new TramiteConsecutivoFormato()
                        {
                            IdFormato         = IdFormato,
                            IdInspector       = IdUsuarioActualiza,
                            Consecutivo       = i,
                            Tramite           = tramite,
                            FechaCreacion     = DateTime.Now,
                            IdUsuarioCreacion = IdUsuarioActualiza,
                            Secuencia         = sec,
                            Observaciones     = Observaciones
                        });
                        ctx.SaveChanges();
                    }
                    else
                    {
                        throw new Exception("Consecutivo no asignado aún");
                    }
                }
            }
        }