Пример #1
0
        public ActionResult AcordosVigentes(string filtrorepresentante, string filtrocliente, string pagina, string totalpaginas)
        {
            if (!Session_Usuario.PodeAcessarMenuAcordos)
            {
                return(RedirectToAction("AccessDenied", "Account"));
            }

            ListaAcordosVigentesViewModel model = new ListaAcordosVigentesViewModel();

            model.FiltroRepresentante = filtrorepresentante;
            model.FiltroCliente       = filtrocliente;

            if (!string.IsNullOrWhiteSpace(totalpaginas))
            {
                model.TotalPaginas = int.Parse(totalpaginas);
            }

            if (string.IsNullOrWhiteSpace(pagina))
            {
                model.Pagina = 1;

                if (base.Session_Usuario.ID_REPRES > default(int))
                {
                    int IDRepresentante = base.Session_Usuario.ID_REPRES.GetValueOrDefault();
                    using (var ctx = new DalutexContext())
                    {
                        model.FiltroRepresentante = ctx.REPRESENTANTES.Find(IDRepresentante).NOME.Trim();
                    }

                    this.ObterItensAcordoVigente(model);
                }
            }
            else
            {
                model.Pagina = int.Parse(pagina);

                this.ObterItensAcordoVigente(model);
            }
            return(View(model));
        }
Пример #2
0
        private void ObterItensAcordoVigente(ListaAcordosVigentesViewModel model)
        {
            int iItensPorPagina = 6;

            using (var ctx = new TIDalutexContext())
            {
                List <VW_ACORDOS_VIGENTES> result = null;

                if (model.TotalPaginas == 0)
                {
                    result = ctx.VW_ACORDOS_VIGENTES.Where(x =>
                                                           (model.FiltroRepresentante == null || x.REPRESENTANTE.StartsWith(model.FiltroRepresentante.ToUpper()))
                                                           &&
                                                           (model.FiltroCliente == null || x.NOME_CLIENTE.Contains(model.FiltroCliente.ToUpper()))
                                                           ).OrderByDescending(x => x.NOME_CLIENTE).ToList();

                    decimal dTotal = result.Count / (decimal)iItensPorPagina;
                    model.TotalPaginas = (int)Decimal.Ceiling(dTotal);
                    if (model.TotalPaginas == 0)
                    {
                        model.TotalPaginas = 1;
                    }

                    model.ListaAcordosVigentes = result.Skip((model.Pagina - 1) * iItensPorPagina).Take(iItensPorPagina).ToList();
                }
                else
                {
                    model.ListaAcordosVigentes = ctx.VW_ACORDOS_VIGENTES
                                                 .Where(x => (model.FiltroRepresentante == null || x.REPRESENTANTE.StartsWith(model.FiltroRepresentante.ToUpper()))
                                                        &&
                                                        (model.FiltroCliente == null || x.NOME_CLIENTE.Contains(model.FiltroCliente.ToUpper()))
                                                        ).OrderByDescending(x => x.REPRESENTANTE).Skip((model.Pagina - 1) * iItensPorPagina).Take(iItensPorPagina).ToList();

                    if (result.Count() == 0)
                    {
                        ModelState.AddModelError("", "Nenhum acordo vigente foi encontrado");
                    }
                }
            }
        }