示例#1
0
        private void GeraBoletoCaixa(int qtde)
        {
            // Cria o boleto, e passa os parâmetros usuais
            BoletoBancario bb;

            List<BoletoBancario> boletos = new List<BoletoBancario>();
            for (int i = 0; i < qtde; i++)
            {

                bb = new BoletoBancario();
                bb.CodigoBanco = _codigoBanco;
                bb.MostrarEnderecoCedente = true;
                DateTime vencimento = DateTime.Now.AddDays(10);

                Instrucao_Caixa item1 = new Instrucao_Caixa(9, 5);
                Instrucao_Caixa item2 = new Instrucao_Caixa(81, 10);
                Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "0132", "00542");

                Boleto b = new Boleto(vencimento, 460, "SR", "00000000010001", c);
                Endereco endCed = new Endereco();

                endCed.End = "Rua Testando o Boleto";
                endCed.Bairro = "BairroTest";
                endCed.Cidade = "CidadeTes";
                endCed.CEP = "70000000";
                endCed.UF = "MG";
                b.Cedente.Endereco = endCed;

                b.NumeroDocumento = Convert.ToString(1000 + i);

                b.Sacado = new Sacado("000.000.000-00", "Fulano de Silva");
                b.Sacado.Endereco.End = "SSS 154 Bloco J Casa 23ddddddddddddddddddddddddddd";
                b.Sacado.Endereco.Bairro = "Testando";
                b.Sacado.Endereco.Cidade = "Testelândia";
                b.Sacado.Endereco.CEP = "70000000";
                b.Sacado.Endereco.UF = "DF";

                item2.Descricao += " " + item2.QuantidadeDias.ToString() + " dias corridos do vencimento.";
                b.Instrucoes.Add(item1);
                b.Instrucoes.Add(item2);

                // juros/descontos

                if (b.ValorDesconto == 0)
                {
                    Instrucao_Caixa item3 = new Instrucao_Caixa(999, 1);
                    item3.Descricao += ("1,00 por dia de antecipação.");
                    b.Instrucoes.Add(item3);
                }

                bb.Boleto = b;
                bb.Boleto.Valida();

                boletos.Add(bb);
            }

            GeraLayout(boletos);
        }
示例#2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        DateTime vencimento = DateTime.Now.AddDays(5);

        Cedente c = new Cedente("000.000.000-00", "Boleto.net ILTDA", "1234", "12345678", "9");

        c.Codigo = "112233";   
        

        Boleto b = new Boleto(vencimento, 20.00m, "2", "0123456789", c);

        b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente ");
        b.Sacado.Endereco.End = "Endereço do seu Cliente ";
        b.Sacado.Endereco.Bairro = "Bairro";
        b.Sacado.Endereco.Cidade = "Cidade";
        b.Sacado.Endereco.CEP = "00000000";
        b.Sacado.Endereco.UF = "UF";

        //Adiciona as instruções ao boleto
        #region Instruções
        Instrucao_Caixa item; 
        //ImportanciaporDiaDesconto
        item = new Instrucao_Caixa((int)EnumInstrucoes_Caixa.Multa, Convert.ToDecimal(0.40));
        b.Instrucoes.Add(item);
        item = new Instrucao_Caixa((int)EnumInstrucoes_Caixa.JurosdeMora, Convert.ToDecimal(0.01));
        b.Instrucoes.Add(item);
        item = new Instrucao_Caixa((int)EnumInstrucoes_Caixa.NaoReceberAposNDias, 90);
        b.Instrucoes.Add(item);
        #endregion Instruções
        EspecieDocumento_Caixa ed = new EspecieDocumento_Caixa();
        b.EspecieDocumento = new EspecieDocumento_Caixa(ed.getCodigoEspecieByEnum(EnumEspecieDocumento_Caixa.DuplicataMercantil));
        b.NumeroDocumento = "00001";
        b.DataProcessamento = DateTime.Now;
        b.DataDocumento = DateTime.Now;
        boletoBancario.Boleto = b;
        boletoBancario.Boleto.Valida();
        //lblCodigoBarras.Text = b.CodigoBarra.Codigo.ToString();

        boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show");
    }
示例#3
0
    protected void Button1_Click(object sender, EventArgs e)
    {

        try
        {

            //Remove dígito da Agência.
            int DigAgencia = 0;
            int Agencia = 0;
            if (txtAgenciaCedente.Text.IndexOf("-") > -1)
            {
                int s = txtAgenciaCedente.Text.IndexOf("-") + 1;
                int tam = Strings.Len(txtAgenciaCedente.Text);
                DigAgencia = Convert.ToInt32(Strings.Right(txtAgenciaCedente.Text, tam - s));
                int dif = tam - (s - 1);
                //incluindo o traço.
                Agencia = Convert.ToInt32(Strings.Left(txtAgenciaCedente.Text, tam - dif));
            }
            //txtAgenciaCedente.Text

            //Remove dígito da Conta.
            int DigConta = 0;
            int Conta = 0;
            if (txtContaCedente.Text.IndexOf("-") > -1)
            {
                int s2 = txtContaCedente.Text.IndexOf("-") + 1;
                int tam2 = Strings.Len(txtContaCedente.Text);
                DigConta = Convert.ToInt32(Strings.Right(txtContaCedente.Text, tam2 - s2));
                int dif2 = tam2 - (s2 - 1);
                //incluindo o traço.
                Conta = Convert.ToInt32(Strings.Left(txtContaCedente.Text, tam2 - dif2));
            }
            //txtContaCedente.Text

            //Remove dígito do Cedente.
            if (txtCodigoCedente.Text.IndexOf("-") > -1)
            {
                int s3 = txtCodigoCedente.Text.IndexOf("-") + 1;
                int tam3 = Strings.Len(txtCodigoCedente.Text);
                int dif3 = tam3 - (s3 - 1);
                //incluindo o traço.
                txtCodigoCedente.Text = Strings.Left(txtCodigoCedente.Text, tam3 - dif3);
            }


            //Validação.
            switch (txtBanco.Text)
            {
                case "001":
                    //Banco do Brasil.

                    //Carteira com 2 caracteres.
                    //If Len(txtCarteira.Text) <> 2 Then
                    //Response.Write("A Carteira deve conter 2 dígitos."]
                    //Exit Sub
                    //End If

                    //Agência com 4 caracteres.
                    if (Strings.Len(Agencia) > 4)
                    {
                        Response.Write("A Agência deve conter até 4 dígitos.");
                        return;
                    }


                    //Conta com 8 caracteres.
                    if (Strings.Len(Conta) > 8)
                    {
                        Response.Write("A Conta deve conter até 8 dígitos.");
                        return;
                    }


                    //Cedente com 8 caracteres.
                    if (Strings.Len(txtCodigoCedente.Text) > 8)
                    {
                        Response.Write("O Código do Cedente deve conter até 8 dígitos.");
                        return;
                    }


                    //Nosso Número deve ser 11 ou 17 dígitos.
                    if (Strings.Len(txtNossoNumeroBoleto.Text) != 11 & Strings.Len(txtNossoNumeroBoleto.Text) != 17)
                    {
                        Response.Write("O Nosso Número deve ter 11 ou 17 dígitos dependendo da Carteira.");
                        return;
                    }


                    break;
                //Se Carteira 18 então NossoNumero são 17 dígitos.
                //If txtCarteira.Text = "18" Then
                // If Len(txtNossoNumeroBoleto.Text) <> 17 Then
                // Response.Write("O Nosso Número deve ter 17 dígitos para Carteira 18."]
                // Exit Sub
                // End If
                //Else
                // 'Senão, então NossoNumero 11 dígitos.
                // If Len(txtNossoNumeroBoleto.Text) <> 11 Then
                // Response.Write("O Nosso Número deve ter 11 dígitos para Carteira diferente que 18."]
                // Exit Sub
                // End If
                //End If

                case "033":
                    //Santander.
                    break;

                case "070":
                    //Banco BRB.
                    break;

                case "104":
                    //Caixa Econômica Federal.
                    break;

                case "237":
                    //Banco Bradesco.
                    break;

                case "275":
                    //Banco Real.

                    //Cedente 
                    if (!string.IsNullOrEmpty(Request["CodigoCedente"]))
                    {

                    }

                    //Cobrança registrada 7 dígitos.
                    //Cobrança sem registro até 13 dígitos.
                    if (Strings.Len(txtNossoNumeroBoleto.Text) < 7 & Strings.Len(txtNossoNumeroBoleto.Text) < 13)
                    {
                        Response.Write("O Nosso Número deve ser entre 7 e 13 caracteres.");
                        return;
                    }


                    //Carteira
                    if (txtCarteira.Text != "00" & txtCarteira.Text != "20" & txtCarteira.Text != "31" & txtCarteira.Text != "42" & txtCarteira.Text != "47" & txtCarteira.Text != "85" & txtCarteira.Text != "57")
                    {
                        Response.Write("A Carteira deve ser 00,20,31,42,47,57 ou 85.");
                        return;
                    }

                    //00'- Carteira do convênio
                    //20' - Cobrança Simples
                    //31' - Cobrança Câmbio
                    //42' - Cobrança Caucionada
                    //47' - Cobr. Caucionada Crédito Imobiliário
                    //85' - Cobrança Partilhada
                    //57 - última implementação ?

                    //Agência 4 dígitos.
                    if (Strings.Len(Agencia) > 4)
                    {
                        Response.Write("A Agência deve conter até 4 dígitos.");
                        return;
                    }

                    //Número da conta 6 dígitos.
                    if (Strings.Len(Conta) > 6)
                    {
                        Response.Write("A Conta Corrente deve conter até 6 dígitos.");
                        return;
                    }


                    break;
                case "291":
                    //Banco BCN.
                    break;

                case "341":
                    //Banco Itaú.
                    break;

                case "347":
                    //Banco Sudameris.
                    break;

                case "356":
                    //Banco Real.

                    //Cedente 
                    if (!string.IsNullOrEmpty(Request["CodigoCedente"]))
                    {
                    }
                    //?


                    //Cobrança registrada 7 dígitos.
                    //Cobrança sem registro até 13 dígitos.
                    if (Strings.Len(txtNossoNumeroBoleto.Text) < 7 & Strings.Len(txtNossoNumeroBoleto.Text) < 13)
                    {
                        Response.Write("O Nosso Número deve ser entre 7 e 13 caracteres.");
                        return;
                    }


                    //Carteira
                    if (txtCarteira.Text != "00" & txtCarteira.Text != "20" & txtCarteira.Text != "31" & txtCarteira.Text != "42" & txtCarteira.Text != "47" & txtCarteira.Text != "85" & txtCarteira.Text != "57")
                    {
                        Response.Write("A Carteira deve ser 00,20,31,42,47,57 ou 85.");
                        return;
                    }

                    //00'- Carteira do convênio
                    //20' - Cobrança Simples
                    //31' - Cobrança Câmbio
                    //42' - Cobrança Caucionada
                    //47' - Cobr. Caucionada Crédito Imobiliário
                    //85' - Cobrança Partilhada

                    //Agência 4 dígitos.
                    if (Strings.Len(Agencia) > 4)
                    {
                        Response.Write("A Agência deve conter até 4 dígitos.");
                        return;
                    }

                    //Número da conta 6 dígitos.
                    if (Strings.Len(Conta) > 6)
                    {
                        Response.Write("A Conta Corrente deve conter até 6 dígitos.");
                        return;
                    }


                    break;
                case "409":
                    //Banco Unibanco.
                    break;

                case "422":
                    //Banco Safra.
                    break;

                default:

                    break;
            }


            //Informa os dados do cedente
            Cedente c = new Cedente(txtCPFCNPJ.Text, txtNomeCedente.Text, Agencia.ToString(), DigAgencia.ToString(), Conta.ToString(), DigConta.ToString());

            //Dependendo da carteira, é necessário informar o código do cedente (o banco que fornece)
            c.Codigo = txtCodigoCedente.Text.Trim();

            //Dados para preenchimento do boleto (data de vencimento, valor, carteira e nosso número)
            Boleto b = new Boleto(Convert.ToDateTime(txtVencimento.Text), Convert.ToDecimal(txtValorBoleto.Text), txtCarteira.Text, txtNossoNumeroBoleto.Text, c);
            //"12345678901"

            //b.Carteira = "1"
            //b.Banco.Codigo = "18-019"

            //Dependendo da carteira, é necessário o número do documento
            b.NumeroDocumento = txtNumeroDocumentoBoleto.Text;
            b.ValorCobrado = Convert.ToDecimal(txtValorCobrado.Text);
            //"12345678901"

            //Informa os dados do sacado
            b.Sacado = new Sacado(txtCPFCNPJSacado.Text, txtNomeSacado.Text);
            b.Sacado.Endereco.End = txtEnderecoSacado.Text;
            b.Sacado.Endereco.Bairro = txtBairroSacado.Text;
            b.Sacado.Endereco.Cidade = txtCidadeSacado.Text;
            b.Sacado.Endereco.CEP = txtCEPSacado.Text;
            b.Sacado.Endereco.UF = txtUFSacado.Text;

            //Instrução.
            switch (txtBanco.Text)
            {
                case "001":
                    //Banco do Brasil.
                    Instrucao_BancoBrasil i1 = new Instrucao_BancoBrasil(Convert.ToInt32(txtBanco.Text));
                    i1.Descricao = txtInstrucoes.Text;
                    // "Não Receber após o vencimento"
                    b.Instrucoes.Add(i1);
                    break;
                case "033":
                    //Santander.
                    Instrucao_Santander i2 = new Instrucao_Santander(Convert.ToInt32(txtBanco.Text));
                    i2.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i2);
                    break;
                case "070":
                    //Banco BRB.
                    Instrucao i3 = new Instrucao(Convert.ToInt32(txtBanco.Text));
                    i3.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i3);
                    break;
                case "104":
                    //Caixa Econômica Federal.
                    Instrucao_Caixa i4 = new Instrucao_Caixa(Convert.ToInt32(txtBanco.Text));
                    i4.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i4);
                    break;
                case "237":
                    //Banco Bradesco.
                    Instrucao_Bradesco i5 = new Instrucao_Bradesco(Convert.ToInt32(txtBanco.Text));
                    i5.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i5);
                    break;
                case "275":
                    //Banco Real.
                    Instrucao i6 = new Instrucao(Convert.ToInt32(txtBanco.Text));
                    i6.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i6);
                    break;
                case "291":
                    //Banco BCN.
                    Instrucao i7 = new Instrucao(Convert.ToInt32(txtBanco.Text));
                    i7.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i7);
                    break;
                case "341":
                    //Banco Itaú.
                    Instrucao_Itau i8 = new Instrucao_Itau(Convert.ToInt32(txtBanco.Text));
                    i8.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i8);
                    break;
                case "347":
                    //Banco Sudameris.
                    Instrucao i9 = new Instrucao(Convert.ToInt32(txtBanco.Text));
                    i9.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i9);
                    break;
                case "356":
                    //Banco Real.
                    //Dim i10 As New Instrucao(CInt(txtBanco.Text))
                    Instrucao i10 = new Instrucao(1);
                    i10.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i10);
                    break;
                case "409":
                    //Banco Unibanco.
                    Instrucao i11 = new Instrucao(Convert.ToInt32(txtBanco.Text));
                    i11.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i11);
                    break;
                case "422":
                    //Banco Safra.
                    Instrucao i12 = new Instrucao(Convert.ToInt32(txtBanco.Text));
                    i12.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i12);
                    break;
                default:
                    //Instrução de teste Santander.
                    Instrucao_Santander i13 = new Instrucao_Santander(Convert.ToInt32(txtBanco.Text));
                    i13.Descricao = txtInstrucoes.Text;
                    //"Não Receber após o vencimento"
                    b.Instrucoes.Add(i13);
                    break;
            }


            //Espécie do Documento - [R] Recibo
            switch (txtBanco.Text)
            {
                case "001":
                    //Banco do Brasil.
                    b.EspecieDocumento = new EspecieDocumento_BancoBrasil("2");
                    break;
                //Espécie.
                //Cheque = 1, //CH – CHEQUE
                //DuplicataMercantil = 2, //DM – DUPLICATA MERCANTIL
                //DuplicataMercantilIndicacao = 3, //DMI – DUPLICATA MERCANTIL P/ INDICAÇÃO
                //DuplicataServico = 4, //DS – DUPLICATA DE SERVIÇO
                //DuplicataServicoIndicacao = 5, //DSI – DUPLICATA DE SERVIÇO P/ INDICAÇÃO
                //DuplicataRural = 6, //DR – DUPLICATA RURAL
                //LetraCambio = 7, //LC – LETRA DE CAMBIO
                //NotaCreditoComercial = 8, //NCC – NOTA DE CRÉDITO COMERCIAL
                //NotaCreditoExportacao = 9, //NCE – NOTA DE CRÉDITO A EXPORTAÇÃO
                //NotaCreditoIndustrial = 10, //NCI – NOTA DE CRÉDITO INDUSTRIAL
                //NotaCreditoRural = 11, //NCR – NOTA DE CRÉDITO RURAL
                //NotaPromissoria = 12, //NP – NOTA PROMISSÓRIA
                //NotaPromissoriaRural = 13, //NPR –NOTA PROMISSÓRIA RURAL
                //TriplicataMercantil = 14, //TM – TRIPLICATA MERCANTIL
                //TriplicataServico = 15, //TS – TRIPLICATA DE SERVIÇO
                //NotaSeguro = 16, //NS – NOTA DE SEGURO
                //Recibo = 17, //RC – RECIBO
                //Fatura = 18, //FAT – FATURA
                //NotaDebito = 19, //ND – NOTA DE DÉBITO
                //ApoliceSeguro = 20, //AP – APÓLICE DE SEGURO
                //MensalidadeEscolar = 21, //ME – MENSALIDADE ESCOLAR
                //ParcelaConsorcio = 22, //PC – PARCELA DE CONSÓRCIO
                //Outros = 23 //OUTROS

                case "033":
                    //Santander.
                    b.EspecieDocumento = new EspecieDocumento_Santander("17");
                    break;
                case "070":
                    //Banco BRB.
                    b.EspecieDocumento = new EspecieDocumento(17);
                    break;
                case "104":
                    //Caixa Econômica Federal.
                    b.EspecieDocumento = new EspecieDocumento_Caixa("17");
                    break;
                case "237":
                    //Banco Bradesco.
                    b.EspecieDocumento = new EspecieDocumento(17);
                    break;
                case "275":
                    //Banco Real.
                    b.EspecieDocumento = new EspecieDocumento(17);
                    break;
                case "291":
                    //Banco BCN.
                    b.EspecieDocumento = new EspecieDocumento(17);
                    break;
                case "341":
                    //Banco Itaú.
                    b.EspecieDocumento = new EspecieDocumento_Itau("99");
                    break;
                case "347":
                    //Banco Sudameris.
                    b.EspecieDocumento = new EspecieDocumento_Sudameris("17");
                    break;
                case "356":
                    //Banco Real.
                    break;
                //Não funciona com isso.
                //b.EspecieDocumento = New EspecieDocumento_BancoBrasil(17)
                //b.EspecieDocumento = New EspecieDocumento_Itau(99)
                case "409":
                    //Banco Unibanco.
                    b.EspecieDocumento = new EspecieDocumento(17);
                    break;
                case "422":
                    //Banco Safra.
                    b.EspecieDocumento = new EspecieDocumento(17);
                    break;
                default:
                    //Banco de teste Santander.
                    b.EspecieDocumento = new EspecieDocumento_Santander("17");
                    break;
            }


            BoletoBancario bb = new BoletoBancario();
            bb.CodigoBanco = Convert.ToInt16(txtBanco.Text);
            //33 '-> Referente ao código do Santander
            bb.Boleto = b;
            //bb.MostrarCodigoCarteira = True
            bb.Boleto.Valida();

            //true -> Mostra o compravante de entrega
            //false -> Oculta o comprovante de entrega
            bb.MostrarComprovanteEntrega = false;

            panelDados.Visible = false;
            panelBoleto.Controls.Clear();
            if (panelBoleto.Controls.Count == 0)
            {
                panelBoleto.Controls.Add(bb);
            }

            //03399.08063 49800.000330 32007.101028 8 41680000065640 -> correta
            //03399.08063 49800.000330 32007.101028 8 41680000065640
            //03399.08063 49800.000330 32007.101028 1 41680000065640
            //03399.08063 49800.003334 20071.301012 6 41680000065640
            //03399.08063 49800.000330 32007.101028 1 41680000065640

            //03399.08063 49800.003334 20071.301020 4 41680000065640
            //03399.08063 49800.003334 20071.301020 4 41680000065640

            //Gerar remessa.
            //Dim rdr As System.IO.Stream
            //Dim arquivo As New ArquivoRemessa(TipoArquivo.CNAB400)
            //arquivo.GerarArquivoRemessa(txtCodigoCedente.Text, b.Banco, _
            // b.Cedente, b, rdr, 1)
            //Response.Write(rdr.ToString())



            return;
        }
        catch (Exception ex)
        {

            Response.Write(ex);

        }
    }
示例#4
0
        public void GeraDadosCaixa()
        {
            ContaBancaria conta = new ContaBancaria();
            conta.OperacaConta = "OPE";
            conta.Agencia = "345";
            conta.DigitoAgencia = "6";
            conta.Conta = "87654321";
            conta.DigitoConta = "0";
            //
            Cedente c = new Cedente();
            c.ContaBancaria = conta;
            c.CPFCNPJ = "00.000.000/0000-00";
            c.Nome = "Empresa de Atacado";
            //Na carteira 198 o código do Cedente é a conta bancária
            c.Codigo = String.Concat(conta.Agencia, conta.DigitoAgencia, conta.OperacaConta, conta.Conta, conta.DigitoConta); //Na Caixa, esse código está no manual como 16 caracteres AAAAOOOCCCCCCCCD;
            //
            Boleto b = new Boleto();
            b.Cedente = c;
            //
            b.DataProcessamento = DateTime.Now;
            b.DataVencimento = DateTime.Now.AddDays(15);
            b.ValorBoleto = Convert.ToDecimal(2469.69);
            b.Carteira = "SR";
            b.NossoNumero = "92082835";
            b.NumeroDocumento = "1008073";
            EspecieDocumento ED = new EspecieDocumento(104);
            b.EspecieDocumento = ED;

            //
            b.Sacado = new Sacado("Fulano de Silva");
            b.Sacado.CPFCNPJ = "000.000.000-00";
            b.Sacado.Endereco.End = "SSS 154 Bloco J Casa 23";
            b.Sacado.Endereco.Bairro = "Testando";
            b.Sacado.Endereco.Cidade = "Testelândia";
            b.Sacado.Endereco.CEP = "70000000";
            b.Sacado.Endereco.UF = "RS";

            Instrucao_Caixa item1 = new Instrucao_Caixa(9, 5);
            b.Instrucoes.Add(item1);
            //b.Instrucoes.Add(item2);
            b.Banco = new Banco(104);

            #region Dados para Remessa:
            b.Remessa = new Remessa();
            b.Remessa.TipoDocumento = "2"; // SIGCB - SEM REGISTRO
            b.Remessa.CodigoOcorrencia = string.Empty;
            #endregion

            //
            Boletos boletos = new Boletos();
            boletos.Add(b);

            GeraArquivoCNAB240(b.Banco, c, boletos);
        }
示例#5
0
        // List<BoletoBancario> boletos
        public string BoletoImprimir()
        {
            var boletos = new List<BoletoBancario>();

            var vencimento = new DateTime(2016, 07, 16);

            var cedente = new Cedente("00.000.000/0000-00", "Empresa Teste", "0131", "7", "00045110", "X")
            {
                Codigo = "1220950",
                Convenio = 1234567
            };

            var boleto = new Boleto(vencimento, Convert.ToDecimal(1.99), "17", "10028528", cedente);

            boleto.Sacado = new Sacado("000.000.000-00","Nome do cliente ");
            boleto.Sacado.Endereco.End = "Endereco do cliente";
            boleto.Sacado.Endereco.Bairro = "Bairro do cliente";
            boleto.Sacado.Endereco.Cidade = "Cidade do cliente";
            boleto.Sacado.Endereco.CEP = "00000000";
            boleto.Sacado.Endereco.UF = "UF";

            // instrucoes do boleto
            Instrucao_Caixa item;
            item = new Instrucao_Caixa((int)10,Convert.ToDecimal(0.40));
            boleto.Instrucoes.Add(item);

            // documento
            boleto.NumeroDocumento = "10028528"; // nosso número

            EspecieDocumento_BancoBrasil espDocBB = new EspecieDocumento_BancoBrasil();
            boleto.EspecieDocumento = new EspecieDocumento_BancoBrasil(
                espDocBB.getCodigoEspecieByEnum(EnumEspecieDocumento_BancoBrasil.Outros));

            boleto.DataProcessamento = DateTime.Now;
            boleto.DataDocumento = DateTime.Now;

            var boletoBancario = new BoletoBancario();
            boletoBancario.CodigoBanco = 1;
            //boletoBancario.CodigoBanco = 104; // CEF
            //boletoBancario.CodigoBanco = 33; // SANTANDER
            boletoBancario.Boleto = boleto;

            boletoBancario.GeraImagemCodigoBarras(boleto);

            boletoBancario.MostrarComprovanteEntrega = true;

            boletoBancario.Boleto.Valida();

            boletos.Add(boletoBancario);

            var _arquivo = string.Empty;
            var html = new StringBuilder();

            _arquivo = "C:/Users/correa/Documents/text.html";

            foreach (var o in boletos)
            {
                html.Append(o.MontaHtmlEmbedded());
                html.Append("</br></br></br></br></br></br></br></br>");
            }

                using (var f = new FileStream(_arquivo, FileMode.Create))
                {
                    StreamWriter w = new StreamWriter(f, System.Text.Encoding.UTF8);
                    //w.Write(html.ToString());
                    w.Write(html.ToString());
            }

            html = html
                //.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], "\\") // convertendo o caminho absoluto para relativo
                //.Replace(System.IO.Path.GetTempPath(), Url.Action("Temporario", "Faturas") + "/?filename=") // convertendo o caminho temporário em relativo
                //.Replace(".w666{width:666px}", ".w666{width:21cm}")
                //.Replace("<body>", "<body style=\"height:29cm\">")
                //.Replace("</html>", "<a length=\"0\" href=\"/Faturas/PrintBoleto?Fatura=subsFatura\" >Exportar PDF</a></html>")
                .Replace("</html>", "<a length=\"0\" href=\"#\" onclick=\"window.print();\">Imprimir</a></html>")
                //.Replace("subsFatura", Fatura.Replace("/", "%2F"))
                //.Replace("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">", "")
                //.Replace("Imprimir em impressora jato de tinta (ink jet) ou laser em qualidade normal. (Não use modo econômico).<br>Utilize folha A4 (210 x 297 mm) ou Carta (216 x 279 mm) - Corte na linha indicada<br>","")
                //.Replace("&nbsp;","")
            ;

            //var pg = MvcHtmlString.Create(html.ToString());
            return html.ToString();
            //return pg.ToHtmlString();
        }
示例#6
0
        public string Caixa()
        {
            DateTime vencimento = new DateTime(2008, 12, 20);

            Cedente c = new Cedente("000.000.000-00", "Boleto.net ILTDA", "1234", "12345678", "9");

            c.Codigo = "112233";


            BoletoNet.Boleto b = new BoletoNet.Boleto(vencimento, 20.00m, "2", "0123456789", c);

            b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente ");
            b.Sacado.Endereco.End = "Endereço do seu Cliente ";
            b.Sacado.Endereco.Bairro = "Bairro";
            b.Sacado.Endereco.Cidade = "Cidade";
            b.Sacado.Endereco.CEP = "00000000";
            b.Sacado.Endereco.UF = "UF";

            //Adiciona as instruções ao boleto
            #region Instruções
            Instrucao_Caixa item;
            //ImportanciaporDiaDesconto
            item = new Instrucao_Caixa((int)EnumInstrucoes_Caixa.Multa, Convert.ToDecimal(0.40));
            b.Instrucoes.Add(item);
            item = new Instrucao_Caixa((int)EnumInstrucoes_Caixa.JurosdeMora, Convert.ToDecimal(0.01));
            b.Instrucoes.Add(item);
            item = new Instrucao_Caixa((int)EnumInstrucoes_Caixa.NaoReceberAposNDias, 90);
            b.Instrucoes.Add(item);
            #endregion Instruções

            EspecieDocumento_Caixa espDocCaixa = new EspecieDocumento_Caixa();
            b.EspecieDocumento =  new EspecieDocumento_Caixa(espDocCaixa.getCodigoEspecieByEnum(EnumEspecieDocumento_Caixa.DuplicataMercantil));
            b.NumeroDocumento = "00001";
            b.DataProcessamento = DateTime.Now;
            b.DataDocumento = DateTime.Now;

            boletoBancario.Boleto = b;
            boletoBancario.Boleto.Valida();

            return boletoBancario.MontaHtmlEmbedded();
        }
示例#7
0
        public Instrucao CarregaInstrucao(int codigoBanco, int codigoInstrucao, int quantidadeDias)
        {
            IInstrucao _IInstrucao = null;

            //Instrucao instrucao;
            try
            {
                switch (codigoBanco)
                {
                //399 - HSBC
                case 399:
                    _IInstrucao = new Instrucao_HSBC(codigoInstrucao, quantidadeDias);
                    break;

                //104 - Caixa
                case 104:
                    _IInstrucao = new Instrucao_Caixa(codigoInstrucao, quantidadeDias);
                    break;

                //341 - Itaú
                case 341:
                    _IInstrucao = new Instrucao_Itau(codigoInstrucao, quantidadeDias);
                    break;

                //1 - Banco do Brasil
                case 1:
                    _IInstrucao = new Instrucao_BancoBrasil(codigoInstrucao, quantidadeDias);
                    break;

                //356 - Real
                case 356:
                    _IInstrucao = new Instrucao_Real(codigoInstrucao, quantidadeDias);
                    break;

                //422 - Safra
                case 422:
                    _IInstrucao = new Instrucao_Safra(codigoInstrucao, quantidadeDias);
                    break;

                //237 - Bradesco
                //707 - Daycoval
                case 237:
                case 707:
                    _IInstrucao = new Instrucao_Bradesco(codigoInstrucao, quantidadeDias);
                    break;

                //347 - Sudameris
                case 347:
                    _IInstrucao = new Instrucao_Sudameris(codigoInstrucao, quantidadeDias);
                    break;

                //353 - Santander
                case 353:
                case 33:
                case 8:
                    //case 8:
                    _IInstrucao = new Instrucao_Santander(codigoInstrucao, quantidadeDias);
                    break;

                //070 - BRB
                case 70:
                    _IInstrucao = new Instrucao_BRB(codigoInstrucao, quantidadeDias);
                    break;

                //479 - BankBoston
                case 479:
                    _IInstrucao = new Instrucao_BankBoston(codigoInstrucao, quantidadeDias);
                    break;

                //41 - Banrisul
                case 41:
                    _IInstrucao = new Instrucao_Banrisul(codigoInstrucao, quantidadeDias);
                    break;

                //756 - Sicoob
                case 756:
                    _IInstrucao = new Instrucao_Sicoob(codigoInstrucao, quantidadeDias);
                    break;

                //85 - CECRED
                case 85:
                    _IInstrucao = new Instrucao_Cecred(codigoInstrucao, quantidadeDias);
                    break;

                //748 - Sicredi
                case 748:
                    _IInstrucao = new Instrucao_Sicredi(codigoInstrucao, quantidadeDias);
                    break;

                //655 - Votorantim
                case 655:
                    //_IInstrucao = new Instrucao_Votorantim();
                    break;

                case 136:
                    _IInstrucao = new Instrucao_Unicred(codigoInstrucao, quantidadeDias);
                    break;

                default:
                    throw new Exception("Código do banco não implementando: " + codigoBanco);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro durante a execução da transação.", ex);
            }
            Instrucao instrucao = new Instrucao(codigoBanco);

            instrucao.Codigo         = codigoInstrucao;
            instrucao.Descricao      = _IInstrucao.Descricao;
            instrucao.QuantidadeDias = _IInstrucao.QuantidadeDias;

            return(instrucao);
        }
        protected void btnGerarBoleto_ButtonClick(object sender, EventArgs e)
        {
            // Boleto para CEF, com carteira SR e nosso número de 11 dígitos.

            if (ExisteErroDePreenchimento())
            {
                return;
            }

            try
            {
                var vencimento = txtVencimento.SelectedDate.Value.ToString("dd/MM/yyyy");
                var valorBoleto = txtValor.Value.Value;

                IBoletosGeradosAux dadosAuxiliares = null;

                // Busca dados auxiliares no banco, se for a primeira vez, efetua o insert

                long cedenteNossoNumeroBoleto = 0;

                if (ViewState["CHAVE_CEDENTE_BOLETOGERADO"] != null)
                {
                    // Numero do documento - numero de controle interno, não afeta o calculo da linha digitavel e nem o codigo de barras
                    // mais pode ser útil, exemplo: quando o cliente ligar, vc pode consultar por este número e ver
                    // se já foi efetuado o pagamento

                    // cedente

                    BoletoGerado = (IBoletosGerados)ViewState["CHAVE_CEDENTE_BOLETOGERADO"];

                    cedenteNossoNumeroBoleto = BoletoGerado.NossoNumero.Value; // o final do nosso número é incrementado ao final

                }
                else if (ViewState["CHAVE_LISTA_ITEM_FINANCEIRO"] != null)
                {
                    var listaDeItensFinanceiros =
                                            (List<IItemLancamentoFinanceiroRecebimento>)ViewState["CHAVE_LISTA_ITEM_FINANCEIRO"];

                    if (listaDeItensFinanceiros.Count > 0)
                    {
                        foreach (var itemLancamentoFinanceiroRecebimento in listaDeItensFinanceiros)
                        {
                            long idboleto;

                            using (var servicoFinanceiroComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>())
                                idboleto =
                                    servicoFinanceiroComBoleto.ObtenhaBoletoPorIdItemFinanRecebimento(
                                        itemLancamentoFinanceiroRecebimento.ID.Value);

                            if (idboleto > 0)
                            {
                                IBoletosGerados boletoGeradoParaItemFinanceiro;

                                using (var servicoBoletoGeradoParaItemFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeBoleto>())
                                    boletoGeradoParaItemFinanceiro =
                                        servicoBoletoGeradoParaItemFinanceiro.obtenhaBoletoPeloId(
                                            idboleto);

                                if (boletoGeradoParaItemFinanceiro != null)
                                    cedenteNossoNumeroBoleto = boletoGeradoParaItemFinanceiro.NossoNumero.Value;
                            }
                            else
                            {
                                 using (var servico = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeBoleto>())
                                     dadosAuxiliares =
                                         servico.obtenhaProximasInformacoesParaGeracaoDoBoleto(ctrlCedente.CedenteSelecionado);

                                 cedenteNossoNumeroBoleto = dadosAuxiliares.ProximoNossoNumero.Value;
                            }

                            break;
                        }
                    }
                }
                else
                {
                    using (var servico = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeBoleto>())
                        dadosAuxiliares = servico.obtenhaProximasInformacoesParaGeracaoDoBoleto(ctrlCedente.CedenteSelecionado);

                    // Numero do documento - numero de controle interno, não afeta o calculo da linha digitavel e nem o codigo de barras
                    // mais pode ser útil, exemplo: quando o cliente ligar, vc pode consultar por este número e ver
                    // se já foi efetuado o pagamento

                    // cedente

                    cedenteNossoNumeroBoleto = dadosAuxiliares.ProximoNossoNumero.Value; // o final do nosso número é incrementado ao final

                }

                // obtendo a configuração do cedente

                var cedenteSelecionado = ctrlCedente.CedenteSelecionado;

                var cedenteCpfCnpj = string.Empty;
                var cedenteNome = string.Empty;
                var cedenteAgencia = string.Empty;
                var cedenteConta = string.Empty;
                var cedenteDigitoConta = string.Empty;
                var cedenteOperacaoConta = string.Empty;
                var cedenteCodigo = string.Empty;
                var imagemDoRecibo = string.Empty;
                var codigoDoBanco = 0;
                var carteira = string.Empty;

                if (cedenteSelecionado != null)
                {
                    // pegar imagem do cedente para o boleto
                    //imagemDoRecibo = configuracaoDoBoleto.ImagemDeCabecalhoDoReciboDoSacado;

                    if (!string.IsNullOrEmpty(cedenteSelecionado.ImagemDeCabecalhoDoReciboDoSacado))
                        imagemDoRecibo = cedenteSelecionado.ImagemDeCabecalhoDoReciboDoSacado;

                    var cedentePessoa = cedenteSelecionado.Pessoa;

                    cedenteNome = cedentePessoa.Nome;

                    codigoDoBanco = Convert.ToInt32(cedenteSelecionado.NumeroDoBanco);
                    cedenteAgencia = cedenteSelecionado.NumeroDaAgencia;
                    cedenteConta = cedenteSelecionado.NumeroDaConta;
                    cedenteOperacaoConta = cedenteSelecionado.TipoDaConta.ToString("000");

                    if (!string.IsNullOrEmpty(cedenteConta))
                        cedenteDigitoConta = cedenteConta.Substring(cedenteConta.Length - 1, 1);

                    //if (cedentePessoa.DadoBancario != null)
                    //{
                    //    codigoDoBanco = cedentePessoa.DadoBancario.Agencia.Banco.Numero;
                    //    cedenteAgencia = cedentePessoa.DadoBancario.Agencia.Numero;
                    //    cedenteConta = cedentePessoa.DadoBancario.Conta.Numero;
                    //    cedenteOperacaoConta = cedentePessoa.DadoBancario.Conta.Tipo.Value.ToString("000");

                    //    if (!string.IsNullOrEmpty(cedenteConta))
                    //        cedenteDigitoConta = cedenteConta.Substring(cedenteConta.Length - 1, 1);
                    //}

                    cedenteCpfCnpj = OtenhaNumeroCPFOuCNPJ(cedentePessoa);
                    carteira = cedenteSelecionado.TipoDeCarteira.Sigla;
                }
                else
                {
                    ScriptManager.RegisterClientScriptBlock(this, GetType(), Guid.NewGuid().ToString(),
                                                        UtilidadesWeb.MostraMensagemDeInformacao("Configurações do cedente ou boleto bancário inválidas, favor verificar."),
                                                        false);

                    return;
                }

                // formata código do cedente
                if (!string.IsNullOrEmpty(cedenteOperacaoConta) && !string.IsNullOrEmpty(cedenteConta))
                {
                    string conta;
                    var contaSemDigito = Convert.ToInt32(cedenteConta.Substring(0, cedenteConta.Length - 1));

                    conta = contaSemDigito.ToString("00000000");
                    cedenteCodigo = cedenteOperacaoConta + conta;
                }

                var cedente = new Cedente(cedenteCpfCnpj, cedenteNome, cedenteAgencia, cedenteConta, cedenteDigitoConta) { Codigo = cedenteCodigo };

                var boleto = new Boleto(Convert.ToDateTime(vencimento),
                                        (decimal)valorBoleto, carteira, cedenteNossoNumeroBoleto.ToString(),
                                        cedente) { NumeroDocumento = txtNumeroDoBoleto.Text };

                //sacado
                var sacadoCpfCnpj = txtCNPJCPF.Text;
                var sacadoNome = txtNome.Text;
                var sacadoEndereco = txtEndereco.Text;
                var sacadoObservacao = txtFinalidadeBoleto.Text;

                var sacado = new Sacado(sacadoCpfCnpj, sacadoNome);
                boleto.Sacado = sacado;
                boleto.Sacado.Endereco.End = sacadoEndereco;
                boleto.Sacado.Endereco.Bairro = txtBairro.Text;
                boleto.Sacado.Endereco.Cidade = txtCidade.Text;
                boleto.Sacado.Endereco.CEP = txtCep.Text;
                boleto.Sacado.Endereco.UF = txtEstado.Text;

                var instrucaoCaixa = new Instrucao_Caixa { Descricao = txtInstrucoes.Text };
                instrucaoCaixa.DescricaoReciboDoSacado = sacadoObservacao;
                boleto.Instrucoes.Add(instrucaoCaixa);

                var especificacao = new EspecieDocumento_Caixa();
                boleto.EspecieDocumento = new EspecieDocumento_Caixa(especificacao.getCodigoEspecieByEnum(EnumEspecieDocumento_Caixa.Recibo));

                boleto.DataProcessamento = DateTime.Now;
                boleto.DataDocumento = DateTime.Now;

                BoletoBancario boletoBancario;

                if (string.IsNullOrEmpty(imagemDoRecibo))
                    boletoBancario = new BoletoBancario();
                else
                {
                    var urlImagemLogo = UtilidadesWeb.ObtenhaURLHostDiretorioVirtual() + imagemDoRecibo.Remove(0, 1);
                    boletoBancario = new BoletoBancario(urlImagemLogo);
                }

                boletoBancario.CodigoBanco = (short)codigoDoBanco;
                boletoBancario.Boleto = boleto;
                boletoBancario.MostrarCodigoCarteira = true;
                boletoBancario.Boleto.Valida();
                boletoBancario.MostrarComprovanteEntrega = false;

                var chaveDoBoleto = Guid.NewGuid().ToString();

                Session.Add(chaveDoBoleto, boletoBancario);

                MostraBoleto(boletoBancario);

                var url = String.Concat(UtilidadesWeb.ObtenhaURLHostDiretorioVirtual(), "FN/frmVisualizarBoletoGerado.aspx",
                                                "?Id=", chaveDoBoleto);
                ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(),
                                                    UtilidadesWeb.ExibeJanela(url,
                                                                                   "Visualizar boleto gerado",
                                                                                   800, 600, "FN_frmVisualizarBoletoGerado_aspx"), false);

                // Salvar dados do Boleto gerado

                var boletoGerado = FabricaGenerica.GetInstancia().CrieObjeto<IBoletosGerados>();
                boletoGerado.Cedente = ctrlCedente.CedenteSelecionado;

                boletoGerado.Cliente = ctrlCliente.ClienteSelecionado;

                boletoGerado.DataGeracao = boleto.DataProcessamento;
                boletoGerado.DataVencimento = txtVencimento.SelectedDate.Value;
                boletoGerado.NossoNumero = cedenteNossoNumeroBoleto;
                boletoGerado.NumeroBoleto = txtNumeroDoBoleto.Text;
                boletoGerado.Observacao = sacadoObservacao;
                boletoGerado.Valor = valorBoleto;
                boletoGerado.Instrucoes = txtInstrucoes.Text;

                using (var servico = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeBoleto>())
                {

                    if (BoletoGerado != null)
                    {
                        boletoGerado.ID = BoletoGerado.ID.Value;
                        boletoGerado.StatusBoleto = BoletoGerado.StatusBoleto;
                        servico.AtualizarBoletoGerado(boletoGerado);

                        IItemLancamentoFinanceiroRecebimento itemLancamento;
                        long idItemFinanceiroRecebido;

                        using (var servicoDeItemFinanceiroRecebidoComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>())
                        {
                            idItemFinanceiroRecebido = servicoDeItemFinanceiroRecebidoComBoleto.ObtenhaItemFinanRecebimentoPorIdBoleto(boletoGerado.ID.Value);
                        }

                        if(idItemFinanceiroRecebido > 0)
                        {
                            using (var servicoFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItensFinanceirosDeRecebimento>())
                            {
                                itemLancamento = servicoFinanceiro.Obtenha(idItemFinanceiroRecebido);

                                if (itemLancamento != null)
                                {
                                    itemLancamento.Cliente = boletoGerado.Cliente;

                                    if (boletoGerado.DataVencimento != null)
                                        itemLancamento.DataDoVencimento = boletoGerado.DataVencimento.Value;

                                    itemLancamento.Valor = boletoGerado.Valor;

                                    if (boletoGerado.NossoNumero != null)
                                        itemLancamento.NumeroBoletoGerado = boletoGerado.NossoNumero.Value.ToString();

                                    itemLancamento.BoletoFoiGeradoColetivamente = false;
                                    servicoFinanceiro.Modifique(itemLancamento);
                                }
                            }
                        }
                    }
                    else if (ViewState["CHAVE_LISTA_ITEM_FINANCEIRO"] != null)
                    {
                        var listaDeItensFinanceiros =
                            (List<IItemLancamentoFinanceiroRecebimento>) ViewState["CHAVE_LISTA_ITEM_FINANCEIRO"];

                        if (listaDeItensFinanceiros.Count > 0)
                        {
                            // mais de 1 item financeiro selecionado
                            if(listaDeItensFinanceiros.Count > 1)
                            {
                                long idBoletoExistente = 0;

                                foreach (var itemLancamentoFinanceiroRecebimento in listaDeItensFinanceiros)
                                {
                                    long idboleto = 0;

                                    using (var servicoFinanceiroComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>())
                                    {
                                        idboleto =
                                            servicoFinanceiroComBoleto.ObtenhaBoletoPorIdItemFinanRecebimento(
                                                itemLancamentoFinanceiroRecebimento.ID.Value);

                                        if (idboleto > 0)
                                        {
                                            idBoletoExistente = idboleto;
                                            //servico.Excluir(idboleto);
                                        }//servicoFinanceiroComBoleto.Excluir(itemLancamentoFinanceiroRecebimento.ID.Value);
                                    }

                                    break;
                                    //using (var servicoFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItensFinanceirosDeRecebimento>())
                                    //{
                                    //    itemLancamentoFinanceiroRecebimento.Situacao = Situacao.Cancelada;
                                    //    itemLancamentoFinanceiroRecebimento.Observacao =
                                    //        "Item de contas a receber foi cancelado, para a geração de um novo item.";

                                    //    servicoFinanceiro.Modifique(itemLancamentoFinanceiroRecebimento);
                                    //}
                                }

                                if (idBoletoExistente > 0)
                                {
                                    // Este caso vai acontecer quando existe boleto gerado(mesmo boleto) para as contas a receber
                                    // ou seja, os dados do boleto vai atualizar

                                    using (var servicoBoletoGeradoParaItemFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeBoleto>())
                                    {
                                        var boletoGeradoParaItemFinanceiro =
                                            servicoBoletoGeradoParaItemFinanceiro.obtenhaBoletoPeloId(
                                                idBoletoExistente);

                                        boletoGeradoParaItemFinanceiro.NumeroBoleto = boletoGerado.NumeroBoleto;
                                        boletoGeradoParaItemFinanceiro.Valor = boletoGerado.Valor;
                                        boletoGeradoParaItemFinanceiro.DataGeracao = boletoGerado.DataGeracao;
                                        boletoGeradoParaItemFinanceiro.DataVencimento = boletoGerado.DataVencimento;
                                        boletoGeradoParaItemFinanceiro.Observacao = boletoGerado.Observacao;
                                        boletoGeradoParaItemFinanceiro.Instrucoes = boletoGerado.Instrucoes;

                                        servico.AtualizarBoletoGerado(boletoGeradoParaItemFinanceiro);
                                    }
                                }
                                else
                                {
                                    // Este caso vai acontecer quando existe mais de uma conta a receber, e está gerando um novo boleto,
                                    // ou seja, não existe boleto gerado para as contas
                                    boletoGerado.StatusBoleto = StatusBoleto.Status.Aberto.ToString();
                                    boletoGerado.EhBoletoAvulso = false;
                                    servico.Inserir(boletoGerado, false, TipoLacamentoFinanceiroRecebimento.RecebimentoDeManutencao);
                                    // incrementar o nosso numero e o numero do documento e atualizar no banco.
                                    dadosAuxiliares.ProximoNossoNumero = dadosAuxiliares.ProximoNossoNumero + 1;
                                    servico.AtualizarProximasInformacoes(dadosAuxiliares);

                                    foreach (var itemLancamentoFinanceiroRecebimento in listaDeItensFinanceiros)
                                    {
                                        using (var servicoFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItensFinanceirosDeRecebimento>())
                                        {
                                            itemLancamentoFinanceiroRecebimento.Situacao = Situacao.CobrancaGerada;
                                            itemLancamentoFinanceiroRecebimento.NumeroBoletoGerado =
                                                boletoGerado.NossoNumero.Value.ToString();

                                            itemLancamentoFinanceiroRecebimento.BoletoFoiGeradoColetivamente = true;
                                            servicoFinanceiro.Modifique(itemLancamentoFinanceiroRecebimento);
                                        }

                                        using (var servicoFinanceiroComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>())
                                        {
                                            servicoFinanceiroComBoleto.Insira(itemLancamentoFinanceiroRecebimento.ID.Value, boletoGerado.ID.Value);
                                        }
                                    }
                                }

                            }
                            else
                            {
                                foreach (var itemLancamentoFinanceiroRecebimento in listaDeItensFinanceiros)
                                {
                                    long idboleto;

                                    using (var servicoFinanceiroComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>())
                                    {
                                        idboleto =
                                            servicoFinanceiroComBoleto.ObtenhaBoletoPorIdItemFinanRecebimento(
                                                itemLancamentoFinanceiroRecebimento.ID.Value);
                                    }

                                    if (idboleto > 0)
                                    {
                                        boletoGerado.ID = idboleto;
                                        servico.AtualizarBoletoGerado(boletoGerado);

                                        using (var servicoFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItensFinanceirosDeRecebimento>())
                                        {
                                            itemLancamentoFinanceiroRecebimento.Cliente = boletoGerado.Cliente;

                                            if (boletoGerado.DataVencimento != null)
                                                itemLancamentoFinanceiroRecebimento.DataDoVencimento = boletoGerado.DataVencimento.Value;

                                            itemLancamentoFinanceiroRecebimento.Valor = boletoGerado.Valor;

                                            if (boletoGerado.NossoNumero != null)
                                                itemLancamentoFinanceiroRecebimento.NumeroBoletoGerado = boletoGerado.NossoNumero.Value.ToString();

                                            itemLancamentoFinanceiroRecebimento.Situacao = Situacao.CobrancaGerada;
                                            itemLancamentoFinanceiroRecebimento.BoletoFoiGeradoColetivamente = false;

                                            servicoFinanceiro.Modifique(itemLancamentoFinanceiroRecebimento);
                                        }
                                    }
                                    else
                                    {
                                        boletoGerado.StatusBoleto = StatusBoleto.Status.Aberto.ToString();
                                        boletoGerado.EhBoletoAvulso = false;
                                        servico.Inserir(boletoGerado, false, TipoLacamentoFinanceiroRecebimento.RecebimentoDeManutencao);

                                        // incrementar o nosso numero e o numero do documento e atualizar no banco.
                                        dadosAuxiliares.ProximoNossoNumero = dadosAuxiliares.ProximoNossoNumero + 1;
                                        servico.AtualizarProximasInformacoes(dadosAuxiliares);

                                        using (var servicoFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItensFinanceirosDeRecebimento>())
                                        {
                                            itemLancamentoFinanceiroRecebimento.Cliente = boletoGerado.Cliente;

                                            if (boletoGerado.DataVencimento != null)
                                                itemLancamentoFinanceiroRecebimento.DataDoVencimento = boletoGerado.DataVencimento.Value;

                                            itemLancamentoFinanceiroRecebimento.Valor = boletoGerado.Valor;

                                            if (boletoGerado.NossoNumero != null)
                                                itemLancamentoFinanceiroRecebimento.NumeroBoletoGerado = boletoGerado.NossoNumero.Value.ToString();

                                            itemLancamentoFinanceiroRecebimento.Situacao = Situacao.CobrancaGerada;
                                            itemLancamentoFinanceiroRecebimento.BoletoFoiGeradoColetivamente = false;

                                            servicoFinanceiro.Modifique(itemLancamentoFinanceiroRecebimento);
                                        }

                                        using (var servicoFinanceiroComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>())
                                        {
                                            servicoFinanceiroComBoleto.Insira(itemLancamentoFinanceiroRecebimento.ID.Value, boletoGerado.ID.Value);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        boletoGerado.StatusBoleto = StatusBoleto.Status.Aberto.ToString();
                        boletoGerado.EhBoletoAvulso = true;
                        servico.Inserir(boletoGerado, BoletoGeraItemFinanceiroDeRecebimento, TipoLacamentoFinanceiroRecebimento.BoletoAvulso);
                        // incrementar o nosso numero e o numero do documento e atualizar no banco.
                        dadosAuxiliares.ProximoNossoNumero = dadosAuxiliares.ProximoNossoNumero + 1;
                        servico.AtualizarProximasInformacoes(dadosAuxiliares);
                    }
                }

            }
            catch (BussinesException ex)
            {
                Logger.GetInstancia().Erro("Erro ao gerar boleto, exceção: ", ex);
                ScriptManager.RegisterClientScriptBlock(this, GetType(), Guid.NewGuid().ToString(),
                                                        UtilidadesWeb.MostraMensagemDeInconsitencia("Erro ao gerar boleto, exceção: " + ex.Message), false);
            }

            //Garante que a tela de contas a receber será atualizada.
            ScriptManager.RegisterClientScriptBlock(this, GetType(), Guid.NewGuid().ToString(), UtilidadesWeb.AtualizaJanela(String.Concat(UtilidadesWeb.ObtenhaURLHostDiretorioVirtual(), "FN/frmContasAReceber.aspx"), "FN_frmContasAReceber_aspx"), false);

            //Garante que a tela de historico de boletos seja atualizada
            ScriptManager.RegisterClientScriptBlock(this, GetType(), Guid.NewGuid().ToString(), UtilidadesWeb.AtualizaJanela(String.Concat(UtilidadesWeb.ObtenhaURLHostDiretorioVirtual(), "FN/frmBoletosGerados.aspx"), "FN_frmBoletosGerados_aspx"), false);
        }