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); } }
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); } }
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); }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
/// <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); } }
// 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); } }
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); } }
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); } }
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); } }
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 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); } }
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); } }
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); } }
// 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); } }
/// <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); } }
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); } }
//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); } }
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); } }
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); } }