Exemplo n.º 1
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");
        }
Exemplo n.º 2
0
        public void EnviarPremioParceriaParaAprovacao(int id)
        {
            var premioParceriaBusca = _premioParceriaRepositorio.ObterPremioParceriaPorId(id);

            if (premioParceriaBusca == null)
            {
                _logger.Info($"Prêmio Parceria {premioParceriaBusca.Id} não encontrado");
            }

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

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

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

            if (aprovacoes.Any() && premioParceriaBusca.StatusPremioParceria == StatusPremioParceria.EM_APROVACAO)
            {
                _logger.Info($"Já existe uma aprovação pendente para este Prêmio Parceria {premioParceriaBusca.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);

            var premioDetalhes = _premioParceriaRepositorio.ObterDetalhesPremioParceria(premioParceriaBusca.Id);

            var campos = new
            {
                Descricao             = $"P-{premioDetalhes.Id}",
                DescricaoOportunidade = oportunidadeBusca.Descricao,
                ContaDescricao        = oportunidadeBusca.Conta.Descricao,
                premioDetalhes.OportunidadeId,
                ContatoId                 = premioDetalhes.DescricaoContato,
                StatusPremioParceria      = premioDetalhes.DescricaoStatusPremioParceria,
                Instrucao                 = premioDetalhes.DescricaoInstrucao,
                TipoServicoPremioParceria = premioDetalhes.DescricaoServicoPremioParceria,
                Favorecido1               = premioDetalhes.DescricaoFavorecido1,
                Favorecido2               = premioDetalhes.DescricaoFavorecido2,
                Favorecido3               = premioDetalhes.DescricaoFavorecido3,
                PremioReferenciaId        = $"P-{premioDetalhes.PremioReferenciaId}",
                premioDetalhes.Observacoes,
                premioDetalhes.Anexo,
                premioDetalhes.UrlPremio,
                DataUrlPremio = premioDetalhes.DataUrlPremio.DataFormatada(),
                premioDetalhes.EmailFavorecido1,
                premioDetalhes.EmailFavorecido2,
                premioDetalhes.EmailFavorecido3,
                premioDetalhes.CriadoPor,
                TipoOperacao = premioDetalhes.DescricaoTipoOperacao
            };

            var retorno = workflow.EnviarParaAprovacao(
                new CadastroWorkflow(Processo.PREMIO_PARCERIA, 1, premioParceriaBusca.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.PREMIO_PARCERIA, retorno.protocolo, retorno.mensagem, User.ObterId()));

            _premioParceriaRepositorio.AtualizarStatusPremioParceria(StatusPremioParceria.EM_APROVACAO, premioParceriaBusca.Id);

            _logger.Info($"Prêmio Parceria {premioParceriaBusca.Id} enviado para Aprovação");
        }
Exemplo n.º 3
0
        public void EnviarFichaFaturamentoParaAprovacao(int id)
        {
            var fichaFaturamentoBusca = _oportunidadeRepositorio.ObterFichaFaturamentoPorId(id);

            if (fichaFaturamentoBusca == null)
            {
                _logger.Info($"Ficha Faturamento {fichaFaturamentoBusca.Id} não encontrada");
            }

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

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

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

            if (aprovacoes.Any() && fichaFaturamentoBusca.StatusFichaFaturamento == StatusFichaFaturamento.EM_APROVACAO)
            {
                _logger.Info($"Já existe uma aprovação pendente para esta Ficha de Faturamento {fichaFaturamentoBusca.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);

            var conta = _contaRepositorio.ObterContaPorId(oportunidadeBusca.ContaId);

            CondicaoPagamentoFatura condicaoPagamentoFatura = null;

            if (fichaFaturamentoBusca.CondicaoPagamentoFaturamentoId != null)
            {
                condicaoPagamentoFatura = _condicaoPagamentoFaturaRepositorio.ObterCondicoPagamentoPorId(fichaFaturamentoBusca.CondicaoPagamentoFaturamentoId);
            }

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

            var campos = new
            {
                OportunidadeId                 = oportunidadeBusca.Id,
                Descricao                      = $"F-{fichaFaturamentoBusca.Id}",
                DescricaoOportunidade          = oportunidadeBusca.Descricao,
                StatusFichaFaturamento         = fichaFaturamentoBusca.StatusFichaFaturamento.ToName(),
                CondicaoPagamentoFaturamentoId = condicaoPagamentoFatura?.Descricao,
                ContaId     = oportunidadeDetalhes.Conta,
                DataInicio  = oportunidadeDetalhes.DataInicio.DataFormatada(),
                DataTermino = oportunidadeDetalhes.DataTermino.DataFormatada(),
                oportunidadeDetalhes.TabelaId,
                fichaFaturamentoBusca.FaturadoContraId,
                fichaFaturamentoBusca.DiasSemana,
                fichaFaturamentoBusca.DiasFaturamento,
                fichaFaturamentoBusca.DataCorte,
                fichaFaturamentoBusca.EmailFaturamento,
                fichaFaturamentoBusca.ObservacoesFaturamento,
                fichaFaturamentoBusca.AnexoFaturamento,
                oportunidadeDetalhes.TipoOperacao
            };

            var retorno = workflow.EnviarParaAprovacao(
                new CadastroWorkflow(Processo.FICHA_FATURAMENTO, 1, fichaFaturamentoBusca.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.FICHA_FATURAMENTO, retorno.protocolo, retorno.mensagem, User.ObterId()));

            _oportunidadeRepositorio.AtualizarStatusFichaFaturamento(StatusFichaFaturamento.EM_APROVACAO, fichaFaturamentoBusca.Id);

            _logger.Info($"Ficha de Faturamento {fichaFaturamentoBusca.Id} enviada para Aprovação");
        }
Exemplo n.º 4
0
        public void EnviarOportunidadeParaAprovacao(int id, string criadoPor)
        {
            var oportunidadeBusca = _oportunidadeRepositorio.ObterOportunidadePorId(id);

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

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

            var oportunidadeDetalhes = _oportunidadeRepositorio.ObterDetalhesOportunidade(id);

            var usuario = _usuarioRepositorio.ObterUsuarioPorId(criadoPor.ToInt());

            var campos = new
            {
                oportunidadeId = oportunidadeDetalhes.Id,
                oportunidadeDetalhes.Descricao,
                oportunidadeDetalhes.Identificacao,
                ContaId      = oportunidadeDetalhes.Conta,
                ContatoId    = oportunidadeDetalhes.Contato,
                MercadoriaId = oportunidadeDetalhes.Mercadoria,
                oportunidadeDetalhes.Aprovada,
                oportunidadeDetalhes.DataFechamento,
                oportunidadeDetalhes.TabelaId,
                oportunidadeDetalhes.Probabilidade,
                oportunidadeDetalhes.SucessoNegociacao,
                oportunidadeDetalhes.ClassificacaoCliente,
                oportunidadeDetalhes.Segmento,
                oportunidadeDetalhes.EstagioNegociacao,
                oportunidadeDetalhes.StatusOportunidade,
                oportunidadeDetalhes.MotivoPerda,
                oportunidadeDetalhes.TipoDeProposta,
                oportunidadeDetalhes.TipoServico,
                oportunidadeDetalhes.TipoNegocio,
                oportunidadeDetalhes.TipoOperacaoOportunidade,
                oportunidadeDetalhes.RevisaoId,
                oportunidadeDetalhes.Observacao,
                oportunidadeDetalhes.FaturamentoMensalLCL,
                oportunidadeDetalhes.FaturamentoMensalFCL,
                oportunidadeDetalhes.VolumeMensal,
                oportunidadeDetalhes.CIFMedio,
                oportunidadeDetalhes.PremioParceria,
                CriadoPor = usuario.Login,
                oportunidadeDetalhes.TipoOperacao,
                oportunidadeDetalhes.Vendedor,
                oportunidadeDetalhes.FormaPagamento,
                DataInicio  = oportunidadeDetalhes.DataInicio.DataFormatada(),
                DataTermino = oportunidadeDetalhes.DataTermino.DataFormatada()
            };

            var retorno = workflow.EnviarParaAprovacao(
                new CadastroWorkflow(Processo.OPORTUNIDADE, 1, oportunidadeBusca.Id, usuario.Login, usuario.Nome, usuario.Email, JsonConvert.SerializeObject(campos)));

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

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

            var oportunidadeWorkflow = new EnvioWorkflow(oportunidadeBusca.Id, Processo.OPORTUNIDADE, retorno.protocolo, retorno.mensagem, usuario.Id);

            _workflowRepositorio.IncluirEnvioAprovacao(oportunidadeWorkflow);

            if (oportunidadeBusca.StatusOportunidade != StatusOportunidade.CANCELADA)
            {
                oportunidadeBusca.StatusOportunidade = StatusOportunidade.ENVIADO_PARA_APROVACAO;
            }

            _oportunidadeRepositorio.AtualizarStatusOportunidade(oportunidadeBusca.StatusOportunidade, oportunidadeBusca.Id);
        }
Exemplo n.º 5
0
        public ActionResult EnviarParaAprovacao(int processoId, Processo processo, [Bind(Include = "ContaPesquisaId")] AnaliseCreditoViewModel viewModel)
        {
            try
            {
                var contaSessao = _contaRepositorio.ObterContaPorId(viewModel.ContaPesquisaId);
                //string cnpj = razaoSocial.Substring(tamanho - 19, 18).Replace(")", "");
                ////achei
                //
                Session["ContaId"]         = contaSessao.Id;
                Session["RazaoSocial"]     = contaSessao.Descricao;
                Session["FontePagadoraId"] = contaSessao.Id;
                Session["Cnpj"]            = contaSessao.Documento;
                dynamic campos = null;

                var contaEspecifica = _contaRepositorio.ObterContaPorId(viewModel.ContaPesquisaId);

                var analiseCreditoBusca = _analiseCreditoRepositorio.ObterConsultaSpc(processoId);

                if (processo == Processo.ANALISE_DE_CREDITO)
                {
                    if (analiseCreditoBusca == null)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Consulta SPC não localizada!"));
                    }
                    if (analiseCreditoBusca.StatusAnaliseDeCredito == Ecoporto.CRM.Business.Enums.StatusAnaliseDeCredito.APROVADO)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Análise de Crédito dentro do prazo de Validade e está Aprovado!"));
                    }
                    if (analiseCreditoBusca.StatusAnaliseDeCredito == Ecoporto.CRM.Business.Enums.StatusAnaliseDeCredito.REJEITADO)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Análise de Crédito dentro do prazo de Validade e está Rejeitada!"));
                    }
                    if ((analiseCreditoBusca.InadimplenteSpc == false) && (analiseCreditoBusca.InadimplenteEcoporto == false))
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Conta não precisa de Aprovação !"));
                    }
                    if (string.IsNullOrEmpty(analiseCreditoBusca.CondicaoPagamento))
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Conta sem condição de Pagamento !"));
                    }

                    var contaBusca = _contaRepositorio.ObterContaPorIdAnalise(analiseCreditoBusca.ContaId);

                    if (contaBusca == null)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Conta não localizada!"));
                    }

                    var aprovacoes = _workflowRepositorio.ObterAprovacoesAnaliseDeCredito(analiseCreditoBusca.ContaId);

                    if (aprovacoes.Any() && analiseCreditoBusca.StatusAnaliseDeCredito == StatusAnaliseDeCredito.EM_APROVACAO)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Já existe uma aprovação pendente para esta Oportunidade"));
                    }


                    var limiteCreditoCondPgto = _analiseCreditoRepositorio.ObterLimiteDeCreditoPorId(analiseCreditoBusca.ContaId);

                    if (limiteCreditoCondPgto != null)
                    {
                        if (limiteCreditoCondPgto.StatusLimiteCredito == StatusLimiteCredito.PENDENTE)
                        {
                            _analiseCreditoRepositorio.AtualizarlimiteDeCredito(limiteCreditoCondPgto.Id);
                            //EnviarParaAprovacaocond(limiteCreditoCondPgto.Id);
                        }
                    }
                    campos = new
                    {
                        //ContaId = contaBusca.Descricao +" - "+ contaBusca.Documento,
                        ContaId = contaBusca.Id,
                        StatusAnaliseCreditoPEFIN = StatusAnaliseDeCredito.EM_APROVACAO.ToName().Replace("Ã", "A").Replace("ã", "a").Replace("ç", "c").Replace("Ç", "C"),
                        InadimplenteEcoporto      = analiseCreditoBusca.InadimplenteEcoporto.ToSimOuNao().Replace("Ã", "A").Replace("ã", "a").Replace("ç", "c").Replace("Ç", "C"),
                        InadimplenteSPC           = analiseCreditoBusca.InadimplenteSpc.ToSimOuNao().Replace("Ã", "A").Replace("ã", "a").Replace("ç", "c").Replace("Ç", "C"),
                        DividaSPC      = analiseCreditoBusca.TotalDividaSpc,
                        DividaEcoporto = analiseCreditoBusca.TotalDividaEcoporto,
                        CondicaoPagamentoFaturamentoId = analiseCreditoBusca.CondicaoPagamentoDescricao,
                        analiseCreditoBusca.LimiteCredito,
                        Observacao = analiseCreditoBusca.Observacoes,
                        Descricao  = "A - " + analiseCreditoBusca.Id
                    };
                }


                if (processo == Processo.ANALISE_DE_CREDITO_COND_PGTO)
                {
                    var limiteCreditoCondPgtoBusca = _analiseCreditoRepositorio.VerificarLimiteDeCreditoPorId(processoId, viewModel.ContaPesquisaId);

                    if (limiteCreditoCondPgtoBusca == null)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Conta não localizada!"));
                    }
                    if (limiteCreditoCondPgtoBusca.StatusLimiteCredito == StatusLimiteCredito.APROVADO)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Não precisa de Aprovação !"));
                    }

                    var contaBusca = _contaRepositorio.ObterContaPorIdAnalise(limiteCreditoCondPgtoBusca.ContaId);

                    if (contaBusca == null)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Conta não localizada!"));
                    }
                    var aprovacoes = _workflowRepositorio.ObterAprovacoesLimiteDeCredito(processoId);

                    if (aprovacoes.Any() && limiteCreditoCondPgtoBusca.StatusLimiteCredito == StatusLimiteCredito.EM_APROVACAO)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Já existe uma aprovação pendente para esta Oportunidade"));
                    }

                    campos = new
                    {
                        CondicaoPagamentoFaturamentoId = limiteCreditoCondPgtoBusca.CondicaoPagamentoDescricao,
                        ContaId = contaBusca.Descricao + " - " + contaBusca.Documento,
                        InadimplenteEcoporto = limiteCreditoCondPgtoBusca.InadimplenteEcoporto.ToSimOuNao().Replace("Ã", "A").Replace("ã", "a").Replace("ç", "c").Replace("Ç", "C"),
                        DividaEcoporto       = limiteCreditoCondPgtoBusca.TotalDividaEcoporto,
                        StatusCondPagto      = StatusLimiteCredito.EM_APROVACAO.ToName().Replace("Ã", "A").Replace("ã", "a").Replace("ç", "c").Replace("Ç", "C"),
                        limiteCreditoCondPgtoBusca.LimiteCredito,
                        Observacao = limiteCreditoCondPgtoBusca.Observacoes,
                        Descricao  = "P - " + limiteCreditoCondPgtoBusca.Id
                    };
                }

                var token = Autenticador.Autenticar();

                if (token == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Não foi possível se autenticar no serviço de Workflow"));
                }

                var workflow = new WorkflowService(token);

                var retornoWorkflow = workflow.EnviarParaAprovacao(
                    new CadastroWorkflow(
                        processo,
                        1,
                        processoId,
                        User.ObterLogin(),
                        User.ObterNome(),
                        User.ObterEmail(),
                        JsonConvert.SerializeObject(campos)));

                if (retornoWorkflow == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Nenhuma resposta do serviço de Workflow"));
                }

                if (retornoWorkflow.sucesso == false)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, retornoWorkflow.mensagem));
                }
                if (processo == Processo.ANALISE_DE_CREDITO)
                {
                    _analiseCreditoRepositorio.AtualizarSPC(processoId);
                }

                if (processo == Processo.ANALISE_DE_CREDITO_COND_PGTO)
                {
                    _analiseCreditoRepositorio.AtualizarlimiteDeCredito(processoId);
                }
                var workFlowId = _workflowRepositorio.IncluirEnvioAprovacao(
                    new EnvioWorkflow(
                        processoId,
                        processo,
                        retornoWorkflow.protocolo,
                        retornoWorkflow.mensagem,
                        User.ObterId()));

                var resultado = _analiseCreditoRepositorio
                                .ObterSolicitacoesLimiteDeCredito(viewModel.ContaPesquisaId);

                return(PartialView("_SolicitacoesLimiteCredito", resultado));
                //return new HttpStatusCodeResult(HttpStatusCode.NoContent);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }
        }
Exemplo n.º 6
0
        private string  EnviarParaAprovacaocond(int processoId)
        {
            try
            {
                dynamic campos = null;
                var     analiseCreditoBusca = _analiseCreditoRepositorio.ObterConsultaSpc(processoId);

                var limiteCreditoCondPgtoBusca = _analiseCreditoRepositorio.ObterLimiteDeCreditoPorId(processoId);

                if (limiteCreditoCondPgtoBusca == null)
                {
                    return("Conta não localizada!");
                }
                if (limiteCreditoCondPgtoBusca.StatusLimiteCredito == StatusLimiteCredito.APROVADO)
                {
                    return("Não precisa de Aprovação !");
                }

                var contaBusca = _contaRepositorio.ObterContaPorIdAnalise(limiteCreditoCondPgtoBusca.ContaId);

                if (contaBusca == null)
                {
                    return("Conta não localizada!");
                }
                var aprovacoes = _workflowRepositorio.ObterAprovacoesLimiteDeCredito(processoId);

                if (aprovacoes.Any() && limiteCreditoCondPgtoBusca.StatusLimiteCredito == StatusLimiteCredito.EM_APROVACAO)
                {
                    return("Já existe uma aprovação pendente para esta Oportunidade");
                }

                campos = new
                {
                    CondicaoPagamentoFaturamentoId = limiteCreditoCondPgtoBusca.CondicaoPagamentoDescricao,
                    ContaId = contaBusca.Descricao + " - " + contaBusca.Documento,
                    InadimplenteEcoporto = limiteCreditoCondPgtoBusca.InadimplenteEcoporto.ToSimOuNao().Replace("Ã", "A").Replace("ã", "a").Replace("ç", "c").Replace("Ç", "C"),
                    DividaEcoporto       = limiteCreditoCondPgtoBusca.TotalDividaEcoporto,
                    StatusCondPagto      = StatusLimiteCredito.EM_APROVACAO.ToName().Replace("Ã", "A").Replace("ã", "a").Replace("ç", "c").Replace("Ç", "C"),
                    limiteCreditoCondPgtoBusca.LimiteCredito,
                    Observacao = limiteCreditoCondPgtoBusca.Observacoes
                };


                var token = Autenticador.Autenticar();

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

                var workflow = new WorkflowService(token);

                var retornoWorkflow = workflow.EnviarParaAprovacao(
                    new CadastroWorkflow(
                        Processo.ANALISE_DE_CREDITO_COND_PGTO,
                        1,
                        processoId,
                        User.ObterLogin(),
                        User.ObterNome(),
                        User.ObterEmail(),
                        JsonConvert.SerializeObject(campos)));

                if (retornoWorkflow == null)
                {
                    return("Nenhuma resposta do serviço de Workflow");
                }

                if (retornoWorkflow.sucesso == false)
                {
                    return(retornoWorkflow.mensagem);
                }
                _analiseCreditoRepositorio.AtualizarlimiteDeCredito(processoId);

                var workFlowId = _workflowRepositorio.IncluirEnvioAprovacao(
                    new EnvioWorkflow(
                        processoId,
                        Processo.ANALISE_DE_CREDITO_COND_PGTO,
                        retornoWorkflow.protocolo,
                        retornoWorkflow.mensagem,
                        User.ObterId()));

                return("0");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }
        }