示例#1
0
        public void EnviaEmailSmsNovoPedidoItemfornecedor(int pedidoId, int idItem, Usuario usuario, bool existePedParaAprovar)
        {
            Pedido pedido = _pedidoRep.GetSingle(pedidoId);

            var itensPedido = pedido.ItemPedidos.Where(x => x.Id == idItem).ToList();
            var fornecedor  = itensPedido.FirstOrDefault().Fornecedor;

            var usuarioFornecedor = fornecedor.Pessoa.Usuarios.FirstOrDefault(x => x.Ativo);


            var textoItemOuPedido        = existePedParaAprovar ? "item" : "pedido ";
            var linkPessoaFisicajuridica = pedido.Membro.Pessoa.TipoPessoa == TipoPessoa.PessoaJuridica ? "pedidos" : "pedidospessoafisica";


            Emails email = new Emails()
            {
                EmailDestinatario = fornecedor.Pessoa.PessoaJuridica.Email,

                CorpoEmail = _templateEmailRep.GetSingle(43).Template
                             .Replace("#Grid#", MontaGridItensPedido(itensPedido))
                             .Replace("#NomeFantasia#", fornecedor.Pessoa.PessoaJuridica.NomeFantasia)
                             .Replace("#ItemOuPedido#", textoItemOuPedido)
                             .Replace("#TipoPessoa#", linkPessoaFisicajuridica),
                AssuntoEmail   = existePedParaAprovar ? $"Economiza Ja - Mais itens do pedido {pedido.Id} para aprovar." : "Economiza Ja - Pedido pendente de aprovação.",
                Status         = Status.NaoEnviado,
                Origem         = Origem.MembroTrocouFornecedorItemCancelado,
                DtCriacao      = DateTime.Now,
                UsuarioCriacao = usuario,
                Ativo          = true
            };

            _emailsRep.Add(email);

            var mensagemSms = existePedParaAprovar ? $"Economiza Já - Mais itens do pedido {pedido.Id} para você aprovar." : $"Economiza Já - Pedido {pedido.Id} pendente de aprovação.";

            _smsService.EnviaSms($"{fornecedor.DddCel}{fornecedor.Celular}",
                                 mensagemSms,
                                 TipoOrigemSms.PedidosPendentesAprovacaoFronecedor,
                                 (int)TipoOrigemSms.MembroTrocaFornecedorItemCancelado);


            foreach (var item in fornecedor.Pessoa.Usuarios)
            {
                var descricaoAviso = existePedParaAprovar ? $"Mais itens do pedido {pedido.Id} para aprovar" :  $"Pedido {pedido.Id} pendente de aprovação";

                var linkAviso = pedido.Membro.Pessoa.TipoPessoa == TipoPessoa.PessoaJuridica ? "/#/pedidos" : "/#/pedidospessoafisica";

                this.InserirAvisos(item,
                                   TipoAviso.PedidoPendentedeAceiteFornecedor,
                                   "Aprovar pedido",
                                   descricaoAviso,
                                   "Aprovar pedido",
                                   linkAviso,
                                   4,
                                   pedido.Id);
            }

            _unitOfWork.Commit();
        }