Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }