public override void LerDetalheRetornoCNAB240SegmentoT(ref Boleto boleto, string registro) { try { //Nº Controle do Participante boleto.NumeroControleParticipante = registro.Substring(105, 25); //Carteira boleto.Banco.Cedente.ContaBancaria.Carteira = registro.Substring(57, 1); switch (boleto.Banco.Cedente.ContaBancaria.Carteira) { case "3": boleto.Banco.Cedente.ContaBancaria.TipoCarteira = TipoCarteira.CarteiraCobrancaCaucionada; break; case "4": boleto.Banco.Cedente.ContaBancaria.TipoCarteira = TipoCarteira.CarteiraCobrancaDescontada; break; default: boleto.Banco.Cedente.ContaBancaria.TipoCarteira = TipoCarteira.CarteiraCobrancaSimples; break; } //Identificação do Título no Banco boleto.NossoNumero = registro.Substring(39, 17); boleto.NossoNumeroDV = registro.Substring(56, 1); boleto.NossoNumeroFormatado = string.Format("{0}-{1}", boleto.NossoNumero, boleto.NossoNumeroDV); //Identificação de Ocorrência boleto.CodigoOcorrencia = registro.Substring(15, 2); boleto.DescricaoOcorrencia = Cnab.OcorrenciaCnab240(boleto.CodigoOcorrencia); boleto.CodigoOcorrenciaAuxiliar = registro.Substring(213, 10); //Número do Documento boleto.NumeroDocumento = registro.Substring(58, 11); boleto.EspecieDocumento = TipoEspecieDocumento.NaoDefinido; //Valor do Título boleto.ValorTitulo = Convert.ToDecimal(registro.Substring(81, 15)) / 100; boleto.ValorTarifas = Convert.ToDecimal(registro.Substring(198, 15)) / 100; //Data Vencimento do Título boleto.DataVencimento = Utils.ToDateTime(Utils.ToInt32(registro.Substring(73, 8)).ToString("##-##-####")); // Registro Retorno boleto.RegistroArquivoRetorno = boleto.RegistroArquivoRetorno + registro + Environment.NewLine; } catch (Exception ex) { throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 240 / T.", ex); } }
public void LerDetalheRetornoCNAB240SegmentoT(ref Boleto boleto, string registro) { try { //Nº Controle do Participante boleto.NumeroControleParticipante = registro.Substring(100, 25); //Carteira boleto.Carteira = registro.Substring(53, 1); switch (boleto.Carteira) { case "3": case "6": boleto.TipoCarteira = TipoCarteira.CarteiraCobrancaCaucionada; break; case "4": boleto.TipoCarteira = TipoCarteira.CarteiraCobrancaDescontada; break; default: boleto.TipoCarteira = TipoCarteira.CarteiraCobrancaSimples; break; } //Identificação do Título no Banco boleto.NossoNumero = registro.Substring(40, 12); boleto.NossoNumeroDV = registro.Substring(52, 1); boleto.NossoNumeroFormatado = Format("{0}-{1}", boleto.NossoNumero, boleto.NossoNumeroDV); //Identificação de Ocorrência boleto.CodigoOcorrencia = registro.Substring(15, 2); boleto.DescricaoOcorrencia = Cnab.OcorrenciaCnab240(boleto.CodigoOcorrencia); boleto.CodigoOcorrenciaAuxiliar = registro.Substring(208, 10); //Número do Documento boleto.NumeroDocumento = registro.Substring(54, 15); boleto.EspecieDocumento = TipoEspecieDocumento.NaoDefinido; //Valor do Título boleto.ValorTitulo = Convert.ToDecimal(registro.Substring(77, 15)) / 100; //Data Vencimento do Título boleto.DataVencimento = Utils.ToDateTime(Utils.ToInt32(registro.Substring(69, 8)).ToString("##-##-####")); //093 – 095 Nº do Banco Cobrador / Recebedor N 003 - LAYOUT V 2.8 Fevereiro/2017 Pág 9 boleto.BancoCobradorRecebedor = registro.Substring(92, 3); //096 – 099 Agência Cobradora / Recebedora N 004 - LAYOUT V 2.8 Fevereiro/2017 Pág 9 //100 – 100 Dígito da Agência do Beneficiário N 001 - LAYOUT V 2.8 Fevereiro/2017 Pág 9 boleto.AgenciaCobradoraRecebedora = registro.Substring(95, 5); //129 – 143 Número de inscrição Pagador N 015 30 - LAYOUT V 2.8 Fevereiro/2017 Pág 9 //aqui, apesar de haver 15 caracteres no layout, pegamos apenas os últimos 14(o necessário) pois há uma validação no momento da atribuição(set) do CPFCNPJ boleto.Sacado = new Sacado(); boleto.Sacado.CPFCNPJ = registro.Substring(129, 14); //144 - 183 Nome do Pagador A 040 - LAYOUT V 2.8 Fevereiro/2017 Pág 9 boleto.Sacado.Nome = registro.Substring(143, 40); //194 – 208 Valor da Tarifa / Custas N 015 2 - LAYOUT V 2.8 Fevereiro/2017 Pág 9 boleto.ValorTarifas = Convert.ToDecimal(registro.Substring(193, 15)) / 100; // Registro Retorno boleto.RegistroArquivoRetorno = boleto.RegistroArquivoRetorno + registro + Environment.NewLine; } catch (Exception ex) { throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 240 / T.", ex); } }