protected function processarDetalhe(array $detalhe)
{
$i = $this->i;
$this->detalhe[$i] = new Detalhe($detalhe);
$this->detalhe[$i]->numeroControle = Util::controle2array($this->rem(38, 62, $detalhe));
$this->detalhe[$i]->numero = $this->rem(63, 70, $detalhe);
$this->detalhe[$i]->nossoNumero = $this->rem(86, 93, $detalhe);
$this->detalhe[$i]->nossoNumeroDigito = $this->rem(94, 94, $detalhe);
$this->detalhe[$i]->numeroDocumento = $this->rem(117, 126, $detalhe);
$this->detalhe[$i]->ocorrencia = $this->rem(109, 110, $detalhe);
$this->detalhe[$i]->dataOcorrencia = $this->rem(111, 116, $detalhe);
$this->detalhe[$i]->dataCredito = $this->rem(296, 301, $detalhe);
$this->detalhe[$i]->dataVencimento = $this->rem(147, 152, $detalhe);
$this->detalhe[$i]->confTituloBanco = $this->rem(127, 134, $detalhe);
$this->detalhe[$i]->bancoCobrador = $this->rem(166, 168, $detalhe);
$this->detalhe[$i]->agenciaCobradora = $this->rem(169, 172, $detalhe);
$this->detalhe[$i]->agenciaCobradoraDigito = $this->rem(173, 173, $detalhe);
$this->detalhe[$i]->especie = $this->rem(174, 175, $detalhe);
$this->detalhe[$i]->valor = Util::nFloat($this->rem(153, 165, $detalhe) / 100);
$this->detalhe[$i]->valorTarifa = Util::nFloat($this->rem(176, 188, $detalhe) / 100);
$this->detalhe[$i]->valorIOF = Util::nFloat($this->rem(215, 227, $detalhe) / 100);
$this->detalhe[$i]->valorAbatimento = Util::nFloat($this->rem(228, 240, $detalhe) / 100);
$this->detalhe[$i]->valorDesconto = Util::nFloat($this->rem(241, 253, $detalhe) / 100);
$this->detalhe[$i]->valorRecebido = Util::nFloat($this->rem(254, 266, $detalhe) / 100);
$this->detalhe[$i]->valorMora = Util::nFloat($this->rem(267, 279, $detalhe) / 100);
$this->detalhe[$i]->valorOutrosCreditos = Util::nFloat($this->rem(280, 292, $detalhe) / 100);
$this->detalhe[$i]->valorComplementar = Util::nFloat($this->rem(312, 324, $detalhe) / 100);
$this->detalhe[$i]->dda = $this->rem(293, 293, $detalhe);
$this->detalhe[$i]->instrucaoCancelada = $this->rem(302, 305, $detalhe);
$this->detalhe[$i]->dataComplementar = $this->rem(306, 311, $detalhe);
$this->detalhe[$i]->sacadoNome = $this->rem(325, 354, $detalhe);
$this->detalhe[$i]->motivosRejeicao = str_split($this->rem(378, 385, $detalhe), 2);
$this->detalhe[$i]->liquidacaoCodigo = $this->rem(393, 394, $detalhe);
$this->detalhe[$i]->liquidacaoNome = 'Desconhecido';
$this->detalhe[$i]->ocorrenciaNome = $this->ocorrencias[$this->detalhe[$i]->get('ocorrencia', 'XX', true)];
$this->detalhe[$i]->especieNome = $this->especies[$this->detalhe[$i]->get('especie', 'XX', true)];
$this->detalhe[$i]->bancoCobradorNome = $this->bancos[$this->detalhe[$i]->get('bancoCobrador', 'XXX', true)];
$this->detalhe[$i]->dataOcorrencia = $this->detalhe[$i]->get('dataOcorrencia', false, true) ? Carbon::createFromFormat('dmy', $this->detalhe[$i]->get('dataOcorrencia'))->setTime(0, 0, 0) : null;
$this->detalhe[$i]->dataVencimento = $this->detalhe[$i]->get('dataVencimento', false, true) ? Carbon::createFromFormat('dmy', $this->detalhe[$i]->get('dataVencimento'))->setTime(0, 0, 0) : null;
$this->detalhe[$i]->dataCredito = $this->detalhe[$i]->get('dataCredito', false, true) ? Carbon::createFromFormat('dmy', $this->detalhe[$i]->get('dataCredito'))->setTime(0, 0, 0) : null;
$this->detalhe[$i]->dataComplementar = $this->detalhe[$i]->get('dataComplementar', false, true) ? Carbon::createFromFormat('dmy', $this->detalhe[$i]->get('dataComplementar'))->setTime(0, 0, 0) : null;
if (in_array($this->detalhe[$i]->get('ocorrencia'), ['06', '07', '08', '10'])) {
$this->detalhe[$i]->liquidacaoNome = $this->liquidacoes[$this->detalhe[$i]->get('liquidacaoCodigo', 'XX', true)];
$this->totais['liquidados']++;
$this->detalhe[$i]->setTipoOcorrencia(Detalhe::OCORRENCIA_LIQUIDADA);
} elseif (in_array($this->detalhe[$i]->get('ocorrencia'), ['02', '64', '71', '73'])) {
$this->totais['entradas']++;
$this->detalhe[$i]->setTipoOcorrencia(Detalhe::OCORRENCIA_ENTRADA);
} elseif (in_array($this->detalhe[$i]->get('ocorrencia'), ['05', '09', '32', '47', '59', '72'])) {
$this->totais['baixados']++;
$this->detalhe[$i]->setTipoOcorrencia(Detalhe::OCORRENCIA_BAIXADA);
} elseif (in_array($this->detalhe[$i]->get('ocorrencia'), ['03', '15', '16', '60', '03'])) {
$this->totais['erros']++;
$this->detalhe[$i]->setErro('Desconhecido');
} else {
$this->totais['alterados']++;
$this->detalhe[$i]->setTipoOcorrencia(Detalhe::OCORRENCIA_ALTERACAO);
}
$this->i++;
}