private void TrataFornecedorNovaCotacao(TipoAvisos pTipoAviso) { try { NotificacoesAlertasService NAService = new NotificacoesAlertasService(); EmailService EmailSrv = new EmailService(); SmsService SmsSrv = new SmsService(); var _templateEmail = EmailSrv.BuscaTemplate(41); var qtdHoraEnvioNotificacao = Convert.ToInt32(NAService.GetParametroSistema("NOTIF_FECH_COTACAO")); List <EntidadeCotacao.Cotacao> listaPedidoMembro = NAService.ListarCotacoesPendentes(); foreach (EntidadeCotacao.Cotacao item in listaPedidoMembro) { var qtdItens = item.CotacaoPedidos.SelectMany(x => x.Pedido.ItemPedidos).Sum(q => q.Quantidade); var frase = qtdItens > 1 ? $"{qtdItens} itens" : $"{qtdItens} item"; var mensagemSms = $"Economiza Já - Daqui a pouco a cotação {item.Id} irá encerrar, temos {frase} para você dar o preço, não deixe de faturar. Se já respondeu desconsiderar este aviso."; var templateCompleto = _templateEmail.Replace("#CotacaoId#", item.Id.ToString()).Replace("#Frase#", frase); List <EntidadeUsuario.Usuario> listaUsuario = NAService.UsuariosFornecedoresResponderCotacao(item, qtdHoraEnvioNotificacao); foreach (EntidadeUsuario.Usuario usuario in listaUsuario) { EmailSrv.EnviarEmailViaRobo(NAService.UsuarioRobo(), $"Economiza Já - Daqui a pouco a cotação {item.Id} irá encerrar.", usuario.UsuarioEmail, templateCompleto, Origem.NovaCotacao); SmsSrv.EnviaSms(usuario.Pessoa.Telefones.Select(t => t.DddCel).FirstOrDefault() + usuario.Pessoa.Telefones.Select(t => t.Celular).FirstOrDefault(), mensagemSms, TipoOrigemSms.NovaCotacao); } } } catch (Exception ex) { throw new Exception("Erro ao enviar email ou sms", ex); } }
private void TrataFornecedorNovaCotacao(TipoAvisos pTipoAviso) { try { NotificacoesAlertasService NAService = new NotificacoesAlertasService(); EmailService EmailSrv = new EmailService(); SmsService SmsSrv = new SmsService(); List <EntidadeCotacao.Cotacao> listaPedidoMembro = NAService.ListarCotacoesPendentes(); foreach (EntidadeCotacao.Cotacao item in listaPedidoMembro) { List <RetornoAvisos> listaUsuario = NAService.TrataNovaCotacaoFornecedor(item, pTipoAviso.Id); foreach (RetornoAvisos retAviso in listaUsuario) { //Enviar Email if (retAviso.EnviarEmail) { EmailSrv.EnviarEmailViaRobo( NAService.UsuarioRobo(), "Pendência dar lance na Cotação", retAviso.Usuario.UsuarioEmail, "corpoemail Pendente dar lance na Cotação", Origem.NovaCotacao); } //Enviar SMS if (retAviso.EnviarSMS) { SmsSrv.EnviaSms(retAviso.Usuario.Pessoa.Telefones.Select(t => t.DddCel).FirstOrDefault() + retAviso.Usuario.Pessoa.Telefones.Select(t => t.Celular).FirstOrDefault(), "Economiza Já - Cotação aguardnado seu lance.", TipoOrigemSms.PedidosPendentesAprovacaoMembro); } if (retAviso.EnviarEmail || retAviso.EnviarSMS) { NAService.AtualizaDataAviso(retAviso.Aviso, NAService.UsuarioRobo().Id); } //Grava Aviso ////if (retAviso.NovoAviso) ////{ //// NAService.AddAvisos( //// new Avisos() //// { //// Ativo = true, //// //Pedido = item, //// IdReferencia = item.Id, //// DataUltimoAviso = DateTime.Now, //// ExibeNaTelaAvisos = true, //// TipoAvisosId = pTipoAviso.Id, //// URLPaginaDestino = "/#/cotacoes", //// TituloAviso = "Cotação Pendente de Lance", //// ToolTip = "Cotação Pendente de Lance", //// DescricaoAviso = "Cotação Pendente de Lance " + item.Id, //// ModuloId = pTipoAviso.ModuloId, //Modulo Membro //// UsuarioNotificadoId = retAviso.Usuario.Id //// }); ////} } } NAService.LimparTabelAvisosPorNovasCotacoesFornecedor(listaPedidoMembro, pTipoAviso.Id); } catch (Exception) { throw; } }