public ActionResult RecallOportunidade(int recallOportunidadeId, string motivoRecallOportunidade) { var oportunidadeBusca = _oportunidadeRepositorio.ObterOportunidadePorId(recallOportunidadeId); if (oportunidadeBusca == null) { throw new Exception("Oportunidade não encontrada ou já excluída"); } var token = Autenticador.Autenticar(); if (token == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Não foi possível se autenticar no serviço de Recall")); } var ultimoProtocolo = _workflowRepositorio.UltimoProtocolo(oportunidadeBusca.Id, Processo.OPORTUNIDADE); var workflow = new RecallService(token); var retorno = workflow.Recall(new CadastroRecall(ultimoProtocolo, User.ObterLogin(), User.ObterNome(), User.ObterEmail(), motivoRecallOportunidade)); if (retorno == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Nenhuma resposta do serviço de Recall")); } if (retorno.sucesso) { if (oportunidadeBusca.Cancelado) { //_oportunidadeRepositorio.AtualizarStatusOportunidade(StatusOportunidade.ATIVA, oportunidadeBusca.Id); //_oportunidadeRepositorio.AtualizarCancelamentoOportunidade(false, oportunidadeBusca.Id); //_oportunidadeRepositorio.AtualizarDataCancelamentoOportunidade(null, oportunidadeBusca.Id); _oportunidadeRepositorio.PermiteAlterarDataCancelamento(oportunidadeBusca.Id, true); } if (oportunidadeBusca.StatusOportunidade == StatusOportunidade.ENVIADO_PARA_APROVACAO) { _oportunidadeRepositorio.AtualizarStatusOportunidade(null, oportunidadeBusca.Id); } var fichasFaturamento = _oportunidadeRepositorio.ObterFichasFaturamento(oportunidadeBusca.Id); foreach (var ficha in fichasFaturamento) { if (ficha.StatusFichaFaturamento == StatusFichaFaturamento.EM_APROVACAO) { _oportunidadeRepositorio.AtualizarStatusFichaFaturamento(StatusFichaFaturamento.EM_ANDAMENTO, ficha.Id); } } return(Json(new { Processo = Processo.OPORTUNIDADE, RedirectUrl = $"/Oportunidades/Atualizar/{oportunidadeBusca.Id}" }, JsonRequestBehavior.AllowGet)); } return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, retorno.mensagem)); }