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; })); }
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; })); }
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; })); }
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); }
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; })); }
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; })); }
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; })); }
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); }
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; })); }
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; })); }
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); }