Beispiel #1
0
        public HttpResponseMessage GetUsuarioPessoa(HttpRequestMessage request, int pessoaId)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                var usuariosPessoa = _usuarioRep.GetAll().Where(x => x.Pessoa.Id == pessoaId);


                IEnumerable <UsuarioViewModel> usuariosVM = Mapper.Map <IEnumerable <Usuario>, IEnumerable <UsuarioViewModel> >(usuariosPessoa);

                response = request.CreateResponse(HttpStatusCode.OK, usuariosVM);

                return response;
            }));
        }
        public HttpResponseMessage GetProdutos(HttpRequestMessage request, string filter = null)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                List <Produto> produtos = null;

                produtos = _produtoRep.GetAll().Where(m => m.SubCategoriaId.ToString() == filter).ToList();

                IEnumerable <ProdutoViewModel> produtosVM = Mapper.Map <IEnumerable <Produto>, IEnumerable <ProdutoViewModel> >(produtos);

                response = request.CreateResponse(HttpStatusCode.OK, produtosVM);

                return response;
            }));
        }
Beispiel #3
0
        public HttpResponseMessage PermissaoUrl(HttpRequestMessage request, string url)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                bool booTemAcesso = false;
                var usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));

                var UsuarioGrupos = _usuarioGrupoRep.GetAll().Where(ug => ug.UsuarioId == usuario.Id).ToList();
                var menuVMPermissao = _grupoPermissaoRep.GetAll().Where(x => x.Menu.Url != null &&
                                                                        x.Menu.Url.ToUpper() == "#/" + url.ToUpper() &&
                                                                        x.Menu.Ativo == true);

                var menus = from ug in UsuarioGrupos
                            join mp in menuVMPermissao
                            on ug.GrupoId equals mp.GrupoId
                            //where mp.Menu.Url.ToUpper() == "#/" + url.ToUpper()
                            select mp;


                if (menus.Any())
                {
                    booTemAcesso = true;
                }

                response = request.CreateResponse(HttpStatusCode.OK, new { success = true, temacesso = booTemAcesso, novaurl = url });

                return response;
            }));
        }
        public HttpResponseMessage TotalItensRespondidos(HttpRequestMessage request, int pedidoId, int fornecedorId)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));
                if (pedidoId > 0)
                {
                    Pedido pedido = this._pedidoRep.GetAll().Where(x => x.Id.Equals(pedidoId)).FirstOrDefault();
                    List <ResultadoCotacao> lResultCotacao = null;
                    var idCp = _cotacaoPedidosRep.GetAll().Where(cp => cp.PedidoId == pedido.Id).Select(x => x.CotacaoId).FirstOrDefault();

                    var totalItensRespondidoFornecedor = 0;
                    foreach (var item in pedido.ItemPedidos)
                    {
                        if (
                            _resultadoCotacaoRep.FindBy(rc => rc.CotacaoId == idCp &&
                                                        rc.FornecedorId == fornecedorId &&
                                                        rc.ProdutoId == item.ProdutoId &&
                                                        rc.FlgOutraMarca == item.FlgOutraMarca).Any()
                            )
                        {
                            totalItensRespondidoFornecedor++;
                        }
                    }

                    var totalItens = pedido.ItemPedidos.Count;


                    response = request.CreateResponse(HttpStatusCode.OK, new { success = true, totalItens, totalItensRespondidoFornecedor });
                }

                return response;
            }));
        }
Beispiel #5
0
        public HttpResponseMessage EnviarEmail(HttpRequestMessage request, LoginViewModel usuario)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                //remove a validacao da propriedade da senha, pois a propriedade esta sendo validada
                //lá no fluent validator e neste caso não prcisa validar
                ModelState.Remove("usuario.Senha");

                if (ModelState.IsValid)
                {
                    RecuperaSenha recuperaSenha = new RecuperaSenha();

                    recuperaSenha.Chave = Guid.NewGuid();

                    Usuario userRecupera = _membershipService.GetUserPorEmail(usuario.UsuarioEmail, usuario.perfilModulo);

                    if (userRecupera != null)
                    {
                        recuperaSenha.UsuarioCriacao = userRecupera;
                        recuperaSenha.UsuarioCriacaoId = userRecupera.Id;
                        recuperaSenha.DtCriacao = DateTime.Now;
                        recuperaSenha.UsuarioId = userRecupera.Id;
                        recuperaSenha.DtExpira = DateTime.Now.AddDays(1); // tem um dia para trocar a senha
                        recuperaSenha.Usuario = userRecupera;
                        _membershipService.CreateRecuperaSenha(recuperaSenha);

                        // Update view model
                        string strAmbiente = Environment.GetEnvironmentVariable("Amb_EconomizaJa").ToUpper();
                        string localCodigo = $"URL_Mod{usuario.perfilModulo}_Amb{strAmbiente}".ToString();
                        string URL_Modulo_Ambiente = _parametroSistema.GetAll().FirstOrDefault(fd => fd.Codigo == localCodigo).Valor;

                        RecuperaSenhaViewModel recuperaSenhaVM = AutoMapper.Mapper.Map <RecuperaSenha, RecuperaSenhaViewModel>(recuperaSenha);

                        //	recuperaSenhaVM.URL = "http://localhost:1312/#/recuperasenha?Q="; //ADM local
                        recuperaSenhaVM.URL = $"{URL_Modulo_Ambiente}/#/recuperasenha?Q=";

                        //Envia email de Recuperar Senha para o Usuário
                        var template = _templateEmailRep.GetSingle(2).Template;
                        _emailService.EnviarEmailViaRobo(userRecupera, "Recuperar Senha - Economiza Já", recuperaSenhaVM.Usuarioemail,
                                                         _emailService.MontaEmail(recuperaSenhaVM, template), Origem.RecuperarSenha);


                        response = request.CreateResponse(HttpStatusCode.OK, new { success = true, usuarioEmail = userRecupera.UsuarioEmail });
                    }
                    else
                    {
                        response = request.CreateResponse(HttpStatusCode.OK, new { success = false });
                    }
                }
                else
                {
                    response = request.CreateResponse(HttpStatusCode.OK, new { success = false });
                }

                return response;
            }));
        }
        public HttpResponseMessage GetMenu(HttpRequestMessage request, int?idgrupo, int?modulo)
        {
            int GrupoId = idgrupo.Value;

            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                IEnumerable <MenuViewModel> menuVM = null;
                List <MenuPermissaoViewModel> menuVMresponse = new List <MenuPermissaoViewModel>();

                var menu = _menuRep.GetAll().Where(m => m.ModuloId == modulo && m.Ativo);
                menuVM = Mapper.Map <IEnumerable <Menu>, IEnumerable <MenuViewModel> >(menu);

                var menuVMPermissao = _grupoPermissaoRep.GetAll().Where(m => m.GrupoId == idgrupo && m.Ativo);

                var menuVM2 = menuVM.Where(m => m.Url != null && m.Url.Contains("#/"));

                MenuPermissaoViewModel mnp;
                //MontaStrMenu strMenuObj = new MontaStrMenu();
                foreach (MenuViewModel mn in menuVM2)
                {
                    mnp = new MenuPermissaoViewModel();
                    string strMenu = "";

                    //strMenu = strMenuObj.MontaStrMenu(mn.MenuPaiId, menuVM.ToList());
                    strMenu = Util.MontaStrMenu(mn.MenuPaiId, menuVM.ToList());
                    strMenu += " > " + mn.DescMenu;

                    mnp.DescMenu = strMenu;
                    mnp.Id = mn.Id;
                    mnp.MenuPaiId = mnp.MenuPaiId;

                    mnp.ModuloId = mnp.ModuloId;
                    mnp.Relacionado = menuVMPermissao.Count(m => m.MenuId == mn.Id) > 0 ? true : false;
                    mnp.selected = menuVMPermissao.Count(m => m.MenuId == mn.Id) > 0 ? true : false;

                    menuVMresponse.Add(mnp);
                }

                response = request.CreateResponse(HttpStatusCode.OK, menuVMresponse.OrderBy(p => p.DescMenu));

                return response;
            }));
        }
Beispiel #7
0
        public HttpResponseMessage BuscarGrupo(HttpRequestMessage request, UsuarioViewModel novoUsuario)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response;

                ModelState.Remove("novoUsuario.Senha");
                ModelState.Remove("novoUsuario.ConfirmSenha");


                if (!ModelState.IsValid)
                {
                    response = request.CreateResponse(HttpStatusCode.BadRequest, new { success = false });
                }
                else
                {
                    Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));
                    List <UsuarioGrupoViewModel> listaUsuarioGrupos = new List <UsuarioGrupoViewModel>();
                    UsuarioGrupoViewModel usuarioGrupoVM;

                    var Grupos = _grupoRep.GetAll().OrderBy(g => g.DescGrupo).ToList();
                    int idNovoUsuario = novoUsuario == null ? 0 : novoUsuario.Id;
                    var UsuarioGrupos = _usuarioGrupoRep.GetAll().Where(ug => ug.UsuarioId == idNovoUsuario).ToList();


                    foreach (Grupo item in Grupos)
                    {
                        usuarioGrupoVM = new UsuarioGrupoViewModel();
                        usuarioGrupoVM.GrupoId = item.Id;
                        usuarioGrupoVM.UsuarioId = idNovoUsuario;
                        usuarioGrupoVM.DescGrupo = item.DescGrupo;
                        usuarioGrupoVM.Relacionado = UsuarioGrupos.Count(u => u.GrupoId == item.Id) > 0 ? true : false;
                        usuarioGrupoVM.Selecionado = UsuarioGrupos.Count(u => u.GrupoId == item.Id) > 0 ? true : false;
                        listaUsuarioGrupos.Add(usuarioGrupoVM);
                    }

                    // Update view model
                    response = request.CreateResponse(HttpStatusCode.OK, listaUsuarioGrupos);
                }

                return response;
            }));
        }
        private List <ResultadoPrecoCotacaoFornecedor> CotacaoProdsGroup(int usuarioId, int cotacaoId)
        {
            var usuario    = _usuarioRep.GetSingle(usuarioId);
            var fornecedor = _fornecedoRep.GetAll().FirstOrDefault(x => x.PessoaId == usuario.PessoaId);

            var _param = new SqlParameter {
                ParameterName = "@FORNECEDORID", SqlDbType = System.Data.SqlDbType.BigInt, Value = fornecedor.Id
            };
            var cotacaoProdsGroup = _usuarioRep.ExecWithStoreProcedure <ResultadoPrecoCotacaoFornecedor>("stp_fornecedor_preco_cotacao @FORNECEDORID", _param).ToList();

            return(cotacaoProdsGroup);
        }
Beispiel #9
0
        public string getParametroSistema(string Codigo)
        {
            ParametroSistema retorno = _parametroSistemaRep.GetAll().FirstOrDefault(x => x.Codigo == Codigo && x.Ativo == true);

            if (retorno != null)
            {
                return(retorno.Valor);
            }
            else
            {
                return("");
            }
        }
        public HttpResponseMessage GetRegiao(HttpRequestMessage request, int estadoId)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                var regioes = _regiaoRep.GetAll().Where(x => x.Estado.Id == estadoId).ToList();

                IEnumerable <RegiaoViewModel> regioesVM = Mapper.Map <IEnumerable <Regiao>, IEnumerable <RegiaoViewModel> >(regioes);

                response = request.CreateResponse(HttpStatusCode.OK, regioesVM);

                return response;
            }));
        }
        public HttpResponseMessage GetFatura(HttpRequestMessage request)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                var usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));
                var fornecedor = _fornecedorRep.GetAll().FirstOrDefault(x => x.PessoaId == usuario.PessoaId);
                var faturas = _faturaRep.GetAll().Where(x => x.FornecedorId == fornecedor.Id);

                //var diaVencimento = this._pagamentoService.Parametros.FornecedorDiaVencimento;
                var diaFechamento = _pagamentoService.Parametros.FornecedorDiaFechamento;

                var day = DateTime.Now.Day;
                var month = DateTime.Now.Month;
                var year = DateTime.Now.Year;


                if (month == 12)
                {
                    month = 1;
                    year++;
                }
                else if (day > diaFechamento)
                {
                    month++;
                }


                var fechamentoAtual = new DateTime(year, month, diaFechamento);
                var fechamentoAnterior = fechamentoAtual.AddMonths(-1);

                var faturaAnterior = faturas.FirstOrDefault(x => x.DtFechamento == fechamentoAnterior);

                var faturaAtual = faturas.FirstOrDefault(x => x.DtFechamento == fechamentoAtual);

                //var faturaProxima = faturas.FirstOrDefault(x => x.DtFechamento == fechamentoProximo);

                var faturasRT = new
                {
                    Anterior = Mapper.Map <Fatura, FaturaViewModel>(faturaAnterior),
                    Atual = Mapper.Map <Fatura, FaturaViewModel>(faturaAtual)
                            //Proxima = Mapper.Map<Fatura, FaturaViewModel>(faturaProxima)
                };

                response = request.CreateResponse(HttpStatusCode.OK, faturasRT);

                return response;
            }));
        }
        public DateTime UltimaExecucaoRotina(int pTipoAviso, string pNomeRotina)
        {
            DateTime retornoData = DateTime.MaxValue;

            var execRobo = _execucaoRoboRep.GetAll().Where(w => w.NomeRotina == pNomeRotina &&
                                                           w.TipoAviso == pTipoAviso);

            if (execRobo.Any())
            {
                retornoData = execRobo.Max(m => m.DtCriacao).Date;
            }

            return(retornoData);
        }
        public HttpResponseMessage Workflowstatus(HttpRequestMessage request)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                var workflowStatusSistema = _workflowStatus.GetAll().Where(m => m.Ativo);

                IEnumerable <workflowStatusViewModel> workflowVM = Mapper.Map <IEnumerable <WorkflowStatus>, IEnumerable <workflowStatusViewModel> >(workflowStatusSistema);

                response = request.CreateResponse(HttpStatusCode.OK, workflowVM);

                return response;
            }));
        }
        public HttpResponseMessage GetByCategoriaId(HttpRequestMessage request, int?page, int?pageSize, int membroId)
        {
            int currentPage     = page.Value;
            int currentPageSize = pageSize.Value;

            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                List <MembroDemanda> demandas = null;
                int totalMembros = new int();

                if (membroId != 0)
                {
                    demandas = _membroDemandaRep.FindBy(c => c.MembroId.Equals(membroId))
                               .OrderBy(c => c.SubCategoria.DescSubCategoria)
                               .Skip(currentPage * currentPageSize)
                               .Take(currentPageSize)
                               .ToList();

                    totalMembros = _membroDemandaRep
                                   .GetAll()
                                   .Count(c => c.MembroId.Equals(membroId));
                }
                //else
                //{
                //    demandas = _membroDemandaRep.GetAll()
                //        .OrderBy(c => c.SubCategoria.DescSubCategoria)
                //        .Skip(currentPage * currentPageSize)
                //        .Take(currentPageSize)
                //    .ToList();

                //    totalMembros = _membroRep.GetAll().Count();
                //}

                IEnumerable <MembroDemandaViewModel> membroDemandasVM = Mapper.Map <IEnumerable <MembroDemanda>, IEnumerable <MembroDemandaViewModel> >(demandas);

                var pagSet = new PaginacaoConfig <MembroDemandaViewModel>()
                {
                    Page = currentPage,
                    TotalCount = totalMembros,
                    TotalPages = (int)Math.Ceiling((decimal)totalMembros / currentPageSize),
                    Items = membroDemandasVM
                };

                response = request.CreateResponse(HttpStatusCode.OK, pagSet);

                return response;
            }));
        }
Beispiel #15
0
        public HttpResponseMessage ExisteCartaoCadastradoMembro(HttpRequestMessage request)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                var cartaoBandeiraVM = new List <CartaoBandeiraViewModel>();
                var cartaoCredito = new CartaoCreditoViewModel();

                var usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));

                var membro = _membroRep.GetAll().FirstOrDefault(x => x.PessoaId.Equals(usuario.PessoaId));

                var _cartao = _cartaoCreditoRep.FirstOrDefault(x => x.MembroId == membro.Id && x.Padrao && x.Ativo);

                if (_cartao != null)
                {
                    cartaoCredito = new CartaoCreditoViewModel
                    {
                        Id = _cartao.Id,
                        Nome = _cartao.Nome,
                        Numero = _cartao.Numero,
                        CartaoBandeiraId = _cartao.CartaoBandeiraId,
                        DataVencimento = _cartao.DataVencimento.ToString("MM/yyyy"),
                        Padrao = _cartao.Padrao,
                        Ativo = _cartao.Ativo
                    };
                }
                else
                {
                    cartaoCredito = null;
                }


                Object planoIdFormaPagtoId = new
                {
                    IdPano = membro.PlanoMensalidadeId,
                    TipoPagamentoId = membro.Mensalidades != null && membro.Mensalidades.Count > 0 ?
                                      membro.Mensalidades.OrderByDescending(x => x.Id).FirstOrDefault().Detalhes.FirstOrDefault().Tipo : 0,
                    MensalidadePaga = membro.Mensalidades != null && membro.Mensalidades.Count > 0 ?
                                      membro.Mensalidades.OrderByDescending(x => x.Id)
                                      .FirstOrDefault(x => x.Status == StatusMensalidade.Recebido ||
                                                      x.Status == StatusMensalidade.AguardandoPagamento) != null : false
                };

                response = request.CreateResponse(HttpStatusCode.OK, new { cartao = cartaoCredito, planoMembro = planoIdFormaPagtoId });

                return response;
            }));
        }
Beispiel #16
0
        public HttpResponseMessage GetCategoria(HttpRequestMessage request)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                var categorias = _categoriaRep.GetAll().Where(c => c.Ativo).ToList();

                IEnumerable <CategoriaViewModel> categoriasVM = Mapper.Map <IEnumerable <Categoria>, IEnumerable <CategoriaViewModel> >(categorias);

                response = request.CreateResponse(HttpStatusCode.OK, categoriasVM);

                return response;
            }));
        }
        public HttpResponseMessage Inserir(HttpRequestMessage request, CategoriaViewModel CategoriaViewModel)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                if (!ModelState.IsValid)
                {
                    response = request.CreateResponse(HttpStatusCode.BadRequest,
                                                      ModelState.Keys.SelectMany(k => ModelState[k].Errors)
                                                      .Select(m => m.ErrorMessage).ToArray());
                }
                else
                {
                    Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));

                    var descCategoria =
                        _categoriaRep.GetAll()
                        .Where(c => c.DescCategoria.ToLower() == CategoriaViewModel.DescCategoria.ToLower()).
                        Select(c => c.DescCategoria).FirstOrDefault();

                    if (descCategoria == null)
                    {
                        Categoria novaCategoria = new Categoria()
                        {
                            UsuarioCriacao = usuario,
                            DtCriacao = DateTime.Now,
                            Ativo = CategoriaViewModel.Ativo,
                            DescCategoria = CategoriaViewModel.DescCategoria
                        };

                        _categoriaRep.Add(novaCategoria);

                        _unitOfWork.Commit();
                        // Update view model
                        CategoriaViewModel = Mapper.Map <Categoria, CategoriaViewModel>(novaCategoria);

                        response = request.CreateResponse(HttpStatusCode.Created, CategoriaViewModel);
                    }
                    else
                    {
                        response = request.CreateResponse(HttpStatusCode.NotModified);
                    }
                }

                return response;
            }));
        }
Beispiel #18
0
        public List <CotacaoPedidos> ListarCotacaoPedidos()
        {
            // Status pedido em cotacao

            var statusId = _statusSistemaRep.GetAll().FirstOrDefault(x => x.WorkflowStatusId == 12 && x.Ordem == 2).Id;

            DateTime dataConsulta = DateTime.Now;

            List <CotacaoPedidos> listaCotacaoPedido = _cotacaoPedidoRep.FindBy(cpr => cpr.Ativo &&
                                                                                cpr.Cotacao.DtFechamento < dataConsulta &&
                                                                                cpr.Pedido.FlgCotado &&
                                                                                cpr.Pedido.StatusSistemaId == statusId
                                                                                ).ToList();

            return(listaCotacaoPedido);
        }
Beispiel #19
0
        public HttpResponseMessage GetModulo(HttpRequestMessage request)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;


                var modulos = _moduloRep.GetAll();

                IEnumerable <ModuloViewModel> modulosVM = Mapper.Map <IEnumerable <Modulo>, IEnumerable <ModuloViewModel> >(modulos);

                response = request.CreateResponse(HttpStatusCode.OK, modulosVM);

                return response;
            }));
        }
        public HttpResponseMessage GetEnderecos(HttpRequestMessage request)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));

                var enderecos = _enderecoRep.GetAll().Where(x => x.Pessoa.Id == usuario.PessoaId);;

                IEnumerable <EnderecoViewModel> enderecosVM = Mapper.Map <IEnumerable <Endereco>, IEnumerable <EnderecoViewModel> >(enderecos);

                response = request.CreateResponse(HttpStatusCode.OK, enderecosVM);

                return response;
            }));
        }
        public HttpResponseMessage GetSubCategoriaProduto(HttpRequestMessage request, string filter = null)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                List <SubCategoria> subCategoriaProduto = null;

                subCategoriaProduto = _subcategoriaRep.GetAll().Where(m => m.CategoriaId.ToString() == filter).ToList();

                IEnumerable <SubCategoriaViewModel> subCategoriaVM = Mapper.Map <IEnumerable <SubCategoria>, IEnumerable <SubCategoriaViewModel> >(subCategoriaProduto);

                response = request.CreateResponse(HttpStatusCode.OK, subCategoriaVM);

                return response;
            }));
        }
        public HttpResponseMessage GetPeriodoEntrega(HttpRequestMessage request)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));

                var periodoentrega = _periodoEntregaRep.GetAll().Where(x => x.Ativo == true);

                IEnumerable <PeriodoEntregaViewModel> periodoEntregaVM = Mapper.Map <IEnumerable <PeriodoEntrega>, IEnumerable <PeriodoEntregaViewModel> >(periodoentrega);

                response = request.CreateResponse(HttpStatusCode.OK, periodoEntregaVM);

                return response;
            }));
        }
Beispiel #23
0
        public HttpResponseMessage Get(HttpRequestMessage request, int?page, int?pageSize, string filter = null)
        {
            int currentPage     = page.Value;
            int currentPageSize = pageSize.Value;

            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                List <UnidadeMedida> unidadeMedidas = null;
                int totalUnidadeMedida = new int();

                if (!string.IsNullOrEmpty(filter))
                {
                    filter = filter.Trim().ToLower();

                    unidadeMedidas = _unidadeMedidaRep.FindBy(c => c.DescUnidadeMedida.ToLower().Contains(filter))
                                     .OrderBy(c => c.DescUnidadeMedida)
                                     .Skip(currentPage * currentPageSize)
                                     .Take(currentPageSize)
                                     .ToList();

                    totalUnidadeMedida = _unidadeMedidaRep
                                         .GetAll()
                                         .Count(c => c.DescUnidadeMedida.ToLower().Contains(filter));
                }
                else
                {
                    unidadeMedidas = _unidadeMedidaRep.GetAll()
                                     .OrderBy(c => c.DescUnidadeMedida)
                                     .Skip(currentPage * currentPageSize)
                                     .Take(currentPageSize)
                                     .ToList();

                    totalUnidadeMedida = _unidadeMedidaRep.GetAll().Count();
                }

                IEnumerable <UnidadeMedidaViewModel> unidadeMedidasVM = Mapper.Map <IEnumerable <UnidadeMedida>, IEnumerable <UnidadeMedidaViewModel> >(unidadeMedidas);

                PaginacaoConfig <UnidadeMedidaViewModel> pagSet = new PaginacaoConfig <UnidadeMedidaViewModel>()
                {
                    Page = currentPage,
                    TotalCount = totalUnidadeMedida,
                    TotalPages = (int)Math.Ceiling((decimal)totalUnidadeMedida / currentPageSize),
                    Items = unidadeMedidasVM
                };

                response = request.CreateResponse(HttpStatusCode.OK, pagSet);

                return response;
            }));
        }
Beispiel #24
0
        public HttpResponseMessage GetTipoNotificacao(HttpRequestMessage request)
        {
            return(CreateHttpResponse(request, () =>
            {
                var usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));

                var modulo = 0;
                switch (usuario.PerfilId)
                {
                case 1:
                    modulo = 1;
                    break;

                case 2:
                    modulo = 3;
                    break;

                case 3:
                    modulo = 4;
                    break;
                }

                var notificacao = _tipoAvisosRep.GetAll().Where(x => x.Ativo && x.ModuloId.Equals(modulo) && x.Notificacoes.Any(y => y.Ativo)).ToList();

                var notificacaoVM = Mapper.Map <IEnumerable <TipoAvisos>, IEnumerable <TipoNotificacaoViewModel> >(notificacao);

                notificacaoVM.ForEach(x =>
                {
                    x.Notificacoes.ForEach(y =>
                    {
                        y.Checked = !usuario.Notificacoes.Any(z => z.Ativo && z.NotificacaoId.Equals(y.Id));
                    });
                });

                var response = request.CreateResponse(HttpStatusCode.OK, notificacaoVM);

                return response;
            }));
        }
        public HttpResponseMessage GetEnderecoViaCep(HttpRequestMessage request, string cep)
        {
            return(CreateHttpResponse(request, () =>
            {
                var ceps = _cepEnderecoRep.GetAll().Where(x => x.Cep == cep).FirstOrDefault();

                var cepEndereco = ceps ?? this.PesquisaCep(cep);

                var enderecoVM = Mapper.Map <CepEndereco, EnderecoViewModel>(cepEndereco);

                if (String.IsNullOrEmpty(enderecoVM.Cep))
                {
                    enderecoVM.Cep = cep;
                }


                var response = request.CreateResponse(HttpStatusCode.OK, enderecoVM);



                return response;
            }));
        }
        public List <CotacaoUsuarios> PrecificarCotacaoFornecedor()
        {
            // Verificar se existe fatura em atraso, para não precificar para este fornecedor
            List <KeyValuePair <int, DateTime> > listCotacaoId = new List <KeyValuePair <int, DateTime> >();
            List <int> categoriasFornecedores = new List <int>();

            var fornecedores = _fornecedorProdutoRep.GetAll()
                               .Where(x => x.Fornecedor.Ativo && x.Ativo)
                               .Select(f => f.Fornecedor).Distinct().ToList();

            fornecedores.ForEach(f =>
            {
                listCotacaoId.Clear();
                categoriasFornecedores.Clear();

                var membrosForn = _membroFornecedor.GetAll()
                                  .Where(m => m.FornecedorId == f.Id && m.Ativo)
                                  .Select(o => o.Membro.Id)
                                  .ToList();

                var indispProdutoFornecedor = _indisponibilidadeProdutoRep.GetAll()
                                              .Where(i => i.FornecedorId == f.Id &&
                                                     i.InicioIndisponibilidade <= DateTime.Now &&
                                                     i.FimIndisponibilidade >= DateTime.Now)
                                              .Select(c => c.Produto.Id).ToList();


                var resultCotacao = _resultadoCotacao.GetAll()
                                    .Where(x => x.Cotacao.DtFechamento >= DateTime.Now && x.FornecedorId == f.Id)
                                    .Select(c => c.CotacaoId)
                                    .ToList();

                var fornecedorCategorias = f.FornecedorCategorias.Select(x => x.CategoriaId).ToList();


                //pega todos os pedido da tabela remover fornecedor que estaja na cotação = ProdutoId
                var itemPedidos = _cotacaoPedidos.GetAll()
                                  .Where(x => !resultCotacao.Contains(x.CotacaoId) &&
                                         x.Cotacao.DtFechamento >= DateTime.Now)
                                  .SelectMany(i => i.Pedido.ItemPedidos
                                              .Where(r => !indispProdutoFornecedor.Contains(r.ProdutoId) &&
                                                     fornecedorCategorias.Contains(r.Produto.SubCategoria.CategoriaId))
                                              .Select(p => p.Id))
                                  .ToList();

                // Verifica se o fornecedor foi removido para dar preço no item
                var intensPedidoRemoveItemForn = _removeFornPedidoRep
                                                 .FindBy(x => x.FonecedorId == f.Id && itemPedidos.Contains(x.ItemPedidoId))
                                                 .Select(p => p.ItemPedidoId)
                                                 .ToList();

                var cotacaoPedidos = _cotacaoPedidos.GetAll()
                                     .Where(x => !resultCotacao.Contains(x.CotacaoId) &&
                                            membrosForn.Contains(x.Pedido.Membro.Id) &&
                                            x.Cotacao.DtFechamento >= DateTime.Now &&
                                            x.Pedido.ItemPedidos.Any(p => !intensPedidoRemoveItemForn.Contains(p.Id) &&
                                                                     fornecedorCategorias.Contains(p.Produto.SubCategoria.CategoriaId)))
                                     .GroupBy(g => g.CotacaoId)
                                     .ToList();

                for (int i = 0; i < cotacaoPedidos.Count; i++)
                {
                    var pedidos = cotacaoPedidos[i].Select(x => x.Pedido).ToList();

                    var prod = f.Produtos.Select(x => x.ProdutoId).ToList();

                    var itensCotacao = cotacaoPedidos[i].SelectMany(x => x.Pedido.ItemPedidos.Where(p => prod.Contains(p.ProdutoId)))
                                       .Select(c => new { c.ProdutoId, c.Quantidade })
                                       .GroupBy(s => s.ProdutoId)
                                       .Select(p => new { ProdutoId = p.Key, Quantidade = p.Sum(t => t.Quantidade) })
                                       .ToList();

                    itensCotacao.ForEach(z =>
                    {
                        var categoria = f.Produtos.FirstOrDefault(x => x.ProdutoId == z.ProdutoId).Produto.SubCategoria.CategoriaId;

                        var existeProduto = f.Produtos.Count(x => x.ProdutoId == z.ProdutoId) > 0;

                        var existeProdutosFornecedor = f.Produtos.Count(x => x.ProdutoId == z.ProdutoId) > 0 &&
                                                       f.Produtos.FirstOrDefault(x => x.ProdutoId == z.ProdutoId).ListaQuantidadeDesconto
                                                       .Count(p => p.ValidadeQtdDesconto >= DateTime.Now && p.QuantidadeMinima <= z.Quantidade) > 0;

                        if (existeProduto)
                        {
                            var resultadoCotacao = new ResultadoCotacao();

                            resultadoCotacao.UsuarioCriacao = f.UsuarioCriacao;
                            resultadoCotacao.DtCriacao      = DateTime.Now;
                            resultadoCotacao.Ativo          = true;
                            resultadoCotacao.FornecedorId   = f.Id;
                            //resultadoCotacao.Observacao = "Precificação automática";
                            resultadoCotacao.CotacaoId          = cotacaoPedidos[i].FirstOrDefault().CotacaoId;
                            resultadoCotacao.ProdutoId          = z.ProdutoId;
                            resultadoCotacao.PrecoNegociadoUnit = !f.Produtos.Any() ? 0 :
                                                                  existeProdutosFornecedor
                                ?
                                                                  Math.Round((f.Produtos.FirstOrDefault(x => x.ProdutoId == z.ProdutoId).Valor -
                                                                              (f.Produtos.FirstOrDefault(x => x.ProdutoId == z.ProdutoId)
                                                                               .ListaQuantidadeDesconto.Where(w => w.QuantidadeMinima <= z.Quantidade).OrderByDescending(ob
                                                                                                                                                                         =>
                                                                                                                                                                         ob.QuantidadeMinima).FirstOrDefault().PercentualDesconto *
                                                                               f.Produtos.FirstOrDefault(x => x.ProdutoId == z.ProdutoId).Valor
                                                                              ) / 100), 2)
                                :
                                                                  f.Produtos.FirstOrDefault(x => x.ProdutoId == z.ProdutoId).Valor;

                            resultadoCotacao.Qtd = z.Quantidade;

                            _resultadoCotacao.Add(resultadoCotacao);


                            if (!listCotacaoId.Select(x => x.Key).Contains(resultadoCotacao.CotacaoId))
                            {
                                listCotacaoId.Add(new KeyValuePair <int, DateTime>(resultadoCotacao.CotacaoId, cotacaoPedidos[i].FirstOrDefault().Cotacao.DtFechamento));
                            }

                            if (!categoriasFornecedores.Contains(categoria))
                            {
                                categoriasFornecedores.Add(categoria);
                            }
                        }
                    });


                    Emails emailPrecificacao = new Emails()
                    {
                        EmailDestinatario = f.Pessoa.Usuarios.FirstOrDefault().UsuarioEmail,
                        CorpoEmail        = _templateEmail.GetSingle(34).Template.Replace("#CotacaoId#", cotacaoPedidos[i].FirstOrDefault().CotacaoId.ToString()),
                        AssuntoEmail      = $"Cotação {cotacaoPedidos[i].FirstOrDefault().CotacaoId} respondida automaticamente.",
                        Status            = Status.NaoEnviado,
                        Origem            = Origem.PrecificacaoAutomaticaCotacaoFornecedor,
                        DtCriacao         = DateTime.Now,
                        UsuarioCriacao    = f.Pessoa.Usuarios.FirstOrDefault(),
                        Ativo             = true
                    };

                    _emailsRep.Add(emailPrecificacao);

                    _unitOfWork.Commit();
                }
            });

            var listCotacaoUsuarios = new List <CotacaoUsuarios>();
            var fornecedor          = this._fornecedoRep.FindBy(x => x.FornecedorCategorias.Any(y => categoriasFornecedores.Contains(y.CategoriaId))).Select(x => x.PessoaId).ToList();
            var usuarios            = this._usuarioRep.FindBy(x => fornecedor.Contains(x.PessoaId) && !string.IsNullOrEmpty(x.TokenSignalR)).ToList();

            if (listCotacaoId.Count > 0 && usuarios.Count > 0)
            {
                listCotacaoId.ForEach(x =>
                {
                    usuarios.ForEach(u =>
                    {
                        var cotacaoGroup = CotacaoProdsGroup(u.Id, (int)x.Key);

                        listCotacaoUsuarios.Add(new CotacaoUsuarios
                        {
                            CotacaoId             = x.Key,
                            TokenUsuario          = u.TokenSignalR,
                            CotacaoGrupo          = cotacaoGroup,
                            DataFechamentoCotacao = x.Value
                        });
                    });
                });
            }

            return(listCotacaoUsuarios);
        }
 public RecuperaSenha getRecuperaSenha(RecuperaSenha objRecuperaSenha)
 {
     return(_recuperaSehnaRep.GetAll().Where(x => x.Chave == objRecuperaSenha.Chave && x.DtExpira > DateTime.Now).FirstOrDefault());
 }
        public List <Cotacao> ListarCotacoesPendentes()
        {
            var retorno = _cotacaoRep.GetAll().Where(w => w.StatusSistemaId == 25 || w.StatusSistemaId == 26).ToList();

            return(retorno);
        }
        public List <RetornoAvisos> VerificaNovoFornecedorCadastrado(int tipoAvisosId, DateTime pDataPesquisa)
        {
            List <RetornoAvisos> listaRetorno = new List <RetornoAvisos>();

            List <int> lCat  = new List <int>();
            List <int> lFCid = new List <int>();


            var lFornCat = _FornecedorRep.GetAll().Where(w => w.DtCriacao >= pDataPesquisa).Select(s => s.FornecedorCategorias).ToList();
            var lFornReg = _FornecedorRep.GetAll().Where(w => w.DtCriacao >= pDataPesquisa).Select(s => s.FornecedorRegiao).ToList();

            foreach (var itemFornCat in lFornCat)
            {
                foreach (var itemCat in itemFornCat)
                {
                    lCat.Add(itemCat.Categoria.Id);
                }
            }

            foreach (var itemFornReg in lFornReg)
            {
                foreach (var itemReg in itemFornReg)
                {
                    lFCid.Add(itemReg.Cidade.Id);
                }
            }

            var lmembro = _membroRep.GetAll().Where(w => w.MembroCategorias.Where(ww => lCat.Contains(ww.CategoriaId)).Any() &&
                                                    w.Pessoa.Enderecos.Where(we => lFCid.Contains(we.CidadeId)).Any()).ToList();

            List <int> lPessoaMembroForaFranquia = lmembro.Where(w => w.FranquiaId == null || w.FranquiaId == 0).Select(s => s.PessoaId).ToList();
            //Membro de Franquias
            var        lFranquia       = lmembro.Where(w => w.FranquiaId != null && w.FranquiaId > 0).Select(s => s.FranquiaId).ToList();
            List <int> lPessoaFranquia = new List <int>();

            if (lFranquia.Any())
            {
                lPessoaFranquia = _franquiaRep.GetAll().Where(w => lFranquia.Contains(w.Id)).Select(s => s.PessoaId).ToList();
            }


            var lUsuForaFranquia = _usuarioRep.GetAll().Where(u => lPessoaMembroForaFranquia.Contains(u.PessoaId)).ToList();

            foreach (var usu in lUsuForaFranquia)
            {
                var retEnviarEmail = false;
                var retEnviarSMS   = false;
                var retNovoAviso   = false;

                //Pega o Registro do Aviso para validar se necessário novo envio de email, caso não tiver deve ser criado um registro
                var novoAviso = _avisosRep.GetAll().FirstOrDefault(av => av.TipoAvisosId == tipoAvisosId &&
                                                                   av.UsuarioNotificadoId == usu.Id &&
                                                                   av.IdReferencia == usu.PessoaId);
                if (novoAviso == null)
                {
                    retNovoAviso = true;
                }

                //Valida Se Necessário enviar email
                if (PodeEnviarNotificacao(usu.Id, tipoAvisosId, TipoAlerta.EMAIL) && !retNovoAviso && novoAviso.DataUltimoAviso.AddDays(1) < DateTime.Now)
                {
                    retEnviarEmail = true;
                }

                //Valida se necessário enviar SMS
                if (PodeEnviarNotificacao(usu.Id, tipoAvisosId, TipoAlerta.SMS) && !retNovoAviso && novoAviso.DataUltimoAviso.AddDays(1) < DateTime.Now)
                {
                    retEnviarSMS = true;
                }

                //Cria lista com dados para envio.
                listaRetorno.Add(new RetornoAvisos
                {
                    EnviarEmail = retEnviarEmail,
                    EnviarSMS   = retEnviarSMS,
                    NovoAviso   = retNovoAviso,
                    Usuario     = usu,
                    Aviso       = novoAviso
                });
            }

            // Verifica se tem novos para Franquia
            if (lPessoaFranquia.Any())
            {
                var lUsuFranquia = _usuarioRep.GetAll().Where(u => lPessoaFranquia.Contains(u.PessoaId)).ToList();
                foreach (var usu in lUsuFranquia)
                {
                    var retEnviarEmail = false;
                    var retEnviarSMS   = false;
                    var retNovoAviso   = false;

                    //Pega o Registro do Aviso para validar se necessário novo envio de email, caso não tiver deve ser criado um registro
                    var novoAviso = _avisosRep.GetAll().FirstOrDefault(av => av.TipoAvisosId == tipoAvisosId &&
                                                                       av.UsuarioNotificadoId == usu.Id &&
                                                                       av.IdReferencia == usu.PessoaId);
                    if (novoAviso == null)
                    {
                        retNovoAviso = true;
                    }

                    //Valida Se Necessário enviar email
                    if (PodeEnviarNotificacao(usu.Id, tipoAvisosId, TipoAlerta.EMAIL) && !retNovoAviso && novoAviso.DataUltimoAviso.AddDays(1) < DateTime.Now)
                    {
                        retEnviarEmail = true;
                    }

                    //Valida se necessário enviar SMS
                    if (PodeEnviarNotificacao(usu.Id, tipoAvisosId, TipoAlerta.SMS) && !retNovoAviso && novoAviso.DataUltimoAviso.AddDays(1) < DateTime.Now)
                    {
                        retEnviarSMS = true;
                    }

                    //Cria lista com dados para envio.
                    listaRetorno.Add(new RetornoAvisos
                    {
                        EnviarEmail = retEnviarEmail,
                        EnviarSMS   = retEnviarSMS,
                        NovoAviso   = retNovoAviso,
                        Usuario     = usu,
                        Aviso       = novoAviso
                    });
                }
            }

            //retorna lista
            return(listaRetorno);
        }
        public List <Pedido> ListarPedidosPendentes(Enum pCliente)
        {
            bool CotacapoAceiteMembro = true;

            // Status pedido em cotacao
            int statusIdPend     = 0;
            int statusIdPendHist = 0;

            if ((TipoCliente)pCliente == TipoCliente.Membro)
            {
                //Status pedido Aguardando Membro
                statusIdPend     = _statusSistemaRep.GetAll().FirstOrDefault(x => x.WorkflowStatusId == 12 && x.Ordem == 3).Id;
                statusIdPendHist = statusIdPend;
            }
            else
            {
                //Status pedido Aguardando Fornecedor
                statusIdPend     = _statusSistemaRep.GetAll().FirstOrDefault(x => x.WorkflowStatusId == 12 && x.Ordem == 4).Id;
                statusIdPendHist = _statusSistemaRep.GetAll().FirstOrDefault(x => x.WorkflowStatusId == 12 && x.Ordem == 3).Id;
            }

            List <Pedido> lPedidoPendente           = _pedidoRep.FindBy(p => p.StatusSistemaId == statusIdPend).ToList();
            List <Pedido> lPedidoIdPendenteAtrasado = new List <Pedido>();
            Pedido        pedidoAtrasado            = null;

            foreach (Pedido item in lPedidoPendente)
            {
                var objRet = _histStatusPedidoRep.GetAll().FirstOrDefault(hp => hp.PedidoId == item.Id &&
                                                                          hp.StatusSistemaId == statusIdPendHist
                                                                          );

                if (objRet != null)
                {
                    pedidoAtrasado = objRet.Pedido;
                }
                if (pedidoAtrasado != null)
                {
                    CotacapoAceiteMembro = true;

                    if ((TipoCliente)pCliente == TipoCliente.Fornecedor)
                    {
                        //Verifica se Todos os pedidos da cotação foram aceitos pelo membro, para ai sim avisar o fornecedor.
                        CotacaoPedidos        lcotPed = _cotacaoPedidoRep.GetAll().FirstOrDefault(lp => lp.PedidoId == item.Id);
                        List <CotacaoPedidos> lcot    = _cotacaoPedidoRep.GetAll().Where(cpr => cpr.CotacaoId == lcotPed.CotacaoId).ToList();
                        foreach (CotacaoPedidos itemCot in lcot)
                        {
                            if (itemCot.Pedido.StatusSistemaId != statusIdPend)
                            {
                                CotacapoAceiteMembro = false;
                            }
                        }
                    }

                    if (CotacapoAceiteMembro)
                    {
                        lPedidoIdPendenteAtrasado.Add(pedidoAtrasado);
                    }
                }
            }

            return(lPedidoIdPendenteAtrasado);
        }