public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 2; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); strline = banco.GerarHeaderRemessa("0", cedente, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); numeroRegistro++; } strline = banco.GerarTrailerRemessa(numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); incluiLinha.Close(); } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 2; string strline; decimal vltitulostotal = 0; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 StreamWriter incluiLinha = new StreamWriter(arquivo, Encoding.GetEncoding("ISO-8859-1")); strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB400, numeroArquivoRemessa); incluiLinha.WriteLine(strline); foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); vltitulostotal += boleto.ValorBoleto; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 numeroRegistro++; } strline = banco.GerarTrailerRemessa(numeroRegistro, TipoArquivo.CNAB400, cedente, vltitulostotal); incluiLinha.WriteLine(strline); incluiLinha.Close(); incluiLinha.Dispose(); // Incluido por Luiz Ponce 07/07/2012. incluiLinha = null; // Incluido por Luiz Ponce 07/07/2012. } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 2; string strline; decimal vltitulostotal = 0; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 StreamWriter incluiLinha = new StreamWriter(arquivo, Encoding.GetEncoding("ISO-8859-1")); cedente.Carteira = boletos[0].Carteira; strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB400, numeroArquivoRemessa); incluiLinha.WriteLine(strline); foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); vltitulostotal += boleto.ValorBoleto; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 numeroRegistro++; // 85 - CECRED if (banco.Codigo == 85) { if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { Banco_Cecred _banco = new Banco_Cecred(); string linhaCECREDRegistroDetalhe5 = _banco.GerarRegistroDetalhe5(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(linhaCECREDRegistroDetalhe5); numeroRegistro++; } } if ((boleto.Instrucoes != null && boleto.Instrucoes.Count > 0) || (boleto.Sacado.Instrucoes != null && boleto.Sacado.Instrucoes.Count > 0)) { strline = boleto.Banco.GerarMensagemVariavelRemessa(boleto, ref numeroRegistro, TipoArquivo.CNAB400); if (!string.IsNullOrEmpty(strline) && !string.IsNullOrWhiteSpace(strline)) incluiLinha.WriteLine(strline); } } strline = banco.GerarTrailerRemessa(numeroRegistro, TipoArquivo.CNAB400, cedente, vltitulostotal); incluiLinha.WriteLine(strline); incluiLinha.Close(); incluiLinha.Dispose(); // Incluido por Luiz Ponce 07/07/2012. incluiLinha = null; // Incluido por Luiz Ponce 07/07/2012. } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 3; int numeroRegistroDetalhe = 1; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa, boletos[0]); else strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa); // incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeArquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240, boletos[0]); else strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeLote); if (banco.Codigo == 341) { #region se Banco Itau - 341 foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 104 && boletos[0].Remessa.TipoDocumento.Equals("2")) { #region se Banco Caixa - 104 e tipo de arquivo da remessa SIGCB foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio, cedente); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, boleto.Sacado); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; //segmento R não implementado... //if (boleto.ValorMulta > 0) //{ // strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); // incluiLinha.WriteLine(strline); // OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); // numeroRegistro++; // numeroRegistroDetalhe++; //} } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else //para qualquer outro banco, gera CNAB240 com segmentos abaixo { #region outros bancos foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 0; int numeroRegistroDetalhe = 1; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa, boletos[0]); else strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa); numeroRegistro++; // incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeArquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240, boletos[0]); else strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240); if (strline != "") { incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeLote); numeroRegistro++; } if (banco.Codigo == 341) { #region se Banco Itau - 341 foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 104) // Só validar boleto.Remessa quando o banco for Caixa porque quando o banco for diferente de 104 a propriedade "Remessa" fica null { #region se Banco Caixa - 104 e tipo de arquivo da remessa SIGCB if ((boletos[0].Remessa.TipoDocumento.Equals("2")) || boletos[0].Remessa.TipoDocumento.Equals("1")) { foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio, cedente); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, boleto.Sacado); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; //segmento R não implementado... //if (boleto.ValorMulta > 0) //{ // strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); // incluiLinha.WriteLine(strline); // OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); // numeroRegistro++; // numeroRegistroDetalhe++; //} } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } #endregion } else if (banco.Codigo == 33) { #region se Banco Santander - 33 foreach (Boleto boleto in boletos) { boleto.Banco = banco; boleto.Remessa.NumeroLote = numeroArquivoRemessa; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0 || boleto.OutrosDescontos > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } strline = boleto.Banco.GerarDetalheSegmentoSRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoS); numeroRegistro++; numeroRegistroDetalhe++; } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 237) // bradesco { decimal totalTitulos = 0; foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoARemessa(boleto, numeroRegistroDetalhe); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoBRemessa(boleto, numeroRegistroDetalhe); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; totalTitulos += boleto.ValorBoleto; } numeroRegistro++; strline = banco.GerarTrailerRemessaComDetalhes(numeroRegistro, boletos.Count, TipoArquivo.CNAB240, cedente, totalTitulos); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } else //para qualquer outro banco, gera CNAB240 com segmentos abaixo { #region outros bancos foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 3; int numeroRegistroDetalhe = 1; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); strline = banco.GerarHeaderRemessa(cedente, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeArquivo); strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeLote); if (banco.Codigo != 341) { foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } else { foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 0; int numeroRegistroDetalhe = 1; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa, boletos[0]); } else { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa); } numeroRegistro++; // incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeArquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240, boletos[0]); } else { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240); } if (strline != "") { incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeLote); numeroRegistro++; } if (banco.Codigo == 341) { #region se Banco Itau - 341 foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 104) // Só validar boleto.Remessa quando o banco for Caixa porque quando o banco for diferente de 104 a propriedade "Remessa" fica null { #region se Banco Caixa - 104 e tipo de arquivo da remessa SIGCB if ((boletos[0].Remessa.TipoDocumento.Equals("2")) || boletos[0].Remessa.TipoDocumento.Equals("1")) { foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio, cedente); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, boleto.Sacado); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } #endregion } else if (banco.Codigo == 33) { #region se Banco Santander - 33 foreach (Boleto boleto in boletos) { boleto.Banco = banco; boleto.Remessa.NumeroLote = numeroArquivoRemessa; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0 || boleto.OutrosDescontos > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } strline = boleto.Banco.GerarDetalheSegmentoSRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoS); numeroRegistro++; numeroRegistroDetalhe++; } strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 237) // bradesco { decimal totalTitulos = 0; foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoARemessa(boleto, numeroRegistroDetalhe); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoBRemessa(boleto, numeroRegistroDetalhe); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; totalTitulos += boleto.ValorBoleto; } numeroRegistro++; strline = banco.GerarTrailerRemessaComDetalhes(numeroRegistro, boletos.Count, TipoArquivo.CNAB240, cedente, totalTitulos); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } else //para qualquer outro banco, gera CNAB240 com segmentos abaixo { #region outros bancos foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 2; string strline; decimal vltitulostotal = 0; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 StreamWriter incluiLinha = new StreamWriter(arquivo, Encoding.GetEncoding("ISO-8859-1")); cedente.Carteira = boletos[0].Carteira; strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB400, numeroArquivoRemessa); incluiLinha.WriteLine(strline); foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); vltitulostotal += boleto.ValorBoleto; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 numeroRegistro++; // 85 - CECRED if (banco.Codigo == 85) { if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { Banco_Cecred _banco = new Banco_Cecred(); string linhaCECREDRegistroDetalhe5 = _banco.GerarRegistroDetalhe5(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(linhaCECREDRegistroDetalhe5); numeroRegistro++; } } // 341 - Banco Itau if (banco.Codigo == 341) { if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { Banco_Itau _banco = new Banco_Itau(); strline = _banco.GerarRegistroDetalhe2(boleto, numeroRegistro); incluiLinha.WriteLine(strline); numeroRegistro++; } } // Banco Bradesco - 237 if (banco.Codigo == 237) { if (boleto.OutrosDescontos > 0) { Banco_Bradesco _banco = new Banco_Bradesco(); strline = _banco.GerarRegistroDetalhe2(boleto, numeroRegistro); incluiLinha.WriteLine(strline); numeroRegistro++; } } if ((boleto.Instrucoes != null && boleto.Instrucoes.Count > 0) || (boleto.Sacado.Instrucoes != null && boleto.Sacado.Instrucoes.Count > 0)) { strline = boleto.Banco.GerarMensagemVariavelRemessa(boleto, ref numeroRegistro, TipoArquivo.CNAB400); if (!string.IsNullOrEmpty(strline) && !string.IsNullOrWhiteSpace(strline)) { incluiLinha.WriteLine(strline); numeroRegistro++; } } } strline = banco.GerarTrailerRemessa(numeroRegistro, TipoArquivo.CNAB400, cedente, vltitulostotal); incluiLinha.WriteLine(strline); incluiLinha.Close(); incluiLinha.Dispose(); // Incluido por Luiz Ponce 07/07/2012. incluiLinha = null; // Incluido por Luiz Ponce 07/07/2012. } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 3; int numeroRegistroDetalhe = 1; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); if (banco.Codigo == 104) //quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa, boletos[0]); } else { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa); } // incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeArquivo); if (banco.Codigo == 104) //quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240, boletos[0]); } else { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240); } incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeLote); if (banco.Codigo == 341) { #region se Banco Itau - 341 foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 104) // Só validar boleto.Remessa quando o banco for Caixa porque quando o banco for diferente de 104 a propriedade "Remessa" fica null { #region se Banco Caixa - 104 e tipo de arquivo da remessa SIGCB if ((boletos[0].Remessa.TipoDocumento.Equals("2")) || boletos[0].Remessa.TipoDocumento.Equals("1")) { foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio, cedente); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, boleto.Sacado); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; //segmento R não implementado... //if (boleto.ValorMulta > 0) //{ // strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); // incluiLinha.WriteLine(strline); // OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); // numeroRegistro++; // numeroRegistroDetalhe++; //} } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } #endregion } else //para qualquer outro banco, gera CNAB240 com segmentos abaixo { #region outros bancos foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; if (((banco.Codigo == 33) && (boleto.Remessa.CodigoOcorrencia == "01")) || (banco.Codigo != 33)) { strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; } if ((boleto.ValorMulta > 0) && ((banco.Codigo == 33 && ((boleto.Remessa.CodigoOcorrencia == "01") || (boleto.Remessa.CodigoOcorrencia == "10") || (boleto.Remessa.CodigoOcorrencia == "31"))) || (banco.Codigo != 33))) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 0; int numeroRegistroDetalhe = 1; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa, boletos[0]); } else { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa); } numeroRegistro++; // incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeArquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240, boletos[0]); } else { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240); } if (strline != "") { incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeLote); numeroRegistro++; } if (banco.Codigo == 341) { #region se Banco Itau - 341 foreach (Boleto boleto in boletos) { boleto.Banco = banco; //[email protected] - 03 / 01 / 2017 //strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); //Segmento P - Obrigatório - [email protected] - 03/01/2017 strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; //Seqgmento Q - Obrigatório - [email protected] - 03/01/2017 strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; //Segmento R - Opcional - [email protected] - 03/01/2017 if (boleto.ValorMulta > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } //numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); ++numeroRegistro; ++numeroRegistro; //Iniciou do 0 então tem que somar +1 para totoalizar a quantidade de linhas strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 104) // Só validar boleto.Remessa quando o banco for Caixa porque quando o banco for diferente de 104 a propriedade "Remessa" fica null { #region se Banco Caixa - 104 e tipo de arquivo da remessa SIGCB if ((boletos[0].Remessa.TipoDocumento.Equals("2")) || boletos[0].Remessa.TipoDocumento.Equals("1")) { foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio, cedente); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, boleto.Sacado); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } //numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } #endregion } else if (banco.Codigo == 33) { #region se Banco Santander - 33 foreach (Boleto boleto in boletos) { boleto.Banco = banco; //Deuclério 24-05-2018 - Não conseguir identificar para que serve esse dado. //boletos[0].Remessa.NumeroLote = Convert.ToInt32(numeroArquivoRemessa); strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; //Deuclério 24-05-2018 Não identifique na linha 184, qual método ou função que pega o dados e nem para que serve esse dado. //if (boletos[0].Remessa.CodigoOcorrencia == "01") { strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0 || boleto.OutrosDescontos > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } strline = boleto.Banco.GerarDetalheSegmentoSRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoS); numeroRegistro++; numeroRegistroDetalhe++; } } strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 237) // bradesco { decimal totalTitulos = 0; foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoARemessa(boleto, numeroRegistroDetalhe); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoBRemessa(boleto, numeroRegistroDetalhe); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; totalTitulos += boleto.ValorBoleto; } numeroRegistro++; strline = banco.GerarTrailerRemessaComDetalhes(numeroRegistro, boletos.Count, TipoArquivo.CNAB240, cedente, totalTitulos); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } else //para qualquer outro banco, gera CNAB240 com segmentos abaixo { #region outros bancos foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } //numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }