public ActionResult Index(int id = 0) { var condicoesPagamento = _condicaoPagamentoFaturaRepositorio.ObterCondicoesPagamento(); var viewModel = new AnaliseCreditoViewModel { ContasPesquisa = new List <Conta>(), CondicoesPagamento = condicoesPagamento, PendenciasFinanceiras = new List <PendenciaFinanceiraDTO>(), ResultadoSPC = new WsSPC.ConsultaSpcResponse(), SolicitacoesLimiteCredito = new List <LimiteCreditoSpcDTO>() }; if (id != 0) { var contaSessao = _contaRepositorio.ObterContaPorId(id); Session["ContaId"] = contaSessao.Id; Session["RazaoSocial"] = contaSessao.Descricao; Session["FontePagadoraId"] = contaSessao.Id; Session["Cnpj"] = contaSessao.Documento; } return(View(viewModel)); }
public ActionResult Atualizar(int?id) { if (id == null) { return(RedirectToAction(nameof(Index))); } var conta = _contaRepositorio.ObterContaPorId(id.Value); if (conta == null) { RegistroNaoEncontrado(); } var viewModel = new ContaViewModel { Id = conta.Id, Descricao = conta.Descricao, SituacaoCadastral = conta.SituacaoCadastral, Segmento = conta.Segmento, ClassificacaoFiscal = conta.ClassificacaoFiscal, Documento = conta.Documento, InscricaoEstadual = conta.InscricaoEstadual, NomeFantasia = conta.NomeFantasia, Telefone = conta.Telefone, VendedorId = conta.VendedorId, CEP = conta.CEP, Logradouro = conta.Logradouro, Numero = conta.Numero, Bairro = conta.Bairro, Estado = conta.Estado, CidadeId = conta.CidadeId, PaisId = conta.PaisId, Complemento = conta.Complemento, CriadoPor = conta.CriadoPor, Blacklist = conta.Blacklist }; var usuario = _usuarioRepositorio.ObterUsuarioPorId(conta.CriadoPor); if (usuario != null) { ViewBag.UsuarioCriacao = usuario.Login; ViewBag.DataCriacao = conta.DataCriacao.DataHoraFormatada(); } PopularCidades(viewModel); PopularPaises(viewModel); PopularVendedores(viewModel); PopularContatos(viewModel); PopularOportunidades(viewModel); PopularVinculosIPs(viewModel); return(View(viewModel)); }
public override void OnActionExecuted(ActionExecutedContext context) { if (context.HttpContext.User.IsInRole("Administrador")) { return; } if (context.HttpContext.User.IsInRole("UsuarioExterno")) { return; } if (HttpContext.Current.Request.QueryString["conta"] == null) { context.Result = new RedirectResult("~/Home/Indisponivel"); return; } var contaId = HttpContext.Current.Request.QueryString["conta"].ToString().ToInt(); var contaBusca = _contaRepositorio .ObterContaPorId(contaId); if (contaBusca == null) { context.Result = new RedirectResult("~/Home/Indisponivel"); return; } var login = HttpContext.Current.User.Identity.Name; var permissoesPorVendedor = _equipeContaRepositorio .ObterPermissoesOportunidadePorVendedor(contaBusca.VendedorId, login); // Usuário esta vinculado a equipe do vendedor da oportunidade? if (permissoesPorVendedor != null) { context.Controller.ViewBag.ContatoSomenteLeitura = permissoesPorVendedor.AcessoConta == 0; } else { // Usuário esta vinculado a equipe da conta relacionada à oportunidade? var permissoesPorConta = _equipeContaRepositorio .ObterPermissoesContaPorConta(contaBusca.Id, login); if (permissoesPorConta != null) { context.Controller.ViewBag.ContatoSomenteLeitura = permissoesPorConta.AcessoConta == 0; } else { context.Controller.ViewBag.ContatoSomenteLeitura = true; } } }
public override void OnActionExecuted(ActionExecutedContext context) { if (context.HttpContext.User.IsInRole("UsuarioExterno")) { if (context.RouteData != null && context.RouteData.Values["id"] == null) { return; } var contaId = context.RouteData.Values["id"].ToString().ToInt(); var conta = _contaRepositorio.ObterContaPorId(contaId); if (conta != null) { if (!_usuarioRepositorio.ExisteVinculoConta(conta.Id, HttpContext.Current.User.ObterId())) { context.Result = new RedirectResult("~/Home/AcessoNegado"); } } } }
public ActionResult VincularConta(int contaId, int usuarioId) { var contaBusca = _contaRepositorio.ObterContaPorId(contaId); if (contaBusca == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Conta não encontrada ou já excluída")); } var usuarioBusca = _usuarioRepositorio.ObterUsuarioPorId(usuarioId); if (usuarioBusca == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Usuário não encontrado")); } _usuarioRepositorio.VincularConta(contaBusca.Id, usuarioBusca.Id); var vinculos = _usuarioRepositorio.ObterVinculosContas(usuarioBusca.Id); return(PartialView("_ConsultaVinculoContas", vinculos)); }
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)); }
public override void OnActionExecuted(ActionExecutedContext context) { if (context.HttpContext.User.IsInRole("Administrador")) { return; } if (context.RouteData != null && context.RouteData.Values["id"] == null) { return; } var oportunidadeId = context.RouteData.Values["id"].ToString().ToInt(); var oportunidadeBusca = _oportunidadeRepositorio .ObterOportunidadePorId(oportunidadeId); if (oportunidadeBusca == null) { context.Result = new RedirectResult("~/Home/Indisponivel"); return; } var contaBusca = _contaRepositorio.ObterContaPorId(oportunidadeBusca.ContaId); if (contaBusca == null) { return; } var login = HttpContext.Current.User.Identity.Name; var vendedor = oportunidadeBusca.OportunidadeProposta.VendedorId == 0 ? contaBusca.VendedorId : oportunidadeBusca.OportunidadeProposta.VendedorId; var permissoesPorVendedor = _equipeContaRepositorio .ObterPermissoesOportunidadePorVendedor(vendedor, login); var usuarioBusca = _usuarioRepositorio.ObterUsuarioPorId(HttpContext.Current.User.ObterId()); // Usuário esta vinculado a equipe do vendedor da oportunidade? if (permissoesPorVendedor != null || usuarioBusca.Vendedor) { if (!usuarioBusca.Vendedor) { context.Controller.ViewBag.OportunidadeSomenteLeitura = permissoesPorVendedor.AcessoOportunidade == 0; } else { context.Controller.ViewBag.OportunidadeSomenteLeitura = false; } } else { // Usuário esta vinculado a equipe da conta relacionada à oportunidade? var permissoesPorConta = _equipeContaRepositorio .ObterPermissoesContaPorConta(oportunidadeBusca.ContaId, login); if (permissoesPorConta != null) { context.Controller.ViewBag.OportunidadeSomenteLeitura = permissoesPorConta.AcessoOportunidade == 0; } else { // Usuário esta vinculado a equipe da oportunidade? var permissoesPorOportunidade = _equipeContaRepositorio.ObterPermissoesPorOportunidade(oportunidadeBusca.Id, login); if (permissoesPorOportunidade != null) { context.Controller.ViewBag.OportunidadeSomenteLeitura = permissoesPorOportunidade.AcessoOportunidade == 0; } else { if (contaBusca == null) { context.Controller.ViewBag.OportunidadeSomenteLeitura = null; } else { context.Controller.ViewBag.OportunidadeSomenteLeitura = true; } } } } }
private void PopularContas(ContatoViewModel viewModel) { var conta = _contaRepositorio.ObterContaPorId(viewModel.ContaId); viewModel.Contas.Add(conta); }
public ActionResult Index(string termo, string chave, string menu) { if (!string.IsNullOrWhiteSpace(termo)) { var contas = _contaRepositorio.ObterContasPorDescricao(termo, (int?)ViewBag.UsuarioExternoId); var contatos = _contatoRepositorio.ObterContatosPorDescricao(termo, (int?)ViewBag.UsuarioExternoId); var mercadorias = _mercadoriaRepositorio.ObterMercadoriaPorDescricao(termo); var modelos = _modeloRepositorio.ObterModelosPorDescricao(termo); var oportunidades = _oportunidadeRepositorio.ObterOportunidadesPorDescricao(termo, (int?)ViewBag.UsuarioExternoId); var subClientes = _oportunidadeRepositorio.ObterSubClientesPorDescricao(termo, (int?)ViewBag.UsuarioExternoId); var clientesGrupo = _oportunidadeRepositorio.ObterClientesGrupoCNPJPorDescricao(termo, (int?)ViewBag.UsuarioExternoId); var adendosSubClientes = _oportunidadeRepositorio.ObterAdendosPorSubClientes(termo, (int?)ViewBag.UsuarioExternoId); var servicos = _servicoRepositorio.ObterServicosPorDescricao(termo); return(View(new BuscaViewModel { Termo = termo, Contas = contas.ToList(), Contatos = contatos.ToList(), Mercadorias = mercadorias.ToList(), Modelos = modelos.ToList(), Oportunidades = oportunidades.ToList(), SubClientes = subClientes.ToList(), ClientesGrupoCNPJ = clientesGrupo.ToList(), Servicos = servicos.ToList(), AdendosSubClientes = adendosSubClientes.ToList() })); } if (!string.IsNullOrWhiteSpace(chave)) { var id = chave.ToInt(); Conta conta = new Conta(); Contato contato = new Contato(); Mercadoria mercadoria = new Mercadoria(); Modelo modelo = new Modelo(); Servico servico = new Servico(); Oportunidade oportunidade = new Oportunidade(); List <OportunidadeDTO> oportunidades = new List <OportunidadeDTO>(); List <ClientePropostaDTO> subClientes = new List <ClientePropostaDTO>(); List <ClientePropostaDTO> clientesGrupo = new List <ClientePropostaDTO>(); List <OportunidadeAdendoClientesDTO> adendosSubClientes = new List <OportunidadeAdendoClientesDTO>(); var viewModel = new BuscaViewModel(); switch (menu) { case "Contas": conta = _contaRepositorio.ObterContaPorId(id); if (ViewBag.UsuarioExternoId != null) { if (!_usuarioRepositorio.ExisteVinculoConta(conta.Id, ViewBag.UsuarioExternoId)) { break; } } if (conta != null) { viewModel.Contas.Add(conta); subClientes = _oportunidadeRepositorio.ObterSubClientesPorConta(conta.Id).ToList(); if (subClientes != null) { viewModel.SubClientes.AddRange(subClientes); } clientesGrupo = _oportunidadeRepositorio.ObterClientesGrupoCNPJPorConta(conta.Id).ToList(); if (clientesGrupo != null) { viewModel.ClientesGrupoCNPJ.AddRange(clientesGrupo); } oportunidades = _oportunidadeRepositorio.ObterOportunidadesPorConta(conta.Id).ToList(); if (oportunidades != null) { viewModel.Oportunidades.AddRange(oportunidades); } } break; case "Contatos": contato = _contatoRepositorio.ObterContatoPorId(id); if (contato != null) { viewModel.Contatos.Add(contato); } break; case "Mercadorias": mercadoria = _mercadoriaRepositorio.ObterMercadoriaPorId(id); if (mercadoria != null) { viewModel.Mercadorias.Add(mercadoria); } break; case "Modelos": modelo = _modeloRepositorio.ObterModeloPorId(id); if (modelo != null) { viewModel.Modelos.Add(modelo); } break; case "Oportunidades": oportunidade = _oportunidadeRepositorio.ObterOportunidadePorId(id); if (ViewBag.UsuarioExternoId != null) { if (!_usuarioRepositorio.ExisteVinculoConta(oportunidade.ContaId, ViewBag.UsuarioExternoId)) { break; } } if (oportunidade != null) { viewModel.Oportunidades.Add(new OportunidadeDTO { Id = oportunidade.Id, Identificacao = oportunidade.Identificacao, Descricao = oportunidade.Descricao, ContaDescricao = oportunidade.Conta.Descricao, SucessoNegociacao = oportunidade.SucessoNegociacao, StatusOportunidade = oportunidade.StatusOportunidade }); } break; case "Serviços": servico = _servicoRepositorio.ObterServicoPorId(id); if (servico != null) { viewModel.Servicos.Add(servico); } break; default: break; } return(View(viewModel)); } return(RedirectToAction("Index", "Home")); }
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"); }
public ActionResult RecallAnaliseCredito(int recallAnaliseId, string motivoRecallAnalise) { var contaSessao = _contaRepositorio.ObterContaPorId(recallAnaliseId); Session["ContaId"] = contaSessao.Id; Session["RazaoSocial"] = contaSessao.Descricao; Session["FontePagadoraId"] = contaSessao.Id; Session["Cnpj"] = contaSessao.Documento; var analiseCreditoBusca = _analiseCreditoRepositorio.ObterConsultaSpc(recallAnaliseId); if (analiseCreditoBusca == null) { throw new Exception("Solicitação não encontrada ou já excluída"); } if (!User.IsInRole("OportunidadesFichas:RecallFichaFaturamento")) { if (!_equipesService.ValidarEquipeOportunidade(analiseCreditoBusca.Id)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Usuário não possui permissão para edição da Solicitacao (Equipes)")); } } 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(analiseCreditoBusca.ContaId, Processo.ANALISE_DE_CREDITO); var workflow = new RecallService(token); var retorno = workflow.Recall(new CadastroRecall(ultimoProtocolo, User.ObterLogin(), User.ObterNome(), User.ObterEmail(), motivoRecallAnalise)); if (retorno == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Nenhuma resposta do serviço de Recall")); } if (retorno.sucesso) { if (analiseCreditoBusca.StatusAnaliseDeCredito == StatusAnaliseDeCredito.EM_APROVACAO) { _analiseCreditoRepositorio.AtualizarSPC1(recallAnaliseId); } //var resultado = _analiseCreditoRepositorio //.ObterSolicitacoesLimiteDeCredito(solicitacaoBusca.ContaId); //return PartialView("_SolicitacoesLimiteCredito", resultado); return(Json(new { Processo = Processo.ANALISE_DE_CREDITO, RedirectUrl = $"/AnaliseCredito/{recallAnaliseId}", }, JsonRequestBehavior.AllowGet)); //return RedirectToAction("Index", "AnaliseCredito", new { id = recallAnaliseId }); } return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, retorno.mensagem)); }