package commands;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import spring.Context;

import business.Aluno;
import dao.AlunoDAO;
import dao.AlunoDAOFactory;

public class PreencheListaMensalidadesAlunos extends AbstractCommand {
	private AlunoDAOFactory alunoDAOFactory = AlunoDAOFactory.getInstance();

	public void processarComando(HttpServletRequest request,
			HttpServletResponse response, Context context) {
		AlunoDAO alunoDao = alunoDAOFactory.getAlunoDAO();
		// verifica se existe filtro
		String msg = null;
		String filtroAluno = request.getParameter("filtroAluno");
		List<Aluno> alunos = null;

		if (filtroAluno == null || filtroAluno.equals("")) {
			alunos = alunoDao.listarAlunos();
			if (alunos.size() == 0) {
				msg = " Não Existe Aluno Cadastrado ";
			}

		} else {
			alunos = alunoDao.listarAlunosPorNome(filtroAluno);
			if (alunos.size() == 0) {
				msg = " Não Existe Aluno com o Filtro Aplicado ";
			}
		}

		request.setAttribute("alunos", alunos);

		if (msg != null) {
			request.setAttribute("mensagem", msg);
		}

		RequestDispatcher rd = request.getRequestDispatcher("login.jsp");

		if (request.getParameter("origem").equals("registraMensalidade")) {
			rd = request.getRequestDispatcher("registrarMensalidadeAluno.jsp");
		} else if (request.getParameter("origem").equals("consultaMensalidade")) {
			rd = request.getRequestDispatcher("consultaMensalidade.jsp");
		} else {
			request.getRequestDispatcher("login.jsp");
		}

		try {
			rd.forward(request, response);
		} catch (ServletException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
