public async Task <IActionResult> ObterVendedorPorId(int VendedorId)
        {
            try
            {
                var vendedores = await VendedorRepositorio.ObterVendedorPorId(VendedorId);

                return(Ok(vendedores));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
Esempio n. 2
0
        public ActionResult EquipeUsuarios(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction(nameof(Index)));
            }

            var oportunidade = _oportunidadeRepositorio.ObterOportunidadePorId(id.Value);

            if (oportunidade == null)
            {
                RegistroNaoEncontrado();
            }

            var vendedor = _vendedorRepositorio.ObterVendedorPorId(oportunidade.OportunidadeProposta.VendedorId);

            var viewModel = new EquipeOportunidadeViewModel
            {
                OportunidadeId     = oportunidade.Id,
                Proposta           = oportunidade.Identificacao,
                Descricao          = oportunidade.Descricao,
                StatusOportunidade = oportunidade.StatusOportunidade.ToName(),
                Vendedor           = vendedor?.Nome
            };

            var vinculos = _equipeOportunidadeRepositorio.ObterUsuariosVinculados(oportunidade.Id);

            viewModel.Vinculos = vinculos;

            return(View(viewModel));
        }
Esempio n. 3
0
        public ActionResult EquipeUsuarios(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction(nameof(Index)));
            }

            var conta = _contaRepositorio.ObterContaPorId(id.Value);

            if (conta == null)
            {
                RegistroNaoEncontrado();
            }

            var vendedor = _vendedorRepositorio.ObterVendedorPorId(conta.VendedorId);

            if (vendedor == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Esta conta não possui nenhum Vendedor vinculado"));
            }

            var viewModel = new EquipeContaViewModel
            {
                ContaId      = conta.Id,
                Descricao    = conta.Descricao,
                Documento    = conta.Documento,
                VendedorId   = vendedor.Id,
                VendedorNome = vendedor.Nome
            };

            var vinculos = _equipeContaRepositorio.ObterUsuariosVinculados(conta.Id);

            viewModel.Vinculos = vinculos;

            return(View(viewModel));
        }
Esempio n. 4
0
        public void EnviarAdendoParaAprovacao(int id)
        {
            var adendoBusca = _oportunidadeRepositorio.ObterAdendoPorId(id);

            if (adendoBusca == null)
            {
                _logger.Info($"Adendo {adendoBusca.Id} não encontrado");
            }

            var oportunidadeBusca = _oportunidadeRepositorio.ObterOportunidadePorId(adendoBusca.OportunidadeId);

            if (oportunidadeBusca == null)
            {
                _logger.Info($"Oportunidade {oportunidadeBusca.Id} não encontrada");
            }

            if (oportunidadeBusca.OportunidadeProposta == null || oportunidadeBusca.OportunidadeProposta.ModeloId == 0)
            {
                _logger.Info($"A Oportunidade {oportunidadeBusca.Id} não possui nenhum Modelo Vinculado");
            }

            var modelo = _modeloRepositorio.ObterModeloPorId(oportunidadeBusca.OportunidadeProposta.ModeloId);

            var aprovacoes = _workflowRepositorio.ObterAprovacoesPorOportunidade(oportunidadeBusca.Id, Processo.ADENDO);

            if (aprovacoes.Any() && adendoBusca.StatusAdendo == StatusAdendo.ENVIADO)
            {
                _logger.Info($"Já existe uma aprovação pendente para este Adendo {adendoBusca.Id}");
            }

            var token = Autenticador.Autenticar();

            if (token == null)
            {
                _logger.Info("Não foi possível se autenticar no serviço de Workflow");
            }

            var workflow = new WorkflowService(token);

            IEnumerable <dynamic> clientes = null;

            if (adendoBusca.TipoAdendo == TipoAdendo.INCLUSAO_SUB_CLIENTE)
            {
                clientes = _oportunidadeRepositorio
                           .ObterAdendoSubClientesInclusao(adendoBusca.Id)
                           .Select(c => $"{c.Descricao} ({ c.Documento})");
            }

            if (adendoBusca.TipoAdendo == TipoAdendo.INCLUSAO_GRUPO_CNPJ)
            {
                clientes = _oportunidadeRepositorio
                           .ObterAdendoGruposCNPJ(adendoBusca.Id, AdendoAcao.INCLUSAO)
                           .Select(c => $"{c.Descricao} ({ c.Documento})");
            }

            if (adendoBusca.TipoAdendo == TipoAdendo.EXCLUSAO_SUB_CLIENTE)
            {
                clientes = _oportunidadeRepositorio
                           .ObterAdendoSubClientesExclusao(adendoBusca.Id)
                           .Select(c => $"{c.Descricao} ({ c.Documento})");
            }

            if (adendoBusca.TipoAdendo == TipoAdendo.EXCLUSAO_GRUPO_CNPJ)
            {
                clientes = _oportunidadeRepositorio
                           .ObterAdendoGruposCNPJ(adendoBusca.Id, AdendoAcao.EXCLUSAO)
                           .Select(c => $"{c.Descricao} ({ c.Documento})");
            }

            if (adendoBusca.TipoAdendo == TipoAdendo.FORMA_PAGAMENTO)
            {
                var adendoFormaPagamento = _oportunidadeRepositorio
                                           .ObterAdendoFormaPagamento(adendoBusca.Id)
                                           .FormaPagamento
                                           .ToName();

                var lst = new List <string>
                {
                    adendoFormaPagamento
                };

                clientes = lst;
            }

            if (adendoBusca.TipoAdendo == TipoAdendo.ALTERACAO_VENDEDOR)
            {
                var adendoVendedor = _oportunidadeRepositorio
                                     .ObterAdendoVendedor(adendoBusca.Id).VendedorId;

                var vendedor = _vendedorRepositorio.ObterVendedorPorId(adendoVendedor);

                var lst = new List <string>
                {
                    vendedor.Nome
                };

                clientes = lst;
            }

            var oportunidadeDetalhes = _oportunidadeRepositorio.ObterDetalhesOportunidade(oportunidadeBusca.Id);

            var campos = new
            {
                OportunidadeId        = oportunidadeBusca.Id,
                Descricao             = $"A-{adendoBusca.Id}",
                DescricaoOportunidade = oportunidadeBusca.Descricao,
                oportunidadeDetalhes.Conta,
                oportunidadeDetalhes.TabelaId,
                TipoAdendo   = adendoBusca.TipoAdendo.ToName(),
                StatusAdendo = adendoBusca.StatusAdendo.ToName(),
                adendoBusca.DataCadastro,
                adendoBusca.CriadoPor,
                TipoOperacao = modelo.TipoOperacao.ToString(),
                Clientes     = clientes != null?string.Join(",", clientes) : string.Empty
            };

            var retorno = workflow.EnviarParaAprovacao(
                new CadastroWorkflow(Processo.ADENDO, 1, adendoBusca.Id, User.ObterLogin(), User.ObterNome(), User.ObterEmail(), JsonConvert.SerializeObject(campos)));

            if (retorno == null)
            {
                throw new Exception("Nenhuma resposta do serviço de Workflow");
            }

            if (retorno.sucesso == false)
            {
                _logger.Info(retorno.mensagem);
            }

            _workflowRepositorio.IncluirEnvioAprovacao(new EnvioWorkflow(oportunidadeBusca.Id, Processo.ADENDO, retorno.protocolo, retorno.mensagem, User.ObterId()));

            _oportunidadeRepositorio.AtualizarStatusAdendo(StatusAdendo.ENVIADO, adendoBusca.Id);

            _logger.Info($"Adendo {adendoBusca.Id} enviado para Aprovação");
        }