Esempio n. 1
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                detalhe.IdentificacaoDoRegistro = Utils.ToInt32(registro.Substring(0, 1));
                detalhe.CodigoInscricao         = Utils.ToInt32(registro.Substring(1, 2));
                detalhe.NumeroInscricao         = registro.Substring(3, 14);
                detalhe.Agencia          = registro.Substring(17, 4);
                detalhe.Conta            = registro.Substring(21, 7);
                detalhe.NumeroControle   = registro.Substring(37, 25);
                detalhe.NossoNumero      = registro.Substring(66, 11);
                detalhe.DACNossoNumero   = Utils.ToInt32(registro.Substring(76, 1));
                detalhe.CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2));
                detalhe.DataOcorrencia   = new DateTime(Int32.Parse(registro.Substring(114, 2)) + 2000,
                                                        Int32.Parse(registro.Substring(112, 2)),
                                                        Int32.Parse(registro.Substring(110, 2)), 0, 0, 0);
                detalhe.NumeroDocumento = registro.Substring(116, 10);
                int dataVencimento = Utils.ToInt32(registro.Substring(146, 6));
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                double valorTitulo = Convert.ToInt64(registro.Substring(152, 11));
                detalhe.ValorTitulo      = valorTitulo / 100;
                detalhe.BancoCobrador    = Utils.ToInt32(registro.Substring(165, 3));
                detalhe.CodigoBanco      = Utils.ToInt32(registro.Substring(165, 3));
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 5));
                detalhe.Especie          = Utils.ToInt32(registro.Substring(173, 2));
                double tarifaCobranca = Convert.ToInt64(registro.Substring(175, 11));
                detalhe.TarifaCobranca = tarifaCobranca / 100;
                double outrasDespesas = Convert.ToInt64(registro.Substring(188, 11));
                detalhe.OutrasDespesas = outrasDespesas / 100;
                double juros = Convert.ToInt64(registro.Substring(201, 11));
                detalhe.Juros = juros / 100;
                double IOF = Convert.ToInt64(registro.Substring(214, 11));
                detalhe.IOF = IOF / 100;
                double valorAbatimento = Convert.ToInt64(registro.Substring(227, 11));
                detalhe.ValorAbatimento = valorAbatimento / 100;
                double descontos = Convert.ToInt64(registro.Substring(240, 11));
                detalhe.Descontos = descontos / 100;
                double valorPago = Convert.ToInt64(registro.Substring(253, 13));
                detalhe.ValorPago      = valorPago / 100;
                detalhe.ValorPrincipal = detalhe.ValorPago;
                double jurosMora = Convert.ToInt64(registro.Substring(266, 11));
                detalhe.JurosMora = jurosMora / 100;
                double outrosCreditos = Convert.ToInt64(registro.Substring(279, 11));
                detalhe.OutrosCreditos = outrosCreditos / 100;
                int dataCredito = Utils.ToInt32(registro.Substring(295, 6));
                detalhe.DataCredito      = Utils.ToDateTimeInvariantCulture(dataCredito);
                detalhe.Instrucao        = Utils.ToInt32(registro.Substring(333, 2));
                detalhe.MotivosRejeicao  = registro.Substring(377, 10);
                detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));
                detalhe.NomeSacado       = "";

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
        public override void LerArquivoRetorno(IBanco banco, Stream arquivo)
        {
            try
            {
                StreamReader stream = new StreamReader(arquivo, System.Text.Encoding.UTF8);
                string       linha  = "";

                // Lendo o arquivo
                linha = stream.ReadLine();

                // Próxima linha (DETALHE)
                linha = stream.ReadLine();

                while (DetalheRetorno.PrimeiroCaracter(linha) == "1")
                {
                    DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha);
                    ListaDetalhe.Add(detalhe);
                    OnLinhaLida(detalhe, linha);
                    linha = stream.ReadLine();
                }

                stream.Close();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler arquivo.", ex);
            }
        }
Esempio n. 3
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                var detalhe = new DetalheRetorno();

                detalhe.Agencia  = Utils.ToInt32(registro.Substring(017, 5));
                detalhe.Conta    = Utils.ToInt32(registro.Substring(022, 8));
                detalhe.DACConta = Utils.ToInt32(registro.Substring(030, 1));
                //Nº Controle do Participante
                detalhe.NumeroControle = registro.Substring(37, 25);

                //Carteira
                detalhe.Carteira = registro.Substring(107, 1);


                //Identificação do Título no Banco
                detalhe.NossoNumero      = registro.Substring(62, 8);
                detalhe.DACNossoNumero   = registro.Substring(70, 1);
                detalhe.NossoNumeroComDV = detalhe.NossoNumero + registro.Substring(70, 1); //DV

                //Identificação de Ocorrência
                detalhe.CodigoOcorrencia    = Convert.ToInt32(registro.Substring(108, 2));
                detalhe.DescricaoOcorrencia = DescricaoOcorrenciaCnab400(detalhe.CodigoOcorrencia);


                //Número do Documento
                detalhe.NumeroDocumento = registro.Substring(116, 10);
                detalhe.Especie         = AjustaEspecieCnab400(registro.Substring(173, 2));

                //Valores do Título
                detalhe.ValorTitulo         = Convert.ToDecimal(registro.Substring(152, 13)) / 100;
                detalhe.TarifaCobranca      = Convert.ToDecimal(registro.Substring(175, 13)) / 100;
                detalhe.ValorOutrasDespesas = Convert.ToDecimal(registro.Substring(188, 13)) / 100;
                detalhe.IOF             = Convert.ToDecimal(registro.Substring(214, 13)) / 100;
                detalhe.ValorAbatimento = Convert.ToDecimal(registro.Substring(227, 13)) / 100;
                detalhe.Descontos       = Convert.ToDecimal(registro.Substring(240, 13)) / 100;
                detalhe.ValorPago       = Convert.ToDecimal(registro.Substring(253, 13)) / 100;
                detalhe.JurosMora       = Convert.ToDecimal(registro.Substring(266, 13)) / 100;
                detalhe.OutrosCreditos  = Convert.ToDecimal(registro.Substring(279, 13)) / 100;

                //Data Ocorrência no Banco
                detalhe.DataOcorrencia = Utils.ToDateTime(Utils.ToInt32(registro.Substring(110, 6)).ToString("##-##-##"));

                //Data Vencimento do Título
                detalhe.DataVencimento = Utils.ToDateTime(Utils.ToInt32(registro.Substring(146, 6)).ToString("##-##-##"));

                // Data do Crédito
                detalhe.DataCredito = Utils.ToDateTime(Utils.ToInt32(registro.Substring(295, 6)).ToString("##-##-##"));

                //// Registro Retorno
                //detalhe.Registro = detalhe.Registro + registro + Environment.NewLine;

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 4
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            var detalheRetorno = new DetalheRetorno();

            detalheRetorno.IdentificacaoDoRegistro = Utils.ToInt32(registro.Substring(0, 1));
            detalheRetorno.CodigoInscricao         = Utils.ToInt32(registro.Substring(1, 2));
            detalheRetorno.NumeroInscricao         = registro.Substring(3, 14);
            detalheRetorno.UsoEmpresa = registro.Substring(37, 25);

            var nossoNumeroLido = registro.Substring(94, 13).Trim();

            detalheRetorno.NossoNumero      = nossoNumeroLido.Substring(0, nossoNumeroLido.Length - 1);
            detalheRetorno.NossoNumeroComDV = detalheRetorno.NossoNumero + nossoNumeroLido.Substring(nossoNumeroLido.Length - 1, 1);
            detalheRetorno.Carteira         = registro.Substring(107, 1);
            detalheRetorno.CodigoOcorrencia = int.Parse(registro.Substring(108, 2));

            var dataOcorrencia = Utils.ToInt32(registro.Substring(110, 6));

            detalheRetorno.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));

            detalheRetorno.SeuNumero = registro.Substring(116, 10);

            var dataVencimento = Utils.ToInt32(registro.Substring(146, 6));

            detalheRetorno.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));

            decimal valorTitulo = Convert.ToInt64(registro.Substring(152, 13));

            detalheRetorno.ValorTitulo = valorTitulo / 100;

            detalheRetorno.CodigoBanco      = Utils.ToInt32(registro.Substring(165, 3));
            detalheRetorno.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 5));
            detalheRetorno.Especie          = Utils.ToInt32(registro.Substring(173, 2));

            decimal valorDespesa = Convert.ToUInt64(registro.Substring(175, 13));

            detalheRetorno.ValorDespesa = valorDespesa / 100;

            decimal valorIof = Convert.ToUInt64(registro.Substring(214, 11));

            detalheRetorno.IOF = valorIof / 100;

            decimal valorAbatimento = Convert.ToUInt64(registro.Substring(227, 11));

            detalheRetorno.ValorAbatimento = valorAbatimento / 100;

            decimal valorDesconto = Convert.ToUInt64(registro.Substring(240, 11));

            detalheRetorno.Descontos = valorDesconto / 100;

            decimal valorPago = Convert.ToUInt64(registro.Substring(253, 13));

            detalheRetorno.ValorPago = valorPago / 100;

            decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 13));

            detalheRetorno.JurosMora = jurosMora / 100;

            return(detalheRetorno);
        }
Esempio n. 5
0
        DetalheRetorno IBanco.LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                TRegistroEDI_Safra_Retorno reg = new TRegistroEDI_Safra_Retorno();
                reg.LinhaRegistro = registro;
                reg.DecodificarLinha();

                //Passa para o detalhe as propriedades de reg;
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                detalhe.Carteira            = reg.TipoCarteira;
                detalhe.CodigoOcorrencia    = Utils.ToInt32(reg.IdentOcorrencia);
                detalhe.DescricaoOcorrencia = new CodigoMovimento(this.Codigo, detalhe.CodigoOcorrencia).Descricao;
                detalhe.NumeroDocumento     = reg.TituloEmpresa;
                detalhe.NossoNumero         = reg.NumTitulo;
                int dataVencimento = Utils.ToInt32(reg.VencimentoTitulo);
                detalhe.DataVencimento   = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                detalhe.ValorTitulo      = Utils.ToDecimal(reg.ValorNominalTitulo) / 100;
                detalhe.CodigoBanco      = Utils.ToInt32(reg.CodigoBanco);
                detalhe.AgenciaCobradora = Utils.ToInt32(reg.AgenciaEncarregada);
                detalhe.Especie          = Utils.ToInt32(reg.EspecieTitulo);
                detalhe.IOF         = Utils.ToDecimal(reg.ValorIOF) / 100;
                detalhe.Abatimentos = Utils.ToDecimal(reg.ValorAbatimentoConcedido) / 100;
                detalhe.Descontos   = Utils.ToDecimal(reg.ValorDescontoConcedido) / 100;
                detalhe.JurosMora   = Utils.ToDecimal(reg.ValorJurosMora) / 100;

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
        public override void LerArquivoRetorno(IBanco banco, Stream arquivo)
        {
            try
            {
                StreamReader stream = new StreamReader(arquivo, System.Text.Encoding.UTF8);
                // Identificação do registro detalhe
                List <string> IdsRegistroDetalhe = new List <string>();

                // Lendo o arquivo
                string linha = stream.ReadLine();
                this.HeaderRetorno = banco.LerHeaderRetornoCNAB400(linha);

                // Próxima linha (DETALHE)
                linha = stream.ReadLine();

                //tem arquivo de retorno que possui somente cabeçalho
                if (linha != null)
                {
                    switch (banco.Codigo)
                    {
                    // 85 - CECRED - Código de registro detalhe 7 para CECRED
                    case (int)Bancos.CECRED:
                        IdsRegistroDetalhe.Add("7");
                        break;

                    // 1 - Banco do Brasil- Código de registro detalhe 7 para convênios com 7 posições, e detalhe 1 para convênios com 6 posições(colocado as duas, pois não interferem em cada tipo de arquivo)
                    case (int)Bancos.BancoBrasil:
                        IdsRegistroDetalhe.Add("1");    //Para convênios de 6 posições
                        IdsRegistroDetalhe.Add("7");    //Para convênios de 7 posições
                        break;

                    default:
                        IdsRegistroDetalhe.Add("1");
                        break;
                    }

                    while (linha != null)
                    {
                        if (IdsRegistroDetalhe.Contains(DetalheRetorno.PrimeiroCaracter(linha)))
                        {
                            DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha);
                            ListaDetalhe.Add(detalhe);
                            OnLinhaLida(detalhe, linha);
                        }

                        linha = stream.ReadLine();
                    }
                }

                //TODO: Tratar Triller.

                stream.Close();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler arquivo.", ex);
            }
        }
        public override void LerArquivoRetorno(IBanco banco, Stream arquivo, bool closeStream = true)
        {
            try
            {
                StreamReader stream = new StreamReader(arquivo, System.Text.Encoding.UTF8);
                string       linha  = "";


                // Lendo o arquivo
                //linha = stream.ReadLine();

                //// Próxima linha (DETALHE)
                //linha = stream.ReadLine();

                //while (DetalheRetorno.PrimeiroCaracter(linha) == "1")
                //{
                //    DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha);
                //    ListaDetalhe.Add(detalhe);
                //    OnLinhaLida(detalhe, linha);
                //    linha = stream.ReadLine();
                //}

                while ((linha = stream.ReadLine()) != null)
                {
                    if (!String.IsNullOrEmpty(linha))
                    {
                        //DetalheRetorno detalheRetorno = new DetalheRetorno();

                        switch (DetalheRetorno.PrimeiroCaracter(linha))
                        {
                        case "0":     //Header de arquivo
                            OnLinhaLida(null, linha);
                            HeaderArquivo400 = banco.LerHeaderArquivoRetornoCNAB400(linha);
                            break;

                        case "1":     //Detalhe
                            DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha);
                            ListaDetalhe.Add(detalhe);
                            OnLinhaLida(detalhe, linha);
                            break;
                            //case "9": //Trailler de arquivo
                            //    OnLinhaLida(null, linha, EnumTipodeLinhaLida.TraillerDeArquivo);
                            //    break;
                        }
                    }
                }

                if (closeStream)
                {
                    stream.Close();
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler arquivo.", ex);
            }
        }
Esempio n. 8
0
        public override void LerArquivoRetorno(IBanco banco, Stream arquivo)
        {
            try
            {
                StreamReader Linha   = new StreamReader(arquivo);
                string       strline = "";
                int          _codigoBanco;

                // Lendo o arquivo
                strline = Linha.ReadLine();

                _codigoBanco = 341; // Convert.ToInt16(strline.Substring(76, 3));

                switch (_codigoBanco)
                {
                case 341:
                    // Próxima linha (DETALHE)
                    strline = Linha.ReadLine();

                    DetalheRetorno detalhex = new DetalheRetorno();     // gamb

                    while (DetalheRetorno.PrimeiroCaracter(strline) == "1")
                    {
                        DetalheRetorno detalhe = new  DetalheRetorno();
                        detalhe.LerDetalheRetornoCNAB400(strline);
                        this.ListaDetalhe.Add(detalhe);
                        //detalhe.ListaDetalhe.Add(detalhe);
                        strline = Linha.ReadLine();
                    }
                    break;

                default:
                    // Próxima linha (DETALHE)
                    strline = Linha.ReadLine();

                    while (DetalheRetorno.PrimeiroCaracter(strline) == "1")
                    {
                        DetalheRetorno detalhe = new DetalheRetorno();
                        detalhe.LerDetalheRetornoCNAB400(strline);
                        detalhe.ListaDetalhe.Add(detalhe);
                        strline = Linha.ReadLine();
                    }
                    break;
                }

                Linha.Close();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler arquivo.", ex);
            }
        }
Esempio n. 9
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                TRegistroEDI_Banrisul_Retorno reg = new TRegistroEDI_Banrisul_Retorno {
                    LinhaRegistro = registro
                };
                reg.DecodificarLinha();

                DetalheRetorno detalhe =
                    new DetalheRetorno(registro)
                {
                    CodigoInscricao        = Utils.ToInt32(reg.TipoInscricao),
                    NumeroInscricao        = reg.CpfCnpj,
                    NumeroControle         = reg.IdentificacaoTituloCedente,
                    IdentificacaoTitulo    = reg.IdentificacaoTituloBanco_NossoNumero,
                    CodigoOcorrencia       = Utils.ToInt32(reg.CodigoOcorrencia),
                    DataOcorrencia         = Utils.ToDateTime(Utils.ToInt32(reg.DataOcorrenciaBanco).ToString("##-##-##")),
                    NumeroDocumento        = reg.SeuNumero,
                    NossoNumeroComDV       = reg.NossoNumero,
                    NossoNumero            = (reg.NossoNumero != null && reg.NossoNumero.Length >= 2) ? reg.NossoNumero.Substring(0, reg.NossoNumero.Length - 1) : string.Empty,
                    DACNossoNumero         = (reg.NossoNumero != null && reg.NossoNumero.Length >= 2) ? reg.NossoNumero.Substring(reg.NossoNumero.Length - 1) : string.Empty,
                    DataVencimento         = Utils.ToDateTime(Utils.ToInt32(reg.DataVencimentoTitulo).ToString("##-##-##")),
                    ValorTitulo            = Convert.ToInt64(reg.ValorTitulo) / divisor,
                    CodigoBanco            = Utils.ToInt32(reg.CodigoBancoCobrador),
                    AgenciaCobradora       = Utils.ToInt32(reg.CodigoAgenciaCobradora),
                    ValorDespesa           = Convert.ToUInt64(reg.ValorDespesasCobranca) / divisor,
                    ValorOutrasDespesas    = Convert.ToUInt64(reg.OutrasDespesas) / divisor,
                    ValorAbatimento        = Convert.ToUInt64(reg.ValorAbatimento_DeflacaoConcedido) / divisor,
                    Descontos              = Convert.ToUInt64(reg.ValorDescontoConcedido) / divisor,
                    ValorPago              = Convert.ToUInt64(reg.ValorPago) / divisor,
                    JurosMora              = Convert.ToUInt64(reg.ValorJuros) / divisor,
                    OutrosCreditos         = Convert.ToUInt64(reg.ValorOutrosRecebimentos) / divisor,
                    DataCredito            = Utils.ToDateTime(Utils.ToInt32(reg.DataCreditoConta).ToString("##-##-##")),
                    OrigemPagamento        = reg.PagamentoDinheiro_Cheque,
                    MotivoCodigoOcorrencia = reg.MotivoOcorrencia,
                    NumeroSequencial       = Utils.ToInt32(reg.NumeroSequenciaRegistro),
                    IOF             = 0,
                    MotivosRejeicao = string.Empty,
                    NumeroCartorio  = 0,
                    NumeroProtocolo = string.Empty,
                    NomeSacado      = string.Empty
                };

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 10
0
 public virtual void OnLinhaLida(DetalheRetorno detalheRetorno, string linha)
 {
     try
     {
         if (this.LinhaDeArquivoLida != null)
         {
             this.LinhaDeArquivoLida(this, new LinhaDeArquivoLidaArgs(detalheRetorno, linha));
         }
     }
     catch (Exception ex)
     {
         throw new Exception("Erro ao gerar evento.", ex);
     }
 }
Esempio n. 11
0
        DetalheRetorno IBanco.LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                TRegistroEDI_Safra_Retorno reg = new TRegistroEDI_Safra_Retorno();
                reg.LinhaRegistro = registro;
                reg.DecodificarLinha();

                //Passa para o detalhe as propriedades de reg;
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                detalhe.Agencia  = Utils.ToInt32(String.Concat(reg.Agencia, reg.DigitoAgencia));
                detalhe.Conta    = Utils.ToInt32(reg.Conta);
                detalhe.DACConta = Utils.ToInt32(reg.DigitoConta);
                //detalhe.NossoNumeroComDV = reg.NossoNumero;
                //detalhe.NossoNumero = reg.NossoNumero.Substring(0, reg.NossoNumero.Length - 1); //Nosso Número sem o DV!
                //detalhe.DACNossoNumero = reg.NossoNumero.Substring(reg.NossoNumero.Length - 1); //DV
                detalhe.Carteira            = reg.TipoCarteira;
                detalhe.CodigoOcorrencia    = Utils.ToInt32(reg.TipoOcorrencia);
                detalhe.DescricaoOcorrencia = new CodigoMovimento(this.Codigo, detalhe.CodigoOcorrencia).Descricao;
                int dataLiquidacao = Utils.ToInt32(reg.DataLimiteDesconto);
                detalhe.DataLiquidacao  = Utils.ToDateTime(dataLiquidacao.ToString("##-##-##"));
                detalhe.NumeroDocumento = reg.IdentificacaoTitulo;
                int dataVencimento = Utils.ToInt32(reg.VencimentoTitulo);
                detalhe.DataVencimento   = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                detalhe.ValorTitulo      = Utils.ToDecimal(reg.ValorNominalTitulo) / 100;
                detalhe.CodigoBanco      = Utils.ToInt32(reg.CodigoBanco);
                detalhe.AgenciaCobradora = Utils.ToInt32(reg.Agencia);
                detalhe.Especie          = Utils.ToInt32(reg.EspecieTitulo);
                //int dataCredito = Utils.ToInt32(reg.DataCredito);
                //detalhe.DataOcorrencia = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                //detalhe.TarifaCobranca = Utils.ToDecimal(reg.ValorJurosMora) / 100;
                //detalhe.OutrasDespesas = Utils.ToDecimal(reg.OutrasDespesas) / 100;
                //detalhe.ValorOutrasDespesas = Utils.ToDecimal(reg.valor) / 100;
                detalhe.IOF         = Utils.ToDecimal(reg.ValorIOF) / 100;
                detalhe.Abatimentos = Utils.ToDecimal(reg.ValorAbatimentoConcedido) / 100;
                detalhe.Descontos   = Utils.ToDecimal(reg.ValorDescontoConcedido) / 100;
                //detalhe.ValorPrincipal = Utils.ToDecimal(reg.valor) / 100;
                detalhe.JurosMora = Utils.ToDecimal(reg.ValorJurosMora) / 100;
                //detalhe.OutrosCreditos = Utils.ToDecimal(reg.OutrosRecebimentos) / 100;
                //detalhe.ValorPago = Utils.ToDecimal(reg.ValorLancamento) / 100;

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 12
0
        public override void LerArquivoRetorno(IBanco banco, Stream arquivo)
        {
            try
            {
                StreamReader stream = new StreamReader(arquivo, System.Text.Encoding.UTF8);
                string       linha  = "";
                // Identificação do registro detalhe
                List <string> IdsRegistroDetalhe = new List <string>();

                // Lendo o arquivo
                linha = stream.ReadLine();
                this.HeaderRetorno = banco.LerHeaderRetornoCNAB400(linha);

                // Próxima linha (DETALHE)
                linha = stream.ReadLine();

                // 85 - CECRED - Código de registro detalhe 7 para CECRED
                // 1 - Banco do Brasil- Código de registro detalhe 7 para convênios com 7 posições, e detalhe 1 para convênios com 6 posições(colocado as duas, pois não interferem em cada tipo de arquivo)
                if (banco.Codigo == 85)
                {
                    IdsRegistroDetalhe.Add("7");
                }
                else if (banco.Codigo == 1)
                {
                    IdsRegistroDetalhe.Add("1"); //Para convênios de 6 posições
                    IdsRegistroDetalhe.Add("7"); //Para convênios de 7 posições
                }
                else
                {
                    IdsRegistroDetalhe.Add("1");
                }

                while (IdsRegistroDetalhe.Contains(DetalheRetorno.PrimeiroCaracter(linha)))
                {
                    DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha);
                    ListaDetalhe.Add(detalhe);
                    OnLinhaLida(detalhe, linha);
                    linha = stream.ReadLine();
                }

                stream.Close();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler arquivo.", ex);
            }
        }
Esempio n. 13
0
        public override void LerArquivoRetorno(IBanco banco, Stream arquivo)
        {
            try
            {
                StreamReader stream = new StreamReader(arquivo, System.Text.Encoding.UTF8);
                string       linha  = "";
                // Identificação do registro detalhe
                string IdRegistroDetalhe = string.Empty;

                // Lendo o arquivo
                linha = stream.ReadLine();

                // Próxima linha (DETALHE)
                linha = stream.ReadLine();

                // 85 - CECRED - Código de registro detalhe 7 para CECRED
                // 1 - Banco do Brasil- Código de registro detalhe 7
                if (banco.Codigo == 85 || banco.Codigo == 1)
                {
                    IdRegistroDetalhe = "7";
                }
                else
                {
                    IdRegistroDetalhe = "1";
                }

                while (DetalheRetorno.PrimeiroCaracter(linha) == IdRegistroDetalhe)
                {
                    DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha);
                    ListaDetalhe.Add(detalhe);
                    OnLinhaLida(detalhe, linha);
                    linha = stream.ReadLine();
                }

                stream.Close();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler arquivo.", ex);
            }
        }
Esempio n. 14
0
        DetalheRetorno IBanco.LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                TRegistroEDI_Unicred_Retorno reg = new TRegistroEDI_Unicred_Retorno();
                reg.LinhaRegistro = registro;
                reg.DecodificarLinha();

                //Passa para o detalhe as propriedades de reg;
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                detalhe.Agencia             = Utils.ToInt32(String.Concat(reg.Agencia, reg.DigitoAgencia));
                detalhe.Conta               = Utils.ToInt32(reg.Conta);
                detalhe.DACConta            = Utils.ToInt32(reg.DigitoConta);
                detalhe.Carteira            = "21";
                detalhe.CodigoOcorrencia    = Utils.ToInt32(reg.TipoOcorrencia);
                detalhe.DescricaoOcorrencia = new CodigoMovimento_Unicred(detalhe.CodigoOcorrencia, Utils.ToInt32(reg.ComplementoMovimento).ToString()).Descricao;
                int dataLiquidacao = Utils.ToInt32(reg.DataLiquidacao);
                detalhe.DataLiquidacao  = Utils.ToDateTime(dataLiquidacao.ToString("##-##-##"));
                detalhe.NumeroDocumento = reg.SeuNumero;
                int dataVencimento = Utils.ToInt32(reg.VencimentoTitulo);
                detalhe.DataVencimento   = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                detalhe.ValorTitulo      = Utils.ToDecimal(reg.ValorNominalTitulo) / 100;
                detalhe.CodigoBanco      = Utils.ToInt32(reg.CodigoBanco);
                detalhe.AgenciaCobradora = Utils.ToInt32(reg.Agencia);
                detalhe.IOF         = Utils.ToDecimal(reg.ValorTarifas) / 100;
                detalhe.Abatimentos = Utils.ToDecimal(reg.ValorAbatimento) / 100;
                detalhe.Descontos   = Utils.ToDecimal(reg.ValorDescontoConcedido) / 100;
                detalhe.JurosMora   = Utils.ToDecimal(reg.ValorJurosMora) / 100;

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 15
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 6));
                int dataVencimento = Utils.ToInt32(registro.Substring(146, 6));
                int dataCredito;
                DetalheRetorno detalhe = new DetalheRetorno(registro);
                detalhe.CodigoInscricao = Utils.ToInt32(registro.Substring(1, 2));

                if (detalhe.CodigoInscricao != 99)
                {
                    dataCredito = dataOcorrencia;

                    detalhe.NumeroInscricao = registro.Substring(3, 14);
                    detalhe.Agencia = Utils.ToInt32(registro.Substring(18, 4));
                    detalhe.Conta = Utils.ToInt32(registro.Substring(24, 11));
                    detalhe.UsoEmpresa = registro.Substring(37, 25);
                    detalhe.Carteira = registro.Substring(107, 1);
                    detalhe.CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2));
                    detalhe.DescricaoOcorrencia = this.OcorrenciaCSB(registro.Substring(108, 2));
                    detalhe.MotivosRejeicao = this.MotivosRejeicaoCSB(registro.Substring(301, 2));
                    detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                    detalhe.NumeroDocumento = registro.Substring(116, 10);
                    if (detalhe.NumeroDocumento.Contains("-"))
                        detalhe.NumeroDocumento = detalhe.NumeroDocumento.Substring(0, detalhe.NumeroDocumento.LastIndexOf('-'));
                    detalhe.NossoNumero = registro.Substring(126, 10);
                    detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                    decimal valorTitulo = Convert.ToInt64(registro.Substring(152, 13));
                    detalhe.ValorTitulo = valorTitulo / 100;
                    detalhe.CodigoBanco = Utils.ToInt32(registro.Substring(165, 3));
                    detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 5));
                    detalhe.Especie = Utils.ToInt32(registro.Substring(173, 2));
                    decimal tarifaCobranca = Convert.ToUInt64(registro.Substring(175, 13));
                    detalhe.TarifaCobranca = tarifaCobranca / 100;
                    decimal valorAbatimento = Convert.ToUInt64(registro.Substring(227, 13));
                    detalhe.ValorAbatimento = valorAbatimento / 100;
                    decimal valorPrincipal = Convert.ToUInt64(registro.Substring(253, 13));
                    detalhe.ValorPrincipal = valorPrincipal / 100;
                    detalhe.ValorPago = detalhe.ValorPrincipal;
                    decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 13));
                    detalhe.JurosMora = jurosMora / 100;
                    detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                    detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                    detalhe.InstrucaoCancelada = Utils.ToInt32(registro.Substring(301, 4));
                    detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));
                }
                else
                {
                    dataCredito = Utils.ToInt32(registro.Substring(82, 6));

                    detalhe.NumeroInscricao = registro.Substring(3, 14);
                    detalhe.Agencia = Utils.ToInt32(registro.Substring(17, 5));
                    detalhe.Conta = Utils.ToInt32(registro.Substring(24, 11));
                    detalhe.UsoEmpresa = registro.Substring(37, 16);
                    detalhe.NossoNumeroComDV = registro.Substring(62, 16);
                    detalhe.NossoNumero = registro.Substring(62, 15); //Sem o DV
                    detalhe.Carteira = registro.Substring(107, 1);
                    detalhe.CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2));
                    detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                    detalhe.NumeroDocumento = registro.Substring(116, 6);
                    if (detalhe.NumeroDocumento.Contains("-"))
                        detalhe.NumeroDocumento = detalhe.NumeroDocumento.Substring(0, detalhe.NumeroDocumento.LastIndexOf('-'));
                    detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                    decimal valorTitulo = Convert.ToInt64(registro.Substring(152, 11));
                    detalhe.ValorTitulo = valorTitulo / 100;
                    detalhe.CodigoBanco = Utils.ToInt32(registro.Substring(165, 3));
                    detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 5));
                    detalhe.Especie = Utils.ToInt32(registro.Substring(173, 2));
                    decimal iof = Convert.ToUInt64(registro.Substring(175, 9));
                    detalhe.IOF = iof / 100;
                    decimal valorPrincipal = Convert.ToUInt64(registro.Substring(253, 11));
                    detalhe.ValorPrincipal = valorPrincipal / 100;
                    detalhe.ValorPago = detalhe.ValorPrincipal;
                    decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 11));
                    detalhe.JurosMora = jurosMora / 100;
                    detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                    detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                    detalhe.InstrucaoCancelada = Utils.ToInt32(registro.Substring(301, 4));
                    detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));
                }

                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 16
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                //Tipo de Inscrição Empresa
                detalhe.CodigoInscricao = Utils.ToInt32(registro.Substring(1, 2));
                //Nº Inscrição da Empresa
                detalhe.NumeroInscricao = registro.Substring(3, 14);

                //Identificação da Empresa Cedente no Banco
                detalhe.Agencia = Utils.ToInt32(registro.Substring(17, 4));
                detalhe.Conta = Utils.ToInt32(registro.Substring(21, 8));

                //Nº Controle do Participante
                detalhe.NumeroControle = registro.Substring(37, 25);
                //Identificação do Título no Banco
                detalhe.NossoNumeroComDV = registro.Substring(62, 8);
                detalhe.NossoNumero = registro.Substring(62, 7);
                detalhe.DACNossoNumero = registro.Substring(69, 1);
                //Identificação de Ocorrência
                detalhe.CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2));

                //Descrição da ocorrência
                detalhe.DescricaoOcorrencia = this.Ocorrencia(registro.Substring(108, 2));

                //Número do Documento
                detalhe.NumeroDocumento = registro.Substring(116, 10);
                //Identificação do Título no Banco
                detalhe.IdentificacaoTitulo = registro.Substring(126, 8);

                //Valor do Título
                decimal valorTitulo = Convert.ToInt64(registro.Substring(152, 13));
                detalhe.ValorTitulo = valorTitulo / 100;
                //Banco Cobrador
                detalhe.CodigoBanco = Utils.ToInt32(registro.Substring(165, 3));
                //Agência Cobradora
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 5));
                //Espécie do Título
                detalhe.Especie = Utils.ToInt32(registro.Substring(173, 2));
                // IOF
                decimal iof = Convert.ToUInt64(registro.Substring(214, 13));
                detalhe.IOF = iof / 100;
                //Abatimento Concedido sobre o Título (Valor Abatimento Concedido)
                decimal valorAbatimento = Convert.ToUInt64(registro.Substring(227, 13));
                detalhe.ValorAbatimento = valorAbatimento / 100;
                //Desconto Concedido (Valor Desconto Concedido)
                decimal valorDesconto = Convert.ToUInt64(registro.Substring(240, 13));
                detalhe.Descontos = valorDesconto / 100;
                //Valor Pago
                decimal valorPago = Convert.ToUInt64(registro.Substring(253, 13));
                detalhe.ValorPago = valorPago / 100;
                //Juros Mora
                decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 13));
                detalhe.JurosMora = jurosMora / 100;
                //Outros Créditos
                decimal outrosCreditos = Convert.ToUInt64(registro.Substring(279, 13));
                detalhe.OutrosCreditos = outrosCreditos / 100;
                //Data Ocorrência no Banco
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 6));
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                //Data Vencimento do Título
                int dataVencimento = Utils.ToInt32(registro.Substring(146, 6));
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                // Data do Crédito
                int dataCredito = Utils.ToInt32(registro.Substring(295, 6));
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                //Nome do Sacado
                detalhe.NomeSacado = registro.Substring(301, 36);

                detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));

                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                //Tipo de Inscrição Empresa
                detalhe.CodigoInscricao = Utils.ToInt32(registro.Substring(1, 2));
                //Nº Inscrição da Empresa
                detalhe.NumeroInscricao = registro.Substring(3, 14);

                //Identificação da Empresa Cedente no Banco
                detalhe.Agencia = Utils.ToInt32(registro.Substring(17, 4));
                detalhe.Conta   = Utils.ToInt32(registro.Substring(21, 8));

                //Nº Controle do Participante
                detalhe.NumeroControle = registro.Substring(37, 25);
                //Identificação do Título no Banco
                detalhe.NossoNumero = registro.Substring(62, 8);

                //Identificação de Ocorrência
                detalhe.CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2));

                //Descrição da ocorrência
                detalhe.DescricaoOcorrencia = this.Ocorrencia(registro.Substring(108, 2));

                //Número do Documento
                detalhe.NumeroDocumento = registro.Substring(116, 10);
                //Identificação do Título no Banco
                detalhe.IdentificacaoTitulo = registro.Substring(126, 8);

                //Valor do Título
                decimal valorTitulo = Convert.ToInt64(registro.Substring(152, 13));
                detalhe.ValorTitulo = valorTitulo / 100;
                //Banco Cobrador
                detalhe.CodigoBanco = Utils.ToInt32(registro.Substring(165, 3));
                //Agência Cobradora
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 5));
                //Espécie do Título
                detalhe.Especie = Utils.ToInt32(registro.Substring(173, 2));
                // IOF
                decimal iof = Convert.ToUInt64(registro.Substring(214, 13));
                detalhe.IOF = iof / 100;
                //Abatimento Concedido sobre o Título (Valor Abatimento Concedido)
                decimal valorAbatimento = Convert.ToUInt64(registro.Substring(227, 13));
                detalhe.ValorAbatimento = valorAbatimento / 100;
                //Desconto Concedido (Valor Desconto Concedido)
                decimal valorDesconto = Convert.ToUInt64(registro.Substring(240, 13));
                detalhe.Descontos = valorDesconto / 100;
                //Valor Pago
                decimal valorPago = Convert.ToUInt64(registro.Substring(253, 13));
                detalhe.ValorPago = valorPago / 100;
                //Juros Mora
                decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 13));
                detalhe.JurosMora = jurosMora / 100;
                //Outros Créditos
                decimal outrosCreditos = Convert.ToUInt64(registro.Substring(279, 13));
                detalhe.OutrosCreditos = outrosCreditos / 100;
                //Data Ocorrência no Banco
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 6));
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                //Data Vencimento do Título
                int dataVencimento = Utils.ToInt32(registro.Substring(146, 6));
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                // Data do Crédito
                int dataCredito = Utils.ToInt32(registro.Substring(295, 6));
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                //Nome do Sacado
                detalhe.NomeSacado = registro.Substring(301, 36);

                detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 18
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                DetalheRetorno detalhe = new DetalheRetorno(registro)
                {
                    // Identificação do Registro ==> 001 a 001
                    IdentificacaoDoRegistro = Utils.ToInt32(registro.Substring(0, 1)),

                    //Tipo de Inscrição Empresa ==> 002 a 003
                    CodigoInscricao = Utils.ToInt32(registro.Substring(1, 2)),

                    //Nº Inscrição da Empresa ==> 004 a 017
                    NumeroInscricao = registro.Substring(3, 14),

                    //Identificação da Empresa Cedente no Banco ==> 021 a 037 = 17 (Igual remessa)
                    // 0 + Carteira 3 + Agência 5 + Conta 7 + Digito 1 = 17
                    // ex: 00090750315206870
                    Agencia  = Utils.ToInt32(registro.Substring(24, 5)),
                    Conta    = Utils.ToInt32(registro.Substring(29, 7)),
                    DACConta = Utils.ToInt32(registro.Substring(36, 1)),

                    //Nº Controle do Participante ==> 038 a 062
                    NumeroControle = registro.Substring(37, 25),

                    //Identificação do Título no Banco ==> 071 a 081
                    NossoNumero = registro.Substring(70, 11),//Sem o DV

                    //Identificação do Título no Banco ==> 082 a 082
                    DACNossoNumero = registro.Substring(81, 1), //DV

                    //Carteira ==> 108 a 108
                    Carteira = registro.Substring(107, 1),

                    //Identificação de Ocorrência ==> 109 a 110
                    CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2)),

                    //Descrição da ocorrência
                    DescricaoOcorrencia = this.Ocorrencia(registro.Substring(110, 2)),
                };

                //Data Ocorrência no Banco ==> 111 a 116
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 6));
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));

                //Número do Documento ==> 117 a 126
                detalhe.NumeroDocumento = registro.Substring(116, 10);

                //Identificação do Título no Banco ==> 127 a 146
                detalhe.IdentificacaoTitulo = registro.Substring(126, 20);

                //Data Vencimento do Título ==> 147 a 152
                int dataVencimento = Utils.ToInt32(registro.Substring(146, 6));
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));

                //Valor do Título ==> 153 a 165
                decimal valorTitulo = Convert.ToInt64(registro.Substring(152, 13));
                detalhe.ValorTitulo = valorTitulo / 100;

                //Banco Cobrador ==> 166 a 168
                detalhe.CodigoBanco = Utils.ToInt32(registro.Substring(165, 3));

                //Agência Cobradora ==> 169 a 173
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 5));

                //Espécie do Título ==> 174 a 175
                detalhe.Especie = Utils.ToInt32(registro.Substring(173, 2));

                //Despesas de cobrança para os Códigos de Ocorrência (Valor Despesa) ==> 176 a 188
                decimal valorDespesa = Convert.ToUInt64(registro.Substring(175, 13));
                detalhe.ValorDespesa = valorDespesa / 100;

                //Outras despesas Custas de Protesto (Valor Outras Despesas) ==> 189 a 201
                decimal valorOutrasDespesas = Convert.ToUInt64(registro.Substring(188, 13));
                detalhe.ValorOutrasDespesas = valorOutrasDespesas / 100;

                //Juros Operação em Atraso ==> 202 a 214
                decimal OutrosCreditos = Convert.ToUInt64(registro.Substring(201, 13));
                detalhe.OutrosCreditos = OutrosCreditos / 100;

                //Abatimento Concedido sobre o Título (Valor Abatimento Concedido) ==> 228 a 240
                decimal valorAbatimento = Convert.ToUInt64(registro.Substring(227, 13));
                detalhe.ValorAbatimento = valorAbatimento / 100;

                //Desconto Concedido (Valor Desconto Concedido) ==> 241 a 253
                decimal valorDesconto = Convert.ToUInt64(registro.Substring(240, 13));
                detalhe.Descontos = valorDesconto / 100;

                //Valor Pago ==> 254 a 266
                decimal valorPago = Convert.ToUInt64(registro.Substring(253, 13));
                detalhe.ValorPago = valorPago / 100;

                //Juros Mora ==> 267 a 279
                decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 13));
                detalhe.JurosMora = jurosMora / 100;

                // Data do Crédito ==> 296 a 301
                int dataCredito = Utils.ToInt32(registro.Substring(295, 6));
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));

                //Motivos das Rejeições para os Códigos de Ocorrência ==> 319 a 328
                detalhe.MotivosRejeicao = registro.Substring(318, 10);

                //Nome do Sacado
                detalhe.NomeSacado = "";

                detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 19
0
        /// <summary>
        /// Rotina de retorno de remessa
        /// Criador: Adriano Trentim Augusto
        /// E-mail: [email protected]
        /// Data: 29/04/2014
        /// </summary>
        /// <param name="registro"></param>
        /// <returns></returns>
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                var detalhe = new DetalheRetorno(registro);

                detalhe.CodigoInscricao = Utils.ToInt32(registro.Substring(1, 2)); //Tipo de Inscrição Empresa
                detalhe.NumeroInscricao = registro.Substring(3, 14);               //Nº Inscrição da Empresa

                //Identificação da Empresa Cedente no Banco
                detalhe.Agencia  = Utils.ToInt32(registro.Substring(17, 4));
                detalhe.Conta    = Utils.ToInt32(registro.Substring(23, 8));
                detalhe.DACConta = Utils.ToInt32(registro.Substring(30, 1));

                detalhe.NumeroControle = registro.Substring(37, 25); //Nº Controle do Participante

                //Identificação do Título no Banco
                detalhe.NossoNumero    = registro.Substring(62, 11);
                detalhe.DACNossoNumero = registro.Substring(73, 1);

                detalhe.Carteira            = registro.Substring(106, 2);                                                       //Carteira
                detalhe.CodigoOcorrencia    = Utils.ToInt32(registro.Substring(108, 2));                                        //Identificação de Ocorrência
                detalhe.DescricaoOcorrencia = this.Ocorrencia(registro.Substring(108, 2));                                      //Descrição da ocorrência
                detalhe.DataOcorrencia      = Utils.ToDateTime(Utils.ToInt32(registro.Substring(110, 6)).ToString("##-##-##")); //Data da ocorrencia

                //Quando ocorrencia = Liquidação, pega a data.
                if (detalhe.CodigoOcorrencia == 5 || detalhe.CodigoOcorrencia == 6 || detalhe.CodigoOcorrencia == 15)
                {
                    detalhe.DataLiquidacao = detalhe.DataOcorrencia;
                }

                detalhe.NumeroDocumento     = registro.Substring(116, 10);                                                      //Número do Documento
                detalhe.DataVencimento      = Utils.ToDateTime(Utils.ToInt32(registro.Substring(146, 6)).ToString("##-##-##")); //Data de Vencimento
                detalhe.ValorTitulo         = ((decimal)Convert.ToInt64(registro.Substring(152, 13))) / 100;                    //Valor do Titulo
                detalhe.CodigoBanco         = Utils.ToInt32(registro.Substring(165, 3));                                        //Banco Cobrador
                detalhe.AgenciaCobradora    = Utils.ToInt32(registro.Substring(168, 4));                                        //Agência Cobradora
                detalhe.DACAgenciaCobradora = Utils.ToInt32(registro.Substring(172, 1));                                        // DV Agencia Cobradora
                detalhe.Especie             = Utils.ToInt32(registro.Substring(173, 2));                                        //Espécie do Título

                //Data de Crédito - Só vem preenchido quando liquidação
                if (registro.Substring(175, 6) != "000000")
                {
                    detalhe.DataCredito = Utils.ToDateTime(Utils.ToInt32(registro.Substring(175, 6)).ToString("##-##-##"));
                }
                else
                {
                    detalhe.DataCredito = detalhe.DataOcorrencia;
                }

                detalhe.ValorDespesa        = ((decimal)Convert.ToUInt64(registro.Substring(181, 7))) / 100;  //Valor das Tarifas
                detalhe.ValorOutrasDespesas = ((decimal)Convert.ToUInt64(registro.Substring(188, 13))) / 100; //Valor das Outras Despesas
                detalhe.ValorAbatimento     = ((decimal)Convert.ToUInt64(registro.Substring(227, 13))) / 100; //Valor do abatimento
                detalhe.Descontos           = ((decimal)Convert.ToUInt64(registro.Substring(240, 13))) / 100; //Valor do desconto
                detalhe.ValorPago           = ((decimal)Convert.ToUInt64(registro.Substring(253, 13))) / 100; //Valor do Recebimento
                detalhe.JurosMora           = ((decimal)Convert.ToUInt64(registro.Substring(266, 13))) / 100; //Valor de Juros
                detalhe.IdentificacaoTitulo = detalhe.NumeroDocumento;                                        //Identificação do Título no Banco
                detalhe.OutrosCreditos      = ((decimal)Convert.ToUInt64(registro.Substring(279, 13))) / 100; //Outros recebimentos

                detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 20
0
        //
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                TRegistroEDI_Caixa_Retorno reg = new TRegistroEDI_Caixa_Retorno();
                //
                reg.LinhaRegistro = registro;
                reg.DecodificarLinha();

                //Passa para o detalhe as propriedades de reg;
                DetalheRetorno detalhe = new DetalheRetorno(registro);
                //
                //reg.CodigoIdentificadorTipoRegistro;
                //reg.TipoInscricaoEmpresa;
                detalhe.NumeroInscricao = reg.NumeroInscricaoEmpresa;
                detalhe.CodigoInscricao = Utils.ToInt32(reg.CodigoEmpresa);
                //reg.Branco1;
                detalhe.NumeroControle = reg.IdentificacaoTituloEmpresa_NossoNumero;
                //
                detalhe.NossoNumeroComDV = reg.IdentificacaoTituloEmpresa_NossoNumero_Modalidde + reg.IdentificacaoTituloCaixa_NossoNumero;
                detalhe.NossoNumero = reg.IdentificacaoTituloEmpresa_NossoNumero_Modalidde + reg.IdentificacaoTituloCaixa_NossoNumero.Substring(0, reg.IdentificacaoTituloCaixa_NossoNumero.Length - 1); //Nosso Número sem o DV!
                detalhe.DACNossoNumero = reg.IdentificacaoTituloCaixa_NossoNumero.Substring(reg.IdentificacaoTituloCaixa_NossoNumero.Length - 1);
                //reg.Brancos2;
                detalhe.MotivosRejeicao = reg.CodigoMotivoRejeicao;
                //reg.IdentificacaoOperacao;
                detalhe.Carteira = reg.CodigoCarteira;
                detalhe.CodigoOcorrencia = Utils.ToInt32(reg.CodigoOcorrencia);
                //
                int dataOcorrencia = Utils.ToInt32(reg.DataOcorrencia);
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                detalhe.NumeroDocumento = reg.NumeroDocumento;
                //reg.Brancos3;
                int dataVencimento = Utils.ToInt32(reg.DataVencimentoTitulo);
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                detalhe.ValorTitulo = (Convert.ToInt64(reg.ValorTitulo) / DECIMAL_100);
                detalhe.CodigoBanco = Utils.ToInt32(reg.CodigoBancoCobrador);
                detalhe.AgenciaCobradora = Utils.ToInt32(reg.CodigoAgenciaCobradora);
                //
                //reg.EspecieTitulo;
                detalhe.ValorDespesa = (Convert.ToUInt64(reg.ValorDespesasCobranca) / DECIMAL_100);
                detalhe.OrigemPagamento = reg.TipoLiquidacao;
                //reg.FormaPagamentoUtilizada;
                //reg.FloatNegociado;
                //reg.DataDebitoTarifaLiquidacao;
                //reg.Brancos4;
                detalhe.IOF = (Convert.ToUInt64(reg.ValorIOF) / DECIMAL_100);
                detalhe.ValorAbatimento = (Convert.ToUInt64(reg.ValorAbatimentoConcedido) / DECIMAL_100);
                detalhe.Descontos = (Convert.ToUInt64(reg.ValorDescontoConcedido) / DECIMAL_100);
                detalhe.ValorPago = (Convert.ToUInt64(reg.ValorPago) / DECIMAL_100);
                detalhe.JurosMora = (Convert.ToUInt64(reg.ValorJuros) / DECIMAL_100);
                detalhe.TarifaCobranca = (Convert.ToUInt64(reg.ValorDespesasCobranca) / DECIMAL_100);
                detalhe.ValorMulta = (Convert.ToUInt64(reg.ValorMulta) / DECIMAL_100);
                //reg.ValorMulta;
                //reg.CodigoMoeda;
                int dataCredito = Utils.ToInt32(reg.DataCreditoConta);
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                //reg.Brancos5;
                //
                detalhe.NumeroSequencial = Utils.ToInt32(reg.NumeroSequenciaRegistro);
                detalhe.ValorPrincipal = detalhe.ValorPago;
                //
                //
                #region NAO RETORNADOS PELA CAIXA
                detalhe.OutrosCreditos = 0;
                detalhe.ValorOutrasDespesas = 0;
                //
                detalhe.MotivoCodigoOcorrencia = string.Empty;
                detalhe.MotivosRejeicao = string.Empty;
                detalhe.NumeroCartorio = 0;
                detalhe.NumeroProtocolo = string.Empty;
                detalhe.NomeSacado = string.Empty;
                #endregion

                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 21
0
        public virtual DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 6));
                int dataVencimento = Utils.ToInt32(registro.Substring(146, 6));
                int dataCredito = Utils.ToInt32(registro.Substring(295, 6));

                DetalheRetorno detalhe = new DetalheRetorno(registro);

                detalhe.CodigoInscricao = Utils.ToInt32(registro.Substring(1, 2));
                detalhe.NumeroInscricao = registro.Substring(3, 14);
                detalhe.Agencia = Utils.ToInt32(registro.Substring(17, 4));
                detalhe.Conta = Utils.ToInt32(registro.Substring(23, 5));
                detalhe.DACConta = Utils.ToInt32(registro.Substring(28, 1));
                detalhe.UsoEmpresa = registro.Substring(37, 25);
                detalhe.NossoNumero = registro.Substring(85, 8);
                detalhe.DACNossoNumero = Utils.ToInt32(registro.Substring(93, 1));
                detalhe.Carteira = registro.Substring(107, 1);
                detalhe.CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2));
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                detalhe.NumeroDocumento = registro.Substring(116, 10);
                detalhe.NossoNumero = registro.Substring(126, 9);
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                decimal valorTitulo = Convert.ToInt64(registro.Substring(152, 13));
                detalhe.ValorTitulo = valorTitulo / 100;
                detalhe.CodigoBanco = Utils.ToInt32(registro.Substring(165, 3));
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 4));
                detalhe.Especie = Utils.ToInt32(registro.Substring(173, 2));
                decimal tarifaCobranca = Convert.ToUInt64(registro.Substring(175, 13));
                detalhe.TarifaCobranca = tarifaCobranca / 100;
                // 26 brancos
                decimal iof = Convert.ToUInt64(registro.Substring(214, 13));
                detalhe.IOF = iof / 100;
                decimal valorAbatimento = Convert.ToUInt64(registro.Substring(227, 13));
                detalhe.ValorAbatimento = valorAbatimento / 100;
                decimal valorPrincipal = Convert.ToUInt64(registro.Substring(253, 13));
                detalhe.ValorPrincipal = valorPrincipal / 100;
                decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 13));
                detalhe.JurosMora = jurosMora / 100;
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                // 293 - 3 brancos
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                detalhe.InstrucaoCancelada = Utils.ToInt32(registro.Substring(301, 4));
                // 306 - 6 brancos
                // 311 - 13 zeros
                detalhe.NomeSacado = registro.Substring(324, 30);
                // 354 - 23 brancos
                detalhe.Erros = registro.Substring(377, 8);
                // 377 - Registros rejeitados ou alegação do sacado
                // 386 - 7 brancos

                detalhe.CodigoLiquidacao = registro.Substring(392, 2);
                detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));

                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 22
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                //Tipo de Identificação do registro
                detalhe.IdentificacaoDoRegistro = Utils.ToInt32(registro.Substring(0, 1));

                //Tipo de inscrição
                detalhe.TipoInscricao = Utils.ToInt32(registro.Substring(1, 2));

                //CGC ou CPF
                detalhe.CgcCpf = registro.Substring(3, 14);

                //Conta Corrente
                detalhe.ContaCorrente = Utils.ToInt32(registro.Substring(20, 17));

                //Nosso Número
                detalhe.NossoNumero = registro.Substring(70, 12);

                //Seu Número
                detalhe.SeuNumero = registro.Substring(92, 13);

                //Instrução
                detalhe.Instrucao = Utils.ToInt32(registro.Substring(108, 2));

                //Número do documento
                detalhe.NumeroDocumento = registro.Substring(128, 12);

                //Código do Raterio
                detalhe.CodigoRateio = Utils.ToInt32(registro.Substring(140, 4));

                //Data Ocorrência no Banco
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 8));
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-####"));

                //Data Vencimento do Título
                int dataVencimento = Utils.ToInt32(registro.Substring(148, 8));
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-####"));

                //Valor do Título
                double valorTitulo = Convert.ToInt64(registro.Substring(156, 13));
                detalhe.ValorTitulo = valorTitulo / 100;

                //Banco Cobrador
                detalhe.BancoCobrador = Utils.ToInt32(registro.Substring(163, 3));

                //Agência Cobradora
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(172, 5));

                //Espécie Título
                detalhe.EspecieTitulo = registro.Substring(177, 2);

                //Despesas de cobrança para os Códigos de Ocorrência (Valor Despesa)
                double despeasaDeCobranca = Convert.ToUInt64(registro.Substring(179, 13));
                detalhe.DespeasaDeCobranca = despeasaDeCobranca / 100;

                //Outras despesas Custas de Protesto (Valor Outras Despesas)
                double outrasDespesas = Convert.ToUInt64(registro.Substring(192, 13));
                detalhe.OutrasDespesas = outrasDespesas / 100;

                //Juros Mora
                double juros = Convert.ToUInt64(registro.Substring(205, 13));
                detalhe.Juros = juros / 100;

                // IOF
                double iof = Convert.ToUInt64(registro.Substring(218, 13));
                detalhe.IOF = iof / 100;

                //Abatimento Concedido sobre o Título (Valor Abatimento Concedido)
                double abatimento = Convert.ToUInt64(registro.Substring(231, 13));
                detalhe.Abatimentos = abatimento / 100;

                //Desconto Concedido (Valor Desconto Concedido)
                double desconto = Convert.ToUInt64(registro.Substring(244, 13));
                detalhe.Descontos = desconto / 100;

                //Valor Pago
                double valorPago = Convert.ToUInt64(registro.Substring(257, 13));
                detalhe.ValorPago = valorPago / 100;

                //Outros Débitos
                double outrosDebitos = Convert.ToUInt64(registro.Substring(270, 13));
                detalhe.OutrosDebitos = outrosDebitos / 100;

                //Outros Créditos
                double outrosCreditos = Convert.ToUInt64(registro.Substring(283, 13));
                detalhe.OutrosCreditos = outrosCreditos / 100;

                // Data de Liquidação
                int dataLiquidacao = Utils.ToInt32(registro.Substring(299, 8));
                detalhe.DataLiquidacao = Utils.ToDateTime(dataLiquidacao.ToString("##-##-####"));

                //Motivo de Rejeição
                detalhe.MotivosRejeicao = registro.Substring(364, 30);

                //Motivo de Rejeição
                detalhe.Sequencial = Utils.ToInt32(registro.Substring(394, 6));

                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 23
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                //Tipo de Identificação do registro
                detalhe.IdentificacaoDoRegistro = Utils.ToInt32(registro.Substring(0, 1));

                //Tipo de inscrição
                detalhe.TipoInscricao = Utils.ToInt32(registro.Substring(1, 2));

                //CGC ou CPF
                detalhe.CgcCpf = registro.Substring(3, 14);

                //Conta Corrente
                detalhe.ContaCorrente = Utils.ToInt32(registro.Substring(20, 17));

                //Nosso Número
                detalhe.NossoNumeroComDV = registro.Substring(70, 12);
                detalhe.NossoNumero      = registro.Substring(70, 11); //Sem o DV
                detalhe.DACNossoNumero   = registro.Substring(82, 1);  //DV
                //Seu Número
                detalhe.SeuNumero = registro.Substring(92, 13);

                //Instrução
                detalhe.Instrucao = Utils.ToInt32(registro.Substring(108, 2));

                //Número do documento
                detalhe.NumeroDocumento = registro.Substring(128, 12);

                //Código do Raterio
                detalhe.CodigoRateio = Utils.ToInt32(registro.Substring(140, 4));

                //Data Ocorrência no Banco
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 8));
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-####"));

                //Data Vencimento do Título
                int dataVencimento = Utils.ToInt32(registro.Substring(148, 8));
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-####"));

                //Valor do Título
                decimal valorTitulo = Convert.ToInt64(registro.Substring(156, 13));
                detalhe.ValorTitulo = valorTitulo / 100;

                //Banco Cobrador
                detalhe.BancoCobrador = Utils.ToInt32(registro.Substring(163, 3));

                //Agência Cobradora
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(172, 5));

                //Espécie Título
                detalhe.EspecieTitulo = registro.Substring(177, 2);

                //Despesas de cobrança para os Códigos de Ocorrência (Valor Despesa)
                decimal despeasaDeCobranca = Convert.ToUInt64(registro.Substring(179, 13));
                detalhe.DespeasaDeCobranca = despeasaDeCobranca / 100;

                //Outras despesas Custas de Protesto (Valor Outras Despesas)
                decimal outrasDespesas = Convert.ToUInt64(registro.Substring(192, 13));
                detalhe.OutrasDespesas = outrasDespesas / 100;

                //Juros Mora
                decimal juros = Convert.ToUInt64(registro.Substring(205, 13));
                detalhe.Juros = juros / 100;

                // IOF
                decimal iof = Convert.ToUInt64(registro.Substring(218, 13));
                detalhe.IOF = iof / 100;

                //Abatimento Concedido sobre o Título (Valor Abatimento Concedido)
                decimal abatimento = Convert.ToUInt64(registro.Substring(231, 13));
                detalhe.Abatimentos = abatimento / 100;

                //Desconto Concedido (Valor Desconto Concedido)
                decimal desconto = Convert.ToUInt64(registro.Substring(244, 13));
                detalhe.Descontos = desconto / 100;

                //Valor Pago
                decimal valorPago = Convert.ToUInt64(registro.Substring(257, 13));
                detalhe.ValorPago = valorPago / 100;

                //Outros Débitos
                decimal outrosDebitos = Convert.ToUInt64(registro.Substring(270, 13));
                detalhe.OutrosDebitos = outrosDebitos / 100;

                //Outros Créditos
                decimal outrosCreditos = Convert.ToUInt64(registro.Substring(283, 13));
                detalhe.OutrosCreditos = outrosCreditos / 100;

                // Data de Liquidação
                int dataLiquidacao = Utils.ToInt32(registro.Substring(299, 8));
                detalhe.DataLiquidacao = Utils.ToDateTime(dataLiquidacao.ToString("##-##-####"));

                //Motivo de Rejeição
                detalhe.MotivosRejeicao = registro.Substring(364, 30);

                //Motivo de Rejeição
                detalhe.Sequencial = Utils.ToInt32(registro.Substring(394, 6));

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 24
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                TRegistroEDI_Banrisul_Retorno reg = new TRegistroEDI_Banrisul_Retorno();
                //
                reg.LinhaRegistro = registro;
                reg.DecodificarLinha();

                //Passa para o detalhe as propriedades de reg;
                DetalheRetorno detalhe = new DetalheRetorno(registro);
                //
                //detalhe. = Constante1;
                detalhe.CodigoInscricao = Utils.ToInt32(reg.TipoInscricao);
                detalhe.NumeroInscricao = reg.CpfCnpj;
                //detalhe.Agencia = Utils.ToInt32(reg.CodigoCedente.Substring(0, 3));
                //detalhe.Conta = Utils.ToInt32(reg.CodigoCedente.Substring(4, 7));
                //detalhe.DACConta = Utils.ToInt32(reg.CodigoCedente.Substring(36, 1));

                //detalhe. = reg.EspecieCobrancaRegistrada;
                //detalhe. = reg.Branco1;
                detalhe.NumeroControle = reg.IdentificacaoTituloCedente;
                detalhe.IdentificacaoTitulo = reg.IdentificacaoTituloBanco_NossoNumero;
                //detalhe. = reg.IdentificacaoTituloBanco_NossoNumeroOpcional;
                //detalhe. = reg.NumeroContratoBLU;
                //detalhe. = reg.Brancos2;
                //detalhe. = reg.TipoCarteira;
                detalhe.CodigoOcorrencia = Utils.ToInt32(reg.CodigoOcorrencia);
                //
                int dataOcorrencia = Utils.ToInt32(reg.DataOcorrenciaBanco);
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                //
                detalhe.NumeroDocumento = reg.SeuNumero;
                detalhe.NossoNumeroComDV = reg.NossoNumero;
                detalhe.NossoNumero = reg.NossoNumero.Substring(0, reg.NossoNumero.Length - 1); //Nosso Número sem o DV!
                detalhe.DACNossoNumero = reg.NossoNumero.Substring(reg.NossoNumero.Length - 1); //DV
                //
                int dataVencimento = Utils.ToInt32(reg.DataVencimentoTitulo);
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                //
                decimal valorTitulo = Convert.ToInt64(reg.ValorTitulo);
                detalhe.ValorTitulo = valorTitulo / 100;

                //Banco Cobrador
                detalhe.CodigoBanco = Utils.ToInt32(reg.CodigoBancoCobrador);
                //Agência Cobradora
                detalhe.AgenciaCobradora = Utils.ToInt32(reg.CodigoAgenciaCobradora);
                //
                //detalhe.Especie = reg.TipoDocumento; //Verificar Espécie de Documentos...
                //Despesas de cobrança para os Códigos de Ocorrência (Valor Despesa)
                decimal valorDespesa = Convert.ToUInt64(reg.ValorDespesasCobranca);
                detalhe.ValorDespesa = valorDespesa / 100;
                //Outras despesas Custas de Protesto (Valor Outras Despesas)
                decimal valorOutrasDespesas = Convert.ToUInt64(reg.OutrasDespesas);
                detalhe.ValorOutrasDespesas = valorOutrasDespesas / 100;
                //detalhe. = reg.Zeros1;
                //detalhe. = reg.ValorAvista;
                //detalhe. = reg.SituacaoIOF;
                //detalhe. = reg.Zeros2;

                //Abatimento Concedido sobre o Título (Valor Abatimento Concedido)
                decimal valorAbatimento = Convert.ToUInt64(reg.ValorAbatimento_DeflacaoConcedido);
                detalhe.ValorAbatimento = valorAbatimento / 100;
                //Desconto Concedido (Valor Desconto Concedido)
                decimal valorDesconto = Convert.ToUInt64(reg.ValorDescontoConcedido);
                detalhe.Descontos = valorDesconto / 100;
                //Valor Pago
                decimal valorPago = Convert.ToUInt64(reg.ValorPago);
                detalhe.ValorPago = valorPago / 100;
                //Juros Mora
                decimal jurosMora = Convert.ToUInt64(reg.ValorJuros);
                detalhe.JurosMora = jurosMora / 100;
                //Outros Créditos
                decimal outrosCreditos = Convert.ToUInt64(reg.ValorOutrosRecebimentos);
                detalhe.OutrosCreditos = outrosCreditos / 100;
                //detalhe. = reg.Brancos3;
                int dataCredito = Utils.ToInt32(reg.DataCreditoConta);
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                //detalhe. = reg.Brancos4;
                detalhe.OrigemPagamento = reg.PagamentoDinheiro_Cheque;
                //detalhe. = reg.Brancos5;
                detalhe.MotivoCodigoOcorrencia = reg.MotivoOcorrencia;
                //detalhe. = reg.Brancos6;
                detalhe.NumeroSequencial = Utils.ToInt32(reg.NumeroSequenciaRegistro);
                //
                //
                #region NAO RETORNADOS PELO BANRISUL
                detalhe.IOF = 0;
                //Motivos das Rejeições para os Códigos de Ocorrência
                detalhe.MotivosRejeicao = string.Empty;
                //Número do Cartório
                detalhe.NumeroCartorio = 0;
                //Número do Protocolo
                detalhe.NumeroProtocolo = string.Empty;
                //Nome do Sacado
                detalhe.NomeSacado = "";
                #endregion

                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 25
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                //Tipo de Inscrição Empresa
                detalhe.CodigoInscricao = Utils.ToInt32(registro.Substring(1, 2));
                //Nº Inscrição da Empresa
                detalhe.NumeroInscricao = registro.Substring(3, 14);

                //Identificação da Empresa Cedente no Banco
                detalhe.Agencia  = Utils.ToInt32(registro.Substring(24, 6));
                detalhe.Conta    = Utils.ToInt32(registro.Substring(30, 7));
                detalhe.DACConta = Utils.ToInt32(registro.Substring(36, 1));

                //Nº Controle do Participante
                detalhe.NumeroControle = registro.Substring(37, 25);
                //Identificação do Título no Banco
                detalhe.NossoNumeroComDV = registro.Substring(70, 12);
                detalhe.NossoNumero      = registro.Substring(70, 11); //Sem o DV
                detalhe.DACNossoNumero   = registro.Substring(81, 1);  //DV
                //Carteira
                detalhe.Carteira = registro.Substring(107, 1);
                //Identificação de Ocorrência
                detalhe.CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2));

                //Descrição da ocorrência
                detalhe.DescricaoOcorrencia = this.Ocorrencia(registro.Substring(108, 2));

                //Número do Documento
                detalhe.NumeroDocumento = registro.Substring(116, 10);
                //Identificação do Título no Banco
                detalhe.IdentificacaoTitulo = registro.Substring(126, 20);

                //Valor do Título
                decimal valorTitulo = Convert.ToInt64(registro.Substring(152, 13));
                detalhe.ValorTitulo = valorTitulo / 100;
                //Banco Cobrador
                detalhe.CodigoBanco = Utils.ToInt32(registro.Substring(165, 3));
                //Agência Cobradora
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 5));
                //Espécie do Título
                detalhe.Especie = Utils.ToInt32(registro.Substring(173, 2));
                //Despesas de cobrança para os Códigos de Ocorrência (Valor Despesa)
                decimal valorDespesa = Convert.ToUInt64(registro.Substring(175, 13));
                detalhe.ValorDespesa = valorDespesa / 100;
                //Outras despesas Custas de Protesto (Valor Outras Despesas)
                decimal valorOutrasDespesas = Convert.ToUInt64(registro.Substring(188, 13));
                detalhe.ValorOutrasDespesas = valorOutrasDespesas / 100;
                // IOF
                decimal iof = Convert.ToUInt64(registro.Substring(214, 13));
                detalhe.IOF = iof / 100;
                //Abatimento Concedido sobre o Título (Valor Abatimento Concedido)
                decimal valorAbatimento = Convert.ToUInt64(registro.Substring(227, 13));
                detalhe.ValorAbatimento = valorAbatimento / 100;
                //Desconto Concedido (Valor Desconto Concedido)
                decimal valorDesconto = Convert.ToUInt64(registro.Substring(240, 13));
                detalhe.Descontos = valorDesconto / 100;
                //Valor Pago
                decimal valorPago = Convert.ToUInt64(registro.Substring(253, 13));
                detalhe.ValorPago = valorPago / 100;
                //Juros Mora
                decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 13));
                detalhe.JurosMora = jurosMora / 100;
                //Outros Créditos
                decimal outrosCreditos = Convert.ToUInt64(registro.Substring(279, 13));
                detalhe.OutrosCreditos = outrosCreditos / 100;
                //Motivo do Código de Ocorrência 19 (Confirmação de Instrução de Protesto)
                detalhe.MotivoCodigoOcorrencia = registro.Substring(294, 1);

                //Data Ocorrência no Banco
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 6));
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                //Data Vencimento do Título
                int dataVencimento = Utils.ToInt32(registro.Substring(146, 6));
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                // Data do Crédito
                int dataCredito = Utils.ToInt32(registro.Substring(295, 6));
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));

                //Origem Pagamento
                detalhe.OrigemPagamento = registro.Substring(301, 3);

                //Motivos das Rejeições para os Códigos de Ocorrência
                detalhe.MotivosRejeicao = registro.Substring(318, 10);
                //Número do Cartório
                detalhe.NumeroCartorio = Utils.ToInt32(registro.Substring(365, 2));
                //Número do Protocolo
                detalhe.NumeroProtocolo = registro.Substring(365, 2);
                //Nome do Sacado
                detalhe.NomeSacado = "";

                detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 26
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                int idRegistro = Utils.ToInt32(registro.Substring(0, 1));
                detalhe.IdentificacaoDoRegistro = idRegistro;

                detalhe.NossoNumero = registro.Substring(47, 15);

                int codigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2));
                detalhe.CodigoOcorrencia = codigoOcorrencia;

                //Data Ocorrência no Banco
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 6));
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));

                detalhe.SeuNumero = registro.Substring(116, 10);

                int dataVencimento = Utils.ToInt32(registro.Substring(146, 6));
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));

                decimal valorTitulo = Convert.ToUInt64(registro.Substring(152, 13));
                detalhe.ValorTitulo = valorTitulo / 100;

                detalhe.EspecieTitulo = registro.Substring(174, 1);

                decimal despeasaDeCobranca = Convert.ToUInt64(registro.Substring(175, 13));
                detalhe.DespeasaDeCobranca = despeasaDeCobranca / 100;

                decimal outrasDespesas = Convert.ToUInt64(registro.Substring(188, 13));
                detalhe.OutrasDespesas = outrasDespesas / 100;

                decimal abatimentoConcedido = Convert.ToUInt64(registro.Substring(227, 13));
                detalhe.Abatimentos = abatimentoConcedido / 100;

                decimal descontoConcedido = Convert.ToUInt64(registro.Substring(240, 13));
                detalhe.Descontos = descontoConcedido / 100;

                decimal valorPago = Convert.ToUInt64(registro.Substring(253, 13));
                detalhe.ValorPago = valorPago / 100;

                decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 13));
                detalhe.JurosMora = jurosMora / 100;

                int dataCredito = Utils.ToInt32(registro.Substring(328, 8));
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("####-##-##"));

                detalhe.MotivosRejeicao = registro.Substring(318, 10);

                detalhe.NomeSacado = registro.Substring(19, 5);
                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 27
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                TRegistroEDI_Banrisul_Retorno reg = new TRegistroEDI_Banrisul_Retorno();
                //
                reg.LinhaRegistro = registro;
                reg.DecodificarLinha();

                //Passa para o detalhe as propriedades de reg;
                DetalheRetorno detalhe = new DetalheRetorno(registro);
                //
                //detalhe. = Constante1;
                detalhe.CodigoInscricao = Utils.ToInt32(reg.TipoInscricao);
                detalhe.NumeroInscricao = reg.CpfCnpj;
                //detalhe.Agencia = Utils.ToInt32(reg.CodigoCedente.Substring(0, 3));
                //detalhe.Conta = Utils.ToInt32(reg.CodigoCedente.Substring(4, 7));
                //detalhe.DACConta = Utils.ToInt32(reg.CodigoCedente.Substring(36, 1));

                //detalhe. = reg.EspecieCobrancaRegistrada;
                //detalhe. = reg.Branco1;
                detalhe.NumeroControle      = reg.IdentificacaoTituloCedente;
                detalhe.IdentificacaoTitulo = reg.IdentificacaoTituloBanco_NossoNumero;
                //detalhe. = reg.IdentificacaoTituloBanco_NossoNumeroOpcional;
                //detalhe. = reg.NumeroContratoBLU;
                //detalhe. = reg.Brancos2;
                //detalhe. = reg.TipoCarteira;
                detalhe.CodigoOcorrencia = Utils.ToInt32(reg.CodigoOcorrencia);
                //
                int dataOcorrencia = Utils.ToInt32(reg.DataOcorrenciaBanco);
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                //
                detalhe.NumeroDocumento  = reg.SeuNumero;
                detalhe.NossoNumeroComDV = reg.NossoNumero;
                detalhe.NossoNumero      = reg.NossoNumero.Substring(0, reg.NossoNumero.Length - 1); //Nosso Número sem o DV!
                detalhe.DACNossoNumero   = reg.NossoNumero.Substring(reg.NossoNumero.Length - 1);    //DV
                //
                int dataVencimento = Utils.ToInt32(reg.DataVencimentoTitulo);
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                //
                decimal valorTitulo = Convert.ToInt64(reg.ValorTitulo);
                detalhe.ValorTitulo = valorTitulo / 100;

                //Banco Cobrador
                detalhe.CodigoBanco = Utils.ToInt32(reg.CodigoBancoCobrador);
                //Agência Cobradora
                detalhe.AgenciaCobradora = Utils.ToInt32(reg.CodigoAgenciaCobradora);
                //
                //detalhe.Especie = reg.TipoDocumento; //Verificar Espécie de Documentos...
                //Despesas de cobrança para os Códigos de Ocorrência (Valor Despesa)
                decimal valorDespesa = Convert.ToUInt64(reg.ValorDespesasCobranca);
                detalhe.ValorDespesa = valorDespesa / 100;
                //Outras despesas Custas de Protesto (Valor Outras Despesas)
                decimal valorOutrasDespesas = Convert.ToUInt64(reg.OutrasDespesas);
                detalhe.ValorOutrasDespesas = valorOutrasDespesas / 100;
                //detalhe. = reg.Zeros1;
                //detalhe. = reg.ValorAvista;
                //detalhe. = reg.SituacaoIOF;
                //detalhe. = reg.Zeros2;

                //Abatimento Concedido sobre o Título (Valor Abatimento Concedido)
                decimal valorAbatimento = Convert.ToUInt64(reg.ValorAbatimento_DeflacaoConcedido);
                detalhe.ValorAbatimento = valorAbatimento / 100;
                //Desconto Concedido (Valor Desconto Concedido)
                decimal valorDesconto = Convert.ToUInt64(reg.ValorDescontoConcedido);
                detalhe.Descontos = valorDesconto / 100;
                //Valor Pago
                decimal valorPago = Convert.ToUInt64(reg.ValorPago);
                detalhe.ValorPago = valorPago / 100;
                //Juros Mora
                decimal jurosMora = Convert.ToUInt64(reg.ValorJuros);
                detalhe.JurosMora = jurosMora / 100;
                //Outros Créditos
                decimal outrosCreditos = Convert.ToUInt64(reg.ValorOutrosRecebimentos);
                detalhe.OutrosCreditos = outrosCreditos / 100;
                //detalhe. = reg.Brancos3;
                int dataCredito = Utils.ToInt32(reg.DataCreditoConta);
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                //detalhe. = reg.Brancos4;
                detalhe.OrigemPagamento = reg.PagamentoDinheiro_Cheque;
                //detalhe. = reg.Brancos5;
                detalhe.MotivoCodigoOcorrencia = reg.MotivoOcorrencia;
                //detalhe. = reg.Brancos6;
                detalhe.NumeroSequencial = Utils.ToInt32(reg.NumeroSequenciaRegistro);
                //
                //
                #region NAO RETORNADOS PELO BANRISUL
                detalhe.IOF = 0;
                //Motivos das Rejeições para os Códigos de Ocorrência
                detalhe.MotivosRejeicao = string.Empty;
                //Número do Cartório
                detalhe.NumeroCartorio = 0;
                //Número do Protocolo
                detalhe.NumeroProtocolo = string.Empty;
                //Nome do Sacado
                detalhe.NomeSacado = "";
                #endregion

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
 public virtual void OnLinhaLida(DetalheRetorno detalheRetorno, string linha)
 {
     try
     {
         if (this.LinhaDeArquivoLida != null)
             this.LinhaDeArquivoLida(this, new LinhaDeArquivoLidaArgs(detalheRetorno, linha));
     }
     catch (Exception ex)
     {
         throw new Exception("Erro ao gerar evento.", ex);
     }
 }
Esempio n. 29
0
        //

        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                TRegistroEDI_BancoBrasil_Retorno reg = new TRegistroEDI_BancoBrasil_Retorno();
                //
                reg.LinhaRegistro = registro;
                reg.DecodificarLinha();

                //Passa para o detalhe as propriedades de reg;
                DetalheRetorno detalhe = new DetalheRetorno(registro);
                //
                //detalhe. = reg.Identificacao;
                //detalhe. = reg.Zeros1;
                //detalhe. = reg.Zeros2;
                detalhe.Agencia = Utils.ToInt32(String.Concat(reg.PrefixoAgencia, reg.DVPrefixoAgencia));
                detalhe.Conta = Utils.ToInt32(reg.ContaCorrente);
                detalhe.DACConta = Utils.ToInt32(reg.DVContaCorrente);
                //detalhe. = reg.NumeroConvenioCobranca;
                //detalhe. = reg.NumeroControleParticipante;
                //
                detalhe.NossoNumeroComDV = reg.NossoNumero;
                detalhe.NossoNumero = reg.NossoNumero.Substring(0, reg.NossoNumero.Length - 1); //Nosso Número sem o DV!
                detalhe.DACNossoNumero = reg.NossoNumero.Substring(reg.NossoNumero.Length - 1); //DV
                //
                //detalhe. = reg.TipoCobranca;
                //detalhe. = reg.TipoCobrancaEspecifico;
                //detalhe. = reg.DiasCalculo;
                //detalhe. = reg.NaturezaRecebimento;
                //detalhe. = reg.PrefixoTitulo;
                //detalhe. = reg.VariacaoCarteira;
                //detalhe. = reg.ContaCaucao;
                //detalhe. = reg.TaxaDesconto;
                //detalhe. = reg.TaxaIOF;
                //detalhe. = reg.Brancos1;
                detalhe.Carteira = reg.Carteira;
                detalhe.CodigoOcorrencia = Utils.ToInt32(reg.Comando);
                //
                int dataLiquidacao = Utils.ToInt32(reg.DataLiquidacao);
                detalhe.DataLiquidacao = Utils.ToDateTime(dataLiquidacao.ToString("##-##-##"));
                //
                detalhe.NumeroDocumento = reg.NumeroTituloCedente;
                //detalhe. = reg.Brancos2;
                //
                int dataVencimento = Utils.ToInt32(reg.DataVencimento);
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                //
                detalhe.ValorTitulo = (Convert.ToInt64(reg.ValorTitulo) / 100);
                detalhe.CodigoBanco = Utils.ToInt32(reg.CodigoBancoRecebedor);
                detalhe.AgenciaCobradora = Utils.ToInt32(reg.PrefixoAgenciaRecebedora);
                //detalhe. = reg.DVPrefixoRecebedora;
                detalhe.Especie = Utils.ToInt32(reg.EspecieTitulo);
                //
                int dataCredito = Utils.ToInt32(reg.DataCredito);
                detalhe.DataOcorrencia = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                //
                detalhe.TarifaCobranca = (Convert.ToInt64(reg.ValorTarifa) / 100);
                detalhe.OutrasDespesas = (Convert.ToInt64(reg.OutrasDespesas) / 100);
                detalhe.ValorOutrasDespesas = (Convert.ToInt64(reg.JurosDesconto) / 100);
                detalhe.IOF = (Convert.ToInt64(reg.IOFDesconto) / 100);
                detalhe.Abatimentos = (Convert.ToInt64(reg.ValorAbatimento) / 100);
                detalhe.Descontos = (Convert.ToInt64(reg.DescontoConcedido) / 100);
                detalhe.ValorPrincipal = (Convert.ToInt64(reg.ValorRecebido) / 100);
                detalhe.JurosMora = (Convert.ToInt64(reg.JurosMora) / 100);
                detalhe.OutrosCreditos = (Convert.ToInt64(reg.OutrosRecebimentos) / 100);
                //detalhe. = reg.AbatimentoNaoAproveitado;
                detalhe.ValorPago = (Convert.ToInt64(reg.ValorLancamento) / 100);
                //detalhe. = reg.IndicativoDebitoCredito;
                //detalhe. = reg.IndicadorValor;
                //detalhe. = reg.ValorAjuste;
                //detalhe. = reg.Brancos3;
                //detalhe. = reg.Brancos4;
                //detalhe. = reg.Zeros3;
                //detalhe. = reg.Zeros4;
                //detalhe. = reg.Zeros5;
                //detalhe. = reg.Zeros6;
                //detalhe. = reg.Zeros7;
                //detalhe. = reg.Zeros8;
                //detalhe. = reg.Brancos5;
                //detalhe. = reg.CanalPagamento;
                //detalhe. = reg.NumeroSequenciaRegistro;
                #region NAO RETORNADOS PELO BANCO
                detalhe.MotivoCodigoOcorrencia = string.Empty;
                detalhe.MotivosRejeicao = string.Empty;
                detalhe.NumeroCartorio = 0;
                detalhe.NumeroProtocolo = string.Empty;
                detalhe.NomeSacado = string.Empty;
                #endregion

                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 30
0
        /// <summary>
        /// Rotina de retorno de remessa
        /// Criador: Adriano Trentim Augusto
        /// E-mail: [email protected]
        /// Data: 29/04/2014
        /// </summary>
        /// <param name="registro"></param>
        /// <returns></returns>
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                var detalhe = new DetalheRetorno(registro);

                detalhe.CodigoInscricao = Utils.ToInt32(registro.Substring(1, 2)); //Tipo de Inscrição Empresa
                detalhe.NumeroInscricao = registro.Substring(3, 14); //Nº Inscrição da Empresa

                //Identificação da Empresa Cedente no Banco
                detalhe.Agencia = Utils.ToInt32(registro.Substring(17, 4));
                detalhe.Conta = Utils.ToInt32(registro.Substring(23, 8));
                detalhe.DACConta = Utils.ToInt32(registro.Substring(30, 1));

                detalhe.NumeroControle = registro.Substring(37, 25); //Nº Controle do Participante
                
                //Identificação do Título no Banco
                detalhe.NossoNumero = registro.Substring(62, 11);
                detalhe.DACNossoNumero = registro.Substring(73, 1);

                switch (registro.Substring(106, 2)) // Carteira
	        {
	          case "01":
	            detalhe.Carteira = "1";
	            break;
	          case "02":
	            detalhe.Carteira = "1";
	            break;
	          case "03":
	            detalhe.Carteira = "3";
	            break;
	        }
	        
                detalhe.CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2)); //Identificação de Ocorrência
                detalhe.DescricaoOcorrencia = this.Ocorrencia(registro.Substring(108, 2)); //Descrição da ocorrência
                detalhe.DataOcorrencia = Utils.ToDateTime(Utils.ToInt32(registro.Substring(110, 6)).ToString("##-##-##")); //Data da ocorrencia

                //Quando ocorrencia = Liquidação, pega a data.
                if (detalhe.CodigoOcorrencia == 5 || detalhe.CodigoOcorrencia == 6 || detalhe.CodigoOcorrencia == 15)
                    detalhe.DataLiquidacao = detalhe.DataOcorrencia;

                detalhe.NumeroDocumento = registro.Substring(116, 10); //Número do Documento
                detalhe.DataVencimento = Utils.ToDateTime(Utils.ToInt32(registro.Substring(146, 6)).ToString("##-##-##")); //Data de Vencimento
                detalhe.ValorTitulo = ((decimal)Convert.ToInt64(registro.Substring(152, 13))) / 100; //Valor do Titulo
                detalhe.CodigoBanco = Utils.ToInt32(registro.Substring(165, 3)); //Banco Cobrador
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 4)); //Agência Cobradora
                detalhe.DACAgenciaCobradora = Utils.ToInt32(registro.Substring(172, 1)); // DV Agencia Cobradora
                detalhe.Especie = Utils.ToInt32(registro.Substring(173, 2)); //Espécie do Título

                //Data de Crédito - Só vem preenchido quando liquidação
                if (registro.Substring(175, 6) != "000000")
                    detalhe.DataCredito = Utils.ToDateTime(Utils.ToInt32(registro.Substring(175, 6)).ToString("##-##-##"));
                else
                    detalhe.DataCredito = detalhe.DataOcorrencia;

                detalhe.ValorDespesa = ((decimal)Convert.ToUInt64(registro.Substring(181, 7))) / 100; //Valor das Tarifas
                detalhe.ValorOutrasDespesas = ((decimal)Convert.ToUInt64(registro.Substring(188, 13))) / 100; //Valor das Outras Despesas
                detalhe.ValorAbatimento = ((decimal)Convert.ToUInt64(registro.Substring(227, 13))) / 100; //Valor do abatimento
                detalhe.Descontos = ((decimal)Convert.ToUInt64(registro.Substring(240, 13))) / 100; //Valor do desconto
                detalhe.ValorPago = ((decimal)Convert.ToUInt64(registro.Substring(253, 13))) / 100; //Valor do Recebimento
                detalhe.JurosMora = ((decimal)Convert.ToUInt64(registro.Substring(266, 13))) / 100; //Valor de Juros
                detalhe.IdentificacaoTitulo = detalhe.NumeroDocumento; //Identificação do Título no Banco
                detalhe.OutrosCreditos = ((decimal)Convert.ToUInt64(registro.Substring(279, 13))) / 100; //Outros recebimentos

                detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));

                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 31
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                DetalheRetorno detalhe = new DetalheRetorno(registro);

                //Tipo de Inscrição Empresa
                detalhe.CodigoInscricao = Utils.ToInt32(registro.Substring(1, 2));
                //Nº Inscrição da Empresa
                detalhe.NumeroInscricao = registro.Substring(3, 14);

                //Identificação da Empresa Cedente no Banco
                detalhe.Agencia = Utils.ToInt32(registro.Substring(24, 6));
                detalhe.Conta = Utils.ToInt32(registro.Substring(30, 7));
                detalhe.DACConta = Utils.ToInt32(registro.Substring(36, 1));

                //Nº Controle do Participante
                detalhe.NumeroControle = registro.Substring(37, 25);
                //Identificação do Título no Banco
                detalhe.NossoNumeroComDV = registro.Substring(70, 12);
                detalhe.NossoNumero = registro.Substring(70, 11);//Sem o DV
                detalhe.DACNossoNumero = registro.Substring(81, 1); //DV
                //Carteira
                detalhe.Carteira = registro.Substring(107, 1);
                //Identificação de Ocorrência
                detalhe.CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2));

                //Descrição da ocorrência
                detalhe.DescricaoOcorrencia = this.Ocorrencia(registro.Substring(108, 2));

                //Número do Documento
                detalhe.NumeroDocumento = registro.Substring(116, 10);
                //Identificação do Título no Banco
                detalhe.IdentificacaoTitulo = registro.Substring(126, 20);

                //Valor do Título
                decimal valorTitulo = Convert.ToInt64(registro.Substring(152, 13));
                detalhe.ValorTitulo = valorTitulo / 100;
                //Banco Cobrador
                detalhe.CodigoBanco = Utils.ToInt32(registro.Substring(165, 3));
                //Agência Cobradora
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 5));
                //Espécie do Título
                detalhe.Especie = Utils.ToInt32(registro.Substring(173, 2));
                //Despesas de cobrança para os Códigos de Ocorrência (Valor Despesa)
                decimal valorDespesa = Convert.ToUInt64(registro.Substring(175, 13));
                detalhe.ValorDespesa = valorDespesa / 100;
                //Outras despesas Custas de Protesto (Valor Outras Despesas)
                decimal valorOutrasDespesas = Convert.ToUInt64(registro.Substring(188, 13));
                detalhe.ValorOutrasDespesas = valorOutrasDespesas / 100;
                // IOF
                decimal iof = Convert.ToUInt64(registro.Substring(214, 13));
                detalhe.IOF = iof / 100;
                //Abatimento Concedido sobre o Título (Valor Abatimento Concedido)
                decimal valorAbatimento = Convert.ToUInt64(registro.Substring(227, 13));
                detalhe.ValorAbatimento = valorAbatimento / 100;
                //Desconto Concedido (Valor Desconto Concedido)
                decimal valorDesconto = Convert.ToUInt64(registro.Substring(240, 13));
                detalhe.Descontos = valorDesconto / 100;
                //Valor Pago
                decimal valorPago = Convert.ToUInt64(registro.Substring(253, 13));
                detalhe.ValorPago = valorPago / 100;
                //Juros Mora
                decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 13));
                detalhe.JurosMora = jurosMora / 100;
                //Outros Créditos
                decimal outrosCreditos = Convert.ToUInt64(registro.Substring(279, 13));
                detalhe.OutrosCreditos = outrosCreditos / 100;
                //Motivo do Código de Ocorrência 19 (Confirmação de Instrução de Protesto)
                detalhe.MotivoCodigoOcorrencia = registro.Substring(294, 1);

                //Data Ocorrência no Banco
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 6));
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                //Data Vencimento do Título
                int dataVencimento = Utils.ToInt32(registro.Substring(146, 6));
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                // Data do Crédito
                int dataCredito = Utils.ToInt32(registro.Substring(295, 6));
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));

                //Origem Pagamento
                detalhe.OrigemPagamento = registro.Substring(301, 3);

                //Motivos das Rejeições para os Códigos de Ocorrência
                detalhe.MotivosRejeicao = registro.Substring(318, 10);
                //Número do Cartório
                detalhe.NumeroCartorio = Utils.ToInt32(registro.Substring(365, 2));
                //Número do Protocolo
                detalhe.NumeroProtocolo = registro.Substring(365, 2);
                //Nome do Sacado
                detalhe.NomeSacado = "";

                detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));

                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 32
0
        //string IBanco.GerarHeaderLoteRemessa(string numeroConvenio, Cedente cendente, int numeroArquivoRemessa, TipoArquivo tipoArquivo, Boleto boletos) {
        //    throw new NotImplementedException();
        //}

        //string IBanco.GerarDetalheSegmentoPRemessa(Boleto boleto, int numeroRegistro, string numeroConvenio) {
        //    throw new NotImplementedException();
        //}

        //string IBanco.GerarDetalheSegmentoPRemessa(Boleto boleto, int numeroRegistro, string numeroConvenio, Cedente cedente) {
        //    throw new NotImplementedException();
        //}

        //string IBanco.GerarDetalheSegmentoPRemessa(Boleto boleto, int numeroRegistro, string numeroConvenio, Cedente cedente, Boleto boletos) {
        //    throw new NotImplementedException();
        //}

        //string IBanco.GerarDetalheSegmentoQRemessa(Boleto boleto, int numeroRegistro, TipoArquivo tipoArquivo) {
        //    throw new NotImplementedException();
        //}

        //string IBanco.GerarDetalheSegmentoQRemessa(Boleto boleto, int numeroRegistro, Sacado sacado) {
        //    throw new NotImplementedException();
        //}

        //string IBanco.GerarDetalheSegmentoRRemessa(Boleto boleto, int numeroRegistro, TipoArquivo tipoArquivo) {
        //    throw new NotImplementedException();
        //}

        //string IBanco.GerarTrailerArquivoRemessa(int numeroRegistro) {
        //    throw new NotImplementedException();
        //}

        //string IBanco.GerarTrailerArquivoRemessa(int numeroRegistro, Boleto boletos) {
        //    throw new NotImplementedException();
        //}

        //string IBanco.GerarTrailerLoteRemessa(int numeroRegistro) {
        //    throw new NotImplementedException();
        //}

        //string IBanco.GerarTrailerLoteRemessa(int numeroRegistro, Boleto boletos) {
        //    throw new NotImplementedException();
        //}

        #endregion

        #region Arquivo Retorno
        //DetalheSegmentoTRetornoCNAB240 IBanco.LerDetalheSegmentoTRetornoCNAB240(string registro) {
        //    throw new NotImplementedException();
        //}

        //DetalheSegmentoURetornoCNAB240 IBanco.LerDetalheSegmentoURetornoCNAB240(string registro) {
        //    throw new NotImplementedException();
        //}

        //DetalheSegmentoWRetornoCNAB240 IBanco.LerDetalheSegmentoWRetornoCNAB240(string registro) {
        //    throw new NotImplementedException();
        //}

        DetalheRetorno IBanco.LerDetalheRetornoCNAB400(string registro)
        {
            try {
                TRegistroEDI_Cecred_Retorno reg = new TRegistroEDI_Cecred_Retorno();
                //
                reg.LinhaRegistro = registro;
                reg.DecodificarLinha();

                //Passa para o detalhe as propriedades de reg;
                DetalheRetorno detalhe = new DetalheRetorno(registro);
                //
                //detalhe. = reg.Identificacao;
                //detalhe. = reg.Zeros1;
                //detalhe. = reg.Zeros2;
                detalhe.Agencia  = Utils.ToInt32(String.Concat(reg.PrefixoAgencia, reg.DVPrefixoAgencia));
                detalhe.Conta    = Utils.ToInt32(reg.ContaCorrente);
                detalhe.DACConta = Utils.ToInt32(reg.DVContaCorrente);
                //detalhe. = reg.NumeroConvenioCobranca;
                //detalhe. = reg.NumeroControleParticipante;
                //
                detalhe.NossoNumeroComDV = reg.NossoNumero;
                detalhe.NossoNumero      = reg.NossoNumero.Substring(0, reg.NossoNumero.Length - 1); //Nosso Número sem o DV!
                detalhe.DACNossoNumero   = reg.NossoNumero.Substring(reg.NossoNumero.Length - 1);    //DV
                //
                //detalhe. = reg.TipoCobranca;
                //detalhe. = reg.TipoCobrancaEspecifico;
                //detalhe. = reg.DiasCalculo;
                //detalhe. = reg.NaturezaRecebimento;
                //detalhe. = reg.PrefixoTitulo;
                //detalhe. = reg.VariacaoCarteira;
                //detalhe. = reg.ContaCaucao;
                //detalhe. = reg.TaxaDesconto;
                //detalhe. = reg.TaxaIOF;
                //detalhe. = reg.Brancos1;
                detalhe.Carteira         = reg.Carteira;
                detalhe.CodigoOcorrencia = Utils.ToInt32(reg.Comando);
                //
                int dataLiquidacao = Utils.ToInt32(reg.DataLiquidacao);
                detalhe.DataLiquidacao = Utils.ToDateTime(dataLiquidacao.ToString("##-##-##"));
                //
                detalhe.NumeroDocumento = reg.NumeroTituloCedente;
                //detalhe. = reg.Brancos2;
                //
                int dataVencimento = Utils.ToInt32(reg.DataVencimento);
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                //
                detalhe.ValorTitulo      = (Convert.ToInt64(reg.ValorTitulo) / 100);
                detalhe.CodigoBanco      = Utils.ToInt32(reg.CodigoBancoRecebedor);
                detalhe.AgenciaCobradora = Utils.ToInt32(reg.PrefixoAgenciaRecebedora);
                //detalhe. = reg.DVPrefixoRecebedora;
                detalhe.Especie = Utils.ToInt32(reg.EspecieTitulo);
                //
                int dataCredito = Utils.ToInt32(reg.DataCredito);
                detalhe.DataOcorrencia = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                //
                detalhe.TarifaCobranca      = (Convert.ToInt64(reg.ValorTarifa) / 100);
                detalhe.OutrasDespesas      = (Convert.ToInt64(reg.OutrasDespesas) / 100);
                detalhe.ValorOutrasDespesas = (Convert.ToInt64(reg.JurosDesconto) / 100);
                detalhe.IOF            = (Convert.ToInt64(reg.IOFDesconto) / 100);
                detalhe.Abatimentos    = (Convert.ToInt64(reg.ValorAbatimento) / 100);
                detalhe.Descontos      = (Convert.ToInt64(reg.DescontoConcedido) / 100);
                detalhe.ValorPrincipal = (Convert.ToInt64(reg.ValorRecebido) / 100);
                detalhe.JurosMora      = (Convert.ToInt64(reg.JurosMora) / 100);
                detalhe.OutrosCreditos = (Convert.ToInt64(reg.OutrosRecebimentos) / 100);
                //detalhe. = reg.AbatimentoNaoAproveitado;
                detalhe.ValorPago = (Convert.ToInt64(reg.ValorLancamento) / 100);
                //detalhe. = reg.IndicativoDebitoCredito;
                //detalhe. = reg.IndicadorValor;
                //detalhe. = reg.ValorAjuste;
                //detalhe. = reg.Brancos3;
                //detalhe. = reg.Brancos4;
                //detalhe. = reg.Zeros3;
                //detalhe. = reg.Zeros4;
                //detalhe. = reg.Zeros5;
                //detalhe. = reg.Zeros6;
                //detalhe. = reg.Zeros7;
                //detalhe. = reg.Zeros8;
                //detalhe. = reg.Brancos5;
                //detalhe. = reg.CanalPagamento;
                //detalhe. = reg.NumeroSequenciaRegistro;
                #region NAO RETORNADOS PELO BANCO
                detalhe.MotivoCodigoOcorrencia = string.Empty;
                detalhe.MotivosRejeicao        = string.Empty;
                detalhe.NumeroCartorio         = 0;
                detalhe.NumeroProtocolo        = string.Empty;
                detalhe.NomeSacado             = string.Empty;
                #endregion

                return(detalhe);
            } catch (Exception ex) {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 33
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                TRegistroEDI_Sicredi_Retorno reg = new TRegistroEDI_Sicredi_Retorno();
                //
                reg.LinhaRegistro = registro;
                reg.DecodificarLinha();

                //Passa para o detalhe as propriedades de reg;
                DetalheRetorno detalhe = new DetalheRetorno(registro);
                //
                detalhe.IdentificacaoDoRegistro = Utils.ToInt32(reg.IdentificacaoRegDetalhe);
                //Filler1
                //TipoCobranca
                //CodigoPagadorAgenciaBeneficiario
                detalhe.NomeSacado = reg.CodigoPagadorJuntoAssociado;
                //BoletoDDA
                //Filler2
                #region NossoNumeroSicredi
                detalhe.NossoNumeroComDV = reg.NossoNumeroSicredi;
                detalhe.NossoNumero = reg.NossoNumeroSicredi.Substring(0, reg.NossoNumeroSicredi.Length - 1); //Nosso Número sem o DV!
                detalhe.DACNossoNumero = reg.NossoNumeroSicredi.Substring(reg.NossoNumeroSicredi.Length - 1); //DV do Nosso Numero
                #endregion
                //Filler3
                detalhe.CodigoOcorrencia = Utils.ToInt32(reg.Ocorrencia);
                int dataOcorrencia = Utils.ToInt32(reg.DataOcorrencia);
                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                detalhe.NumeroDocumento = reg.SeuNumero;
                //Filler4
                if (!String.IsNullOrEmpty(reg.DataVencimento))
                {
                    int dataVencimento = Utils.ToInt32(reg.DataVencimento);
                    detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                }
                decimal valorTitulo = Convert.ToInt64(reg.ValorTitulo);
                detalhe.ValorTitulo = valorTitulo / 100;
                //Filler5
                //Despesas de cobrança para os Códigos de Ocorrência (Valor Despesa)
                if (!String.IsNullOrEmpty(reg.DespesasCobranca))
                {
                    decimal valorDespesa = Convert.ToUInt64(reg.DespesasCobranca);
                    detalhe.ValorDespesa = valorDespesa / 100;
                }
                //Outras despesas Custas de Protesto (Valor Outras Despesas)
                if (!String.IsNullOrEmpty(reg.DespesasCustasProtesto))
                {
                    decimal valorOutrasDespesas = Convert.ToUInt64(reg.DespesasCustasProtesto);
                    detalhe.ValorOutrasDespesas = valorOutrasDespesas / 100;
                }
                //Filler6
                //Abatimento Concedido sobre o Título (Valor Abatimento Concedido)
                decimal valorAbatimento = Convert.ToUInt64(reg.AbatimentoConcedido);
                detalhe.ValorAbatimento = valorAbatimento / 100;
                //Desconto Concedido (Valor Desconto Concedido)
                decimal valorDesconto = Convert.ToUInt64(reg.DescontoConcedido);
                detalhe.Descontos = valorDesconto / 100;
                //Valor Pago
                decimal valorPago = Convert.ToUInt64(reg.ValorEfetivamentePago);
                detalhe.ValorPago = valorPago / 100;
                //Juros Mora
                decimal jurosMora = Convert.ToUInt64(reg.JurosMora);
                detalhe.JurosMora = jurosMora / 100;
                //Filler7
                //SomenteOcorrencia19
                //Filler8
                detalhe.MotivoCodigoOcorrencia = reg.MotivoOcorrencia;
                int dataCredito = Utils.ToInt32(reg.DataPrevistaLancamentoContaCorrente);
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("####-##-##"));
                //Filler9
                detalhe.NumeroSequencial = Utils.ToInt32(reg.NumeroSequencialRegistro);
                //
                #region NAO RETORNADOS PELO SICREDI
                //detalhe.Especie = reg.TipoDocumento; //Verificar Espécie de Documentos...
                detalhe.OutrosCreditos = 0;
                detalhe.OrigemPagamento = String.Empty;
                detalhe.MotivoCodigoOcorrencia = reg.MotivoOcorrencia;
                //
                detalhe.IOF = 0;
                //Motivos das Rejeições para os Códigos de Ocorrência
                detalhe.MotivosRejeicao = string.Empty;
                //Número do Cartório
                detalhe.NumeroCartorio = 0;
                //Número do Protocolo
                detalhe.NumeroProtocolo = string.Empty;

                detalhe.CodigoInscricao = 0;
                detalhe.NumeroInscricao = string.Empty;
                detalhe.Agencia = 0;
                detalhe.Conta = 0;
                detalhe.DACConta = 0;

                detalhe.NumeroControle = string.Empty;
                detalhe.IdentificacaoTitulo = string.Empty;
                //Banco Cobrador
                detalhe.CodigoBanco = 0;
                //Agência Cobradora
                detalhe.AgenciaCobradora = 0;
                #endregion
                //
                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }
Esempio n. 34
0
        public override DetalheRetorno LerDetalheRetornoCNAB400(string registro)
        {
            try
            {
                int dataOcorrencia = Utils.ToInt32(registro.Substring(110, 6));
                int dataVencimento = Utils.ToInt32(registro.Substring(146, 6));
                int dataCredito = Utils.ToInt32(registro.Substring(295, 6));

                DetalheRetorno detalhe = new DetalheRetorno(registro);

                detalhe.CodigoInscricao = Utils.ToInt32(registro.Substring(1, 2));
                detalhe.NumeroInscricao = registro.Substring(3, 14);
                detalhe.Agencia = Utils.ToInt32(registro.Substring(17, 4));
                detalhe.Conta = Utils.ToInt32(registro.Substring(23, 5));
                detalhe.DACConta = Utils.ToInt32(registro.Substring(28, 1));
                detalhe.UsoEmpresa = registro.Substring(37, 25);
                //
                detalhe.Carteira = registro.Substring(82, 1); // adicionado por Heric Souza em 20/06/16
                detalhe.NossoNumeroComDV = registro.Substring(85, 9);
                detalhe.NossoNumero = registro.Substring(85, 8); //Sem o DV
                detalhe.DACNossoNumero = registro.Substring(93, 1); //DV
                //
                //detalhe.Carteira = registro.Substring(107, 1); // comentado por Heric Souza em 20 / 06 / 16
                detalhe.CodigoOcorrencia = Utils.ToInt32(registro.Substring(108, 2));

                //Descrição da ocorrência
                detalhe.DescricaoOcorrencia = this.Ocorrencia(registro.Substring(108, 2));

                detalhe.DataOcorrencia = Utils.ToDateTime(dataOcorrencia.ToString("##-##-##"));
                detalhe.NumeroDocumento = registro.Substring(116, 10);
                //
                detalhe.DataVencimento = Utils.ToDateTime(dataVencimento.ToString("##-##-##"));
                decimal valorTitulo = Convert.ToInt64(registro.Substring(152, 13));
                detalhe.ValorTitulo = valorTitulo / 100;
                detalhe.CodigoBanco = Utils.ToInt32(registro.Substring(165, 3));
                detalhe.AgenciaCobradora = Utils.ToInt32(registro.Substring(168, 4));
                detalhe.Especie = Utils.ToInt32(registro.Substring(173, 2));
                decimal tarifaCobranca = Convert.ToUInt64(registro.Substring(175, 13));
                detalhe.TarifaCobranca = tarifaCobranca / 100;
                // 26 brancos
                decimal iof = Convert.ToUInt64(registro.Substring(214, 13));
                detalhe.IOF = iof / 100;
                decimal valorAbatimento = Convert.ToUInt64(registro.Substring(227, 13));
                detalhe.ValorAbatimento = valorAbatimento / 100;

                decimal valorDescontos = Convert.ToUInt64(registro.Substring(240, 13));
                detalhe.Descontos = valorDescontos / 100;

                decimal valorPrincipal = Convert.ToUInt64(registro.Substring(253, 13));
                detalhe.ValorPrincipal = valorPrincipal / 100;

                decimal jurosMora = Convert.ToUInt64(registro.Substring(266, 13));
                detalhe.JurosMora = jurosMora / 100;
                // 293 - 3 brancos
                detalhe.DataCredito = Utils.ToDateTime(dataCredito.ToString("##-##-##"));
                detalhe.InstrucaoCancelada = Utils.ToInt32(registro.Substring(301, 4));
                // 306 - 6 brancos
                // 311 - 13 zeros
                detalhe.NomeSacado = registro.Substring(324, 30);
                // 354 - 23 brancos
                detalhe.Erros = registro.Substring(377, 8);
                // 377 - Registros rejeitados ou alegação do sacado
                // 386 - 7 brancos

                detalhe.CodigoLiquidacao = registro.Substring(392, 2);
                detalhe.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6));
                detalhe.ValorPago = detalhe.ValorPrincipal;

                // A correspondência de Valor Pago no RETORNO ITAÚ é o Valor Principal (Valor lançado em Conta Corrente - Conforme Manual)
                // A determinação se Débito ou Crédito deverá ser feita nos aplicativos por se tratar de personalização.
                // Para isso, considerar o Código da Ocorrência e tratar de acordo com suas necessidades.
                // Alterado por jsoda em 04/06/2012
                //
                //// Valor principal é débito ou crédito ?
                //if ( (detalhe.ValorTitulo < detalhe.TarifaCobranca) ||
                //     ((detalhe.ValorTitulo - detalhe.Descontos) < detalhe.TarifaCobranca)
                //    )
                //{
                //    detalhe.ValorPrincipal *= -1; // Para débito coloca valor negativo
                //}


                //// Valor Pago é a soma do Valor Principal (Valor que entra na conta) + Tarifa de Cobrança
                //detalhe.ValorPago = detalhe.ValorPrincipal + detalhe.TarifaCobranca;

                return detalhe;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler detalhe do arquivo de RETORNO / CNAB 400.", ex);
            }
        }