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)); }
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)); }
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); }
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; }
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); }