Пример #1
0
        public override void GraficoPorSubSecretarias()
        {
            List <Dotacion> tabla_personas = this.tabla_detalle.ToList();
            List <Resumen>  tabla          = new List <Resumen>();
            List <Contador> contador       = new List <Contador>();
            var             nombre         = "";

            tabla_personas.ForEach(p =>
            {
                if (contador.Count > 0)
                {
                    if (contador.Exists(area => area.Id == p.IdSubSecretaria))
                    {
                        contador.Find(area => area.Id == p.IdSubSecretaria).Personas.Add(p);
                    }
                    else
                    {
                        if (!tabla_personas.Exists(area => area.IdSecretaria == p.IdSubSecretaria))
                        {
                            nombre = "|||||" + p.NombresubSecretaria;
                        }
                        else
                        {
                            nombre = p.NombresubSecretaria;
                        }
                        Contador nueva_area = new Contador(p.IdSubSecretaria, nombre, p.NombresubSecretariaCorta);
                        nueva_area.Personas.Add(p);
                        nueva_area.Orden = p.OrdenArea;
                        contador.Add(nueva_area);
                    }
                }
                else
                {
                    if (!tabla_personas.Exists(area => area.IdSecretaria == p.IdSubSecretaria))
                    {
                        nombre = "|||||" + p.NombresubSecretaria;
                    }
                    else
                    {
                        nombre = p.NombresubSecretaria;
                    }
                    Contador nueva_area = new Contador(p.IdSubSecretaria, nombre, p.NombresubSecretariaCorta);
                    nueva_area.Personas.Add(p);
                    nueva_area.Orden = p.OrdenArea;
                    contador.Add(nueva_area);
                }
            });

            int total = tabla_personas.Count;

            tabla.Add(GenerarRegistroResumenSueldoTotal(contador));

            contador.ForEach(registro =>
            {
                tabla.Add(GenerarRegistroResumenSueldo(registro, total));
            });

            this.tabla_resumen = tabla;
            this.tabla_resumen = tabla.OrderBy(t => t.Orden).ToList();
        }
Пример #2
0
        public override void GraficoPorArea()
        {
            List <MoBi_Bien> tabla_bienes = this.tabla_detalle_bienes.ToList();
            List <Resumen>   tabla        = new List <Resumen>();
            List <Contador>  contador     = new List <Contador>();

            Estados.ForEach(e =>
            {
                Contador nuevo_estado = new Contador(e.Id, e.Codigo, e.Nombre, e.Id, "B");
                nuevo_estado.Orden    = e.Id;
                contador.Add(nuevo_estado);
            });

            tabla_bienes.ForEach(p =>
            {
                contador.Find(estado => estado.Id == p.Id_Estado).MoBi_Bien.Add(p);
            });

            int total = tabla_bienes.Count;

            tabla.Add(GenerarRegistroResumen("Total", "Total", total, total));

            contador.OrderBy(c => c.Orden).ToList().ForEach(registro =>
            {
                if (registro.MoBi_Bien.Count > 0)
                {
                    tabla.Add(GenerarRegistroResumen(registro.Descripcion, registro.DescripcionGrafico, registro.MoBi_Bien.Count, total, registro.Orden, registro.Id));
                }
            });

            this.tabla_resumen = tabla.ToList();
            //this.tabla_resumen = tabla.OrderBy(t => t.Id).ToList();
        }
Пример #3
0
        public override void GraficoPorArea()
        {
            List <PersonaContrato> tabla_personas = this.tabla_detalle_contratos.ToList();
            List <Resumen>         tabla          = new List <Resumen>();
            List <Contador>        contador       = new List <Contador>();

            Estados.ForEach(e =>
            {
                Contador nuevo_estado = new Contador(e.Id, e.Nombre, e.NombreCorto, e.Id, "C");
                nuevo_estado.Orden    = e.Orden;
                contador.Add(nuevo_estado);
            });

            tabla_personas.ForEach(p =>
            {
                contador.Find(estado => estado.Id == p.IdEstado).PersonasContrato.Add(p);
            });

            int total = tabla_personas.Count;

            tabla.Add(GenerarRegistroResumen("Total", "Total", total, total));

            contador.OrderBy(c => c.Orden).ToList().ForEach(registro =>
            {
                tabla.Add(GenerarRegistroResumen(registro.Descripcion, registro.DescripcionGrafico, registro.PersonasContrato.Count, total, registro.Orden, registro.Id));
            });

            this.tabla_resumen = tabla.ToList();
            //this.tabla_resumen = tabla.OrderBy(t => t.Id).ToList();
        }
Пример #4
0
        private Resumen GenerarRegistroResumenSueldoTotal(List <Contador> tabla_personas)
        {
            List <Dotacion> dotacion_total = new List <Dotacion>();
            Contador        contador_total = new Contador();

            tabla_personas.ForEach(personas => dotacion_total.AddRange(personas.Personas));
            contador_total.Personas    = dotacion_total;
            contador_total.Id          = 0;
            contador_total.Orden       = 0;
            contador_total.Descripcion = "Total";
            return(GenerarRegistroResumenSueldo(contador_total, contador_total.Personas.Count));
        }
Пример #5
0
        public override void GraficoPorSecretarias()
        {
            List <Dotacion> tabla_personas = this.tabla_detalle.ToList();
            List <Resumen>  tabla          = new List <Resumen>();
            List <Contador> contador       = new List <Contador>();

            tabla_personas.ForEach(p =>
            {
                if (contador.Count > 0)
                {
                    if (contador.Exists(area => area.Id == p.IdSecretaria))
                    {
                        contador.Find(area => area.Id == p.IdSecretaria).Personas.Add(p);
                    }
                    else
                    {
                        Contador nueva_area = new Contador(p.IdSecretaria, p.NombreSecretaria, p.NombreSecretariaCorta);
                        nueva_area.Personas.Add(p);
                        nueva_area.Orden = p.OrdenArea;
                        contador.Add(nueva_area);
                    }
                }
                else
                {
                    Contador nueva_area = new Contador(p.IdSecretaria, p.NombreSecretaria, p.NombreSecretariaCorta);
                    nueva_area.Personas.Add(p);
                    nueva_area.Orden = p.OrdenArea;
                    contador.Add(nueva_area);
                }
            });

            int total = tabla_personas.Count;

            tabla.Add(GenerarRegistroResumen("Total", "Total", total, total));

            contador.ForEach(registro =>
            {
                tabla.Add(GenerarRegistroResumen(registro.Descripcion, registro.DescripcionGrafico, registro.Personas.Count, total, registro.Orden));
            });

            this.tabla_resumen = tabla;
            this.tabla_resumen = tabla.OrderBy(t => t.Orden).ToList();
        }
Пример #6
0
        public override void GraficoPorArea()
        {
            List <Dotacion> tabla_personas = this.tabla_detalle.ToList();
            List <Resumen>  tabla          = new List <Resumen>();
            List <Contador> contador       = new List <Contador>();

            tabla_personas.ForEach(p =>
            {
                if (contador.Count > 0)
                {
                    if (contador.Exists(area => area.Id == p.IdArea))
                    {
                        contador.Find(area => area.Id == p.IdArea).Personas.Add(p);
                    }
                    else
                    {
                        Contador nueva_area = new Contador(p.IdArea, p.Area, p.AreaDescripCorta);
                        nueva_area.Personas.Add(p);
                        nueva_area.Orden = p.OrdenArea;
                        contador.Add(nueva_area);
                    }
                }
                else
                {
                    Contador nueva_area = new Contador(p.IdArea, p.Area, p.AreaDescripCorta);
                    nueva_area.Personas.Add(p);
                    nueva_area.Orden = p.OrdenArea;
                    contador.Add(nueva_area);
                }
            });
            int total = tabla_personas.Count;

            tabla.Add(GenerarRegistroResumenSueldoTotal(contador));
            contador.ForEach(registro =>
            {
                tabla.Add(GenerarRegistroResumenSueldo(registro, total));
            });

            this.tabla_resumen = tabla.OrderBy(t => t.Orden).ToList();
        }
Пример #7
0
        private Resumen GenerarRegistroResumenSueldo(Contador registro, int total)
        {
            Resumen resumen = GenerarRegistroResumen(registro.Descripcion, registro.DescripcionGrafico, registro.Personas.Count, total, registro.Orden);

            resumen.SumatoriaSueldo = registro.Personas.Sum(p => p.SueldoBruto);
            resumen.SumatoriaExtras = registro.Personas.Sum(p => p.hsTotalesSimples);
            if (registro.Personas.Count > 0)
            {
                resumen.PrimedioSueldo = resumen.SumatoriaSueldo / (float)registro.Personas.Count;
            }
            else
            {
                resumen.PrimedioSueldo = 0;
            }

            var personas_con_extras = registro.Personas.FindAll(p => p.HsSimples != 0 || p.Hs100 != 0 || p.Hs50 != 0);

            if (personas_con_extras.Count != 0)
            {
                resumen.PrimedioExtras = resumen.SumatoriaExtras / (float)personas_con_extras.Count;
            }
            var sueldos_ordenados = registro.Personas.OrderBy(p => p.SueldoBruto).ToList();

            resumen.MedianaSueldo = sueldos_ordenados.Skip(registro.Personas.Count / 2).Take(1).ToList().First().SueldoBruto;
            var extras_ordenados = personas_con_extras.OrderBy(p => p.hsTotalesSimples).ToList();

            if (extras_ordenados.Count > 0)
            {
                resumen.MedianaExtras = extras_ordenados.Skip(extras_ordenados.Count / 2).Take(1).ToList().First().hsTotalesSimples;
            }
            else
            {
                resumen.MedianaExtras = 0;
            }

            return(resumen);
        }