Пример #1
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Instancia da Classe de Boleto</param>
        /// <returns>String de 25 caractere que representa 'Campo Livre'</returns>
        public static string CampoLivre(Boleto blt, string cAgenciaNumero, string cContaNumero, string cConvenio, string cModalidade, string cCarteira, string cNossoNumero)
        {
            string cLivre;

            cAgenciaNumero = CobUtil.Right(cAgenciaNumero, 4);
            cContaNumero   = CobUtil.Right(cContaNumero, 8);
            cModalidade    = CobUtil.Right(cModalidade, 2);
            cCarteira      = CobUtil.Right(cCarteira, 2);

            if (CobUtil.GetInt(cConvenio) == 0)
            {
                throw new Exception("Informe o código do convenio");
            }
            if (CobUtil.GetInt(cModalidade) == 0)
            {
                throw new Exception("Informe o a modalidade");
            }
            if (CobUtil.GetInt(cCarteira) == 0)
            {
                throw new Exception("Informe o a carteira");
            }

            if (cConvenio.Length == 7)
            {
                // CÓDIGO DE BARRAS PARA EMISSÃO DE BLOQUETOS NAS CARTEIRAS 17 E 18,
                // EXCLUSIVO PARA CONVÊNIOS COM NUMERAÇÃO SUPERIOR À 1.000.000 (UM MILHÃO).
                if (cNossoNumero.Length == 17)
                {
                    cLivre = "000000" + // o convenio faz parte do nosso numero
                             cNossoNumero +
                             cCarteira;
                }
                else
                {
                    cNossoNumero = CobUtil.Right(cNossoNumero, 10);
                    cLivre       = "000000" +
                                   cConvenio +
                                   cNossoNumero +
                                   cCarteira;
                }
            }
            else if (cConvenio.Length == 6)
            {
                if (cCarteira == "16" || cCarteira == "18")
                {
                    if (cModalidade == "21")
                    {
                        cNossoNumero = CobUtil.Right(cNossoNumero, 17);
                        cLivre       = cConvenio +    // 6
                                       cNossoNumero + // 17
                                       cModalidade;   // 2
                    }
                    else // Tipos de Convênio 2, 3, 4 ou 5. (COD CEDENTE=CONVENIO NO BB)
                    {
                        cNossoNumero = cConvenio + CobUtil.Right(cNossoNumero, 5); // 6 + 5
                        cLivre       = cNossoNumero +                              // 11
                                       cAgenciaNumero +                            // 4
                                       cContaNumero +                              // 8
                                       cCarteira;                                  // 2
                    }
                }
                else
                {
                    throw new Exception("Carteira invalida");
                }

                blt.CarteiraExibicao = cCarteira + "/0" + cModalidade;
            }
            else if (cConvenio.Length == 4)
            {
                cNossoNumero = cConvenio + CobUtil.Right(cNossoNumero, 7); // 4 + 7 => 11
                cLivre       =
                    cNossoNumero +                                         // 11 => 11
                    cAgenciaNumero +                                       // 11 + 4 => 15
                    cContaNumero +                                         // 15 + 8 => 23
                    cCarteira;                                             // 23 + 2 => 25 OK
            }
            else
            {
                throw new Exception("Numero de Convenio Inválido (deveria ter 4, 6 ou 7 digitos)");
            }

            if (cNossoNumero.Length == 17)
            {
                blt.NossoNumeroExibicao = cNossoNumero;
            }
            else
            {
                // Alterado aki por Georgenes
                string cDAC = NossoNumeroDV(cConvenio + cNossoNumero);
                // string cDAC = CobUtil.Modulo11Especial(cNossoNumero, 9).ToString();
                blt.NossoNumeroExibicao = cConvenio + cNossoNumero + "-" + cDAC;
            }

            return(cLivre);
        }
Пример #2
0
 /// <summary>
 /// Metodo responsável por gerar os campos
 /// </summary>
 /// <param name="blt"></param>
 /// <returns></returns>
 abstract public void MakeFields(Boleto blt);