Пример #1
0
        public List <Area> AreasSinDDJJInferioresA(Area area)
        {
            var repositorio = new RepositorioDeOrganigrama(Conexion());

            //return repositorio.GetOrganigrama().AreasInferioresInmediatasDe(area).FindAll(a => !a.PresentaDDJJ);
            return(repositorio.GetAreaInferiorById(area.Id, false));
        }
Пример #2
0
        public RepositorioMensajeria RepoMensajeria()
        {
            var conexion         = Conexion();
            var repo_documentos  = new RepositorioDeDocumentos(conexion);
            var repo_organigrama = RepositorioDeOrganigrama.NuevoRepositorioOrganigrama(conexion);//new RepositorioDeOrganigrama(conexion);

            return(new RepositorioMensajeria(conexion, repo_documentos, repo_organigrama));
        }
Пример #3
0
 public static RepositorioDeOrganigrama NuevoRepositorioOrganigrama(IConexionBD conexion)
 {
     // if (_instancia == null || _fecha_creacion.AddMinutes(2) < DateTime.Now)
     if (_instancia == null || ExpiroTiempoDeOrganigrama())
     {
         _instancia      = new RepositorioDeOrganigrama(conexion);
         _fecha_creacion = DateTime.Now;
     }
     return(_instancia);
 }
Пример #4
0
        public List <AreaParaDDJJ104> GetAreasParaDDJJ104(int mes, int anio, int id_area, Usuario usuario)
        {
            RepositorioPersonas      repoPersonas    = new RepositorioPersonas();
            RepositorioDeOrganigrama repoOrganigrama = new RepositorioDeOrganigrama(Conexion());
            //var un_Organigrama = repoOrganigrama.GetOrganigrama();
            DateTime fecha          = Convert.ToDateTime("15" + "/" + mes + "/" + anio);
            var      un_Organigrama = repoOrganigrama.GetOrganigramaSegunFechaDesde(fecha);

            List <AreaParaDDJJ104> areas = new List <AreaParaDDJJ104>();
            List <Area>            areas_completas;

            if (autorizador.ElUsuarioTienePermisosPara(usuario.Id, "ddjj104_mostrar_todas_las_areas"))
            {
                areas_completas = un_Organigrama.ObtenerAreas(false);
            }
            else
            {
                areas_completas = AreasConDDJJAdministradasPor(usuario);
            }

            ////FILTRO EL AREA QUE ESTOY CONSULTANDO
            //if (id_area > 0)
            //{
            //    areas_completas = areas_completas.FindAll(x => x.Id == id_area);
            //}

            areas_completas.ForEach(a =>
            {
                if (a.Id == 0)
                {
                    return;
                }

                var area       = new AreaParaDDJJ104();
                area.Id        = a.Id;
                area.Nombre    = a.Nombre;
                area.Jerarquia = a.Jerarquia;
                //area.DDJJ = new RepositorioDDJJ104().GetDDJJParaElArea(a).Find(x => x.Mes == mes && x.Anio == anio);
                List <DDJJ104_2001> listaddjj = new RepositorioDDJJ104().GetDDJJParaElArea(a, mes, anio);

                if (listaddjj.Count == 0)
                {
                    areas.Add(area);
                }
                else
                {
                    if (listaddjj.Count == 1)
                    {
                        area.DDJJ = listaddjj[0]; //new RepositorioDDJJ104().GetDDJJParaElArea(a).Find(x => x.Mes == mes && x.Anio == anio && x.Complementaria == 0);
                        areas.Add(area);
                    }
                    else
                    {
                        int contador = 0;
                        foreach (var item in listaddjj)
                        {
                            area           = new AreaParaDDJJ104();
                            area.Id        = a.Id;
                            area.Nombre    = a.Nombre;
                            area.Jerarquia = a.Jerarquia;
                            area.DDJJ      = listaddjj[contador]; //new RepositorioDDJJ104().GetDDJJParaElArea(a).Find(x => x.Mes == mes && x.Anio == anio && x.Complementaria == contador);

                            contador++;
                            areas.Add(area);
                        }
                    }
                }

                //CARGO LAS AREAS QUE DEPENDEN Y LAS PERSONAS
                //if (id_area > 0)
                //{
                //    area.Personas.AddRange(repoPersonas.GetPersonasDelAreaParaDDJJ104(mes, anio, a));
                //    //AreasSinDDJJInferioresA(a).ForEach(area_dependiente =>
                //    un_Organigrama.GetAreasInferioresDelArea(a).ForEach(area_dependiente =>
                //    {
                //        if (!area_dependiente.PresentaDDJJ)
                //        {
                //            var area_informal = new AreaParaDDJJ104();
                //            area_informal.Id = area_dependiente.Id;
                //            area_informal.Nombre = area_dependiente.Nombre;
                //            area_informal.Personas = repoPersonas.GetPersonasDelAreaParaDDJJ104(mes, anio, area_dependiente);
                //            area.AreasInformalesDependientes.Add(area_informal);
                //        }
                //    });
                //      area.DDJJ = new RepositorioDDJJ104().GetDDJJParaElArea(a).Find(x => x.Mes == mes && x.Anio == anio);

                //    var area_superior = un_Organigrama.AreaSuperiorDe(a);
                //    area.AreaSuperior = new AreaParaDDJJ104();
                //    area.AreaSuperior.Id = area_superior.Id;
                //    area.AreaSuperior.Nombre = area_superior.Nombre;
                //    area.Direccion = a.Direccion;
                //}
                //areas.Add(area);
            });


            return(areas);
            //List<AreaParaDDJJ104> lista_ddjj = new List<AreaParaDDJJ104>();
            //foreach (var un_area in areas_con_ddjj)
            //{
            //    ddjj_dto = new AreaParaDDJJ104();

            //    //--- Cargo el areas Formal (ddjj = 1) y Obtengo las personas de esa Area
            //    ddjj_dto.Area = un_area;
            //    un_area.Personas = repoPersonas.GetPersonasDelAreaReducida(un_area,2);
            //    contador_de_personas += un_area.Personas.Count();

            //    //--- Cargo el areas inferiores (ddjj = 0) y Obtengo las personas de esas Areas
            //    List<Persona> personasAreaInformales = new List<Persona>();
            //    personasAreaInformales = repoPersonas.GetPersonasDelAreaReducida(un_area, 0);
            //    if (personasAreaInformales.Count != 0)
            //    {
            //        un_area.Personas.AddRange(personasAreaInformales);
            //        contador_de_personas += personasAreaInformales.Count();
            //    }

            //    ddjj_dto.CantidadPersonas = contador_de_personas;
            //    ddjj_dto.Mes = mes;
            //    ddjj_dto.Anio = anio;
            //    ddjj_dto.Estado = new RepositorioDDJJ104().GetEstadoDDJJ(ddjj_dto);

            //    lista_ddjj.Add(ddjj_dto);

            //    contador_de_personas = 0;
            //}


            //return lista_ddjj;
        }
Пример #5
0
        public List <AreaParaDDJJ104> GetAreasParaDDJJ104InferioresA(int mes, int anio, int id_area, int complementaria, Usuario usuario)
        {
            RepositorioPersonas      repoPersonas    = new RepositorioPersonas();
            RepositorioDeOrganigrama repoOrganigrama = new RepositorioDeOrganigrama(Conexion());

            List <Area>            areas_completas = repoOrganigrama.GetAreasQueDependientesDe(id_area);
            List <AreaParaDDJJ104> areas           = new List <AreaParaDDJJ104>();

            areas_completas.ForEach(a =>
            {
                if (a.Id == 0)
                {
                    return;
                }

                if (a.PresentaDDJJ)
                {
                    var area    = new AreaParaDDJJ104();
                    area.Id     = a.Id;
                    area.Nombre = a.Nombre;
                    area.Personas.AddRange(repoPersonas.GetPersonasDelAreaParaDDJJ104(mes, anio, a, complementaria).FindAll(x => x.Area.Id == id_area));

                    if (area.Personas != null && area.Personas.Count > 0 && area.Personas[0].Esta_Cargada == 1)
                    {
                        //CARGO LAS AREAS QUE DEPENDEN Y LAS PERSONAS
                        areas_completas.ForEach(area_dependiente =>
                        {
                            if (!area_dependiente.PresentaDDJJ)
                            {
                                var area_informal      = new AreaParaDDJJ104();
                                area_informal.Id       = area_dependiente.Id;
                                area_informal.Nombre   = area_dependiente.Nombre;
                                area_informal.Personas = repoPersonas.GetPersonasDelAreaParaDDJJ104(mes, anio, a, complementaria).FindAll(x => x.Area.Id == area_informal.Id);

                                if (area_informal.Personas.Count > 0)
                                {
                                    area.AreasInformalesDependientes.Add(area_informal);
                                }
                            }
                        });
                        area.DDJJ = new RepositorioDDJJ104().GetDDJJParaElArea(a, mes, anio).Find(x => x.Mes == mes && x.Anio == anio);
                    }
                    else
                    {
                        //CARGO LAS AREAS QUE DEPENDEN Y LAS PERSONAS
                        areas_completas.ForEach(area_dependiente =>
                        {
                            if (!area_dependiente.PresentaDDJJ)
                            {
                                var area_informal      = new AreaParaDDJJ104();
                                area_informal.Id       = area_dependiente.Id;
                                area_informal.Nombre   = area_dependiente.Nombre;
                                area_informal.Personas = repoPersonas.GetPersonasDelAreaParaDDJJ104(mes, anio, area_dependiente, complementaria).FindAll(x => x.Area.Id == area_informal.Id);

                                if (area_informal.Personas.Count > 0)
                                {
                                    area.AreasInformalesDependientes.Add(area_informal);
                                }
                            }
                        });
                        area.DDJJ = new RepositorioDDJJ104().GetDDJJParaElArea(a, mes, anio).Find(x => x.Mes == mes && x.Anio == anio);
                    }
                    //var area_superior = un_Organigrama.AreaSuperiorDe(a);
                    //area.AreaSuperior = new AreaParaDDJJ104();
                    //area.AreaSuperior.Id = area_superior.Id;
                    //area.AreaSuperior.Nombre = area_superior.Nombre;
                    //area.Direccion = a.Direccion;


                    areas.Add(area);
                }
            });


            return(areas);
        }