public string GerarHeaderRemessaCNAB240(Cedente cedente) { try { string header = Utils.FormatCode(Codigo.ToString(), "0", 3, true); // código do banco na compensação header += "0000"; // Lote de Serviço header += "0"; // Tipo de Registro header += Utils.FormatCode("", " ", 9); // Uso Exclusivo FEBRABAN/CNAB header += (cedente.CPFCNPJ.Length == 11 ? "1" : "2"); // Tipo de Inscrição header += Utils.FormatCode(cedente.CPFCNPJ, "0", 15); // CPF/CNPJ do cedente header += Utils.FormatCode(cedente.Codigo.ToString() + cedente.DigitoCedente, "0", 16); // Código do Convênio no Banco header += Utils.FormatCode("", "0", 4); // Uso Exclusivo CAIXA header += Utils.FormatCode(cedente.ContaBancaria.Agencia, "0", 5); // Agência Mantenedora da Conta header += Utils.FormatCode(cedente.ContaBancaria.DigitoAgencia, "0", 5); // Dígito Verificador da Agência header += Utils.FormatCode(cedente.ContaBancaria.Conta, "0", 12); // Código do Cedente (sem operação) header += cedente.ContaBancaria.DigitoConta; // Díg. Verif. Cedente (sem operação) header += Banco.Mod11(cedente.ContaBancaria.Agencia + cedente.ContaBancaria.Conta).ToString(); // Dígito Verif. Ag./Ced (sem operação) header += Utils.FormatCode(cedente.Nome, " ", 30); // Nome do cedente header += Utils.FormatCode("CAIXA ECONOMICA FEDERAL", " ", 30); // Nome do Banco header += Utils.FormatCode("", " ", 10); // Uso Exclusivo FEBRABAN/CNAB header += "1"; // Código 1 - Remessa / 2 - Retorno header += DateTime.Now.ToString("ddMMyyyy"); // Data de Geração do Arquivo header += string.Format("{0:hh:mm:ss}", DateTime.Now).Replace(":", ""); // Hora de Geração do Arquivo header += "000001"; // Número Seqüencial do Arquivo header += "030"; // Número da Versão do Layout do Arquivo header += "0"; // Densidade de Gravação do Arquivo header += Utils.FormatCode("", " ", 20); // Para Uso Reservado do Banco // Na fase de teste deve conter "remessa-produção", após aprovado deve conter espaços em branco header += Utils.FormatCode("remessa-produção", " ", 20); // Para Uso Reservado da Empresa //header += Utils.FormatCode("", " ", 20); // Para Uso Reservado da Empresa header += Utils.FormatCode("", " ", 29); // Uso Exclusivo FEBRABAN/CNAB return(header); } catch (Exception ex) { throw new Exception("Erro ao gerar HEADER do arquivo de remessa do CNAB240.", ex); } }
private string GerarHeaderLoteRemessaCNAB240(Cedente cedente, int numeroArquivoRemessa) { try { string header = Utils.FormatCode(Codigo.ToString(), "0", 3, true); // código do banco na compensação header += "0001"; // Lote de Serviço header += "1"; // Tipo de Registro header += "R"; // Tipo de Operação header += "01"; // Tipo de Serviço '01' = Cobrança, '03' = Bloqueto Eletrônico header += " "; // Uso Exclusivo FEBRABAN/CNAB header += "020"; // Número da Versão do Layout do Arquivo header += " "; // Uso Exclusivo FEBRABAN/CNAB header += (cedente.CPFCNPJ.Length == 11 ? "1" : "2"); // Tipo de Inscrição header += Utils.FormatCode(cedente.CPFCNPJ, "0", 15); // CPF/CNPJ do cedente header += Utils.FormatCode(cedente.Codigo.ToString() + cedente.DigitoCedente, "0", 16); // Código do Convênio no Banco header += Utils.FormatCode("", " ", 4); // Uso Exclusivo CAIXA header += Utils.FormatCode(cedente.ContaBancaria.Agencia, "0", 5); // Agência Mantenedora da Conta header += Utils.FormatCode(cedente.ContaBancaria.DigitoAgencia, "0", 5); // Dígito Verificador da Agência header += Utils.FormatCode(cedente.ContaBancaria.Conta, "0", 12); // Número da Conta Corrente header += cedente.ContaBancaria.DigitoConta; // Digito Verificador da Conta Corrente header += Banco.Mod11(cedente.ContaBancaria.Agencia + cedente.ContaBancaria.Conta).ToString(); // Dígito Verif. Ag./Ced (sem operação) header += Utils.FormatCode(cedente.Nome, " ", 30); // Nome do cedente header += Utils.FormatCode("", " ", 40); // Mensagem 1 header += Utils.FormatCode("", " ", 40); // Mensagem 2 header += numeroArquivoRemessa.ToString("00000000"); // Número Remessa/Retorno header += DateTime.Now.ToString("ddMMyyyy"); // Data de Gravação Remessa/Retorno header += Utils.FormatCode("", "0", 8); // Data do Crédito header += Utils.FormatCode("", " ", 33); // Uso Exclusivo FEBRABAN/CNAB return(header); } catch (Exception e) { throw new Exception("Erro ao gerar HEADER DO LOTE do arquivo de remessa.", e); } }
public string GerarDetalheSegmentoPRemessaCNAB240(Boleto boleto, int numeroRegistro, string numeroConvenio, Cedente cedente) { try { validaInstrucoes(boleto); // Para protestar, devolver ou desconto. string header = Utils.FormatCode(Codigo.ToString(), "0", 3, true); // código do banco na compensação header += "0001"; // Lote de Serviço header += "3"; // Tipo de Registro header += Utils.FormatCode(numeroRegistro.ToString(), "0", 5); // Nº Sequencial do Registro no Lote header += "P"; // Cód. Segmento do Registro Detalhe header += " "; // Uso Exclusivo FEBRABAN/CNAB header += "01"; // Código de Movimento Remessa header += Utils.FormatCode(cedente.ContaBancaria.Agencia, "0", 5); // Agência Mantenedora da Conta header += cedente.ContaBancaria.DigitoAgencia; // Dígito Verificador da Agência header += Utils.FormatCode(cedente.ContaBancaria.Conta, "0", 12); // Número da Conta Corrente header += cedente.ContaBancaria.DigitoConta; // Digito Verificador da Conta Corrente header += Banco.Mod11(cedente.ContaBancaria.Agencia + cedente.ContaBancaria.Conta).ToString(); // Dígito Verif. Ag./Ced (sem operação) header += Utils.FormatCode("", "0", 9); // Uso Exclusivo CAIXA header += Utils.FormatCode(boleto.NossoNumero, "0", 11); // Identificação do Título no Banco header += "01"; // Código da Carteira header += (boleto.Carteira == "14" ? "2" : "1"); // Forma de Cadastr. do Título no Banco // '1' = Com Cadastramento (Cobrança Registrada) // '2' = Sem Cadastramento (Cobrança sem Registro) header += "2"; // Tipo de Documento header += "2"; // Identificação da Emissão do Bloqueto header += "2"; // Identificação da Distribuição header += Utils.FormatCode(boleto.NumeroDocumento, "0", 11); // Número do Documento de Cobrança header += " "; // Uso Exclusivo CAIXA header += boleto.DataVencimento.ToString("ddMMyyyy"); // Data de Vencimento do Título header += Utils.FormatCode(boleto.ValorBoleto.ToString().Replace(",", "").Replace(".", ""), "0", 13); // Valor Nominal do Título 13 header += Utils.FormatCode(cedente.ContaBancaria.Agencia, "0", 5); // Agência Encarregada da Cobrança header += cedente.ContaBancaria.DigitoAgencia; // Dígito Verificador da Agência header += boleto.EspecieDocumento.Codigo.ToString("00"); // Espécie do Título header += boleto.Aceite; // Identific. de Título Aceito/Não Aceito // Data da Emissão do Título header += (boleto.DataProcessamento.ToString("ddMMyyyy") == "01010001" ? DateTime.Now.ToString("ddMMyyyy") : boleto.DataProcessamento.ToString("ddMMyyyy")); header += "1"; // Código do Juros de Mora '1' = Valor por Dia - '2' = Taxa Mensal header += (boleto.DataMulta.ToString("ddMMyyyy") == "01010001" ? "00000000" : boleto.DataMulta.ToString("ddMMyyyy")); // Data do Juros de Mora header += Utils.FormatCode(boleto.ValorMulta.ToString().Replace(",", "").Replace(".", ""), "0", 13); // Juros de Mora por Dia/Taxa header += (desconto ? "1" : "0"); // Código do Desconto header += (boleto.DataDesconto.ToString("ddMMyyyy") == "01010001" ? "00000000" : boleto.DataDesconto.ToString("ddMMyyyy")); // Data do Desconto header += Utils.FormatCode(boleto.ValorDesconto.ToString().Replace(",", "").Replace(".", ""), "0", 13); // Valor/Percentual a ser Concedido header += Utils.FormatCode(boleto.IOF.ToString().Replace(",", "").Replace(".", ""), "0", 13); // Valor do IOF a ser Recolhido header += Utils.FormatCode(boleto.Abatimento.ToString().Replace(",", "").Replace(".", ""), "0", 13); // Valor do Abatimento header += Utils.FormatCode("", " ", 25); // Identificação do Título na Empresa header += (protestar ? "1" : "3"); // Código para Protesto header += diasProtesto.ToString("00"); // Número de Dias para Protesto 2 posi header += (baixaDevolver ? "1" : "2"); // Código para Baixa/Devolução 1 posi header += diasDevolucao.ToString("00"); // Número de Dias para Baixa/Devolução 3 posi header += boleto.Moeda.ToString("00"); // Código da Moeda header += Utils.FormatCode("", " ", 10); // Uso Exclusivo FEBRABAN/CNAB header += Utils.FormatCode("", " ", 1); // Uso Exclusivo FEBRABAN/CNAB return(header); } catch (Exception e) { throw new Exception("Erro ao gerar SEGMENTO P do arquivo de remessa.", e); } }