Exemple #1
0
        public ActionResult GerarBoleto(int idCobranca)
        {
            conn.Open();
            string     sql  = @"select p.nome, p.cpf, p.dataNascimento, bairro, cep, cidade, uf, logradouro, numero, complemento, 
                            (c.valorTotal + (case when GETDATE() > c.dataVencimento then DATEDIFF(d,c.dataVencimento,GETDATE()) * (c.valorTotal * 0.02) ELSE c.juros END)) AS valorTotal, 
                            datavencimento, idCobranca, e.idEndereco, pr.nome, pr.cpf from dbo.aluno a
                            join dbo.pessoa p on a.idPessoa = p.idPessoa
                            join dbo.cobranca c on a.idAluno = c.idAluno
                            left join dbo.endereco e on a.idPessoa = e.idPessoa and e.idTipoEndereco = 1
                            left join dbo.responsavel r on a.idResponsavel = r.idResponsavel
                            left join dbo.pessoa pr on r.idPessoa = pr.idPessoa
                            where idCobranca = @idCobranca";
            SqlCommand comm = conn.CreateCommand();

            comm.CommandText = sql;
            comm.Parameters.Add(new SqlParameter("@idCobranca", idCobranca));
            SqlDataReader dr = comm.ExecuteReader();

            Models.Cobranca cobranca = new Models.Cobranca();
            if (dr.Read())
            {
                cobranca.valorTotal     = dr.GetDecimal(10);
                cobranca.dataVencimento = dr.GetDateTime(11);
                cobranca.idCobranca     = dr.GetInt32(12);
                Models.Aluno aluno = new Models.Aluno();
                aluno.nome           = dr.GetString(0);
                aluno.cpf            = dr.GetString(1);
                aluno.dataNascimento = dr.GetDateTime(2);

                TimeSpan data = DateTime.Now - aluno.dataNascimento;

                if (Math.Round(data.TotalDays / 360) < 18)
                {
                    aluno.Responsavel = new Models.Responsavel
                    {
                        nome = dr.GetString(14),
                        cpf  = dr.GetString(15)
                    };
                }

                if (!dr.IsDBNull(12))
                {
                    aluno.Enderecos.Add(new Models.Endereco
                    {
                        bairro      = dr.GetString(3),
                        CEP         = dr.GetString(4),
                        cidade      = dr.GetString(5),
                        uf          = dr.GetString(6),
                        logradouro  = dr.GetString(7),
                        numero      = dr.GetInt32(8),
                        complemento = dr.GetString(9)
                    });
                }
                cobranca.Aluno = aluno;
            }

            //HttpContext context = HttpContext.curre
            DateTime vencimento  = cobranca.dataVencimento;
            Double   valorBoleto = Convert.ToDouble(cobranca.valorTotal);
            string   nossoNumero = cobranca.idCobranca.ToString().PadLeft(8, '0');

            //Instrucao_Itau item1 = new Instrucao_Itau(9, 5);
            // Instrucao_Itau item2 = new Instrucao_Itau(81, 10);
            Cedente c = new Cedente("10.668.613/0001-55", "V Mendonsa da Costa Idiomas e Informática", "4406", "22324");

            //Na carteira 198 o código do Cedente é a conta bancária
            c.Codigo = 13000;

            Boleto b = new Boleto(vencimento, valorBoleto, "176", nossoNumero, c, new EspecieDocumento(341, 1));

            b.NumeroDocumento = nossoNumero;

            TimeSpan dt    = DateTime.Now - cobranca.Aluno.dataNascimento;
            var      idade = Math.Round(dt.TotalDays / 360);

            if (idade < 18)
            {
                b.Sacado = new Sacado(cobranca.Aluno.Responsavel.cpf, cobranca.Aluno.Responsavel.nome);
            }
            else
            {
                b.Sacado = new Sacado(cobranca.Aluno.cpf, cobranca.Aluno.nome);
            }
            if (cobranca.Aluno.Enderecos.Count > 0)
            {
                b.Sacado.Endereco.End    = String.Format("{0}, {1} {2}", cobranca.Aluno.Enderecos.FirstOrDefault().logradouro, cobranca.Aluno.Enderecos.FirstOrDefault().numero, cobranca.Aluno.Enderecos.FirstOrDefault().complemento);
                b.Sacado.Endereco.Bairro = cobranca.Aluno.Enderecos.FirstOrDefault().bairro;
                b.Sacado.Endereco.Cidade = cobranca.Aluno.Enderecos.FirstOrDefault().cidade;
                b.Sacado.Endereco.CEP    = cobranca.Aluno.Enderecos.FirstOrDefault().CEP;
                b.Sacado.Endereco.UF     = cobranca.Aluno.Enderecos.FirstOrDefault().uf;
            }

            //Exemplo de como adicionar mais informações ao sacado
            //b.Sacado.InformacoesSacado.Add(new InfoSacado("TÍTULO: " + "2541245"));

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

            // juros/descontos
            //if (b.ValorDesconto == 0)
            //{
            //    Instrucao_Itau item3 = new Instrucao_Itau(999, 1);
            //    item3.Descricao = ("Aplicar Multa 2% a.d. após o vencimento");
            //    b.Instrucoes.Add(item3);
            //}

            BoletoBancario boletoBancario = new BoletoBancario();

            boletoBancario.CodigoBanco           = 341;
            boletoBancario.OcultarEnderecoSacado = false;
            boletoBancario.OcultarReciboSacado   = false;
            boletoBancario.OcultarInstrucoes     = false;
            boletoBancario.Boleto = b;
            boletoBancario.Boleto.Valida();

            boletoBancario.MostrarComprovanteEntrega = false;
            boletoBancario.FormatoCarne = false;

            conn.Close();
            return(View("Boleto", boletoBancario));
        }
        public ActionResult GerarBoleto(int idCobranca)
        {
            conn.Open();
            string sql = @"select p.nome, p.cpf, p.dataNascimento, bairro, cep, cidade, uf, logradouro, numero, complemento,
                            (c.valorTotal + (case when GETDATE() > c.dataVencimento then DATEDIFF(d,c.dataVencimento,GETDATE()) * (c.valorTotal * 0.02) ELSE c.juros END)) AS valorTotal,
                            datavencimento, idCobranca, e.idEndereco, pr.nome, pr.cpf from dbo.aluno a
                            join dbo.pessoa p on a.idPessoa = p.idPessoa
                            join dbo.cobranca c on a.idAluno = c.idAluno
                            left join dbo.endereco e on a.idPessoa = e.idPessoa and e.idTipoEndereco = 1
                            left join dbo.responsavel r on a.idResponsavel = r.idResponsavel
                            left join dbo.pessoa pr on r.idPessoa = pr.idPessoa
                            where idCobranca = @idCobranca";
            SqlCommand comm = conn.CreateCommand();
            comm.CommandText = sql;
            comm.Parameters.Add(new SqlParameter("@idCobranca", idCobranca));
            SqlDataReader dr = comm.ExecuteReader();
            Models.Cobranca cobranca = new Models.Cobranca();
            if (dr.Read())
            {
                cobranca.valorTotal = dr.GetDecimal(10);
                cobranca.dataVencimento = dr.GetDateTime(11);
                cobranca.idCobranca = dr.GetInt32(12);
                Models.Aluno aluno = new Models.Aluno();
                aluno.nome = dr.GetString(0);
                aluno.cpf = dr.GetString(1);
                aluno.dataNascimento = dr.GetDateTime(2);

                TimeSpan data = DateTime.Now - aluno.dataNascimento;

                if (Math.Round(data.TotalDays / 360) < 18)
                {
                    aluno.Responsavel = new Models.Responsavel
                    {
                        nome = dr.GetString(14),
                        cpf = dr.GetString(15)
                    };
                }

                if (!dr.IsDBNull(12)){
                    aluno.Enderecos.Add(new Models.Endereco
                    {
                        bairro = dr.GetString(3),
                        CEP = dr.GetString(4),
                        cidade = dr.GetString(5),
                        uf = dr.GetString(6),
                        logradouro = dr.GetString(7),
                        numero = dr.GetInt32(8),
                        complemento = dr.GetString(9)
                    });
                }
                cobranca.Aluno = aluno;
            }

            //HttpContext context = HttpContext.curre
            DateTime vencimento = cobranca.dataVencimento;
            Double valorBoleto = Convert.ToDouble(cobranca.valorTotal);
            string nossoNumero = cobranca.idCobranca.ToString().PadLeft(8, '0');

            //Instrucao_Itau item1 = new Instrucao_Itau(9, 5);
               // Instrucao_Itau item2 = new Instrucao_Itau(81, 10);
            Cedente c = new Cedente("10.668.613/0001-55", "V Mendonsa da Costa Idiomas e Informática", "4406", "22324");
            //Na carteira 198 o código do Cedente é a conta bancária
            c.Codigo = 13000;

            Boleto b = new Boleto(vencimento, valorBoleto, "176", nossoNumero, c, new EspecieDocumento(341, 1));
            b.NumeroDocumento = nossoNumero;

            TimeSpan dt = DateTime.Now - cobranca.Aluno.dataNascimento;
            var idade = Math.Round(dt.TotalDays / 360);
            if (idade < 18)
            {
                b.Sacado = new Sacado(cobranca.Aluno.Responsavel.cpf, cobranca.Aluno.Responsavel.nome);
            }
            else
            {
                b.Sacado = new Sacado(cobranca.Aluno.cpf, cobranca.Aluno.nome);
            }
            if (cobranca.Aluno.Enderecos.Count > 0)
            {
                b.Sacado.Endereco.End = String.Format("{0}, {1} {2}", cobranca.Aluno.Enderecos.FirstOrDefault().logradouro, cobranca.Aluno.Enderecos.FirstOrDefault().numero, cobranca.Aluno.Enderecos.FirstOrDefault().complemento);
                b.Sacado.Endereco.Bairro = cobranca.Aluno.Enderecos.FirstOrDefault().bairro;
                b.Sacado.Endereco.Cidade = cobranca.Aluno.Enderecos.FirstOrDefault().cidade;
                b.Sacado.Endereco.CEP = cobranca.Aluno.Enderecos.FirstOrDefault().CEP;
                b.Sacado.Endereco.UF = cobranca.Aluno.Enderecos.FirstOrDefault().uf;
            }

            //Exemplo de como adicionar mais informações ao sacado
            //b.Sacado.InformacoesSacado.Add(new InfoSacado("TÍTULO: " + "2541245"));

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

            // juros/descontos
            //if (b.ValorDesconto == 0)
            //{
            //    Instrucao_Itau item3 = new Instrucao_Itau(999, 1);
            //    item3.Descricao = ("Aplicar Multa 2% a.d. após o vencimento");
            //    b.Instrucoes.Add(item3);
            //}

            BoletoBancario boletoBancario = new BoletoBancario();
            boletoBancario.CodigoBanco = 341;
            boletoBancario.OcultarEnderecoSacado = false;
            boletoBancario.OcultarReciboSacado = false;
            boletoBancario.OcultarInstrucoes = false;
            boletoBancario.Boleto = b;
            boletoBancario.Boleto.Valida();

            boletoBancario.MostrarComprovanteEntrega = false;
            boletoBancario.FormatoCarne = false;

            conn.Close();
            return View("Boleto",boletoBancario);
        }