예제 #1
0
        public long ObterAtividadeTipoPorNome(string nome)
        {
            var atividadeTipoEntity = _atividadeTipoServico.BuscarPorNome(nome);

            if (atividadeTipoEntity == null)
            {
                return(0);
            }
            var firstOrDefault = atividadeTipoEntity;

            return(firstOrDefault != null ? firstOrDefault.Id : 0);
        }
예제 #2
0
        public ChatViewModel AdicionarAtendimento(string userId, string k)
        {
            var viewModel       = new ChatViewModel();
            var statusAtividade = _statusAtividadeServico.ObterStatusAtividadeChat();
            var tipoAtividade   = _atividadeTipoServico.BuscarPorNome("Chat");
            var canal           = _canalServico.ObterPorNome("chat");
            var atividade       = new Atividade();

            if (!string.IsNullOrEmpty(k))
            {
                atividade = _atividadeServico.ObterPorId(Convert.ToInt64(k));
            }

            if (atividade.AtendimentoId != null)
            {
                var retornoAtendimento = _atendimentoServico.ObterPorId(atividade.AtendimentoId.Value);
                retornoAtendimento.CanalOrigemId = 4;
                _atendimentoServico.Atualizar(retornoAtendimento);
                if (statusAtividade.Any() && tipoAtividade != null)
                {
                    if (atividade.Id > 0)
                    {
                        atividade.AtendimentoId = retornoAtendimento.Id;
                        _atividadeServico.Atualizar(atividade);
                    }

                    IEnumerable <Cliente> listaCliente = new List <Cliente>();

                    if (atividade.PessoasJuridicasId.HasValue)
                    {
                        var pj = _pessoaJuridicaServico.ObterPorId(atividade.PessoasJuridicasId.Value);
                        if (pj != null)
                        {
                            atividade.PessoasJuridicasId = pj.Id;
                            _atividadeServico.Atualizar(atividade);
                            listaCliente = _clienteServico.ObterSugestoes(pj.NomeFantasia, pj.Cnpj, null, null);
                            viewModel.Popular(statusAtividade, retornoAtendimento.Protocolo, listaCliente,
                                              retornoAtendimento.Id, null,
                                              atividade.PessoasJuridicasId.Value, pj.NomeFantasia);
                        }
                    }

                    if (atividade.PessoasFisicasId.HasValue)
                    {
                        var pf = _pessoaFisicaServico.ObterPorId(atividade.PessoasFisicasId.Value);
                        if (pf != null)
                        {
                            atividade.PessoasFisicasId = pf.Id;
                            _atividadeServico.Atualizar(atividade);
                            listaCliente = _clienteServico.ObterSugestoes(pf.Nome, pf.Cpf, null, null);
                            viewModel.Popular(statusAtividade, retornoAtendimento.Protocolo, listaCliente,
                                              retornoAtendimento.Id,
                                              atividade.PessoasFisicasId.Value, null, pf.Nome);
                        }
                    }
                    else
                    {
                        viewModel.Popular(statusAtividade, retornoAtendimento.Protocolo, listaCliente,
                                          retornoAtendimento.Id, null,
                                          null, null);
                    }
                }
                else
                {
                    viewModel.ValidationResult.Add(
                        new ValidationError("Não possui StatusAtividade Cadastrado."));
                }
            }
            else if (statusAtividade.Any() && tipoAtividade != null)
            {
                var atendimento = new Atendimento(userId, _atendimentoServico.GerarNumeroProtocolo(DateTime.Now), null,
                                                  null);
                var firstOrDefault = canal.FirstOrDefault();
                if (firstOrDefault != null)
                {
                    atendimento.CanalOrigemId = firstOrDefault.Id;
                }
                var atendimentoAux = _atendimentoServico.Adicionar(atendimento);
                if (!atendimentoAux.IsValid)
                {
                    return(viewModel);
                }

                if (atividade.Id > 0)
                {
                    atividade.AtendimentoId = atendimento.Id;
                    _atividadeServico.Atualizar(atividade);
                }

                IEnumerable <Cliente> listaCliente = new List <Cliente>();

                if (atividade.PessoasJuridicasId.HasValue)
                {
                    var pj = _pessoaJuridicaServico.ObterPorId(atividade.PessoasJuridicasId.Value);
                    if (pj != null)
                    {
                        atividade.PessoasJuridicasId = pj.Id;
                        _atividadeServico.Atualizar(atividade);
                        listaCliente = _clienteServico.ObterSugestoes(pj.NomeFantasia, pj.Cnpj, null, null);
                        viewModel.Popular(statusAtividade, atendimento.Protocolo, listaCliente, atendimento.Id, null,
                                          atividade.PessoasJuridicasId.Value, pj.NomeFantasia);
                    }
                }

                if (atividade.PessoasFisicasId.HasValue)
                {
                    var pf = _pessoaFisicaServico.ObterPorId(atividade.PessoasFisicasId.Value);
                    if (pf != null)
                    {
                        atividade.PessoasFisicasId = pf.Id;
                        _atividadeServico.Atualizar(atividade);
                        listaCliente = _clienteServico.ObterSugestoes(pf.Nome, pf.Cpf, null, null);
                        viewModel.Popular(statusAtividade, atendimento.Protocolo, listaCliente, atendimento.Id,
                                          atividade.PessoasFisicasId.Value, null, pf.Nome);
                    }
                }
                else
                {
                    viewModel.Popular(statusAtividade, atendimento.Protocolo, listaCliente, atendimento.Id, null,
                                      null, null);
                }
            }
            else
            {
                viewModel.ValidationResult.Add(
                    new ValidationError("Não possui StatusAtividade Cadastrado."));
            }

            return(viewModel);
        }
예제 #3
0
        public bool EmailSenha(string url, string email, string userId)
        {
            int     statusAtividadeId;
            Usuario usuarioSistema;
            var     retorno =
                _emailModeloServico.ObterPor(new EmailModelo {
                NomeDoModelo = "ESQUECI_MINHA_SENHA"
            }).FirstOrDefault();

            //colocar o usuario na tabela de configuração
            var usuarioSigla = _configuracaoServico.ObterPorSigla("USSYS");

            if (usuarioSigla != null)
            {
                usuarioSistema = _usuarioServico.BuscarPorNome(usuarioSigla.Valor).FirstOrDefault();
            }
            else
            {
                return(false);
            }

            if (retorno != null)
            {
                retorno.Html = retorno.Html.Replace("[URL]", url);
            }
            else
            {
                return(false);
            }

            var atividadeTipo = _atividadeTipoServico.BuscarPorNome("Email");

            if (atividadeTipo == null)
            {
                return(false);
            }

            var listaStatusEmail = _statusAtividadeServico.ObterStatusAtividadeEmail();

            if (listaStatusEmail.Any())
            {
                statusAtividadeId =
                    listaStatusEmail.FirstOrDefault(c => c.StatusPadrao && c.FinalizaAtividade == false).Id;
            }
            else
            {
                return(false);
            }

            int?canalId = null;
            {
                var canal = _servicoCanal.ObterCanalEmail();
                if (canal.ValidationResult.IsValid)
                {
                    canalId = canal.Id;
                }
            }

            var atividade = new Atividade(usuarioSistema.Id, statusAtividadeId, atividadeTipo.Id, "Esqueci Minha Senha",
                                          null, null, null, null, null, null, null, null, null, null, null, canalId, null);

            _atividadeServico.Adicionar(atividade);

            _atividadeParteEnvolvidaServico.Adicionar(new AtividadeParteEnvolvida(atividade.Id, null, null, null,
                                                                                  usuarioSistema.Id, "R", usuarioSistema.EnderecoEmail, usuarioSistema.Nome));
            _atividadeParteEnvolvidaServico.Adicionar(new AtividadeParteEnvolvida(atividade.Id, null, null, null, userId,
                                                                                  "D", email, null));

            var _email = new Email(email, userId, atividade.Id, retorno.Html, "S");

            _emailServico.Adicionar(_email);

            var fila = _filaServico.ObterFilasPorNome("EMAIL_TROCA_SENHA").FirstOrDefault();

            if (fila != null)
            {
                _atividadeFilaServico.Adicionar(new AtividadeFila(atividade.Id, fila.Id));
            }
            else
            {
                return(false);
            }

            return(true);
        }
        public ValidationResult AdicionarSolicitacaoLigacaoCorretor(long ocorrenciaId, string criadoPorUserId,
                                                                    string descricao)
        {
            var retorno         = new ValidationResult();
            var statusAtividade = _servicoStatusAtividade.ObterStatusAtividadePadraoParaLigacao();
            var valorEncontrado = statusAtividade != null;

            if (!valorEncontrado)
            {
                retorno.Add(
                    new ValidationError(
                        "Não foi possível cadastrar a solicitação de ligação: nenhum status atividade padrão para ligação retornado"));
                return(retorno);
            }

            valorEncontrado = false;
            var atividadeTipo = _servicoAtividadeTipo.BuscarPorNome("Ligação");

            if (atividadeTipo != null)
            {
                valorEncontrado = true;
            }

            if (!valorEncontrado)
            {
                retorno.Add(
                    new ValidationError(
                        "Não foi possível cadastrar a solicitação de ligação: nenhuma atividade tipo para o nome Ligação foi retornado"));
                return(retorno);
            }

            var ocorrencia = _servicoOcorrencia.ObterPorId(ocorrenciaId);

            var atividade = new Atividade()
            {
                CriadoPorUserId    = criadoPorUserId,
                CriadoEm           = DateTime.Now,
                StatusAtividadeId  = statusAtividade.Id,
                AtividadeTipoId    = atividadeTipo.Id,
                Titulo             = "Ligação Ativa",
                Descricao          = descricao,
                OcorrenciaId       = ocorrenciaId,
                PessoasFisicasId   = ocorrencia.PessoaFisicaId,
                PessoasJuridicasId = ocorrencia.PessoaJuridicaId
            };

            retorno = Adicionar(atividade);

            if (!retorno.IsValid)
            {
                return(retorno);
            }

            var configuracao = new Configuracao();

            configuracao.SetarListaSolicitacaoLigacaoCorretor();
            var nomeFilaSolicitacaoCorretor = _servicoConfiguracao.ObterPor(configuracao);

            valorEncontrado = false;

            if (nomeFilaSolicitacaoCorretor != null)
            {
                if (nomeFilaSolicitacaoCorretor.Any())
                {
                    valorEncontrado = true;
                }
            }

            if (!valorEncontrado)
            {
                retorno.Add(
                    new ValidationError(
                        "Não foi possível cadastrar a solicitação de ligação: nenhuma lista para tratativa de solicitações Corretor cadastrada."));
                return(retorno);
            }

            retorno = _servicoAtividadeFila.AdicionarAtividadeFila(nomeFilaSolicitacaoCorretor.FirstOrDefault().Valor,
                                                                   atividade.Id);

            return(retorno);
        }