예제 #1
0
        private void GetStatictics(object sender)
        {
            int personsCount        = 0;
            MessageBoxResult result = MessageBoxResult.No;

            if (Employ)
            {
                if (string.IsNullOrEmpty(SelectedStatus))
                {
                    result = MessageBox.Show("Вы не выбрали статус сотрудников компании. \n Показать сотрудников с любым статусом?", "Отсутствие выбора критерия", MessageBoxButton.YesNo, MessageBoxImage.Question);
                    if (result == MessageBoxResult.Yes)
                    {
                        personsCount = GeneralCollection.Count(i => i.DateEmploy > DateFrom && (!i.DateUnEmploy.HasValue || i.DateEmploy < DateTo));
                    }
                }
                else
                {
                    personsCount = GeneralCollection.Count(i => i.Status == SelectedStatus && i.DateEmploy > DateFrom && (!i.DateUnEmploy.HasValue || i.DateEmploy < DateTo));
                }
            }
            else
            {
                if (UnEmploy)
                {
                    if (string.IsNullOrEmpty(SelectedStatus))
                    {
                        result = MessageBox.Show("Вы не выбрали статус сотрудников компании. \n Показать сотрудников с любым статусом?", "Отсутствие выбора критерия", MessageBoxButton.YesNo, MessageBoxImage.Question);
                        if (result == MessageBoxResult.Yes)
                        {
                            personsCount = GeneralCollection.Count(i => (i.DateUnEmploy != null && i.DateUnEmploy > DateFrom) && (i.DateUnEmploy != null && i.DateUnEmploy < DateTo));
                        }//!i.DateUnEmploy.HasValue ||
                    }
                    else
                    {
                        personsCount = GeneralCollection.Count(i => i.Status == SelectedStatus && (i.DateUnEmploy != null && i.DateUnEmploy > DateFrom) && (!i.DateUnEmploy.HasValue || i.DateUnEmploy < DateTo));
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(SelectedStatus))
                    {
                        result = MessageBox.Show("Вы не выбрали, кто вас интересует: Нанятые или Уволенные сотрудники. \n Показать количество всех сотрудников компании c этим статусом?", "Отсутствие выбора критерия", MessageBoxButton.YesNo, MessageBoxImage.Question);
                        if (result == MessageBoxResult.Yes)
                        {
                            personsCount = GeneralCollection.Count(i => i.Status == SelectedStatus);
                        }
                    }
                    else
                    {
                        result = MessageBox.Show("Вы не выбрали ни одного критерия. \n Показать количество всех сотрудников компании?", "Отсутствие выбора критерия", MessageBoxButton.YesNo, MessageBoxImage.Question);
                        if (result == MessageBoxResult.Yes)
                        {
                            personsCount = GeneralCollection.Count();
                        }
                    }
                }
            }

            OutputText = "Количество сотрудников, удовлетворяющих условиям : " + personsCount.ToString();
        }
            public async Task <JerarquiaVM> Handle(GetPlanAccionCodPosicionQuery request, CancellationToken cancellationToken)
            {
                //JerarquiaPersonaCodPosicionVM perPorPosicion = await _perPorPosicion.requestPerJerAccion(request.plan.codPosicion);
                GeneralCollection <PersonaPosVM> perPorPosicion = await _mediator.Send(new GetJerarquiasPersonaAllQuery()
                {
                    CodPosicion = request.plan.codPosicion.Value
                });

                List <string> personas = new List <string>();

                foreach (var it in perPorPosicion.Data)
                {
                    personas.Add(it.CodPersona);
                }
                var         item     = request.plan;
                JerarquiaVM hijosPos = new JerarquiaVM();

                var Person = (from accion in _context.TAccion
                              join responsable in _context.TResponsable on accion.CodAccion equals responsable.CodAccion into lista
                              from list in lista.DefaultIfEmpty()
                              where personas.Contains(list.CodPersona) && accion.Estado && ((item.codAccion == 0) || (accion.CodAccion.ToString().EndsWith(item.codAccion.ToString()))) &&
                              (String.IsNullOrEmpty(item.docReferencia) || accion.DocReferencia.Contains(item.docReferencia)) &&
                              (String.IsNullOrEmpty(item.codTablaRef) || accion.CodTablaRef.Contains(item.codTablaRef)) &&
                              (String.IsNullOrEmpty(item.codEstadoAccion) || accion.CodEstadoAccion.Contains(item.codEstadoAccion)) &&
                              ((item.fechaInicial.Date <= accion.FechaSolicitud.Date && accion.FechaSolicitud.Date <= item.fechaFinal.Date))
                              select new Tuple <int, string>(accion.CodAccion, list.CodPersona)
                              ).ToList();

                if (!item.check) // get List Person
                {
                    foreach (var per in perPorPosicion.Data)
                    {
                        JerarquiaNodeVM person = new JerarquiaNodeVM();
                        person.label    = per.ApellidoPaterno + ' ' + per.ApellidoMaterno + ", " + per.Nombre;
                        person.data     = per.CodPersona;
                        person.count    = Person.Count(t => t.Item2 == per.CodPersona);
                        person.children = null;
                        person.tipo     = "per";
                        if (person.count > 0)
                        {
                            hijosPos.data.Add(person);
                        }
                    }
                }
                else //get list Jerarquias
                {
                    //var jerPos = await _jerarquiaCodPosicion.RequestJerarquiaCodPosicion(request.plan.codPosicion);
                    var jerPos = await _mediator.Send(new GetJerarquiaIdQuery()
                    {
                        CodPosicion = request.plan.codPosicion.Value
                    });

                    foreach (var jer in jerPos.children)
                    {
                        var             PersonJera = perPorPosicion.Data.Where(p => p.Path.Contains((char)jer.data.Value)).Select(p => p.CodPersona).ToList();
                        JerarquiaNodeVM jerar      = new JerarquiaNodeVM();
                        jerar.label = jer.label;
                        jerar.data  = jer.data.Value + "";
                        jerar.tipo  = "pos";
                        jerar.count = Person.Where(t => PersonJera.Contains(t.Item2)).Select(s => s.Item1).ToList().GroupBy(i => i).Select(o => o.First()).Count();
                        if (jerar.count > 0)
                        {
                            hijosPos.data.Add(jerar);
                        }
                    }
                }
                return(hijosPos);
                //// old Code
                //DateTime date = DateTime.Today;
            }
예제 #3
0
            public async Task <PlanAccionVM> Handle(GetPlanAccionQuery request, CancellationToken cancellationToken)
            {
                DateTime date = DateTime.Today;
                GetPlanAccionFiltradoDto item;

                item = new GetPlanAccionFiltradoDto();
                item = request.plan;
                PlanAccionVM filtro = new PlanAccionVM();
                List <JerarquiaPersonaCodPosicionDto> personasFiltro = new List <JerarquiaPersonaCodPosicionDto>();
                List <string> personas = new List <string>();

                //eta linea sirve para el codPersonaForm cuando llega informacion el boton buscar
                if (!String.IsNullOrEmpty(request.plan.codPersonaForm))
                {
                    if (!String.IsNullOrEmpty(item.codPersona))
                    {
                        personas.Add(item.codPersona);
                    }
                }
                else if (request.plan.codPosicion != null)
                {
                    var codPosicion = request.plan.codPosicion;
                    //llamar servicio de personas x posicion
                    //JerarquiaPersonaCodPosicionVM perPorPosicion = await _perPorPosicion.requestPerJerAccion(codPosicion);
                    GeneralCollection <PersonaPosVM> perPorPosicion = await _mediator.Send(new GetJerarquiasPersonaAllQuery()
                    {
                        CodPosicion = codPosicion.Value
                    });

                    foreach (var it in perPorPosicion.Data)
                    {
                        personas.Add(it.CodPersona);
                    }
                }
                else
                {
                    if (!String.IsNullOrEmpty(item.codPersona))
                    {
                        personas.Add(item.codPersona);
                    }
                }

                //if (!String.IsNullOrEmpty(item.codPersona))
                if (personas.Count() > 0)
                {
                    //from p in context.ParentTable
                    //join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1
                    //from j2 in j1.DefaultIfEmpty()
                    //group j2 by p.ParentId into grouped
                    //select new { ParentId = grouped.Key, Count = grouped.Count(t => t.ChildId != null) }

                    //var tuplaParcial = tuplaOfi.GroupBy(i => i.Item2).Select(o => o.First()).ToList();
                    var count = ((from accion in _context.TAccion
                                  join responsable in _context.TResponsable on accion.CodAccion equals responsable.CodAccion into lista
                                  from list in lista.DefaultIfEmpty()
                                  // group list by accion.CodAccion
                                  where personas.Contains(list.CodPersona) && accion.Estado && ((item.codAccion == 0) || (accion.CodAccion.ToString().EndsWith(item.codAccion.ToString()))) &&
                                  (String.IsNullOrEmpty(item.docReferencia) || accion.DocReferencia.Contains(item.docReferencia)) &&
                                  (String.IsNullOrEmpty(item.codTablaRef) || accion.CodTablaRef.Contains(item.codTablaRef)) &&
                                  (String.IsNullOrEmpty(item.codEstadoAccion) || accion.CodEstadoAccion.Contains(item.codEstadoAccion)) &&
                                  (String.IsNullOrEmpty(item.codEstadoApro) || accion.EstadoAprobacion.Contains(item.codEstadoApro)) &&
                                  ((item.fechaInicial.Date <= accion.FechaSolicitud.Date && accion.FechaSolicitud.Date <= item.fechaFinal.Date))
                                  select accion.CodAccion
                                  )).ToList().GroupBy(i => i).Select(o => o.First()).Count();

                    var LISTA = (from accion in _context.TAccion
                                 join responsable in _context.TResponsable on accion.CodAccion equals responsable.CodAccion into lista
                                 from list in lista.DefaultIfEmpty()
                                 where personas.Contains(list.CodPersona) && accion.Estado && ((item.codAccion == 0) || (accion.CodAccion.ToString().EndsWith(item.codAccion.ToString()))) &&
                                 (String.IsNullOrEmpty(item.docReferencia) || accion.DocReferencia.Contains(item.docReferencia)) &&
                                 (String.IsNullOrEmpty(item.codTablaRef) || accion.CodTablaRef.Contains(item.codTablaRef)) &&
                                 (String.IsNullOrEmpty(item.codEstadoAccion) || accion.CodEstadoAccion.Contains(item.codEstadoAccion)) &&
                                 (String.IsNullOrEmpty(item.codEstadoApro) || accion.EstadoAprobacion.Contains(item.codEstadoApro)) &&
                                 ((item.fechaInicial.Date <= accion.FechaSolicitud.Date && accion.FechaSolicitud.Date <= item.fechaFinal.Date))
                                 select new PlanVM
                    {
                        tarea = accion.Tarea,
                        fechaInicial = accion.FechaInicial,
                        fechaFinal = accion.FechaFinal,
                        estado = accion.Estado,
                        fechaSolicitud = accion.FechaSolicitud,
                        docReferencia = accion.DocReferencia,
                        codAccion = accion.CodAccion,
                        docSubReferencia = accion.DocSubReferencia,
                        codTablaRef = accion.CodTablaRef,
                        codSolicitadoPor = accion.CodSolicitadoPor,
                        codActiRelacionada = accion.CodActiRelacionada,
                        codEstadoAccion = accion.CodEstadoAccion,
                        codAreaHsec = accion.CodAreaHsec,
                        codTipoAccion = accion.CodTipoAccion,
                        codNivelRiesgo = accion.CodNivelRiesgo,
                        Aprobador = accion.Aprobador,
                        EstadoAprobacion = accion.EstadoAprobacion
                    }).ToList().GroupBy(i => i.codAccion).Select(o => o.First()).Skip(item.pagina * item.tamanio - item.tamanio).Take(item.tamanio).OrderByDescending(i => i.codAccion);



                    filtro.count = count;
                    filtro.data  = LISTA.ToList();
                }
                else
                {
                    var Count = _context.TAccion.Count((i => i.Estado &&
                                                        ((item.codAccion == 0) || (i.CodAccion.ToString().EndsWith(item.codAccion.ToString()))) &&
                                                        (String.IsNullOrEmpty(item.docReferencia) || i.DocReferencia.Contains(item.docReferencia)) &&
                                                        (String.IsNullOrEmpty(item.codTablaRef) || i.CodTablaRef.Contains(item.codTablaRef)) &&
                                                        (String.IsNullOrEmpty(item.codEstadoAccion) || i.CodEstadoAccion.Contains(item.codEstadoAccion)) &&
                                                        (String.IsNullOrEmpty(item.codEstadoApro) || i.EstadoAprobacion.Contains(item.codEstadoApro)) &&
                                                        ((item.fechaInicial.Date <= i.FechaSolicitud.Date && i.FechaSolicitud.Date <= item.fechaFinal.Date)) &&
                                                        (String.IsNullOrEmpty(item.codSolicitadoPor) || i.CodSolicitadoPor.Contains(item.codSolicitadoPor))));
                    ;

                    var acc = _context.TAccion.Where((i => i.Estado &&
                                                      ((item.codAccion == 0) || (i.CodAccion.ToString().EndsWith(item.codAccion.ToString()))) &&
                                                      (String.IsNullOrEmpty(item.docReferencia) || i.DocReferencia.Contains(item.docReferencia)) &&
                                                      (String.IsNullOrEmpty(item.codTablaRef) || i.CodTablaRef.Contains(item.codTablaRef)) &&
                                                      (String.IsNullOrEmpty(item.codEstadoAccion) || i.CodEstadoAccion.Contains(item.codEstadoAccion)) &&
                                                      (String.IsNullOrEmpty(item.codEstadoApro) || i.EstadoAprobacion.Contains(item.codEstadoApro)) &&
                                                      ((item.fechaInicial.Date <= i.FechaSolicitud.Date && i.FechaSolicitud.Date <= item.fechaFinal.Date)) &&
                                                      (String.IsNullOrEmpty(item.codSolicitadoPor) || i.CodSolicitadoPor.Contains(item.codSolicitadoPor))))
                              .OrderByDescending(p => p.CodAccion)
                              .Skip(item.pagina * item.tamanio - item.tamanio)
                              .Take(item.tamanio);

                    //IList<PlanAccionMaestroDto> plan = new List<PlanAccionMaestroDto>();
                    IList <PlanVM> plan = new List <PlanVM>();

                    //PlanAccionMaestroDto planVM;
                    PlanVM planVM;

                    foreach (var pl in acc)
                    {
                        planVM                    = new PlanVM();
                        planVM.codAccion          = pl.CodAccion;
                        planVM.codEstadoAccion    = pl.CodEstadoAccion;
                        planVM.EstadoAprobacion   = pl.EstadoAprobacion;
                        planVM.codAreaHsec        = pl.CodAreaHsec;
                        planVM.codTipoAccion      = pl.CodTipoAccion;
                        planVM.fechaSolicitud     = pl.FechaSolicitud;
                        planVM.codActiRelacionada = pl.CodActiRelacionada;
                        planVM.codSolicitadoPor   = pl.CodSolicitadoPor;
                        planVM.docReferencia      = pl.DocReferencia;
                        planVM.docSubReferencia   = pl.DocSubReferencia;
                        planVM.codNivelRiesgo     = pl.CodNivelRiesgo;
                        planVM.tarea              = pl.Tarea;
                        planVM.fechaInicial       = pl.FechaInicial;
                        planVM.fechaFinal         = pl.FechaFinal;
                        planVM.estado             = pl.Estado;
                        planVM.codTablaRef        = pl.CodTablaRef;

                        plan.Add(planVM);
                    }
                    filtro.count = Count;
                    filtro.data  = plan;
                }
                return(filtro);
            }