示例#1
0
        /// <summary>
        /// Adiciona um boleto e seu respectivo sacado (será armazenado uma cópia (cole) destas instancias
        /// </summary>
        public void Add(BoletoInfo bol, SacadoInfo sac)
        {
            BoletoInfo boleto = bol.Clone(); // é feita uma cópia do boleto com os dados adicionais para não alterar o original

            boleto.SacadoInit((SacadoInfo)CobUtil.Clone(sac));
            cnab.Boletos.Add(boleto);
#if TEST_LOG
            cnab.Log += "\r\n +" + boleto.NossoNumero + " QTD: " + cnab.Boletos.Count + "\r\n";
            BoletoInfo b;
            foreach (string n in Boletos.NossoNumeros)
            {
                b         = Boletos[n];
                cnab.Log += string.Format("'{0}' '{1}' / ", n, b.NossoNumero);
            }
            //cnab.Log += " - bi - ";
            //foreach (string n in bi.Keys)
            //{
            //    b = null;
            //    if (bi.TryGetValue(n, out b))
            //        cnab.Log += string.Format("'{0}' '{1}' / ", n, b.NossoNumero);
            //    else
            //        cnab.Log += n + "! ";
            //}
#endif
        }
示例#2
0
    protected void btnRemessa_Click(object sender, EventArgs e)
    {   // (Não é o foco validar dados de entrada, e sim testar a geração de registro)
        // Definição dos dados do cedente - QUEM RECEBE / EMITE
        CedenteInfo Cedente = new CedenteInfo();

        Cedente.Cedente    = "Exemplo de empresa cedente";
        Cedente.Banco      = "237";
        Cedente.Agencia    = "1510";
        Cedente.Conta      = "001466-4";
        Cedente.Carteira   = "09";
        Cedente.Modalidade = "05";
        Cedente.CedenteCOD = "00000000000004047726"; // 20 digitos

        //Definição dos dados do sacado
        SacadoInfo Sacado = new SacadoInfo();

        Sacado.Sacado    = "Pedro Alvarez Cabral";
        Sacado.Documento = "123.123.134-12";
        Sacado.Endereco  = "Rua 21 de Abril";
        Sacado.Cidade    = "São Paulo";
        Sacado.Bairro    = "Vera Cruz";
        Sacado.Cep       = "98765-000";
        Sacado.UF        = "SP";
        Sacado.Email     = "*****@*****.**";

        //Definição das Variáveis do boleto
        BoletoInfo Boleto;

        //WebControl
        BoletoWeb blt;

        // define o emissor da remessa
        // Remessa r = new Remessa(Cedente);
        CNAB400Bradesco r = new CNAB400Bradesco();

        r.Cedente = Cedente;
        // O lote padrão gera AADDDHH (Ano, Dia do ano, Hora)
        r.NumeroLote += 2000000; // inicia com 3 o numero do lote! (soma 20 anos)

        //r.ShowDumpReg = true;

        // customiza campos para Bradesco
        // r.onRegItem += new RemessaReg(r_onRegItem);

        for (int n = 0; n < Int32.Parse(txtQTD.Text); n++)
        {
            Boleto                 = new BoletoInfo();
            Boleto.BoletoID        = n;
            Boleto.NossoNumero     = (Int32.Parse(txtNossoNumero.Text) + n).ToString();
            Boleto.NumeroDocumento = Boleto.NossoNumero;
            Boleto.ValorDocumento  = double.Parse(txtValor.Text) + n;
            Boleto.DataDocumento   = DateTime.Now;
            Boleto.DataVencimento  = DateTime.Parse(txtVencimento.Text).AddDays(n);
            Boleto.Instrucoes      = "Todas as informações deste bloqueto são de exclusiva responsabilidade do cedente";

            blt = new BoletoWeb();
            dvBoletos.Controls.Add(blt);

            blt.ImagePath         = "../imagens/"; // Define o diretório de imagens
            blt.ExibeReciboSacado = false;         // Apenas para exibir a parte que interessa do boleto
            blt.CssCell           = "BolCell";
            blt.CssField          = "BolField";

            // Gera um boleto
            blt.MakeBoleto(Cedente, Sacado, Boleto);

            // Gera um registro
            Boleto.SacadoInit(Sacado); // obrigatório para o registro
            r.Boletos.Add(Boleto, null);
        }

        // o numero de exemplo '123' é apenas um numero de teste
        // este numero é muito importante que seja gerado de forma exclusiva e sequencial
        txtRemessa.Text = r.Remessa(); //r.CNAB400(123);
    }
    // Este exemplo tem os mesmos parametros, mas a imagem é rederizada de forma externa
    // A instancia do boleto é serializada e fica na sessão ou cache, e é recuperada pelo gerador da imagem do boleto
    protected void Page_Init(object sender, EventArgs e)
    {
        // A Definição dos cedente fica dentro do gerador da imagem

        // Cria uma tabela em memoria
        DataTable tbDados = new DataTable();

        // Estrutura da tabela
        tbDados.Columns.Add("Nome", typeof(string));
        tbDados.Columns.Add("Vencimento", typeof(DateTime));
        tbDados.Columns.Add("Valor", typeof(double));
        tbDados.Columns.Add("NossoNumero", typeof(int));

        // Insere os dados
        tbDados.Rows.Add("Fábio", new DateTime(2015, 12, 30), 123.45, 345678);
        tbDados.Rows.Add("Érika", new DateTime(2015, 7, 25), 60, 12332);
        tbDados.Rows.Add("Milena", new DateTime(2015, 10, 20), 10.30, 234);
        tbDados.Rows.Add("Cecília", new DateTime(2015, 3, 4), 20.53, 456445);
        tbDados.Rows.Add("Roberto", new DateTime(2015, 6, 5), 32.78, 47319);
        tbDados.Rows.Add("Marcelo", DateTime.MinValue, 20320.23, 18445);
        tbDados.Rows.Add("Ricardo", DateTime.MinValue, 97023.51, 2465445);
        tbDados.Rows.Add("Maria", new DateTime(2016, 9, 12), 7890.23, 61756);
        tbDados.Rows.Add("Samara", new DateTime(2015, 8, 12), 78.1, 656);
        tbDados.Rows.Add("Marcio", new DateTime(2015, 2, 10), 790.3, 5672);

        int nBoleto = 0;
        foreach (DataRow row in tbDados.Rows)
        {
            // O loop apenas gera os objetos que serão memorizados em sessão ou cache

            // Definição dos dados do sacado
            SacadoInfo Sacado = new SacadoInfo();
            Sacado.Sacado = (string)row["Nome"];

            // Definição das Variáveis do boleto
            BoletoInfo Boleto = new BoletoInfo();
            Boleto.DataVencimento = (DateTime)row["Vencimento"];
            Boleto.ValorDocumento = (double)row["Valor"];
            Boleto.NossoNumero = row["NossoNumero"].ToString();
            Boleto.NumeroDocumento = Boleto.NossoNumero;

            // Vincula o Sacado ao boleto
            Boleto.SacadoInit(Sacado);

            // Crio um identificador unico para o boleto, poderia ser só um ID, ou mesmo o NossoNumero, mas depende dos critérios de segurança
            string cID = "boleto-" + Guid.NewGuid().ToString();

            // Se não for StateServer, ou sessão em banco de dados é possivel usar
            Session[cID] = Boleto; // Funciona é mais simples, mas a memoria vai ficando com todos os boletos gerados até a sessão expirar

            // Uma forma melhor é colocar em cache, com tempo de expiração
            //Cache.Insert(cID, Boleto, null, DateTime.MaxValue, new TimeSpan(0, 5, 0));

            // Adiciona a imagem do boleto em base64 no HTML
            // Para facilitar a depuração também adiciono um link para a propria imagem
            form1.Controls.Add(new LiteralControl("<a href='BoletoImagem2.ashx?id=" + cID + "' target='_blank'><img src='BoletoImagem2.ashx?id=" + cID + "' /></a>"));
            // form1.Controls.Add(new LiteralControl("<img src='BoletoImagem2.ashx?id=" + cID + "' />"));

            // incrementa o contador de boletos
            nBoleto++;
            if (nBoleto % 3 == 0) // Mas aplicar muito zoom pode dar problema na leitura do código de barras
                // somente nos boletos pares a iniciar de 2 força uma quebra de linha
                form1.Controls.Add(new LiteralControl("<div style='page-break-after: always'><br/></div>"));
            else //  if (nBoleto<tbDados.Rows.Count) // caso não queira imprimir a ultima imagem de tesoura
                // nos boletos impares adiciona a imagem de recorte, ou um HR
                // form1.Controls.Add(new LiteralControl("<img src='imagens/corte.gif' style='margin: 5px 0 5px 0;'/>"));
                form1.Controls.Add(new LiteralControl("<hr size='1' style='color: gray; margin: 5px 0 5px 0;'/>"));
        }
    }
示例#4
0
    protected void btnRemessa_Click(object sender, EventArgs e)
    {   // (Não é o foco validar dados de entrada, e sim testar a geração de registro)
        //Definição dos dados do sacado
        SacadoInfo Sacado = new SacadoInfo();

        Sacado.Sacado    = "Pedro Alvarez Cabral";
        Sacado.Documento = "123.123.134-12";
        Sacado.Endereco  = "Rua 21 de Abril";
        Sacado.Cidade    = "São Paulo";
        Sacado.Bairro    = "Vera Cruz";
        Sacado.Cep       = "01500-000";
        Sacado.UF        = "SP";
        Sacado.Email     = "*****@*****.**";

        // Usando a classe bradesco diretamente
        // CNAB400Bradesco r = new CNAB400Bradesco();
        // r.Cedente = Cedente;
        // r.NumeroLote += 2000000; // inicia com 3 o numero do lote! (soma 20 anos)

        var r = new LayoutBancos();

        r.Init(Cedente);
        r.Lote = 123456; // é o NumeroLote do CNAB: é preciso gerar uma sequencia armazenada em banco que não se repita
        // O lote padrão gera AADDDHH (Ano, Dia do ano, Hora)

        //r.ShowDumpReg = true;

        // customiza campos
        r.onRegBoleto = CustomRegBoleto;

        for (int n = 0; n < Int32.Parse(txtQTD.Text); n++)
        {
            //Definição das Variáveis do boleto
            var Boleto = new BoletoInfo();
            Boleto.BoletoID        = n;
            Boleto.NossoNumero     = (Int32.Parse(txtNossoNumero.Text) + n).ToString();
            Boleto.NumeroDocumento = Boleto.NossoNumero;
            Boleto.ValorDocumento  = double.Parse(txtValor.Text) + n;
            Boleto.DataDocumento   = DateTime.Now;
            Boleto.DataVencimento  = DateTime.Parse(txtVencimento.Text).AddDays(n);
            Boleto.Instrucoes      = "Todas as informações deste bloqueto são de exclusiva responsabilidade do cedente";

            // WebControl
            var blt = new BoletoWeb();
            dvBoletos.Controls.Add(blt);

            blt.ImagePath         = "../imagens/"; // Define o diretório de imagens
            blt.ExibeReciboSacado = false;         // Apenas para exibir a parte que interessa do boleto
            blt.CssCell           = "BolCell";
            blt.CssField          = "BolField";

            // Gera um boleto
            blt.MakeBoleto(Cedente, Sacado, Boleto);

            // Gera um registro
            Boleto.SacadoInit(Sacado); // obrigatório para o registro
            r.Boletos.Add(Boleto, null);
        }

        // o numero de exemplo '123' é apenas um numero de teste
        // este numero é muito importante que seja gerado de forma exclusiva e sequencial
        txtRemessa.Text = r.Remessa(); //r.CNAB400(123);
    }
示例#5
0
    // Este exemplo tem os mesmos parametros, mas a imagem é rederizada de forma externa
    // A instancia do boleto é serializada e fica na sessão ou cache, e é recuperada pelo gerador da imagem do boleto
    protected void Page_Init(object sender, EventArgs e)
    {
        // A Definição dos cedente fica dentro do gerador da imagem

        // Cria uma tabela em memoria
        DataTable tbDados = new DataTable();

        // Estrutura da tabela
        tbDados.Columns.Add("Nome", typeof(string));
        tbDados.Columns.Add("Vencimento", typeof(DateTime));
        tbDados.Columns.Add("Valor", typeof(double));
        tbDados.Columns.Add("NossoNumero", typeof(int));

        // Insere os dados
        tbDados.Rows.Add("Fábio", new DateTime(2015, 12, 30), 123.45, 345678);
        tbDados.Rows.Add("Érika", new DateTime(2015, 7, 25), 60, 12332);
        tbDados.Rows.Add("Milena", new DateTime(2015, 10, 20), 10.30, 234);
        tbDados.Rows.Add("Cecília", new DateTime(2015, 3, 4), 20.53, 456445);
        tbDados.Rows.Add("Roberto", new DateTime(2015, 6, 5), 32.78, 47319);
        tbDados.Rows.Add("Marcelo", DateTime.MinValue, 20320.23, 18445);
        tbDados.Rows.Add("Ricardo", DateTime.MinValue, 97023.51, 2465445);
        tbDados.Rows.Add("Maria", new DateTime(2016, 9, 12), 7890.23, 61756);
        tbDados.Rows.Add("Samara", new DateTime(2015, 8, 12), 78.1, 656);
        tbDados.Rows.Add("Marcio", new DateTime(2015, 2, 10), 790.3, 5672);

        int nBoleto = 0;

        foreach (DataRow row in tbDados.Rows)
        {
            // O loop apenas gera os objetos que serão memorizados em sessão ou cache

            // Definição dos dados do sacado
            SacadoInfo Sacado = new SacadoInfo();
            Sacado.Sacado = (string)row["Nome"];

            // Definição das Variáveis do boleto
            BoletoInfo Boleto = new BoletoInfo();
            Boleto.DataVencimento  = (DateTime)row["Vencimento"];
            Boleto.ValorDocumento  = (double)row["Valor"];
            Boleto.NossoNumero     = row["NossoNumero"].ToString();
            Boleto.NumeroDocumento = Boleto.NossoNumero;

            // Vincula o Sacado ao boleto
            Boleto.SacadoInit(Sacado);

            // Crio um identificador unico para o boleto, poderia ser só um ID, ou mesmo o NossoNumero, mas depende dos critérios de segurança
            string cID = "boleto-" + Guid.NewGuid().ToString();

            // Se não for StateServer, ou sessão em banco de dados é possivel usar
            Session[cID] = Boleto; // Funciona é mais simples, mas a memoria vai ficando com todos os boletos gerados até a sessão expirar

            // Uma forma melhor é colocar em cache, com tempo de expiração
            //Cache.Insert(cID, Boleto, null, DateTime.MaxValue, new TimeSpan(0, 5, 0));

            // Adiciona a imagem do boleto em base64 no HTML
            // Para facilitar a depuração também adiciono um link para a propria imagem
            form1.Controls.Add(new LiteralControl("<a href='BoletoImagem2.ashx?id=" + cID + "' target='_blank'><img src='BoletoImagem2.ashx?id=" + cID + "' /></a>"));
            // form1.Controls.Add(new LiteralControl("<img src='BoletoImagem2.ashx?id=" + cID + "' />"));

            // incrementa o contador de boletos
            nBoleto++;
            if (nBoleto % 3 == 0) // Mas aplicar muito zoom pode dar problema na leitura do código de barras
            // somente nos boletos pares a iniciar de 2 força uma quebra de linha
            {
                form1.Controls.Add(new LiteralControl("<div style='page-break-after: always'><br/></div>"));
            }
            else //  if (nBoleto<tbDados.Rows.Count) // caso não queira imprimir a ultima imagem de tesoura
                 // nos boletos impares adiciona a imagem de recorte, ou um HR
                 // form1.Controls.Add(new LiteralControl("<img src='imagens/corte.gif' style='margin: 5px 0 5px 0;'/>"));
            {
                form1.Controls.Add(new LiteralControl("<hr size='1' style='color: gray; margin: 5px 0 5px 0;'/>"));
            }
        }
    }
示例#6
0
    protected void btnRemessa_Click(object sender, EventArgs e)
    {   // (Não é o foco validar dados de entrada, e sim testar a geração de registro)

        // Definição dos dados do cedente - QUEM RECEBE / EMITE
        CedenteInfo Cedente = new CedenteInfo();
        Cedente.Cedente = "Exemplo de empresa cedente";
        Cedente.Banco = Request["banco"] ?? "341";
        Cedente.Agencia = "1510";
        Cedente.Conta = "001466-4";
        Cedente.Carteira = "09";
        Cedente.Modalidade = "05";
        Cedente.CedenteCOD = "00000000000004047726"; // 20 digitos

        //Definição dos dados do sacado
        SacadoInfo Sacado = new SacadoInfo();
        Sacado.Sacado = "Pedro Alvarez Cabral";
        Sacado.Documento = "123.123.134-12";
        Sacado.Endereco = "Rua 21 de Abril";
        Sacado.Cidade = "São Paulo";
        Sacado.Bairro = "Vera Cruz";
        Sacado.Cep = "98765-000";
        Sacado.UF = "SP";
        Sacado.Email = "*****@*****.**";

        //Definição das Variáveis do boleto
        BoletoInfo Boleto;

        //WebControl
        BoletoWeb blt;

        // define o emissor da remessa
        // Remessa r = new Remessa(Cedente);
        CNAB400Bradesco r = new CNAB400Bradesco();
        r.Cedente = Cedente;
        // O lote padrão gera AADDDHH (Ano, Dia do ano, Hora)
        r.NumeroLote += 2000000; // inicia com 3 o numero do lote! (soma 20 anos)

        //r.ShowDumpReg = true;

        // customiza campos para Bradesco
        // r.onRegItem += new RemessaReg(r_onRegItem);

        for (int n = 0; n < Int32.Parse(txtQTD.Text); n++)
        {
            Boleto = new BoletoInfo();
            Boleto.BoletoID = n;
            Boleto.NossoNumero = (Int32.Parse(txtNossoNumero.Text) + n).ToString();
            Boleto.NumeroDocumento = Boleto.NossoNumero;
            Boleto.ValorDocumento = double.Parse(txtValor.Text) + n;
            Boleto.DataDocumento = DateTime.Now;
            Boleto.DataVencimento = DateTime.Parse(txtVencimento.Text).AddDays(n);
            Boleto.Instrucoes = "Todas as informações deste bloqueto são de exclusiva responsabilidade do cedente";

            blt = new BoletoWeb();
            dvBoletos.Controls.Add(blt);

            blt.ImagePath = "../imagens/"; // Define o diretório de imagens
            blt.ExibeReciboSacado = false; // Apenas para exibir a parte que interessa do boleto
            blt.CssCell = "BolCell";
            blt.CssField = "BolField";

            // Gera um boleto
            blt.MakeBoleto(Cedente, Sacado, Boleto);

            // Gera um registro
            Boleto.SacadoInit(Sacado); // obrigatório para o registro
            r.Boletos.Add(Boleto,null);

        }

        // o numero de exemplo '123' é apenas um numero de teste
        // este numero é muito importante que seja gerado de forma exclusiva e sequencial
        txtRemessa.Text = r.Remessa(); //r.CNAB400(123);
        
    }