package servlets;

import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import business.Mensalidade;
import dao.MensalidadeDAO;

 public class MensalidadeServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet 
 {
	 /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	// Atributos
	 MensalidadeDAO dao = new MensalidadeDAO();
	 
	 // Métodos
	 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	 {
		doPost(request, response);
	 }  	
	
	 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	 {
		String comando = request.getParameter("comando");
		
		if (comando != null)
		{
			if (comando.equals("inserir"))
			{
				comandoInserir(request,response);
			}
			else if (comando.equals("remover"))
			{
				comandoRemover(request,response);
			}
			else if (comando.equals("listar"))
			{
				comandoListar(request,response);
			}
		}
		
	 }
	 
	 public void comandoInserir(HttpServletRequest request, 
			 				    HttpServletResponse response)
	 							throws IOException,ServletException
	 {
		 // Recupera os Parâmetros
		 
		String data_parcela = request.getParameter("data_parcela");
		String data_pagto = request.getParameter("data_pagto");
				 
		 float valor = Float.parseFloat(request.getParameter("valor"));
		 
		 
		 // Cria um Mensalidade com os Parâmetros
		 Mensalidade mens = new Mensalidade();
		 mens.setData_parcela(data_parcela);
		 mens.setData_pagto(data_pagto);
		 mens.setValor(valor);
		 
		 // Insere o Mensalidade no Banco
		 dao.inserir(mens);
		 
		 // Avisa o Usuário
		 response.sendRedirect("registrarMensalidadeAluno.jsp?msg=Mensalidade Registrada.");
	 }
	 
	 public void comandoRemover(HttpServletRequest request, 
			 				    HttpServletResponse response)
	 							throws IOException,ServletException
	 {
		 // Recupera os parâmetros
		 String id = request.getParameter("id");
		 String origem = request.getParameter("origem");
		 
		 // Remove o mensalidade
		 if(dao.removerPorId(id))
		 {
		 	// Testa pela origem
		 	if (origem.equals("formulario"))
		 		response.sendRedirect("mensalidadeRemover.jsp?msg=Mensalidade Removida.");
		 	else if (origem.equals("lista"))
		 		comandoListar(request,response);
		 }		 	
		 else
			 response.sendRedirect("mensalidadeRemover.jsp?msg=Mensalidade Inexistente.");
	 }
	 
	 public void comandoListar(HttpServletRequest request, 
							   HttpServletResponse response)
							   throws IOException,ServletException
	{
		 // Pede as mensalidades para o DAO
		 ArrayList<Mensalidade> lista = dao.listar();
		 
		 // Guarda como atributo de requisição
		 request.setAttribute("lista",lista);
		 
		 // Redireciona a requisição internamente para a página
		 RequestDispatcher rd = request.getRequestDispatcher("mensalidadeListar.jsp");
		 rd.forward(request, response);
	}	
}