public RemessaCnab240 GerarRemessa(HeaderRemessaCnab240 header, HeaderLoteRemessaCnab240 headerLote, List <Boleto> boletos, TrailerLoteRemessaCnab240 trailerLote, TrailerRemessaCnab240 trailer) { var objReturn = new RemessaCnab240(); objReturn.Header = header; objReturn.Lotes = new List <LoteRemessaCnab240>(); var ultimoLoteAdicionado = objReturn.AdicionarLote(headerLote, trailerLote); // Usado para identificar com número único e sequencial cada boleto (registro) dentro do lote. var contador = 1; var reg1 = 1; var reg2 = 2; foreach (var boletoAddRemessa in boletos) { objReturn.AdicionarBoletoAoLote(ultimoLoteAdicionado, boletoAddRemessa, contador, reg1, reg2); contador++; reg1 = reg1 + 2; reg2 = reg2 + 2; } objReturn.Trailer = trailer; return(objReturn); }
public string EscreverHeader(HeaderRemessaCnab240 infoHeader) { var nomeEmpresa = ""; if (infoHeader.NomeEmpresa.Length > 30) { nomeEmpresa = infoHeader.NomeEmpresa.Substring(0, 30); } else { nomeEmpresa = infoHeader.NomeEmpresa.ToUpper(); } var header = new string(' ', 240); try { header = header.PreencherValorNaLinha(1, 3, "756"); header = header.PreencherValorNaLinha(4, 7, "0000"); header = header.PreencherValorNaLinha(8, 8, "0"); header = header.PreencherValorNaLinha(9, 17, string.Empty.PadLeft(9, ' ')); header = header.PreencherValorNaLinha(18, 18, infoHeader.NumeroInscricao.Replace(".", "").Replace("/", "").Replace("-", "").Length == 11 ? "1" : "2"); header = header.PreencherValorNaLinha(19, 32, infoHeader.NumeroInscricao.Replace(".", "").Replace("/", "").Replace("-", "").PadLeft(14, '0')); header = header.PreencherValorNaLinha(33, 52, string.Empty.PadLeft(20, ' ')); header = header.PreencherValorNaLinha(53, 57, infoHeader.AgenciaMantenedora.PadLeft(5, '0')); header = header.PreencherValorNaLinha(58, 58, infoHeader.DigitoAgenciaMantenedora); header = header.PreencherValorNaLinha(59, 70, infoHeader.NumeroContaCorrente.PadLeft(12, '0')); header = header.PreencherValorNaLinha(71, 71, infoHeader.DigitoContaCorrente.BoletoBrToStringSafe().PadLeft(1, '0')); header = header.PreencherValorNaLinha(72, 72, " "); header = header.PreencherValorNaLinha(73, 102, nomeEmpresa.PadRight(30, ' ')); header = header.PreencherValorNaLinha(103, 132, "SICOOB".PadRight(30, ' ')); header = header.PreencherValorNaLinha(133, 142, string.Empty.PadLeft(10, ' ')); header = header.PreencherValorNaLinha(143, 143, "1"); header = header.PreencherValorNaLinha(144, 151, DateTime.Now.ToString("ddMMyyyy")); header = header.PreencherValorNaLinha(152, 157, DateTime.Now.ToString("HHmmss")); header = header.PreencherValorNaLinha(158, 163, infoHeader.SequencialNsa.ToString().PadLeft(6, '0')); header = header.PreencherValorNaLinha(164, 166, "081"); header = header.PreencherValorNaLinha(167, 171, string.Empty.PadLeft(5, '0')); header = header.PreencherValorNaLinha(172, 191, string.Empty.PadRight(20, ' ')); header = header.PreencherValorNaLinha(192, 211, string.Empty.PadRight(20, ' ')); header = header.PreencherValorNaLinha(212, 240, string.Empty.PadRight(29, ' ')); return(header); } catch (Exception e) { throw new Exception(string.Format("BoletoBr{0}Falha na geração do HEADER do arquivo de REMESSA.", Environment.NewLine), e); } }
public string EscreverHeader(HeaderRemessaCnab240 infoHeader) { string nomeCedente = infoHeader.NomeEmpresa; if (nomeCedente.Length > 30) { nomeCedente = infoHeader.NomeEmpresa.Substring(0, 30); } var header = new string(' ', 240); try { header = header.PreencherValorNaLinha(1, 3, "104"); header = header.PreencherValorNaLinha(4, 7, "0000"); header = header.PreencherValorNaLinha(8, 8, "0"); header = header.PreencherValorNaLinha(9, 17, string.Empty.PadLeft(9, ' ')); header = header.PreencherValorNaLinha(18, 18, infoHeader.NumeroInscricao.Replace(".", "").Replace("/", "").Replace("-", "").Length == 11 ? "1" : "2"); header = header.PreencherValorNaLinha(19, 32, infoHeader.NumeroInscricao.Replace(".", "").Replace("/", "").Replace("-", "").PadLeft(14, '0')); header = header.PreencherValorNaLinha(33, 52, string.Empty.PadLeft(20, '0')); header = header.PreencherValorNaLinha(53, 57, infoHeader.AgenciaMantenedora.PadLeft(5, '0')); header = header.PreencherValorNaLinha(58, 58, infoHeader.DigitoAgenciaMantenedora); header = header.PreencherValorNaLinha(59, 64, infoHeader.CodigoCedente.PadLeft(6, '0')); header = header.PreencherValorNaLinha(65, 71, string.Empty.PadLeft(7, '0')); header = header.PreencherValorNaLinha(72, 72, "0"); header = header.PreencherValorNaLinha(73, 102, nomeCedente.PadRight(30, ' ')); header = header.PreencherValorNaLinha(103, 132, "CAIXA ECONOMICA FEDERAL".PadRight(30, ' ')); header = header.PreencherValorNaLinha(133, 142, string.Empty.PadLeft(10, ' ')); #region CÓDIGO REMESSA / RETORNO /* Código adotado pela FEBRABAN para qualificar o envio ou devoução de arquivo entre Empresa Cliente e o Banco prestador de serviços. * Informar: * 1 - Remessa (Cliente -> Banco) * 2 - Retorno (Banco -> Cliente) * 3 - Remessa Processada (Banco -> Cliente - Pré-Crítica) * 4 - Remessa Processada Parcial (Banco -> Cliente - Pré-Crítica) * 5 - Remessa Rejeitada (Banco -> Cliente - Pré-Crítica) */ #endregion // Código Remessa/Retorno padronizado para "1" no envio do arquivo header = header.PreencherValorNaLinha(143, 143, "1"); header = header.PreencherValorNaLinha(144, 151, DateTime.Now.ToString("ddMMyyyy")); header = header.PreencherValorNaLinha(152, 157, DateTime.Now.ToString("HHmmss")); header = header.PreencherValorNaLinha(158, 163, infoHeader.SequencialNsa.ToString().PadLeft(6, '0')); header = header.PreencherValorNaLinha(164, 166, "050"); header = header.PreencherValorNaLinha(167, 171, string.Empty.PadLeft(5, '0')); header = header.PreencherValorNaLinha(172, 191, string.Empty.PadRight(20, ' ')); header = header.PreencherValorNaLinha(192, 211, "REMESSA-PRODUCAO".PadRight(20, ' ')); header = header.PreencherValorNaLinha(212, 215, string.Empty.PadRight(4, ' ')); header = header.PreencherValorNaLinha(216, 240, string.Empty.PadRight(25, ' ')); return(header); } catch (Exception e) { throw new Exception(String.Concat("Falha na geração do HEADER do arquivo de REMESSA.", Environment.NewLine, e)); } }