コード例 #1
0
            public async Task <VerCCPorPersonaFiltroVM> Handle(GetVerCCPorPersonasFiltroQuery request, CancellationToken cancellationToken)
            {
                var vm     = new VerCCPorPersonaFiltroVM();
                var filtro = request.filtro;

                var JerPosicion = await _context.TJerarquia.FindAsync(filtro.Gerencia);

                IList <string> JerarquiaPersonas = null;

                if (!string.IsNullOrEmpty(filtro.CodPersona))
                {
                    JerarquiaPersonas = new List <string>();
                    JerarquiaPersonas.Add(filtro.CodPersona);
                }
                else if (JerPosicion != null)
                {
                    JerarquiaPersonas = _context.TJerarquia.Join(_context.TJerarquiaPersona, jer => jer.CodPosicion, jper => jper.CodPosicion, (jer, jper) => new { jer = jer, jper = jper })
                                        .Where(tuple => (tuple.jer.PathJerarquia.Substring(0, JerPosicion.PathJerarquia.Length) == JerPosicion.PathJerarquia && tuple.jper.CodTipoPersona == 1))
                                        .Select(t => t.jper.CodPersona)
                                        .ToList();
                }
                var meses = Meses(filtro.CodMes);

                var query = _context.TPlanAnualVerConCri.Where(t =>
                                                               t.Anio.Equals(filtro.Anio) &&
                                                               (String.IsNullOrEmpty(filtro.CodPersona) || t.CodPersona.Equals(filtro.CodPersona)) &&
                                                               (String.IsNullOrEmpty(filtro.CodReferencia) || t.CodReferencia.Equals(filtro.CodReferencia)) &&
                                                               (JerarquiaPersonas == null || JerarquiaPersonas.Contains(t.CodPersona)) &&
                                                               (meses == null || meses.Contains(t.CodMes))
                                                               )
                            .GroupBy(t => new { t.CodPersona, t.CodReferencia, t.Anio })
                            .Select(data => new VerCCProDto()
                {
                    CodReferencia = data.Key.CodReferencia,
                    NumeroPlanes  = data.Count(),
                    Anio          = data.Key.Anio,
                    CodPersona    = data.Key.CodPersona
                });

                // .ProjectTo<VerCCProDto>(_mapper.ConfigurationProvider)
                // .ToList();

                vm.Count  = query.Count();
                vm.Pagina = filtro.Pagina;

                if ((filtro.Pagina) > (vm.Count / filtro.PaginaTamanio) + 1)
                {
                    filtro.Pagina = 1;
                }

                var ListQuery = query
                                .Skip(filtro.Pagina * filtro.PaginaTamanio - filtro.PaginaTamanio)
                                .Take(filtro.PaginaTamanio)
                                .ToHashSet();

                var index = 0;

                foreach (var iten in ListQuery)
                {
                    iten.Orden   = index++;
                    iten.Persona = await GetPersonaFull(iten.CodPersona);

                    var jer = await GetJeraquiaSG(iten.CodPersona);

                    if (jer != null && jer.Count() > 0)
                    {
                        var super = jer.Where(t => t.Tipo.Equals("S")).FirstOrDefault();
                        if (super != null)
                        {
                            iten.CodSuperintendencia = super.CodPosicion.ToString();
                            iten.Superintendencia    = super.Descripcion;
                        }
                        var gerencia = jer.Where(t => t.Tipo.Equals("G")).FirstOrDefault();
                        if (gerencia != null)
                        {
                            iten.CodGerencia = gerencia.CodPosicion.ToString();
                            iten.Gerencia    = gerencia.Descripcion;
                        }
                    }
                }
                vm.list = ListQuery;

                return(vm);
            }
コード例 #2
0
            public async Task <GetPlanAnualSeguimientoVM> Handle(GetPlanAnualSeguimientoQuery request, CancellationToken cancellationToken)
            {
                var vm = new GetPlanAnualSeguimientoVM();

                var filtros = request.filtros;

                var JerPosicion = await _context.TJerarquia.FindAsync(filtros.Gerencia);

                IList <string> JerarquiaPersonas = null;

                if (!string.IsNullOrEmpty(filtros.Persona))
                {
                    JerarquiaPersonas = new List <string>();
                    JerarquiaPersonas.Add(filtros.Persona);
                }
                else if (JerPosicion != null)
                {
                    JerarquiaPersonas = _context.TJerarquia.Join(_context.TJerarquiaPersona, jer => jer.CodPosicion, jper => jper.CodPosicion, (jer, jper) => new { jer = jer, jper = jper })
                                        .Where(tuple => (tuple.jer.PathJerarquia.Substring(0, JerPosicion.PathJerarquia.Length) == JerPosicion.PathJerarquia && tuple.jper.CodTipoPersona == 1))
                                        .Select(t => t.jper.CodPersona)
                                        .ToList();
                }

                vm.Pagina = request.filtros.Pagina;
                vm.Count  = JerarquiaPersonas.Count();

                if (filtros.CodReferencia == null || filtros.CodReferencia.Count == 0)
                {
                    vm.Codigos = _context.TPlanAnualVerConCri.Where(t =>
                                                                    (String.IsNullOrEmpty(filtros.Anio) || t.Anio.Equals(filtros.Anio)) &&
                                                                    (String.IsNullOrEmpty(filtros.Mes) || t.CodMes.Equals(filtros.Mes)) &&
                                                                    (JerarquiaPersonas.Contains(t.CodPersona))
                                                                    )
                                 .GroupBy(t => t.CodReferencia)
                                 .Select(t => t.Key).ToHashSet();
                    filtros.CodReferencia = vm.Codigos;
                }
                else
                {
                    vm.Codigos = filtros.CodReferencia;
                }

                if ((filtros.Pagina) > (vm.Count / filtros.PaginaTamanio) + 1)
                {
                    filtros.Pagina = 1;
                }

                var ListQuery = JerarquiaPersonas
                                .Skip(filtros.Pagina * filtros.PaginaTamanio - filtros.PaginaTamanio)
                                .Take(filtros.PaginaTamanio)
                                .ToHashSet();

                foreach (var persona in ListQuery)
                {
                    var nuevo = new PersonaPSADto();
                    nuevo.CodPersona = persona;
                    nuevo.Nombres    = getPersonaFull(persona);
                    nuevo.ListModulo = await getListPerson(filtros, persona);

                    vm.ListPersona.Add(nuevo);
                }

                return(vm);
            }
コード例 #3
0
            public async Task <GetPlanAnualSeguimientoVM> Handle(GetPlanAnualSeguimientoQuery request, CancellationToken cancellationToken)
            {
                var vm = new GetPlanAnualSeguimientoVM();

                var filtros = request.filtros;

                var JerPosicion = await _context.TJerarquia.FindAsync(filtros.Gerencia);

                IList <string> JerarquiaPersonas = null;

                if (!string.IsNullOrEmpty(filtros.Persona))
                {
                    JerarquiaPersonas = new List <string>();
                    JerarquiaPersonas.Add(filtros.Persona);
                }
                else if (JerPosicion != null)
                {
                    JerarquiaPersonas = _context.TJerarquia.Join(_context.TJerarquiaPersona, jer => jer.CodPosicion, jper => jper.CodPosicion, (jer, jper) => new { jer = jer, jper = jper })
                                        .Where(tuple => (tuple.jer.PathJerarquia.Substring(0, JerPosicion.PathJerarquia.Length) == JerPosicion.PathJerarquia && tuple.jper.CodTipoPersona == 1))
                                        .Select(t => t.jper.CodPersona)
                                        .ToList();
                }

                vm.Pagina = request.filtros.Pagina;
                vm.Count  = JerarquiaPersonas.Count();

                if (filtros.CodReferencia == null || filtros.CodReferencia.Count == 0)
                {
                    vm.Codigos = _context.TPlanAnualGeneral.Where(t =>
                                                                  (String.IsNullOrEmpty(filtros.Anio) || t.Anio.Equals(filtros.Anio)) &&
                                                                  (String.IsNullOrEmpty(filtros.Mes) || t.CodMes.Equals(filtros.Mes)) &&
                                                                  (JerarquiaPersonas.Contains(t.CodPersona))
                                                                  )
                                 .GroupBy(t => t.CodReferencia)
                                 .Select(t => t.Key).ToHashSet();
                    filtros.CodReferencia = vm.Codigos;
                }
                else
                {
                    vm.Codigos = filtros.CodReferencia;
                }

                if ((filtros.Pagina) > (vm.Count / filtros.PaginaTamanio) + 1)
                {
                    filtros.Pagina = 1;
                }

                var ListQuery = JerarquiaPersonas
                                .Skip(filtros.Pagina * filtros.PaginaTamanio - filtros.PaginaTamanio)
                                .Take(filtros.PaginaTamanio)
                                .ToList();

                var Listperson       = _context.TPersona.Where(p => ListQuery.Contains(p.CodPersona)).Select(t => new { t.CodPersona, Nombres = t.ApellidoPaterno + " " + t.ApellidoMaterno + "," + t.Nombres }).ToList();
                var PlanAnualPersons = _context.TPlanAnualGeneral
                                       .Where(t =>
                                              (filtros.CodReferencia.Contains(t.CodReferencia)) &&
                                              (String.IsNullOrEmpty(filtros.Anio) || t.Anio.Equals(filtros.Anio)) &&
                                              (String.IsNullOrEmpty(filtros.Mes) || t.CodMes.Equals(filtros.Mes)) &&
                                              (ListQuery.Contains(t.CodPersona))
                                              ).ToList().GroupBy(x => x.CodPersona)
                                       .Select(g => new PersonaPSADto
                {
                    Nombres    = Listperson.First(p => p.CodPersona == g.Key).Nombres,
                    CodPersona = g.Key,
                    ListModulo = g.Select(lc => new ModuloEjeDto(lc.CodReferencia, 0, Int32.Parse(lc.Valor))).ToList(),
                }).ToList();

                foreach (var codM in vm.Codigos)
                {
                    //var Ejecutados = await _ejecutados.getLisPer(codM, Int32.Parse(filtros.Anio), Int32.Parse(filtros.Mes), ListQuery);
                    //var Ejecutados = await _ejecutados.getLisPer(codM, Int32.Parse(filtros.Anio), Int32.Parse(filtros.Mes), ListQuery);
                    var Ejecutados = await getLisPer(codM, Int32.Parse(filtros.Anio), Int32.Parse(filtros.Mes), ListQuery);

                    foreach (var tuplePer in Ejecutados)
                    {
                        var tempPer = PlanAnualPersons.Where(p => p.CodPersona == tuplePer.Item1).FirstOrDefault();
                        if (tempPer == null)
                        {
                            var NewPerson = new PersonaPSADto()
                            {
                                Nombres    = Listperson.First(p => p.CodPersona == tuplePer.Item1).Nombres,
                                CodPersona = tuplePer.Item1
                            };
                            NewPerson.ListModulo.Add(new ModuloEjeDto(codM, tuplePer.Item2, 0));
                            PlanAnualPersons.Add(NewPerson);
                        }
                        else
                        {
                            var tempMod = tempPer.ListModulo.Where(m => m.Codigo == codM).FirstOrDefault();
                            if (tempMod == null)
                            {
                                tempPer.ListModulo.Add(new ModuloEjeDto(codM, tuplePer.Item2, 0));
                            }
                            else
                            {
                                tempMod.Ejecutados = tuplePer.Item2;
                            }
                        }
                    }
                }

                vm.ListPersona = PlanAnualPersons;
                vm.Count       = PlanAnualPersons.Count();

                //foreach (var persona in ListQuery)
                //{
                //    var nuevo = new PersonaPSADto();
                //    nuevo.CodPersona = persona;
                //    nuevo.Nombres = getPersonaFull(persona);
                //    nuevo.ListModulo = await getListPerson(filtros, persona);
                //    vm.ListPersona.Add(nuevo);
                //}

                return(vm);
            }