private void AntecipacaoCotacaoPedidoMembro(TipoAvisos pTipoAviso) { NotificacoesAlertasService NAService = new NotificacoesAlertasService(); EmailService EmailSrv = new EmailService(); SmsService SmsSrv = new SmsService(); var _templateEmail = EmailSrv.BuscaTemplate(41); var listUsuariosPedido = NAService.AntecipacaoPedidoMembro(); listUsuariosPedido.ForEach(x => { var dataCotacaoHoje = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 12, 0, 0); EmailSrv.EnviarEmailViaRobo(NAService.UsuarioRobo(), $"Economiza Já - Adiantamos o pedido {x.Key} para {dataCotacaoHoje}.", x.Value.UsuarioEmail, _templateEmail, Origem.NovaCotacao); var telefone = $"{x.Value.Telefones.FirstOrDefault(t => t.Ativo).DddCel}{x.Value.Telefones.FirstOrDefault(t => t.Ativo).Celular}"; var mensagemSms = $"Economiza Já - Adiantamos a cotação do pedido {x.Key} para {dataCotacaoHoje}"; SmsSrv.EnviaSms(telefone, mensagemSms, TipoOrigemSms.NovaCotacao); }); }
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 NovoFornecedorAvisoMembro(TipoAvisos pTipoAviso) { try { NotificacoesAlertasService NAService = new NotificacoesAlertasService(); EmailService EmailSrv = new EmailService(); SmsService SmsSrv = new SmsService(); DateTime DtExec = NAService.UltimaExecucaoRotina(pTipoAviso.Id, "NotificacoesAlertas"); List <RetornoAvisos> listaUsuario = NAService.VerificaNovoFornecedorCadastrado(pTipoAviso.Id, DtExec); NAService.GravaExecucaoRotina(pTipoAviso.Id, "NotificacoesAlertas"); foreach (RetornoAvisos retAviso in listaUsuario) { //Enviar Email if (retAviso.EnviarEmail) { EmailSrv.EnviarEmailViaRobo( NAService.UsuarioRobo(), "Novos fornecedores", retAviso.Usuario.UsuarioEmail, "corpoemailNovos Fornecedores para se segmento", 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á - Novos Fornecedores foram cadastrados para seu segmento.", 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 = retAviso.Usuario.PessoaId, DataUltimoAviso = DateTime.Now, ExibeNaTelaAvisos = true, TipoAvisosId = pTipoAviso.Id, URLPaginaDestino = "/#/fornecedor", TituloAviso = "Novos Fornecedores", ToolTip = "Novos Fornecedores", DescricaoAviso = "Novos fornecedores cadastros em seu segmento", ModuloId = pTipoAviso.ModuloId, //Modulo Membro UsuarioNotificadoId = retAviso.Usuario.Id }); } } } catch (Exception) { throw; } }
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; } }
private void TrataAceiteFornecedorParaMembro(TipoAvisos pTipoAviso) { try { NotificacoesAlertasService NAService = new NotificacoesAlertasService(); EmailService EmailSrv = new EmailService(); SmsService SmsSrv = new SmsService(); List <RetornoAvisos> retornoAvisos = new List <RetornoAvisos>(); //Recupera fornecedores Que precisam dar o Aceite para solicitacao do Membro List <MembroFornecedor> listaMembroFornecedor = NAService.ListaPendenciasAceiteFornecedorParaMembro(); foreach (MembroFornecedor item in listaMembroFornecedor) { //Trata Permissão de Envio se Fornecedor quer receber essas informações por Email/SMS retornoAvisos = NAService.TrataPendenciasAceiteFornecedorParaMembro(item, pTipoAviso.Id); foreach (RetornoAvisos retAviso in retornoAvisos) { //Enviar Email if (retAviso.EnviarEmail) { var template = NAService.GetCorpoEmail(9); var corpoEmail = template.Replace("#NomeFornecedor#", retAviso.Usuario.Pessoa.PessoaJuridica.NomeFantasia); corpoEmail = template.Replace("#NomeMembro#", item.Membro.Pessoa.PessoaJuridica.NomeFantasia); EmailSrv.EnviarEmailViaRobo( NAService.UsuarioRobo(), "Pendência Aceite dos Pedidos", retAviso.Usuario.UsuarioEmail, corpoEmail, 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á - Pedido. Aguardando Aprovação dos Pedidos.", TipoOrigemSms.PedidosPendentesAprovacaoMembro); } //Grava Aviso ////if (retAviso.NovoAviso) ////{ //// NAService.AddAvisos( //// new Avisos() //// { //// Ativo = true, //// //Pedido = item, //// IdReferencia = item.MembroId, //// DataUltimoAviso = DateTime.Now, //// ExibeNaTelaAvisos = true, //// TipoAvisosId = pTipoAviso.Id, //// //TipoAviso = pTipoAviso, //// URLPaginaDestino = "/#/membro", //// TituloAviso = "Pendente aceite novo Membro", //// ToolTip = "Novo Membro", //// DescricaoAviso = ("Pendente aceite novo Membro " + item.Membro.Pessoa.PessoaJuridica.NomeFantasia).Substring(0,99), //// ModuloId = 4, //Modulo Fornecedor //// UsuarioNotificadoId = retAviso.Usuario.Id //// }); ////} } } //Limpa tabela de avisos solicitação novo membro para fornecedor NAService.LimparTabelAvisosPorSolicitacaoMembroFornecedor(listaMembroFornecedor, pTipoAviso.Id); } catch (Exception) { throw; } }
private void TrataPedidosPendentesAceiteFornecedor(TipoAvisos pTipoAviso) { try { NotificacoesAlertasService NAService = new NotificacoesAlertasService(); EmailService EmailSrv = new EmailService(); SmsService SmsSrv = new SmsService(); List <RetornoAvisos> retornoAvisos = new List <RetornoAvisos>(); List <Fornecedor> listaFornecedoresUsuarios = new List <Fornecedor>(); List <Pedido> listaPedidoFornecedor = NAService.ListarPedidosPendentes(TipoCliente.Fornecedor); foreach (Pedido item in listaPedidoFornecedor) { listaFornecedoresUsuarios = NAService.ListaFornecedorPedido(item); foreach (Fornecedor itemFornecedor in listaFornecedoresUsuarios.Distinct()) { retornoAvisos = NAService.TrataPedidoFornecedor(item, itemFornecedor, pTipoAviso.Id); foreach (RetornoAvisos retAviso in retornoAvisos) { //Enviar Email if (retAviso.EnviarEmail) { var template = NAService.GetCorpoEmail(18); var corpoEmail = template.Replace("#NomeFantasia#", retAviso.Usuario.Pessoa.PessoaJuridica.NomeFantasia); EmailSrv.EnviarEmailViaRobo( NAService.UsuarioRobo(), "Pendência Aceite do Pedido " + item.Id, retAviso.Usuario.UsuarioEmail, corpoEmail, 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á - Pedido. Aguardando Aprovação do Pedido " + item.Id + ".", 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, //// //TipoAviso = pTipoAviso, //// URLPaginaDestino = "/#/pedidos", //// TituloAviso = "Aceite Pendente", //// ToolTip = "", //// DescricaoAviso = "Aceite Pendente do pedido " + item.Id, //email 18 //// ModuloId = 4, //Modulo Fornecedor //// UsuarioNotificadoId = retAviso.Usuario.Id //// }); ////} } } } //Limpa tabela de Avisos NAService.LimparTabelAvisosPorFornecedor(listaPedidoFornecedor, pTipoAviso.Id); } catch (Exception) { throw; } }
private void TrataPedidosPendentesAceiteMembro(TipoAvisos pTipoAviso) { try { NotificacoesAlertasService NAService = new NotificacoesAlertasService(); EmailService EmailSrv = new EmailService(); SmsService SmsSrv = new SmsService(); List <Pedido> listaPedidoMembro = NAService.ListarPedidosPendentes(TipoCliente.Membro); foreach (Pedido item in listaPedidoMembro) { List <RetornoAvisos> listaUsuario = NAService.TrataPedidoMembro(item, pTipoAviso.Id); foreach (RetornoAvisos retAviso in listaUsuario) { //Enviar Email if (retAviso.EnviarEmail) { var template = NAService.GetCorpoEmail(22); if (retAviso.Usuario.Pessoa.TipoPessoa == TipoPessoa.PessoaJuridica) { var corpoEmail = template.Replace("#NomeFantasia#", retAviso.Usuario.Pessoa.PessoaJuridica.NomeFantasia); EmailSrv.EnviarEmailViaRobo( NAService.UsuarioRobo(), "Corra aprove seu pedido " + item.Id + " valores validos por 2 dias a partir da data de retorno da cotacao, Evite o CANCELAMENTO", retAviso.Usuario.UsuarioEmail, corpoEmail, Origem.NovaCotacao); } else { var corpoEmail = template.Replace("#NomeFantasia#", retAviso.Usuario.Pessoa.PessoaFisica.Nome); EmailSrv.EnviarEmailViaRobo( NAService.UsuarioRobo(), "Corra aprove seu pedido " + item.Id + " valores validos por 2 dias a partir da data de retorno da cotacao, Evite o CANCELAMENTO", retAviso.Usuario.UsuarioEmail, corpoEmail, 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á - Aguardando Aprovação de Pedido " + item.Id + ".", "Economiza Já-Corra aprove seu pedido " + item.Id + " valores validos por 2 dias a partir da data de retorno da cotacao, Evite o CANCELAMENTO", 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 = "/#/meusPedidos", //// TituloAviso = "Aceite Pendente", //// ToolTip = "", //// DescricaoAviso = "Aceite Pendente do pedido " + item.Id, //// ModuloId = 3, //Modulo Membro //// UsuarioNotificadoId = retAviso.Usuario.Id //// }); ////} } } //testar melhor esse trecho para limpar avisos. NAService.LimparTabelAvisosPorMembro(listaPedidoMembro, pTipoAviso.Id); } catch (Exception ex) { throw new Exception("Erro TrataPedidosPendentesAceiteMembro", ex); } }