public string FindAllCobrancas(int idAluno) { conn.Open(); string sql = @"select c.idCobranca, c.idAluno, isnull(c.idTaxa,0) as idTaxa, c.idCurso, case when GETDATE() > c.dataVencimento then DATEDIFF(d,c.dataVencimento,GETDATE()) * (c.valorTotal * 0.02) ELSE c.juros END AS juros, c.valorTotal, c.dataVencimento, t.nome as nomeTaxa, t.valor as valorTaxa, cu.nome as nomeCurso, cu.valor as valorCurso, p.nome as nomeAluno, SUM(pag.valor) as valorPago, (c.valorTotal + c.juros) - SUM(pag.valor) as valorFaltante from aluno a join cobranca c on a.idAluno = c.idAluno join pessoa p on a.idPessoa = p.idPessoa left join curso cu on c.idCurso = cu.idCurso left join taxa t on c.idTaxa = c.idTaxa left join pagamento pag on c.idCobranca = pag.idCobranca WHERE a.idAluno = @idAluno and c.statusPagamento = @status group by c.idCobranca, c.idAluno, c.idTaxa, c.idCurso, c.juros, c.valorTotal, c.dataVencimento, t.nome, t.valor, cu.nome, cu.valor, p.nome"; SqlCommand comm = conn.CreateCommand(); comm.CommandText = sql; comm.Parameters.Add(new SqlParameter("@idAluno", idAluno)); comm.Parameters.Add(new SqlParameter("@status", EnumStatus.NaoPago)); SqlDataReader dr = comm.ExecuteReader(); List <Models.Cobranca> listaCobranca = new List <Models.Cobranca>(); while (dr.Read()) { Models.Cobranca cob = new Models.Cobranca(); cob.idCobranca = dr.GetInt32(0); cob.idAluno = dr.GetInt32(1); cob.idTaxa = dr.GetInt32(2); cob.idCurso = dr.GetInt32(3); cob.juros = dr.GetDecimal(4); cob.valorTotal = dr.GetDecimal(5); cob.dataVencimento = dr.GetDateTime(6); cob.Taxa = new Models.Taxa { idTaxa = dr.GetInt32(2), nome = dr.IsDBNull(7) ? "" : dr.GetString(7), valor = dr.IsDBNull(8) ? 0 : dr.GetDecimal(8) }; cob.Curso = new Models.Curso { nome = dr.GetString(9), valor = dr.GetDecimal(10) }; cob.Aluno = new Models.Aluno { nome = dr.GetString(11) }; cob.valorPago = dr.IsDBNull(12) ? (decimal?)null : dr.GetDecimal(12); cob.valorFaltante = dr.IsDBNull(13) ? (decimal?)null : dr.GetDecimal(13); listaCobranca.Add(cob); } string jsonResult = JSON.Serialize(listaCobranca); return("{cobrancas:" + jsonResult + ", totalReg:" + listaCobranca.Count() + " }"); }
public string FindAllCobrancas(int idAluno) { conn.Open(); string sql = @"select c.idCobranca, c.idAluno, isnull(c.idTaxa,0) as idTaxa, c.idCurso, case when GETDATE() > c.dataVencimento then DATEDIFF(d,c.dataVencimento,GETDATE()) * (c.valorTotal * 0.02) ELSE c.juros END AS juros, c.valorTotal, c.dataVencimento, t.nome as nomeTaxa, t.valor as valorTaxa, cu.nome as nomeCurso, cu.valor as valorCurso, p.nome as nomeAluno, SUM(pag.valor) as valorPago, (c.valorTotal + c.juros) - SUM(pag.valor) as valorFaltante from aluno a join cobranca c on a.idAluno = c.idAluno join pessoa p on a.idPessoa = p.idPessoa left join curso cu on c.idCurso = cu.idCurso left join taxa t on c.idTaxa = c.idTaxa left join pagamento pag on c.idCobranca = pag.idCobranca WHERE a.idAluno = @idAluno and c.statusPagamento = @status group by c.idCobranca, c.idAluno, c.idTaxa, c.idCurso, c.juros, c.valorTotal, c.dataVencimento, t.nome, t.valor, cu.nome, cu.valor, p.nome"; SqlCommand comm = conn.CreateCommand(); comm.CommandText = sql; comm.Parameters.Add(new SqlParameter("@idAluno", idAluno)); comm.Parameters.Add(new SqlParameter("@status", EnumStatus.NaoPago)); SqlDataReader dr = comm.ExecuteReader(); List<Models.Cobranca> listaCobranca = new List<Models.Cobranca>(); while (dr.Read()) { Models.Cobranca cob = new Models.Cobranca(); cob.idCobranca = dr.GetInt32(0); cob.idAluno = dr.GetInt32(1); cob.idTaxa = dr.GetInt32(2); cob.idCurso = dr.GetInt32(3); cob.juros = dr.GetDecimal(4); cob.valorTotal = dr.GetDecimal(5); cob.dataVencimento = dr.GetDateTime(6); cob.Taxa = new Models.Taxa { idTaxa = dr.GetInt32(2), nome = dr.IsDBNull(7) ? "" : dr.GetString(7), valor = dr.IsDBNull(8) ? 0 : dr.GetDecimal(8) }; cob.Curso = new Models.Curso { nome = dr.GetString(9), valor = dr.GetDecimal(10) }; cob.Aluno = new Models.Aluno { nome = dr.GetString(11) }; cob.valorPago = dr.IsDBNull(12) ? (decimal?)null : dr.GetDecimal(12); cob.valorFaltante = dr.IsDBNull(13) ? (decimal?)null : dr.GetDecimal(13); listaCobranca.Add(cob); } string jsonResult = JSON.Serialize(listaCobranca); return "{cobrancas:" + jsonResult + ", totalReg:" + listaCobranca.Count() + " }"; }
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); }