public static Relatorio ObterRelatorioInadimplentes() { Relatorio relatorio = null; VsfDatabase db = new VsfDatabase(Properties.Settings.Default.StringConexao); try { db.AbreConexao(); List<SqlParameter> parameters = new List<SqlParameter>(); StringBuilder query = new StringBuilder("select SUM(ValorPagar) as total, COUNT(alu.Nome) as alunos, "); query.Append("AVG(datediff(DD ,DataVencimento,GETDATE())) as 'media atrasos', "); query.Append("MAX(datediff(DD ,DataVencimento,GETDATE())) as 'maior atraso' "); query.Append("FROM Parcelas as parc "); query.Append("INNER JOIN Financeiro as finc "); query.Append("on finc.IdFinanceiro = parc.IdFinanceiro "); query.Append("INNER JOIN Matricula as mat "); query.Append("ON mat.IdMatricula = finc.IdMatricula "); query.Append("INNER JOIN Aluno as alu " ); query.Append("ON alu.NumeroPece = mat.IdAluno "); query.Append("where Pago = 0 and parc.DataVencimento < GETDATE() and mat.Estado = 0 "); SqlDataReader reader = db.ExecuteTextReader(query.ToString(),parameters); if (reader.Read()) { relatorio = new Relatorio(); relatorio.ValorTotal = (reader["total"] != DBNull.Value) ? Convert.ToDecimal(reader["total"]) : 0 ; relatorio.NumAlunos = Convert.ToInt32(reader["alunos"]); relatorio.MediaDiasAtrasados = (reader["media atrasos"] != DBNull.Value) ? Convert.ToDecimal(reader["media atrasos"]) : 0; relatorio.MaiorAtraso = (reader["maior atraso"] != DBNull.Value) ? Convert.ToInt32(reader["maior atraso"]) : 0; } } catch (Exception ex) { Logger.Registrar(0, "Exceção em (DAO) " + ex.Source + " - " + ex.ToString() + " : " + ex.Message + "\n\n StackTrace: " + ex.StackTrace); throw new ApplicationException("RelatorioAluno.ObterRelatorioInadimplentes(): " + ex, ex); } finally { db.FechaConexao(); } return relatorio; }
private void RelatorioArrecadacaoDevidaMes_load() { RelatorioNegocio relatorioNegocio = new RelatorioNegocio(); Relatorio relatorio = new Relatorio(); int mes = Convert.ToInt32(mnMesReferencia.Text); int ano = Convert.ToInt32(txtAnoReferencia.Text); lblTituloRelatorio.Text = "Relatório Mensal e Contas dos Alunos Inadimplentes"; lblDataAtual.Text = DateTime.Now.ToLongDateString(); GridViewInadimplentes.Columns.Clear(); relatorio = relatorioNegocio.ObterRelatorioArrecadacaoDevidaMes(mes, ano); if (relatorio.NumProjetos > 0 || relatorio.NumAlunos > 0) { GridViewInadimplentes.Visible = true; bttImpressao.Visible = true; List<Projeto> listProjeto = relatorioNegocio.ObterArrecadacaoDevidaMes(mes, ano); lbl1.Text = "R$ " + relatorio.ValorTotal.ToString(); textLBL1.Text = "Total: "; lbl2.Text = relatorio.NumAlunos.ToString()+ " alunos"; textLBL2.Text = "Número de Alunos: "; lbl3.Text = relatorio.NumProjetos.ToString()+" projetos"; textLBL3.Text = "Número de Projetos: "; lbl4.Visible = false; textLBL4.Visible = false; GridViewInadimplentes.DataSource = listProjeto; GridViewInadimplentes.AutoGenerateColumns = false; BoundField bfNomeProjeto = new BoundField(); bfNomeProjeto.DataField = "Nome"; bfNomeProjeto.HeaderText = "Nome do Projeto"; GridViewInadimplentes.Columns.Add(bfNomeProjeto); BoundField bfCodProjeto = new BoundField(); bfCodProjeto.DataField = "Codigo"; bfCodProjeto.HeaderText = "Código do Projeto"; GridViewInadimplentes.Columns.Add(bfCodProjeto); BoundField bfValorDevido = new BoundField(); bfValorDevido.DataField = "Valor"; bfValorDevido.DataFormatString = "R$ {0:F2}"; bfValorDevido.HeaderText = "Arrecadação Devida no Mês"; GridViewInadimplentes.Columns.Add(bfValorDevido); GridViewInadimplentes.DataBind(); } else { PanelSucesso.Visible = true; } }
public static Relatorio ObterRelatorioArrecadacaoMes(int mes, int ano, enumTipoRelatorio tipo) { Relatorio relatorio = null; VsfDatabase db = new VsfDatabase(Properties.Settings.Default.StringConexao); try { db.AbreConexao(); List<SqlParameter> parameters = new List<SqlParameter>(); parameters.Add(new SqlParameter("@mes", mes)); parameters.Add(new SqlParameter("@ano", ano)); StringBuilder query = new StringBuilder("select COUNT(alu.Nome) as alunos, "); query.Append("COUNT(proj.Nome) as projetos"); switch (tipo) { case enumTipoRelatorio.Efetivo: query.Append(", SUM(ValorPago) as total, "); query.Append("sum(ValorPago - ValorPagar) as 'Rendimento Juros', "); query.Append("sum(ValorPagar) as 'Arrecadacao Prevista' "); break; case enumTipoRelatorio.Previsto: query.Append(" ,SUM(ValorPagar) as total "); break; case enumTipoRelatorio.Devido: query.Append(" ,SUM(ValorPagar) as total "); break; } query.Append("FROM Parcelas as parc "); query.Append("INNER JOIN Financeiro as finc "); query.Append("on finc.IdFinanceiro = parc.IdFinanceiro "); query.Append("INNER JOIN Matricula as mat "); query.Append("ON mat.IdMatricula = finc.IdMatricula "); query.Append("INNER JOIN Aluno as alu "); query.Append("ON alu.NumeroPece = mat.IdAluno "); query.Append("INNER JOIN projeto as proj "); query.Append("ON proj.CodigoProjeto = mat.IdProjeto "); query.Append("where month(parc.DataVencimento) = @mes "); query.Append("and year(parc.DataVencimento) = @ano "); switch (tipo) { case enumTipoRelatorio.Efetivo: query.Append(" and Pago = 1 "); break; case enumTipoRelatorio.Previsto: query.Append(""); break; case enumTipoRelatorio.Devido: query.Append(" and parc.DataVencimento < GETDATE()"); query.Append(" and Pago = 0 "); break; } query.Append("and mat.Estado = 0 "); SqlDataReader reader = db.ExecuteTextReader(query.ToString(), parameters); if (reader.Read()) { relatorio = new Relatorio(); relatorio.ValorTotal = (reader["total"] != DBNull.Value) ? Convert.ToDecimal(reader["total"]) : 0; relatorio.NumAlunos = (reader["alunos"] != DBNull.Value) ? Convert.ToInt32(reader["alunos"]) : 0; relatorio.NumProjetos = (reader["projetos"] != DBNull.Value) ? Convert.ToInt32(reader["projetos"]) : 0; if (tipo == enumTipoRelatorio.Efetivo) { relatorio.ValorJuros = (reader["Rendimento Juros"] != DBNull.Value) ? Convert.ToDecimal(reader["Rendimento Juros"]) : 0; relatorio.ValorPrevisto = (reader["Arrecadacao Prevista"] != DBNull.Value) ? Convert.ToDecimal(reader["Arrecadacao Prevista"]) : 0; } } } catch (Exception ex) { Logger.Registrar(0, "Exceção em (DAO) " + ex.Source + " - " + ex.ToString() + " : " + ex.Message + "\n\n StackTrace: " + ex.StackTrace); throw new ApplicationException("RelatorioAluno.ObterRelatorioArrecadacaoMes(): " + ex, ex); } finally { db.FechaConexao(); } return relatorio; }
private void RelatorioInadimplentes_load() { RelatorioNegocio relatorioNegocio = new RelatorioNegocio(); Relatorio relatorio = new Relatorio(); lblTituloRelatorio.Text = "Relatório de Alunos Inadimplentes"; lblDataAtual.Text = DateTime.Now.ToLongDateString(); GridViewInadimplentes.Columns.Clear(); relatorio = relatorioNegocio.ObterRelatorioInadimplentes(); if (relatorio.NumProjetos > 0 || relatorio.NumAlunos >0) { List<AlunoParcela> listAlunoProjeto = relatorioNegocio.ObterAlunosInadimplentes(); GridViewInadimplentes.Visible = true; bttImpressao.Visible = true; lbl1.Text = "R$ " + relatorio.ValorTotal.ToString(); textLBL1.Text = "Total: "; lbl2.Text = relatorio.NumAlunos.ToString() + " alunos"; textLBL2.Text = "Número de Alunos: "; lbl3.Text = relatorio.MediaDiasAtrasados.ToString() + " dias"; textLBL3.Text = "Média de dias Atrasados: "; lbl4.Text = relatorio.MaiorAtraso.ToString() + " dias"; textLBL4.Text = "Maior Atraso: "; textLBL4.Visible = true; lbl4.Visible = true; GridViewInadimplentes.DataSource = listAlunoProjeto; GridViewInadimplentes.AutoGenerateColumns = false; BoundField bfNomeAluno = new BoundField(); bfNomeAluno.DataField = "Nome"; bfNomeAluno.HeaderText = "Nome do Aluno"; GridViewInadimplentes.Columns.Add(bfNomeAluno); BoundField bfNumeroPece = new BoundField(); bfNumeroPece.DataField = "NumeroPECE"; bfNumeroPece.HeaderText = "Número PECE"; GridViewInadimplentes.Columns.Add(bfNumeroPece); BoundField bfParcelaVencida = new BoundField(); bfParcelaVencida.HtmlEncode = false; bfParcelaVencida.DataField = "ParcelaVencida"; bfParcelaVencida.DataFormatString = "{0:d}"; bfParcelaVencida.HeaderText = "Parcela Vencida"; GridViewInadimplentes.Columns.Add(bfParcelaVencida); BoundField bfValorDevido = new BoundField(); bfValorDevido.DataFormatString = "R$ {0:F2}"; bfValorDevido.DataField = "ValorParcela"; bfValorDevido.HeaderText = "Valor Devido"; GridViewInadimplentes.Columns.Add(bfValorDevido); GridViewInadimplentes.DataBind(); } else { PanelSucesso.Visible = true; } }