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