Ejemplo n.º 1
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia da Classe de Boleto</param>
        /// <returns>String de 25 caractere que representa 'Campo Livre'</returns>
        public static string CampoLivre(Boleto blt, string cAgenciaNumero, string cCodCedente, string cNossoNumero)
        {
            cAgenciaNumero = CobUtil.Right(cAgenciaNumero, 3);
            cCodCedente    = CobUtil.Right(cCodCedente, 7);
            cNossoNumero   = CobUtil.Right(cNossoNumero, 8);

            if (Int32.Parse(cCodCedente) == 0)
            {
                throw new Exception("Informe o código do cedente");
            }

            string cLivre = "21" +
                            cAgenciaNumero +
                            cCodCedente +
                            cNossoNumero +
                            "041";

            string cDV = CobUtil.Modulo10(cLivre).ToString() + CobUtil.Modulo11Padrao(cLivre, 7).ToString();

            cLivre = cLivre + cDV;

            string cDAC = CobUtil.Modulo10(cNossoNumero).ToString();

            cDAC = cDAC + CobUtil.Modulo11Padrao(cNossoNumero + cDAC, 7);
            blt.NossoNumeroExibicao = cNossoNumero + "-" + cDAC;

            return(cLivre);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia da Classe de Boleto</param>
        /// <returns>String de 25 caractere que representa 'Campo Livre'</returns>
        public static string CampoLivre(Boleto blt, string cAgencia, string cCodCedente, string cNossoNumero)
        {
            string[] cAgenciaParts = cAgencia.Split('-', '/');
            string   cAgenciaConta = CobUtil.Right(cAgenciaParts[0], 2);
            string   cAgenciaDig   = CobUtil.Right(cAgenciaParts[1], 1);

            cCodCedente  = CobUtil.Right(cCodCedente, 9);
            cNossoNumero = CobUtil.Right(cNossoNumero, 8);

            if (Int32.Parse(cCodCedente) == 0)
            {
                throw new Exception("Informe o código do cedente");
            }

            // cAgenciaDig
            string cDAC = CobUtil.Modulo11Padrao(cAgenciaConta + cNossoNumero, 9).ToString();

            blt.NossoNumeroExibicao = cNossoNumero + "-" + cDAC;
            cNossoNumero            = cNossoNumero + cDAC;

            string cLivre = cAgenciaConta + cCodCedente + cNossoNumero + "047";

            // (Corresponde à Chave ASBACE)
            int nD1 = CobUtil.Modulo10(cLivre);
            int nD2 = CobUtil.Modulo11Negativo(cLivre + nD1.ToString());

            if (nD2 == -1) // Veja a rotina do modulo11
            {
                nD1 = nD1 + 1;
                nD2 = CobUtil.Modulo11Negativo(cLivre + nD1.ToString());
            }
            cLivre = cLivre + nD1.ToString() + nD2.ToString();

            return(cLivre);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia da Classe de Boleto</param>
        /// <returns>String de 25 caractere que representa 'Campo Livre'</returns>
        public static string CampoLivre(Boleto blt, string cCodCedente, string cModalidade, string cNossoNumero)
        {
            cCodCedente = CobUtil.Right(cCodCedente, 11);
            cModalidade = CobUtil.Right(cModalidade, 1);

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

            string cDAC12 = NossoNumero(ref cNossoNumero);
            string cLivre = cNossoNumero + cCodCedente + cModalidade + "021";

            blt.NossoNumeroExibicao = cNossoNumero + "-" + cDAC12;

            // (Corresponde à Chave ASBACE)
            int nD1 = CobUtil.Modulo10(cLivre);
            int nD2 = CobUtil.Modulo11Negativo(cLivre + nD1.ToString());

            if (nD2 == -1) // Veja a rotina do modulo11
            {
                nD1 = nD1 + 1;
                nD2 = CobUtil.Modulo11Negativo(cLivre + nD1.ToString());
            }

            cLivre = cLivre + nD1.ToString() + nD2.ToString();
            return(cLivre);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia 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 cModalidade, string cNossoNumero)
        {
            cNossoNumero   = CobUtil.Right(cNossoNumero, 9);    // O Nosso Numero tem que ter sempre 9 posições, sendo a primeira o digito "9"
            cAgenciaNumero = CobUtil.Right(cAgenciaNumero, 4);
            cModalidade    = CobUtil.Right(cModalidade, 2);     // (mas será utilizado somente o ultimo digito da modalidade)
            cContaNumero   = CobUtil.Right(cContaNumero, 6);    // numero da conta sem o digito

            if (CobUtil.GetInt(cModalidade) == 0)
            {
                throw new Exception("Informe a Modalidade");
            }

            if (cNossoNumero.Substring(0, 1) != "9")
            {
                throw new Exception("Para o Banco 'Nossa Caixa' o 'Nosso Numero' deve ter 9 posições iniciado sempre pelo digito '9'");
            }

            string cContaDig = blt.Conta.Split('-')[1];

            //O campo nosso numero tem que iniciar com 9 e ter 9 digitos
            string cLivre = cNossoNumero +
                            cAgenciaNumero +
                            cModalidade.Substring(1) + // utiliza apenas o ultimo digito da modalidade
                            cContaNumero +
                            "151";

            int D1 = CobUtil.Modulo10(cLivre);
            int D2 = CobUtil.Modulo11Negativo(cLivre + D1.ToString());

            while (D2 == -1) // Veja a rotina do modulo11
            {
                D1 = D1 + 1;
                D2 = CobUtil.Modulo11Negativo(cLivre + D1.ToString());
            }
            cLivre = cLivre + D1.ToString() + D2.ToString();

            //Calucla o digito do Nosso Numero

            int nTotal = DVNossaCaixa(cAgenciaNumero + cModalidade + "0" + cContaNumero) + int.Parse(cContaDig);

            nTotal = nTotal + DVNossaCaixa(cNossoNumero);

            int nResto = nTotal % 10;

            nResto = 10 - nResto;

            blt.NossoNumeroExibicao = cNossoNumero + "-" + nResto;
            blt.CarteiraExibicao    = "CIDENT";
            blt.AgenciaConta        = cAgenciaNumero + "/" + cModalidade + "/" + blt.Conta;

            return(cLivre);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// define se deve ser usado a nova logica de geração no Santander em vez do antigo Banespa
        /// </summary>
        //public static bool useSantander = false;

        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia da Classe de Boleto</param>
        /// <param name="cCodCedente">Código do Cedente</param>
        /// <param name="cNossoNumero">Nosso Numero</param>
        /// <returns>String de 25 caractere que representa 'Campo Livre'</returns>
        public static string CampoLivre(Boleto blt, string cCodCedente, string cNossoNumero)
        {
            if (cCodCedente.Length != 11)
            {
                throw new Exception("O código do cedente deve ter 11 digitos");
            }

            cCodCedente  = CobUtil.Right(cCodCedente, 11);
            cNossoNumero = CobUtil.Right(cNossoNumero, 7);

            if (Int64.Parse(cCodCedente) == 0)
            {
                throw new Exception("Informe o código do cedente");
            }

            string cLivre =
                cCodCedente +
                cNossoNumero +
                "00" +
                "033";

            string cD1;
            string cD2;

            cD1 = CobUtil.Modulo10(cLivre).ToString();
            cD2 = CobUtil.Modulo11Padrao(cLivre + cD1, 7).ToString();
            if (cD2 == "1")
            {
                cD1 = "0";
loopDigitoInc:
                cD2 = CobUtil.Modulo11Padrao(cLivre + cD1, 7).ToString();
                if (cD2 == "1")
                {
                    cD1 = string.Format("{0}", Int32.Parse(cD1) + 1);
                    goto loopDigitoInc;
                }
            }

            cLivre = cLivre + cD1 + cD2;

            string cAgenciaNumero = cCodCedente.Substring(0, 3);

            blt.NossoNumeroExibicao = cAgenciaNumero + " " + cNossoNumero + "-" + DVBanespa(cAgenciaNumero + cNossoNumero);
            //blt.NossoNumeroExibicao = cAgenciaNumero + " " + cNossoNumero + "-" + CobUtil.Modulo11Especial(cAgenciaNumero + cNossoNumero, 9);
            blt.AgenciaConta = cCodCedente.Substring(0, 3) + " " + cCodCedente.Substring(3, 2) + " " + cCodCedente.Substring(5, 5) + " " + cCodCedente.Substring(10, 1);

            return(cLivre);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia 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 cCarteira, string cCodCedente, string cNossoNumero, string cNumeroDocumento)
        {
            string cDAC = NossoNumero(ref cAgenciaNumero, ref cContaNumero, ref cCarteira, ref cNossoNumero);

            if (CobUtil.GetInt(cCarteira) == 0)
            {
                throw new Exception("Informe a Carteira");
            }
            if (CobUtil.GetInt(cAgenciaNumero) == 0)
            {
                throw new Exception("Informe a Agencia");
            }
            if (CobUtil.GetInt(cContaNumero) == 0)
            {
                throw new Exception("Informe a Conta");
            }

            string cLivre;

            if (cCarteira == "107" || cCarteira == "122" || cCarteira == "142" || cCarteira == "143" || cCarteira == "196" || cCarteira == "198")
            {
                string cNumDoc = CobUtil.Right(cNumeroDocumento, 7);
                cCodCedente = CobUtil.Right(cCodCedente, 5);

                cLivre = cCarteira +
                         cNossoNumero +
                         cNumDoc +
                         cCodCedente;

                cLivre += CobUtil.Modulo10(cLivre) + "0";
            }
            else
            {
                cLivre = cCarteira +
                         cNossoNumero +
                         cDAC +
                         cAgenciaNumero +
                         cContaNumero +
                         CobUtil.Modulo10(cAgenciaNumero + cContaNumero) +
                         "000";
            }

            blt.NossoNumeroExibicao = cCarteira + "/" + cNossoNumero + "-" + cDAC;
            blt.AgenciaConta        = cAgenciaNumero + "/" + blt.Conta;

            return(cLivre);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia 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 cNossoNumero)
        {
            cAgenciaNumero = CobUtil.Right(cAgenciaNumero, 4);
            cContaNumero   = CobUtil.Right(cContaNumero, 7);
            cNossoNumero   = CobUtil.Right(cNossoNumero, 13);

            string cDAC = CobUtil.Modulo10(cNossoNumero + cAgenciaNumero + cContaNumero).ToString();

            string cLivre = cAgenciaNumero +
                            cContaNumero +
                            cDAC +
                            cNossoNumero;

            blt.AgenciaConta        = cAgenciaNumero + "/" + cContaNumero + "-" + cDAC;
            blt.NossoNumeroExibicao = cNossoNumero;

            return(cLivre);
        }
Ejemplo n.º 8
0
        public static string NossoNumero(ref string cAgenciaNumero, ref string cContaNumero, ref string cCarteira, ref string cNossoNumero)
        {
            if (cContaNumero.Length > 5)
            {
                throw new Exception("O Número da conta deve contar no maximo 5 digitos, sem o verificador: 12345-6");
            }

            cAgenciaNumero = CobUtil.Right(cAgenciaNumero, 4);
            cContaNumero   = CobUtil.Right(cContaNumero, 5);
            cCarteira      = CobUtil.Right(cCarteira, 3);
            cNossoNumero   = CobUtil.Right(cNossoNumero.Split('-')[0], 8);

            if (cCarteira == "112" || cCarteira == "126" || cCarteira == "131" || cCarteira == "146" || cCarteira == "150" || cCarteira == "168")
            {
                return(CobUtil.Modulo10(cCarteira + cNossoNumero).ToString());
            }
            else
            {
                return(CobUtil.Modulo10(cAgenciaNumero + cContaNumero + cCarteira + cNossoNumero).ToString());
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia da Classe de Boleto</param>
        /// <returns>String de 25 caractere que representa 'Campo Livre'</returns>
        public static string CampoLivre(string cConvenio, string cCarteira, string cNossoNumero)
        {
            cConvenio    = CobUtil.Right(cConvenio, 5);
            cCarteira    = CobUtil.Right(cCarteira, 2);
            cNossoNumero = CobUtil.Right(cNossoNumero, 13);

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

            string cLivre = cConvenio + cNossoNumero.Substring(0, 3) + cCarteira + cNossoNumero.Substring(3) + "027";

            cLivre = cLivre + CobUtil.Modulo10(cLivre);
            cLivre = cLivre + CobUtil.Modulo11Padrao(cLivre, 7);

            return(cLivre);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia 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 cCarteira, string cNossoNumero)
        {
            cAgenciaNumero = CobUtil.Right(cAgenciaNumero, 3);
            cContaNumero   = CobUtil.Right(cContaNumero, 7);
            cCarteira      = CobUtil.Right(cCarteira, 1);
            cNossoNumero   = CobUtil.Right(cNossoNumero, 6);

            if (CobUtil.GetInt(cCarteira) == 0)
            {
                throw new Exception("Informe a Carteira");
            }

            //O campo nosso numero tem que iniciar com 9 e ter 9 digitos
            string cLivre = "000" +
                            cAgenciaNumero +
                            cContaNumero +
                            cCarteira +
                            cNossoNumero +
                            "070";

            int D1 = CobUtil.Modulo10(cLivre);
            int D2 = CobUtil.Modulo11Negativo(cLivre + D1.ToString());

            while (D2 == -1) // Veja a rotina do modulo11
            {
                D1 = D1 + 1;
                D2 = CobUtil.Modulo11Negativo(cLivre + D1.ToString());
            }
            cLivre = cLivre + D1.ToString() + D2.ToString();

            //Monta o Nosso Numero
            blt.NossoNumeroExibicao = cCarteira + cNossoNumero + "070" + D1.ToString() + D2.ToString();

            // Monta a Exibição da Agencia/Conta
            blt.AgenciaConta = "000 " + cAgenciaNumero + " " + cContaNumero;

            return(cLivre);
        }