public override bool EstaBatido(IIndexacaoMapeada indexacaoMapeada)
        {
            var comparador = this.criadorDeComparador.Cria(indexacaoMapeada.Indexacao.Campo.TipoCampo);

            var batido = comparador.SaoIguais(
                indexacaoMapeada.ObterValorParaBatimento(),
                indexacaoMapeada.ValorReconhecido.Value);

            if (batido == false)
            {
                if (this.proximaTentativa.NaoTemConteudo() == false)
                {
                    batido = this.proximaTentativa.EstaBatido(indexacaoMapeada);
                }
            }

            return(batido);
        }
 public abstract bool EstaBatido(IIndexacaoMapeada indexacaoMapeada);
Beispiel #3
0
        public override bool EstaBatido(IIndexacaoMapeada indexacaoMapeada)
        {
            if (this.PodeProcessarCampo(indexacaoMapeada.Campo) == false)
            {
                return(false);
            }

            var indexacaoCompleta = indexacaoMapeada
                                    .Indexacao
                                    .Documento
                                    .Indexacao;

            var valoresReconhecidos = this.valorReconhecidoRepositorio
                                      .ObtemPorDocumento(indexacaoMapeada.Indexacao.Documento.Id);

            var cepDoCadastro = this.ObterValorCampoCepDoCadastroDoBanco(indexacaoCompleta);

            var endereco = this.ObtemEnderecoDoCepCoincidenteDoReconhecimento(valoresReconhecidos, cepDoCadastro);

            if (endereco.Cep.Equals(0) == false)
            {
                if (this.tagRepositorio.ObterValorPorNome("BATE_END_ANTES_DE_ATRIBUIR", "true").ToBoolean() == false)
                {
                    var observacao = string.Format(
                        "Campo [{0}] do documento {1} batido pelo serviço de cep sem batimento",
                        indexacaoMapeada.Indexacao.Campo.Description,
                        indexacaoMapeada.Indexacao.Documento.Id);

                    this.gravaLogDocumentoServico.Executar(
                        LogDocumento.AcaoDocumentoOcr,
                        indexacaoMapeada.Indexacao.Documento.Id,
                        observacao);

                    if (indexacaoMapeada.Indexacao.Campo.Id.Equals(858))
                    {
                        if (string.IsNullOrEmpty(indexacaoMapeada.Indexacao.ObterValorParaBatimento()) ||
                            string.IsNullOrWhiteSpace(indexacaoMapeada.Indexacao.ObterValorParaBatimento()))
                        {
                            Log.Application.InfoFormat(
                                "Para indexacao [{0}] do campo complemento com valor null ou espaçado foi [{1}] Comparador:{2}",
                                indexacaoMapeada.Indexacao.Id,
                                true,
                                "BATE_END_ANTES_DE_ATRIBUIR");
                        }
                    }

                    return(true);
                }
            }

            var comparador    = this.criadorDeComparador.Cria(indexacaoMapeada.Indexacao.Campo.TipoCampo);
            var valorEndereco = this.CriarRetornoEndereco(endereco);

            var batido = comparador.SaoIguais(
                indexacaoMapeada.ObterValorParaBatimento(),
                valorEndereco[indexacaoMapeada.Indexacao.Campo.ReferenciaArquivo]);

            if (batido)
            {
                var observacao = string.Format(
                    "Campo [{0}] do documento {1} batido pelo serviço de cep com batimento",
                    indexacaoMapeada.Indexacao.Campo.Description,
                    indexacaoMapeada.Indexacao.Documento.Id);

                this.gravaLogDocumentoServico.Executar(
                    LogDocumento.AcaoDocumentoOcr,
                    indexacaoMapeada.Indexacao.Documento.Id,
                    observacao);
            }

            if (indexacaoMapeada.Indexacao.Campo.Id.Equals(858))
            {
                if (string.IsNullOrEmpty(indexacaoMapeada.Indexacao.ObterValorParaBatimento()) ||
                    string.IsNullOrWhiteSpace(indexacaoMapeada.Indexacao.ObterValorParaBatimento()))
                {
                    Log.Application.InfoFormat(
                        "Para indexacao [{0}] do campo complemento com valor null ou espaçado foi [{1}] Comparador:{2}",
                        indexacaoMapeada.Indexacao.Id,
                        batido,
                        comparador);
                }
            }

            return(batido);
        }
Beispiel #4
0
 public BatimentoDocumento(IIndexacaoMapeada indexacaoMapeada)
 {
     this.indexacaoMapeada = indexacaoMapeada;
 }