public IActionResult FormularioEditArea(int AreaId)
        {
            string rutJefe = null;

            if (db.PersonaArea.FirstOrDefault(c => c.IdArea == AreaId) != null)
            {
                rutJefe = db.PersonaArea.FirstOrDefault(c => c.IdArea == AreaId).RutPersona;
            }
            ;

            Area      AU    = db.Area.FirstOrDefault(c => c.Id == AreaId);
            ListaArea Area1 = new ListaArea()
            {
                AreaUnica     = AU,
                RutJefeArea   = rutJefe,
                ListaPersonas = db.Persona.ToList(),
                RutPersona    = rutJefe,
            };

            string nombrecompleto = null;

            if (rutJefe != null)
            {
                nombrecompleto = db.Persona.Select(c => new { nombreCompleto = c.Nombre.TrimEnd() + " " + c.ApellidoPaterno.TrimEnd() + " " + c.ApellidoMaterno.TrimEnd(), rut = c.Rut }).FirstOrDefault(c => c.rut.TrimEnd().Equals(rutJefe.TrimEnd())).nombreCompleto;
            }
            Area1.NombreCompleto = nombrecompleto;


            return(View(Area1));
        }
        public IActionResult FormularioCrearArea()
        {
            ListaArea Area = new ListaArea()
            {
                //ListaPersonas = db.Persona.ToList(),
            };


            return(View(Area));
        }
        public IActionResult FormularioEditSubArea(int SubAreaId)
        {
            ListaArea Area1 = new ListaArea()
            {
                SubAreaUnica  = db.SubArea.FirstOrDefault(c => c.Id == SubAreaId),
                AreaUnica     = db.Area.FirstOrDefault(c => c.Id == db.SubArea.FirstOrDefault(d => d.Id == SubAreaId).IdArea),
                ListaAreas    = db.Area.ToList(),
                ListaPersonas = db.Persona.ToList(),
            };

            return(View(Area1));
        }
        public IActionResult FormularioCrearSubArea(int AreaId)
        {
            ListaArea SubArea1 = new ListaArea()
            {
                AreaUnica    = db.Area.FirstOrDefault(c => c.Id == AreaId),
                SubAreaUnica = new SubArea()
                {
                    IdArea = AreaId,
                }
            };


            return(View(SubArea1));
        }
        public ViewResult IndiceSubAreas(int AreaId)
        {
            ListaArea SubArea = new ListaArea()
            {
                //ListaPersonas = db.Persona.ToList(),
                //ListaSupervisores = db.Persona.ToList().Where(c=>c.IdSubAreaJefeSubArea!=null),
                ListaAreas    = db.Area.ToList(),
                ListaSubAreas = db.SubArea.ToList().Where(c => c.IdArea == AreaId && c.Removed != true),
                AreaUnica     = db.Area.FirstOrDefault(c => c.Id == AreaId),
            };


            return(View(SubArea));
        }
        public IActionResult FormularioEditSubArea(ListaArea model)
        {
            if (ModelState.IsValid)
            {
                SubArea updateSubArea = db.SubArea.FirstOrDefault(c => c.Id == model.SubAreaUnica.Id);
                updateSubArea.Nombre = model.NombreSubArea;
                //updateArea.RutJefe = model.AreaUnica.RutJefe;
                db.SubArea.Update(updateSubArea);
                db.SaveChanges();

                return(RedirectToAction("IndiceSubAreas", new { AreaId = model.AreaUnica.Id }));
            }
            else
            {
                return(FormularioEditSubArea(model.SubAreaUnica.Id));
            }
        }
 public IActionResult FormularioCrearSubArea(ListaArea model)
 {
     if (ModelState.IsValid)
     {
         SubArea subarea = new SubArea()
         {
             Nombre = model.NombreSubArea,
             IdArea = model.AreaUnica.Id
         };
         db.SubArea.Add(subarea);
         db.SaveChanges();
         return(RedirectToAction("IndiceSubAreas", new { AreaId = model.AreaUnica.Id }));
     }
     else
     {
         return(FormularioCrearSubArea(model.AreaUnica.Id));
     }
 }
        public IActionResult FormularioCrearArea(ListaArea model)
        {
            if (ModelState.IsValid)
            {
                Area area = new Area()
                {
                    Nombre = model.NombreArea,
                    //RutJefe = model.RutPersona,
                    //RutJefe = model.AreaUnica.RutJefe
                    Removed = false,
                };
                db.Area.Add(area);
                db.SaveChanges();

                if (model.RutPersona != null)
                {
                    PersonaArea pa = new PersonaArea()
                    {
                        RutPersona = model.RutPersona.TrimEnd(),
                        IdArea     = area.Id,
                    };
                    db.PersonaArea.Add(pa);
                    db.SaveChanges();
                }



                //if (db.Persona.FirstOrDefault(c => c.Rut.Equals(model.RutPersona)) != null)
                //{
                //    Persona updatePersona = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(model.RutPersona.TrimEnd()));
                //    updatePersona.IdAreaJefeArea = area.Id;
                //    db.Persona.Update(updatePersona);
                //    db.SaveChanges();
                //}
                return(RedirectToAction("Index"));
            }
            else
            {
                return(FormularioCrearArea());
            }
        }
        public IActionResult Index()
        {
            List <Persona> listaJefeArea = new List <Persona>();

            foreach (PersonaArea pa in db.PersonaArea.ToList())
            {
                Persona persona2 = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(pa.RutPersona.TrimEnd()));
                listaJefeArea.Add(persona2);
            }

            ListaArea Area = new ListaArea()
            {
                ListaPersonas    = listaJefeArea,
                ListaAreas       = db.Area.ToList().Where(c => c.Removed != true),
                ListaPersonaArea = db.PersonaArea.ToList(),
            };



            return(View(Area));
        }
        public IActionResult FormularioEditArea(ListaArea model)
        {
            if (ModelState.IsValid)
            {
                Area updateArea = db.Area.FirstOrDefault(c => c.Id == model.AreaUnica.Id);
                updateArea.Nombre = model.NombreArea;
                //updateArea.RutJefe = model.AreaUnica.RutJefe;
                db.Area.Update(updateArea);
                db.SaveChanges();


                if (db.PersonaArea.FirstOrDefault(c => c.IdArea == model.AreaUnica.Id) != null)
                {
                    PersonaArea DeletePersonaArea = db.PersonaArea.FirstOrDefault(c => c.IdArea == model.AreaUnica.Id);
                    db.PersonaArea.Remove(DeletePersonaArea);
                    db.SaveChanges();

                    PersonaArea pa = new PersonaArea()
                    {
                        RutPersona = model.RutPersona.TrimEnd(),
                        IdArea     = model.AreaUnica.Id
                    };
                    db.PersonaArea.Add(pa);
                    db.SaveChanges();
                }
                else
                {
                    if (model.RutPersona != null)
                    {
                        PersonaArea pa = new PersonaArea()
                        {
                            RutPersona = model.RutPersona.TrimEnd(),
                            IdArea     = model.AreaUnica.Id
                        };
                        db.PersonaArea.Add(pa);
                        db.SaveChanges();
                    }
                }

                //if (db.Persona.FirstOrDefault(c => c.Rut.Equals(model.RutPersona)) != null)
                //{
                //    if (db.Persona.FirstOrDefault(c => c.IdAreaJefeArea == model.AreaUnica.Id) != null)
                //    {
                //        Persona updatePersona2 = db.Persona.FirstOrDefault(c => c.IdAreaJefeArea == model.AreaUnica.Id);
                //        updatePersona2.IdAreaJefeArea = null;
                //        db.Persona.Update(updatePersona2);
                //        db.SaveChanges();
                //    }


                //    Persona updatePersona = db.Persona.FirstOrDefault(c => c.Rut.TrimEnd().Equals(model.RutPersona.TrimEnd()));
                //    updatePersona.IdAreaJefeArea = model.AreaUnica.Id;
                //    db.Persona.Update(updatePersona);
                //    db.SaveChanges();
                //}


                return(RedirectToAction("Index"));
            }
            else
            {
                return(FormularioEditArea(model.AreaUnica.Id));
            }
        }