Beispiel #1
0
        public async Task <Horarios> MostrarHorarios(int busqueda)
        {
            Col_Personas profesores = await context.Col_Personas
                                      .Join(context.Col_Laborales,
                                            p => p.PersonaId,
                                            l => l.PersonaId,
                                            (p, l) => new { Col_Personas = p, Col_Laborales = l })
                                      .Where(w => w.Col_Laborales.NombreCargo.Equals("profesor") && w.Col_Personas.Estado.Equals("A") &&
                                             w.Col_Personas.UsuarioId != -1 &&
                                             (w.Col_Personas.PersonaId.Equals(busqueda) || w.Col_Personas.NumeroDocumento.Equals(busqueda.ToString())))
                                      .Select(s => new Col_Personas
            {
                PersonaId = s.Col_Personas.PersonaId,
            }).FirstOrDefaultAsync();

            if (profesores != null)
            {
                Horarios horarios = new Horarios();
                horarios.Profesor = await CargarProfesorEspecifico(profesores);

                horarios.Cursos = await MostrarCursos();

                return(horarios);
            }
            return(null);
        }
        public async Task <IActionResult> GuardarCambiosPersonales(string personal, string academico, int personaActualizar)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso    = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear      = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                bool   Actualizar = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Actualizar")).Any();
                if (crear || (Actualizar && personaActualizar != 0))
                {
                    dynamic personalJson  = JsonConvert.DeserializeObject(personal);
                    dynamic academicoJson = JsonConvert.DeserializeObject(academico);

                    Col_Personas persona = new Col_Personas();
                    persona.PrimerNombre    = personalJson.PrimerNombre;
                    persona.Barrio          = personalJson.Barrio;
                    persona.NumeroDocumento = personalJson.NumeroDocumento;
                    persona.Celular         = personalJson.Celular;
                    persona.CorreoPersonal  = personalJson.CorreoPersonal;
                    persona.Direccion       = personalJson.Direccion;
                    persona.EstadoCivil     = personalJson.EstadoCivil;
                    persona.FechaNacimiento = Convert.ToDateTime(personalJson.FechaNacimiento.ToString());
                    persona.TipoDocumento   = personalJson.TipoDocumento;
                    persona.SegundoNombre   = personalJson.SegundoNombre;
                    persona.PrimerApellido  = personalJson.PrimerApellido;
                    persona.SegundoApellido = personalJson.SegundoApellido;

                    List <Col_InfoAcademica> infoAcademicas = new List <Col_InfoAcademica>();
                    foreach (dynamic item in academicoJson)
                    {
                        Col_InfoAcademica infoAcademica = new Col_InfoAcademica();
                        infoAcademica.FechaGradua    = Convert.ToDateTime(item.FechaGradua.ToString());
                        infoAcademica.NivelFormacion = item.NivelFormacion;
                        infoAcademica.NombreIns      = item.NombreIns;
                        infoAcademica.TituloObtenido = item.TituloObtenido;
                        infoAcademicas.Add(infoAcademica);
                    }

                    int result = personaActualizar == 0 ? await service.GuardarPersonales(persona, infoAcademicas)
                        : await service.ActualizarPersonales(persona, infoAcademicas, personaActualizar);

                    return(Json(result));
                }
                return(RedirectToAction("Index", "Home"));
            }
            return(RedirectToAction("Index", "Login"));
        }
Beispiel #3
0
        private async Task <Col_Personas> CargarProfesorEspecifico(Col_Personas persona)
        {
            var profesor = await(from t0 in context.Col_Usuarios
                                 join t1 in context.Col_Personas on t0.Id equals t1.UsuarioId
                                 join t2 in context.Col_Laborales on t1.PersonaId equals t2.PersonaId
                                 where t1.NumeroDocumento.Equals(persona.NumeroDocumento) || t1.PersonaId.Equals(persona.PersonaId) &&
                                 t2.NombreCargo.Equals("profesor")
                                 select new Col_Personas
            {
                NumeroDocumento = t1.NumeroDocumento,
                CorreoPersonal  = string.IsNullOrEmpty(t2.CorreoCorporativo) ? t1.CorreoPersonal : t2.CorreoCorporativo,
                PrimerNombre    = $"{t1.PrimerNombre} {t1.PrimerApellido} {t1.SegundoApellido}",
                Usuario         = t0.Usuario,
            }).FirstOrDefaultAsync();

            return(profesor);
        }
        public async Task <IActionResult> GuardarAfiliacion(string afiliaciones, int rol, int laboralId, string persona, int afiliacioneActualizar)
        {
            if (User.Identity.IsAuthenticated)
            {
                string permiso    = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo";
                bool   crear      = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any();
                bool   Actualizar = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Actualizar")).Any();
                if (crear || (Actualizar && afiliacioneActualizar != 0))
                {
                    dynamic afiliacionesJson = JsonConvert.DeserializeObject(afiliaciones);
                    dynamic personaJson      = JsonConvert.DeserializeObject(persona);

                    Col_Personas _persona = new Col_Personas();
                    _persona.TipoDocumento   = personaJson.TipoDocumento;
                    _persona.PrimerNombre    = personaJson.PrimerNombre;
                    _persona.PrimerApellido  = personaJson.PrimerApellido;
                    _persona.NumeroDocumento = personaJson.NumeroDocumento;

                    List <Col_Afiliacion> _afiliaciones = new List <Col_Afiliacion>();
                    foreach (dynamic item in afiliacionesJson)
                    {
                        Col_Afiliacion afiliacion = new Col_Afiliacion();
                        afiliacion.FechaAfiliacion = Convert.ToDateTime(item.FechaAfiliacion.ToString());
                        afiliacion.NombreEntidad   = item.NombreEntidad;
                        afiliacion.TipoEntidad     = item.TipoEntidad;
                        _afiliaciones.Add(afiliacion);
                    }
                    ApiCallResult result = afiliacioneActualizar == 0 ? await service.GuardarAfiliacion(_afiliaciones, rol, laboralId, _persona)
                        : await service.ActualizarAfiliciacion(_afiliaciones, afiliacioneActualizar);

                    return(Json(result));
                }
                return(RedirectToAction("Index", "Home"));
            }
            return(RedirectToAction("Index", "Login"));
        }
        public async Task <ApiCallResult> PrestarInsumos(List <Col_Prestamos> prestamos, string documento)
        {
            try
            {
                bool         status    = false;
                string       title     = "Error";
                string       message   = "Error al ingresar el prestamo";
                Col_Personas personaId = await context.Col_Personas
                                         .Where(w => w.NumeroDocumento.Equals(documento) && w.Estado.Equals("A"))
                                         .FirstOrDefaultAsync();

                if (personaId != null)
                {
                    List <Col_Suministros> suministros = await context.Col_Suministros.ToListAsync();

                    List <Col_Suministros> cantidadSuperior = suministros
                                                              .Where(w => w.Stock < prestamos.Where(p => p.SuministroId == w.SuministroId)
                                                                     .Select(s => s.Cantidad).Sum()).ToList();
                    if (cantidadSuperior.Any())
                    {
                        return(new ApiCallResult
                        {
                            Status = false,
                            Title = "Error de stock",
                            Message = "Asegurate de que la cantidad elegida del insumo quitado no sobrepase el stock",
                            Comodin = cantidadSuperior.Select(s => s.SuministroId).FirstOrDefault()
                        });
                    }
                    status  = true;
                    title   = "Proceso exitoso";
                    message = $"El prestamo se guardó correctamente al empleado con documento {documento}";
                    int?maxId = await context.Col_Prestamos.MaxAsync(m => (int?)m.PrestamoId);

                    int?id = maxId == null ? 1 : maxId + 1;
                    List <Col_Prestamos> _prestamos = new List <Col_Prestamos>();
                    foreach (Col_Prestamos item in prestamos)
                    {
                        Col_Prestamos _prestamo = new Col_Prestamos();
                        _prestamo.PrestamoId    = Convert.ToInt32(id);
                        _prestamo.PersonaId     = personaId.PersonaId;
                        _prestamo.SuministroId  = item.SuministroId;
                        _prestamo.Motivo        = item.Motivo;
                        _prestamo.FechaPrestamo = item.FechaPrestamo;
                        _prestamo.FechaCreacion = DateTime.Now;
                        _prestamo.Cantidad      = item.Cantidad;
                        _prestamo.Estado        = "A";
                        _prestamos.Add(_prestamo);
                        id++;
                        Col_Suministros _suministro = await context.Col_Suministros
                                                      .Where(w => w.SuministroId.Equals(item.SuministroId)).FirstOrDefaultAsync();

                        _suministro.Stock -= item.Cantidad;
                        context.Col_Suministros.Update(_suministro);
                    }
                    await context.AddRangeAsync(_prestamos);

                    await context.SaveChangesAsync();
                }
                return(new ApiCallResult
                {
                    Status = status,
                    Title = title,
                    Message = message
                });
            }
            #region catch
            catch (DbEntityValidationException e)
            {
                string err = "";
                foreach (DbEntityValidationResult eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (DbValidationError ve in eve.ValidationErrors)
                    {
                        err += ve.ErrorMessage;
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                return(new ApiCallResult {
                    Status = false, Title = "Error al guardar", Message = "Favor contacte éste con el administrador"
                });
            }

            catch (Exception e)
            {
                string err = "";
                if (e.InnerException != null)
                {
                    if (e.InnerException.Message != null)
                    {
                        err = (e.InnerException.Message);
                        if (e.InnerException.InnerException != null)
                        {
                            err += e.InnerException.InnerException.Message;
                        }
                    }
                }
                else
                {
                    err = (e.Message);
                }
                return(new ApiCallResult {
                    Status = false, Title = "Error al guardar", Message = "Favor contacte éste con el administrador"
                });
            }
            #endregion
        }