public override DetalheSegmentoURetornoCNAB240 LerDetalheSegmentoURetornoCNAB240(string registro) { string _Controle_numBanco = registro.Substring(0, 3); //01 string _Controle_lote = registro.Substring(3, 7); //02 string _Controle_regis = registro.Substring(7, 1); //03 string _Servico_numRegis = registro.Substring(8, 5); //04 string _Servico_segmento = registro.Substring(13, 1); //05 string _cnab06 = registro.Substring(14, 1); //06 string _Servico_codMov = registro.Substring(15, 2); //07 string _dadosTituloAcrescimo = registro.Substring(17, 15); //08 string _dadosTituloValorDesconto = registro.Substring(32, 15); //09 string _dadosTituloValorAbatimento = registro.Substring(47, 15); //10 string _dadosTituloValorIof = registro.Substring(62, 15); //11 string _dadosTituloValorPago = registro.Substring(76, 15); //12 string _dadosTituloValorCreditoBruto = registro.Substring(92, 15); //13 string _outDespesas = registro.Substring(107, 15); //14 string _outPerCredEntRecb = registro.Substring(122, 5); //15 string _outBanco = registro.Substring(127, 10); //16 string _outDataOcorrencia = registro.Substring(137, 8); //17 string _outDataCredito = registro.Substring(145, 8); //18 string _cnab19 = registro.Substring(153, 87); //19 try { if (!registro.Substring(13, 1).Equals(@"U")) { throw new Exception("Registro inválida. O detalhe não possuí as características do segmento U."); } DetalheSegmentoURetornoCNAB240 segmentoU = new DetalheSegmentoURetornoCNAB240(registro); segmentoU.JurosMultaEncargos = Convert.ToDouble(registro.Substring(17, 15)) / 100; segmentoU.ValorDescontoConcedido = Convert.ToDouble(registro.Substring(32, 15)) / 100; segmentoU.ValorAbatimentoConcedido = Convert.ToDouble(registro.Substring(47, 15)) / 100; segmentoU.ValorIOFRecolhido = Convert.ToDouble(registro.Substring(62, 15)) / 100; segmentoU.ValorOcorrenciaSacado = segmentoU.ValorPagoPeloSacado = Convert.ToDouble(registro.Substring(77, 15)) / 100; segmentoU.ValorLiquidoASerCreditado = Convert.ToDouble(registro.Substring(92, 15)) / 100; segmentoU.ValorOutrasDespesas = Convert.ToDouble(registro.Substring(107, 15)) / 100; segmentoU.ValorOutrosCreditos = Convert.ToDouble(registro.Substring(122, 15)) / 100; segmentoU.DataOcorrencia = segmentoU.DataOcorrencia = DateTime.ParseExact(registro.Substring(137, 8), "ddMMyyyy", CultureInfo.InvariantCulture); segmentoU.DataCredito = DateTime.ParseExact(registro.Substring(145, 8), "ddMMyyyy", CultureInfo.InvariantCulture); segmentoU.CodigoOcorrenciaSacado = registro.Substring(153, 4); return(segmentoU); } catch (Exception ex) { //TrataErros.Tratar(ex); throw new Exception("Erro ao processar arquivo de RETORNO - SEGMENTO U.", ex); } }
public DetalheRetornoCNAB240(DetalheSegmentoTRetornoCNAB240 segmentoT, DetalheSegmentoURetornoCNAB240 segmentoU) { _segmentoT = segmentoT; _segmentoU = segmentoU; }
public override DetalheSegmentoURetornoCNAB240 LerDetalheSegmentoURetornoCNAB240(string registro) { try { if (!registro.Substring(13, 1).Equals(@"U")) { throw new Exception("Registro inválida. O detalhe não possuí as características do segmento U."); } DetalheSegmentoURetornoCNAB240 segmentoU = new DetalheSegmentoURetornoCNAB240(registro); segmentoU.JurosMultaEncargos = Convert.ToDecimal(registro.Substring(17, 15)) / DECIMAL_100; segmentoU.ValorDescontoConcedido = Convert.ToDecimal(registro.Substring(32, 15)) / DECIMAL_100; segmentoU.ValorAbatimentoConcedido = Convert.ToDecimal(registro.Substring(47, 15)) / DECIMAL_100; segmentoU.ValorIOFRecolhido = Convert.ToDecimal(registro.Substring(62, 15)) / DECIMAL_100; segmentoU.ValorOcorrenciaSacado = segmentoU.ValorPagoPeloSacado = Convert.ToDecimal(registro.Substring(77, 15)) / DECIMAL_100; segmentoU.ValorLiquidoASerCreditado = Convert.ToDecimal(registro.Substring(92, 15)) / DECIMAL_100; segmentoU.ValorOutrasDespesas = Convert.ToDecimal(registro.Substring(107, 15)) / DECIMAL_100; segmentoU.ValorOutrosCreditos = Convert.ToDecimal(registro.Substring(122, 15)) / DECIMAL_100; segmentoU.DataOcorrencia = segmentoU.DataOcorrencia = DateTime.ParseExact(registro.Substring(137, 8), "ddMMyyyy", CultureInfo.InvariantCulture); segmentoU.DataCredito = registro.Substring(145, 8).Equals("00000000") ? DateTime.Now : DateTime.ParseExact(registro.Substring(145, 8), "ddMMyyyy", CultureInfo.InvariantCulture); segmentoU.CodigoOcorrenciaSacado = registro.Substring(153, 4); return segmentoU; } catch (Exception ex) { throw new Exception("Erro ao processar arquivo de RETORNO - SEGMENTO U.", ex); } }
public override DetalheSegmentoURetornoCNAB240 LerDetalheSegmentoURetornoCNAB240(string registro) { string _Controle_numBanco = registro.Substring(0, 3); //01 string _Controle_lote = registro.Substring(3, 7); //02 string _Controle_regis = registro.Substring(7, 1); //03 string _Servico_numRegis = registro.Substring(8, 5); //04 string _Servico_segmento = registro.Substring(13, 1); //05 string _cnab06 = registro.Substring(14, 1); //06 string _Servico_codMov = registro.Substring(15, 2); //07 string _dadosTituloAcrescimo = registro.Substring(17, 15); //08 string _dadosTituloValorDesconto = registro.Substring(32, 15); //09 string _dadosTituloValorAbatimento = registro.Substring(47, 15); //10 string _dadosTituloValorIof = registro.Substring(62, 15); //11 string _dadosTituloValorPago = registro.Substring(76, 15); //12 string _dadosTituloValorCreditoBruto = registro.Substring(92, 15); //13 string _outDespesas = registro.Substring(107, 15); //14 string _outPerCredEntRecb = registro.Substring(122, 5); //15 string _outBanco = registro.Substring(127, 10); //16 string _outDataOcorrencia = registro.Substring(137, 8); //17 string _outDataCredito = registro.Substring(145, 8); //18 string _cnab19 = registro.Substring(153, 87); //19 try { if (!registro.Substring(13, 1).Equals(@"U")) { throw new Exception("Registro inválida. O detalhe não possuí as características do segmento U."); } var segmentoU = new DetalheSegmentoURetornoCNAB240(registro); segmentoU.Servico_Codigo_Movimento_Retorno = Convert.ToDecimal(registro.Substring(15, 2)); //07.3U|Serviço|Cód. Mov.|Código de Movimento Retorno segmentoU.JurosMultaEncargos = Convert.ToDecimal(registro.Substring(17, 15)) / 100; segmentoU.ValorDescontoConcedido = Convert.ToDecimal(registro.Substring(32, 15)) / 100; segmentoU.ValorAbatimentoConcedido = Convert.ToDecimal(registro.Substring(47, 15)) / 100; segmentoU.ValorIOFRecolhido = Convert.ToDecimal(registro.Substring(62, 15)) / 100; segmentoU.ValorOcorrenciaSacado = segmentoU.ValorPagoPeloSacado = Convert.ToDecimal(registro.Substring(77, 15)) / 100; segmentoU.ValorLiquidoASerCreditado = Convert.ToDecimal(registro.Substring(92, 15)) / 100; segmentoU.ValorOutrasDespesas = Convert.ToDecimal(registro.Substring(107, 15)) / 100; segmentoU.ValorOutrosCreditos = Convert.ToDecimal(registro.Substring(122, 15)) / 100; segmentoU.DataOcorrencia = segmentoU.DataOcorrencia = DateTime.ParseExact(registro.Substring(137, 8), "ddMMyyyy", CultureInfo.InvariantCulture); segmentoU.DataCredito = registro.Substring(145, 8).ToString() == "00000000" ? segmentoU.DataOcorrencia : DateTime.ParseExact(registro.Substring(145, 8), "ddMMyyyy", CultureInfo.InvariantCulture); segmentoU.CodigoOcorrenciaSacado = registro.Substring(153, 4); return segmentoU; } catch (Exception ex) { //TrataErros.Tratar(ex); throw new Exception("Erro ao processar arquivo de RETORNO - SEGMENTO U.", ex); } }
public override DetalheSegmentoURetornoCNAB240 LerDetalheSegmentoURetornoCNAB240(string registro) { string _Controle_numBanco = registro.Substring(0, 3); //01 string _Controle_lote = registro.Substring(3, 7); //02 string _Controle_regis = registro.Substring(7, 1); //03 string _Servico_numRegis = registro.Substring(8, 5); //04 string _Servico_segmento = registro.Substring(13, 1); //05 string _cnab06 = registro.Substring(14, 1); //06 string _Servico_codMov = registro.Substring(15, 2); //07 string _dadosTituloAcrescimo = registro.Substring(17, 15); //08 string _dadosTituloValorDesconto = registro.Substring(32, 15); //09 string _dadosTituloValorAbatimento = registro.Substring(47, 15); //10 string _dadosTituloValorIof = registro.Substring(62, 15); //11 string _dadosTituloValorPago = registro.Substring(76, 15); //12 string _dadosTituloValorCreditoBruto = registro.Substring(92, 15); //13 string _outDespesas = registro.Substring(107, 15); //14 string _outPerCredEntRecb = registro.Substring(122, 5); //15 string _outBanco = registro.Substring(127, 10); //16 string _outDataOcorrencia = registro.Substring(137, 8); //17 string _outDataCredito = registro.Substring(145, 8); //18 string _cnab19 = registro.Substring(153, 87); //19 try { DetalheSegmentoURetornoCNAB240 segmentoU = new DetalheSegmentoURetornoCNAB240(registro); if (_Servico_segmento != "U") { throw new Exception("Registro inválida. O detalhe não possuí as características do segmento U."); } int dataOcorrencia = Convert.ToInt32(registro.Substring(137, 8)); int dataCredito = Convert.ToInt32(registro.Substring(145, 8)); int dataOcorrenciaSacado = 0; if (registro.Substring(153, 4) != " ") { dataOcorrenciaSacado = Convert.ToInt32(registro.Substring(157, 8)); } double jurosMultaEncargos = Convert.ToInt64(registro.Substring(17, 15)); segmentoU.JurosMultaEncargos = jurosMultaEncargos / 100; double valorDescontoConcedido = Convert.ToInt64(_dadosTituloValorDesconto); segmentoU.ValorDescontoConcedido = valorDescontoConcedido / 100; double valorAbatimentoConcedido = Convert.ToInt64(registro.Substring(47, 15)); segmentoU.ValorAbatimentoConcedido = valorAbatimentoConcedido / 100; double valorIOFRecolhido = Convert.ToInt64(registro.Substring(62, 15)); segmentoU.ValorIOFRecolhido = valorIOFRecolhido / 100; double valorPagoPeloSacado = Convert.ToInt64(registro.Substring(77, 15)); segmentoU.ValorPagoPeloSacado = valorPagoPeloSacado / 100; double valorLiquidoASerCreditado = Convert.ToInt64(registro.Substring(92, 15)); segmentoU.ValorLiquidoASerCreditado = valorLiquidoASerCreditado / 100; double valorOutrasDespesas = Convert.ToInt64(registro.Substring(107, 15)); segmentoU.ValorOutrasDespesas = valorOutrasDespesas / 100; double valorOutrosCreditos = Convert.ToInt64(registro.Substring(122, 15)); segmentoU.ValorOutrosCreditos = valorOutrosCreditos / 100; segmentoU.DataOcorrencia = Convert.ToDateTime(string.Format("{0}/{1}/{2}", _outDataOcorrencia.Substring(0, 2), _outDataOcorrencia.Substring(2, 2), _outDataOcorrencia.Substring(4, 4))); segmentoU.DataCredito = Convert.ToDateTime(string.Format("{0}/{1}/{2}", _outDataCredito.Substring(0, 2), _outDataCredito.Substring(2, 2), _outDataCredito.Substring(4, 4))); segmentoU.CodigoOcorrenciaSacado = registro.Substring(153, 4); if (dataOcorrenciaSacado != 0) { segmentoU.DataOcorrenciaSacado = Convert.ToDateTime(dataOcorrenciaSacado.ToString("##-##-####")); } double valorOcorrenciaSacado = Convert.ToInt64(registro.Substring(165, 15)); segmentoU.ValorOcorrenciaSacado = valorOcorrenciaSacado / 100; return(segmentoU); } catch (Exception ex) { //TrataErros.Tratar(ex); throw new Exception("Erro ao processar arquivo de RETORNO - SEGMENTO U.", ex); } }
public virtual DetalheSegmentoURetornoCNAB240 LerDetalheSegmentoURetornoCNAB240(string registro) { var detalhe = new DetalheSegmentoURetornoCNAB240(registro); detalhe.LerDetalheSegmentoURetornoCNAB240(registro); return detalhe; }
public override DetalheSegmentoURetornoCNAB240 LerDetalheSegmentoURetornoCNAB240(string registro) { try { DetalheSegmentoURetornoCNAB240 detalhe = new DetalheSegmentoURetornoCNAB240(registro); if (registro.Substring(13, 1) != "Y") throw new Exception("Registro inválido. O detalhe não possuí as características do segmento U."); detalhe.CodigoOcorrenciaSacado = registro.Substring(15, 2); int DataCredito = Convert.ToInt32(registro.Substring(145, 8)); detalhe.DataCredito = Convert.ToDateTime(DataCredito.ToString("##-##-####")); int DataOcorrencia = Convert.ToInt32(registro.Substring(137, 8)); detalhe.DataOcorrencia = Convert.ToDateTime(DataOcorrencia.ToString("##-##-####")); int DataOcorrenciaSacado = Convert.ToInt32(registro.Substring(157, 8)); if (DataOcorrenciaSacado > 0) detalhe.DataOcorrenciaSacado = Convert.ToDateTime(DataOcorrenciaSacado.ToString("##-##-####")); else detalhe.DataOcorrenciaSacado = DateTime.Now; decimal JurosMultaEncargos = Convert.ToUInt64(registro.Substring(17, 15)); detalhe.JurosMultaEncargos = JurosMultaEncargos / 100; decimal ValorDescontoConcedido = Convert.ToUInt64(registro.Substring(32, 15)); detalhe.ValorDescontoConcedido = ValorDescontoConcedido / 100; decimal ValorAbatimentoConcedido = Convert.ToUInt64(registro.Substring(47, 15)); detalhe.ValorAbatimentoConcedido = ValorAbatimentoConcedido / 100; decimal ValorIOFRecolhido = Convert.ToUInt64(registro.Substring(62, 15)); detalhe.ValorIOFRecolhido = ValorIOFRecolhido / 100; decimal ValorPagoPeloSacado = Convert.ToUInt64(registro.Substring(77, 15)); detalhe.ValorPagoPeloSacado = ValorPagoPeloSacado / 100; decimal ValorLiquidoASerCreditado = Convert.ToUInt64(registro.Substring(92, 15)); detalhe.ValorLiquidoASerCreditado = ValorLiquidoASerCreditado / 100; decimal ValorOutrasDespesas = Convert.ToUInt64(registro.Substring(107, 15)); detalhe.ValorOutrasDespesas = ValorOutrasDespesas / 100; decimal ValorOutrosCreditos = Convert.ToUInt64(registro.Substring(122, 15)); detalhe.ValorOutrosCreditos = ValorOutrosCreditos / 100; return detalhe; } catch (Exception ex) { throw new Exception("Erro ao processar arquivo de RETORNO - SEGMENTO T.", ex); } }