Exemplo n.º 1
0
        public FacturaController()
        {
            context = new DbComercial();

            //CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
            //CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture;

            CultureInfo.DefaultThreadCurrentCulture   = new CultureInfo("es-PE");
            CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("es-PE");
        }
Exemplo n.º 2
0
        public IHttpActionResult ListarPagedFacturas(FacturaRequest filtro)
        {
            if (filtro == null)
            {
                return(BadRequest());
            }


            var context = new DbComercial();

            var source = (from f in context.Facturas
                          join c in context.Clientes on f.ClienteId equals c.ClienteId
                          join x in context.ConceptoFacturas on f.ConceptoId equals x.ConceptoId
                          join u in context.Usuarios on f.UsuarioRegistroId equals u.UsuarioId
                          join m in context.TipoMonedas on f.TipoMonedaId equals m.TipoMonedaId
                          join e in context.EstadoFacturas on f.EstadoId equals e.EstadoFacturaId
                          select new FacturaResponse
            {
                Numero = f.Numero,
                ConceptoId = f.ConceptoId,
                Concepto = x.Nombre,
                ClienteId = f.ClienteId,
                Cliente = c.RazonSocial,
                dFechaEmision = f.FechaEmision,
                TipoMonedaId = f.TipoMonedaId,
                TipoMoneda = m.Nombre,
                MontoTotal = f.MontoTotal,
                EstadoId = f.EstadoId,
                Estado = e.Nombre,
                dFechaRegistro = f.FechaRegistro,
                MontoIGV = f.MontoIGV,
                Mes = f.Mes,
                Ano = f.Ano
            }).OrderByDescending(a => a.dFechaEmision).AsQueryable();


            source = source.Where(p => ((filtro.Numero == 0) || (filtro.Numero != 0 && p.Numero == filtro.Numero)));
            source = source.Where(p => ((filtro.ConceptoId == 0) || (filtro.ConceptoId != 0 && p.ConceptoId == filtro.ConceptoId)));
            source = source.Where(p => ((filtro.ClienteId == 0) || (filtro.ClienteId != 0 && p.ClienteId == filtro.ClienteId)));
            source = source.Where(p => ((filtro.EstadoId == 0) || (filtro.EstadoId != 0 && p.EstadoId == filtro.EstadoId)));
            source = source.Where(p => ((filtro.Mes == 0) || (filtro.Mes != 0 && p.Mes == filtro.Mes)));
            source = source.Where(p => ((filtro.Ano == 0) || (filtro.Ano != 0 && p.Ano == filtro.Ano)));

            int CurrentPage = (filtro.Page == 0 ? 1 : filtro.Page);
            int PageSize    = filtro.PageSize;

            string SortCommand = filtro.SortCommand;
            string SortOrder   = filtro.SortOrder;

            if (!string.IsNullOrEmpty(SortCommand) && !string.IsNullOrEmpty(SortOrder))
            {
                switch (SortCommand)
                {
                case "Numero":
                    if (SortOrder == "asc")
                    {
                        source = source.OrderBy(a => a.Numero);
                    }
                    else if (SortOrder == "desc")
                    {
                        source = source.OrderByDescending(a => a.Numero);
                    }
                    break;

                case "Cliente":
                    if (SortOrder == "asc")
                    {
                        source = source.OrderBy(a => a.Cliente);
                    }
                    else if (SortOrder == "desc")
                    {
                        source = source.OrderByDescending(a => a.Cliente);
                    }
                    break;

                case "MontoTotal":
                    if (SortOrder == "asc")
                    {
                        source = source.OrderBy(a => a.MontoTotal);
                    }
                    else if (SortOrder == "desc")
                    {
                        source = source.OrderByDescending(a => a.MontoTotal);
                    }
                    break;

                case "FechaEmision":
                    if (SortOrder == "asc")
                    {
                        source = source.OrderBy(a => a.dFechaEmision);
                    }
                    else if (SortOrder == "desc")
                    {
                        source = source.OrderByDescending(a => a.dFechaEmision);
                    }
                    break;
                }
            }

            int TotalRows = source.Count();

            if (PageSize != 0)
            {
                source = source.Skip((CurrentPage - 1) * PageSize).Take(PageSize);
            }

            List <FacturaResponse> facturas = source.ToList();

            return(Ok(new PagedList <FacturaResponse>(facturas, TotalRows)));
        }