Пример #1
0
        private PeticionDataTableDto <IList <IList <string> > > ObtenPeticionDataTable()
        {
            String param;
            List <DataTableOrderColumn> orders = new List <DataTableOrderColumn>();

            for (var index = 0; index < 6; index++)
            {
                var columnKey = "order[" + index + "][column]";
                param = getFormKeyValue(columnKey);
                if (param != null)
                {
                    var dirKey    = "order[" + index + "][dir]";
                    var orderItem = new DataTableOrderColumn()
                    {
                        column = Int32.Parse(param),
                        dir    = getFormKeyValue(dirKey)
                    };
                    orders.Add(orderItem);
                }
            }

            var dataTableRequest = new PeticionDataTableDto <IList <IList <string> > >()
            {
                draw   = Int32.Parse(getFormKeyValue("draw")),
                length = Int32.Parse(getFormKeyValue("length")),
                start  = Int32.Parse(getFormKeyValue("start")),
                search = getFormKeyValue("search"),
                order  = orders
            };

            return(dataTableRequest);
        }
        public PeticionDataTableDto <IList <IList <string> > > ConsultaHistoricoEnvioDataTable(PeticionDataTableDto <IList <IList <string> > > peticionDataTableDto)
        {
            var builder = CreateDbParametersBuilder();
            var query   = CONSULTA_DATA_TABLE_HISTORICO_ENVIOS.Replace("#id", peticionDataTableDto.filtros["id"].ToString());

            var documentosInstancia = AdoTemplate.QueryWithRowMapperDelegate(CommandType.Text, query,
                                                                             delegate(IDataReader reader, int rowNum) { return(CrearDocumentoDataTableInstancia(reader, rowNum)); },
                                                                             builder.GetParameters());

            peticionDataTableDto.recordsTotal = documentosInstancia.Count();
            peticionDataTableDto.data         = documentosInstancia.ToList();

            return(peticionDataTableDto);
        }
        public PeticionDataTableDto <IList <IList <string> > > ConsultaInformacionDataTable(PeticionDataTableDto <IList <IList <string> > > peticionDataTableDto)
        {
            var builder   = CreateDbParametersBuilder();
            var query     = CONSULTA_DATA_TABLE_TODOS;
            var prefixDoc = "DOC";
            var prefixTax = "TAX";

            if (peticionDataTableDto.filtros.ContainsKey("periodicidad"))
            {
                var periodicidadStr = peticionDataTableDto.filtros["periodicidad"].ToString().Trim();
                switch (periodicidadStr)
                {
                case "4":
                    query = CONSULTA_DATA_TABLE_TODOS_ENVIOS;
                    break;

                case "2":
                    query = CONSULTA_DATA_TABLE_ENVIOS_MENSUAL;
                    break;

                default:
                    query = CONSULTA_DATA_TABLE_ULTIMOS_ENVIOS;
                    break;
                }
            }
            else
            {
                prefixDoc = "T1";
                prefixTax = "T1";
            }

            if (peticionDataTableDto.filtros.ContainsKey("clavePizarra"))
            {
                query += " AND UPPER(" + prefixDoc + ".ClaveEmisora) LIKE '%' + UPPER('" + peticionDataTableDto.filtros["clavePizarra"] + "') + '%' ";
            }
            if (peticionDataTableDto.filtros.ContainsKey("taxonomia"))
            {
                query += " AND " + prefixTax + ".IdTaxonomiaXbrl= " + peticionDataTableDto.filtros["taxonomia"];
            }
            if (peticionDataTableDto.filtros.ContainsKey("ejercicio"))
            {
                query += " AND " + prefixDoc + ".Anio= " + peticionDataTableDto.filtros["ejercicio"];
            }
            if (peticionDataTableDto.filtros.ContainsKey("trimestre"))
            {
                query += " AND UPPER(isnull(" + prefixDoc + ".Trimestre,'')) = UPPER('" + peticionDataTableDto.filtros["trimestre"] + "') ";
            }

            if (peticionDataTableDto.filtros.ContainsKey("mensual"))
            {
                query += " AND MONTH(" + prefixDoc + ".FechaReporte) = " + peticionDataTableDto.filtros["mensual"];
            }
            if (peticionDataTableDto.filtros.ContainsKey("periodicidad"))
            {
                query += " AND " + prefixTax + ".IdPeriodicidadReporte = " + peticionDataTableDto.filtros["periodicidad"];
            }
            if (peticionDataTableDto.filtros.ContainsKey("search"))
            {
                var search = peticionDataTableDto.filtros["search"];
                query += " AND (UPPER(isnull(" + prefixDoc + ".ClaveEmisora, '')) like UPPER('%" + search + "%') or  UPPER(" + prefixTax + ".Nombre) like UPPER('%" + search + "%'))";
            }
            if (peticionDataTableDto.order.Count > 0)
            {
                var orderQuery = String.Empty;

                foreach (var order in peticionDataTableDto.order)
                {
                    if (order.column == 0)
                    {
                        if (order.dir == "desc")
                        {
                            orderQuery += "," + prefixDoc + ".IdDocumentoInstancia DESC";
                        }
                        else
                        {
                            orderQuery += "," + prefixDoc + ".IdDocumentoInstancia";
                        }
                    }
                    if (order.column == 2)
                    {
                        if (order.dir == "desc")
                        {
                            orderQuery += "," + prefixDoc + ".FechaCreacion DESC";
                        }
                        else
                        {
                            orderQuery += "," + prefixDoc + ".FechaCreacion";
                        }
                    }
                    if (order.column == 3)
                    {
                        if (order.dir == "desc")
                        {
                            orderQuery += "," + prefixDoc + ".ClaveEmisora DESC";
                        }
                        else
                        {
                            orderQuery += "," + prefixDoc + ".ClaveEmisora";
                        }
                    }
                    if (order.column == 4)
                    {
                        if (order.dir == "desc")
                        {
                            orderQuery += ",CAST(YEAR(" + prefixDoc + ".FechaReporte) AS varchar) + isnull(' - ' + " + prefixDoc + ".Trimestre, '') DESC";
                        }
                        else
                        {
                            orderQuery += ",CAST(YEAR(" + prefixDoc + ".FechaReporte) AS varchar) + isnull(' - ' + " + prefixDoc + ".Trimestre, '')";
                        }
                    }
                    if (order.column == 5)
                    {
                        if (order.dir == "desc")
                        {
                            orderQuery += "," + prefixTax + ".Taxonomia DESC";
                        }
                        else
                        {
                            orderQuery += "," + prefixTax + ".Taxonomia";
                        }
                    }
                }

                query += " ORDER BY " + orderQuery.Substring(1);
            }

            var documentosInstancia = AdoTemplate.QueryWithRowMapperDelegate(CommandType.Text, query,
                                                                             delegate(IDataReader reader, int rowNum) { return(CrearDocumentoDataTableInstancia(reader, rowNum)); },
                                                                             builder.GetParameters());

            peticionDataTableDto.recordsTotal = documentosInstancia.Count();
            peticionDataTableDto.data         = documentosInstancia.Skip(peticionDataTableDto.start).Take(peticionDataTableDto.length).ToList();


            return(peticionDataTableDto);
        }
        private IQueryable <RegistroAuditoria> AplicaOrdenamientosDataTable(IQueryable <RegistroAuditoria> query, PeticionDataTableDto dataTableRequest)
        {
            query = query.OrderByDescending(r => r.Fecha);

            foreach (var order in dataTableRequest.order)
            {
                if (order.column == 0)
                {
                    if (order.dir == "desc")
                    {
                        query = query.OrderByDescending(r => r.Fecha);
                    }
                    else
                    {
                        query = query.OrderBy(r => r.Fecha);
                    }
                }
                if (order.column == 1)
                {
                    if (order.dir == "desc")
                    {
                        query = query.OrderByDescending(r => r.Empresa.NombreCorto);
                    }
                    else
                    {
                        query = query.OrderBy(r => r.Empresa.NombreCorto);
                    }
                }
                if (order.column == 2)
                {
                    if (order.dir == "desc")
                    {
                        query = query.OrderByDescending(r => r.Modulo.Nombre);
                    }
                    else
                    {
                        query = query.OrderBy(r => r.Modulo.Nombre);
                    }
                }
                if (order.column == 3)
                {
                    if (order.dir == "desc")
                    {
                        query = query.OrderByDescending(r => r.AccionAuditable.Nombre);
                    }
                    else
                    {
                        query = query.OrderBy(r => r.AccionAuditable.Nombre);
                    }
                }
                if (order.column == 4)
                {
                    if (order.dir == "desc")
                    {
                        query = query.OrderByDescending(r => r.Usuario.Nombre)
                                .ThenByDescending(r => r.Usuario.ApellidoPaterno)
                                .ThenByDescending(r => r.Usuario.ApellidoMaterno);
                    }
                    else
                    {
                        query = query.OrderBy(r => r.Usuario.Nombre)
                                .ThenBy(r => r.Usuario.ApellidoPaterno)
                                .ThenBy(r => r.Usuario.ApellidoMaterno);
                    }
                }
                if (order.column == 5)
                {
                    if (order.dir == "desc")
                    {
                        query = query.OrderByDescending(r => r.Registro);
                    }
                    else
                    {
                        query = query.OrderBy(r => r.Registro);
                    }
                }
            }
            return(query);
        }