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); }