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