Ejemplo n.º 1
0
        public ActionResult ConsultarSpc([Bind(Include = "ContaPesquisaId, Reprocessar, CondicaoPagamentoId, LimiteCredito, Observacao")] AnaliseCreditoViewModel viewModel)
        {
            WsSPC.ConsultaSpcResponse consultaSpc = new WsSPC.ConsultaSpcResponse();

            // _analiseCreditoRepositorio.GravarBlackList();

            var contaBusca = _contaRepositorio.ObterContaPorIdAnalise(viewModel.ContaPesquisaId);

            ContaId = viewModel.ContaPesquisaId;
            var consultaspcnew = 0;

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

            if (contaBusca.Blacklist == true)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Cliente não tem permissão para consultar SPC"));
            }

            string tipoPessoa = contaBusca.ClassificacaoFiscal == ClassificacaoFiscal.PF
                   ? "F"
                   : "J";

            string hash = "d41d8cd98f00b204e9800998ecf8427e";

            var analiseCreditoBusca = _analiseCreditoRepositorio.ObterConsultaSpc(contaBusca.Id);

            if (viewModel.Reprocessar == false)
            {
                if (analiseCreditoBusca == null)
                {
                    // pesquisa no web service
                    consultaspcnew = 1;
                    consultaSpc    = _wsSPC.ConsultarSPC(
                        tipoPessoa,
                        contaBusca.Documento.RemoverCaracteresEspeciaisDocumento(),
                        User.ObterId().ToString(),
                        hash);
                }
                else
                {
                    if (!ConsultaVigente(contaBusca, analiseCreditoBusca))
                    {
                        // pesquisa no web service
                        consultaspcnew = 1;
                        consultaSpc    = _wsSPC.ConsultarSPC(
                            tipoPessoa,
                            contaBusca.Documento.RemoverCaracteresEspeciaisDocumento(),
                            User.ObterId().ToString(),
                            hash);
                    }
                    else
                    {
                        // pesquisa no banco
                        consultaSpc = _wsSPC.ConsultarBancoDeDados(contaBusca.Id.ToString(), hash);
                    }
                }
            }
            else
            {
                // sempre pesquisa no web service
                consultaspcnew = 1;
                consultaSpc    = _wsSPC.ConsultarSPC(
                    tipoPessoa,
                    contaBusca.Documento.RemoverCaracteresEspeciaisDocumento(),
                    User.ObterId().ToString(),
                    hash);
            }

            viewModel.ResultadoSPC = consultaSpc;
            if (consultaspcnew == 1)
            {
                var resultadofat = _analiseCreditoRepositorio.GravarPendenciasFinanceiras(contaBusca.Documento.RemoverCaracteresEspeciaisDocumento());
            }

            return(PartialView("_ResultadoSpc", viewModel));
        }