Boleto Caixa economica federal com problema

Dec 13, 2010 at 1:44 AM

Boa noite, estou implementando boleto da caixa economica federal, boleto sem registro e estou tendo problemas. Estou utilizando linguagem c# e a aplicação é desktop.

O codigo de barras não está sendo gerado da forma correta, sendo que ao ler no banco da msg de digito verificador geral invalido.

A linha digitavel tambem esta com problema, pois paguei um boleto de teste atraves desta e o valor não entrou na conta do cedente.

Alguem pode me dar uma ajuda ?

Dec 17, 2010 at 1:08 PM

Bom dia, também gostaria de uma ajuda na geração do boleto da CEF. Consigo gerar o boleto normalmente porém o "código de barras" não aparece. No meu caso o projeto é web e com .net 3.5 (c#). Alguém sabe que problema é esse?

Abs!

 

Dec 21, 2010 at 8:48 PM

Consigo gerar o código de barras quando uso projeto do tipo "Web Site". Mas quando uso "Asp.Net Web Application" o código de barras não aparece. Alguém sabe uma solução pra isso?

Feb 17, 2011 at 11:49 AM

Olá, eu fiz alterações na Carteira SR, e consegui gerar de acordo com a planilha de verificação da Caixa, tiver fazer algumas alterações quem quiser por favor me avise.

ernane.crato@openk.com.br

Coordinator
Feb 18, 2011 at 11:15 AM
Olá Crato,
que tipo de alterações você fez?
Abraço,
Stiven
From: [email removed]
Sent: Thursday, February 17, 2011 9:49 AM
To: [email removed]
Subject: Re: Boleto Caixa economica federal com problema [boletonet:238118]

From: Crato

Olá, eu fiz alterações na Carteira SR, e consegui gerar de acordo com a planilha de verificação da Caixa, tiver fazer algumas alterações quem quiser por favor me avise.

ernane.crato@openk.com.br

Feb 24, 2011 at 4:43 PM
  •  O tamanho do nosso número para 15 posiçoes
  • Metodo FormataCodigoBarra

if (boleto.Carteira.Equals("SR")) { if (boleto.NossoNumero.Length == 15) // Alterado para 15 [ernane.crato] { ////Posi��o 20 - 24 //string contaCedente = Utils.FormatCode(boleto.Cedente.ContaBancaria.Conta, 5); //// Posi��o 25 - 28 //string agenciaCedente = Utils.FormatCode(boleto.Cedente.ContaBancaria.Agencia, 4); ////Posi��o 29 //string codigoCarteira = "8"; ////Posi��o 30 //string constante = "7"; ////Posi��o 31 - 44 //string nossoNumero = boleto.NossoNumero; //Posi��o 20 - 25 string codigoCedente = Utils.FormatCode(boleto.Cedente.Codigo.ToString(), 6); // Posi��o 26 string dvCodigoCedente = Mod11Base9(codigoCedente).ToString(); //Posi��o 27 - 29 string primeiraParteNossoNumero = boleto.NossoNumero.Substring(0, 3); //Posi��o 30 string primeiraConstante; if (boleto.Carteira.Equals("SR")) primeiraConstante ="2"; // Sem registro else primeiraConstante = "1"; //Registrada // Posi��o 31 - 33 string segundaParteNossoNumero = boleto.NossoNumero.Substring(3, 3); // Posi��o 24 string segundaConstante = EMISSAO_CEDENTE.ToString(); //Posi��o 35 - 43 string terceiraParteNossoNumero = boleto.NossoNumero.Substring(6, 9); //Posi��o 44 string ccc = string.Format("{0}{1}{2}{3}{4}{5}{6}", codigoCedente, dvCodigoCedente, primeiraParteNossoNumero, primeiraConstante, segundaParteNossoNumero, segundaConstante, terceiraParteNossoNumero); string dvCampoLivre = Mod11Base9(ccc).ToString(); campoLivre = string.Format("{0}{1}", ccc, dvCampoLivre); //campoLivre = string.Format("{0}{1}{2}{3}{4}", contaCedente, agenciaCedente, codigoCarteira, // constante, nossoNumero); } }

  • No metodo FormataNossoNumero
    • public override void FormataNossoNumero(Boleto boleto)
              {
                  if (boleto.Carteira.Equals("SR"))
                  {
                      //if (boleto.NossoNumero.Length == 15) // Alterado para 15 [ernane.crato]
                      //{
                      //    boleto.NossoNumero = "8" + boleto.NossoNumero;
                      //}
                  }
      
                  //boleto.NossoNumero = string.Format("{0}-{1}", boleto.NossoNumero, Mod11Base9(boleto.NossoNumero)); //
                  //boleto.NossoNumero = string.Format("{0}{1}/{2}-{3}", boleto.Carteira, EMISSAO_CEDENTE, boleto.NossoNumero, Mod11Base9(boleto.Carteira + EMISSAO_CEDENTE + boleto.NossoNumero));
                  string modalidade;
                  if (boleto.Carteira.Equals("SR"))
                      modalidade = "2"; // Sem registro
                  else
                      modalidade = "1"; //Registrada
                  boleto.NossoNumero = string.Format("{0}{1}{2}-{3}", modalidade, EMISSAO_CEDENTE, boleto.NossoNumero, Mod11Base9(modalidade + EMISSAO_CEDENTE + boleto.NossoNumero));
              }
      

    • ValidaBoleto
      •  if (boleto.Carteira.Equals("SR"))
                    {
                        if (boleto.NossoNumero.Length != 15) // Alterado para 15 [ernane.crato]
                        {
                            throw new Exception("Nosso N�mero inv�lido, Para Caixa Econ�mica - Carteira SR o Nosso N�mero deve conter 15 caracteres.");
                        }
                        // Trecho adicionado por [ernane.crato]
                        // Calcula digito do cedente para imprimir no campo  campo Ag�ncia/Cod Cedente, os valores Ag�ncia/cod. cedente
                        if (!boleto.Cedente.Codigo.Equals(0))
                        {
        
                            string codigoCedente = Utils.FormatCode(boleto.Cedente.Codigo.ToString(), 6);
                            string dvCodigoCedente = Mod11(codigoCedente).ToString(); //Base9 
        
                            if (boleto.Cedente.DigitoCedente.Equals(-1))
                                boleto.Cedente.DigitoCedente = Convert.ToInt32(dvCodigoCedente);
                        }
                    }