import javax.servlet.*;
import javax.servlet.http.*;
import java.text.*;
import java.io.*;
import java.util.*;
import java.sql.*;

public class LojaRefeicao extends HttpServlet  {
	
	private	String userID = new String();
	private	String passWD = new String();
	public String tipoEstabelecimento = new String();
	public String classeResponsavel = new String();
	public String linkvoltar = new String();
	private int opcaoOperacao = 0;
	
	public long codigoEstab = 0;
	public String nomeEstab = new String();
	public double taxaAtend = 0;
	public String acomodacoes = new String();
	public String endereco = new String();
	public String refeicao = new String();
	public String limpeza = new String();
	public double contribuicao = 0;
	public boolean emDia = false;

	public boolean popula = false;

	private Connection conexao;
	private Statement statement;	
	
	public void doPost(HttpServletRequest request,
                       HttpServletResponse response )
                throws ServletException, IOException {
                	
		StringBuffer msgerro = new StringBuffer();
		PrintWriter responseOutput = response.getWriter();

        response.setContentType( "text/html" ); // content type
		
		try{
			codigoEstab = Long.parseLong(request.getParameter("codestab").trim());
		}
		catch (NumberFormatException nfe){
			msgerro.append("O campo Cdigo do Estabelecimento deve ser preenchido com valor numrico.\n");;
		}
		catch(NullPointerException npe){
	     	msgerro.append("O campo Cdigo do Estabelecimento deve ser preenchido.\n");
	    }
		
		try{
			nomeEstab = request.getParameter("strnome").trim();
		}	
		catch(NullPointerException npe){
	     	msgerro.append("O campo [Nome] deve ser preenchido.\n");
	    }
	
		try{
	        taxaAtend = Double.parseDouble(request.getParameter("dblatend").trim());
	    }
		catch (NumberFormatException nfe){
			msgerro.append("O campo [Taxa de Atendimento]  numrico.\n");	
		}
		catch(NullPointerException npe){
	     	msgerro.append("O campo [Taxa de Atendimento] deve ser preenchido.\n");
	    }
		
		try{
	        acomodacoes = request.getParameter("stracomodacoes").trim();
	    }
		catch(NullPointerException npe){
	     	acomodacoes = "";
	    }
	    
		try{
	        endereco = request.getParameter("strend").trim();
	    }
		catch(NullPointerException npe){
	     	msgerro.append("O campo [Endereo] deve ser preenchido.\n");
	    }

		try{
	        refeicao = request.getParameter("strrefeicao").trim();
	    }
		catch(NullPointerException npe){
	     	refeicao = "";
	    }

		try{
	        limpeza = request.getParameter("strlimpeza").trim();
	    }
		catch(NullPointerException npe){
	     	limpeza = "";
	    }

		try{
	        contribuicao = Double.parseDouble(request.getParameter("dblcontrib").trim());
	    }
		catch (NumberFormatException nfe){
			msgerro.append("O campo [Valor de Contribuio]  numerico.\n");
		}
		catch(NullPointerException npe){
	     	msgerro.append("O campo [Valor de Contribuio] deve ser preenchido.\n");
	    }

		try{
        	emDia = (request.getParameter("blnemdia").trim().compareTo("on") ==0?true:false );
        }
		catch(NullPointerException npe){
	     	emDia = false;
	    }

		try{
        	System.out.println(request.getParameter("name").trim());
        }
		catch(NullPointerException npe){
	     	System.out.println("Sem acao");
	    }

		try{
			System.out.println(request.getParameter("metodo"));
			opcaoOperacao = Integer.parseInt(request.getParameter("metodo")); 
		}
		catch(NullPointerException npe){
	     	msgerro.append("O campo [Endereo] deve ser preenchido.\n");
	    }

        switch(opcaoOperacao){
        	case 0:mostra(request, response);
        	case 1:insert(request, response);
        	case 2:update(request, response);
        	case 3:delete(request, response);
        }
        
        
	}
    
	public void mostra(HttpServletRequest request,
                       HttpServletResponse response ) 
                throws ServletException, IOException {
		
		StringBuffer out = new StringBuffer();
		StringBuffer msgerro = new StringBuffer();
		PrintWriter responseOutput = response.getWriter();
		ResultSet rs;
		
	    if (msgerro.toString().trim().length()==0){
	    	String strSQL = "SELECT * FROM estabelecimento " +
	    					"WHERE Cod_Estab = " + codigoEstab +
	    					" AND Tipo_Estab = '" + tipoEstabelecimento + "'";
			AcessoBanco conn = new AcessoBanco();
			conn.conecta();
			conexao = conn.getConnection();
			
			try{
				statement = conn.getConnection().createStatement();
				rs = statement.executeQuery( strSQL );
				if (rs.next()){


					codigoEstab = rs.getLong("Cod_Estab");
					nomeEstab = rs.getString("Descr_Estab").trim();
					taxaAtend = rs.getDouble("Taxa_Atendim");
					acomodacoes = rs.getString("Acomodacoes").trim();
					endereco = rs.getString("Endereco").trim();
					refeicao = rs.getString("Refeicao").trim();
					limpeza = rs.getString("Limpeza").trim();
					contribuicao = rs.getDouble("vl_contrib");
					//emDia = rs.getBoolean("em_dia");

					popula = true;
					doGet(request, response);
					popula = false;

				}
			}
			catch (SQLException sqle) {

				System.out.println("\nProblemas exibindo registro.");
				out.append("<HTML>\n");
				out.append("<HEAD>\n");
				out.append("<TITLE></TITLE>\n");
				out.append("</HEAD>\n");
				out.append("<BODY>\n");
				out.append("<P>&nbsp;&nbsp;</P>\n");
				out.append("<P align=center><STRONG><FONT color=mediumslateblue size=5>Ocorreu um erro ao exibir o registro</FONT><BR></STRONG></P>\n");
				out.append("<P align=center><STRONG>&lt;<U>voltar</U>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<U>listar</U>&gt;</P></STRONG>\n");
				out.append("</BODY>\n");
				out.append("</HTML>\n");
				out.append(sqle.getMessage());
				responseOutput.println(out.toString());
				responseOutput.close();
			}
	    }
	    else
	    {
	      	responseOutput.println( "<html>\n" );
	      	responseOutput.println( "<title>Erro!</title>\n" );
			responseOutput.println( "" );
	        responseOutput.println(msgerro.toString());
	        responseOutput.close();
	    }
      
    }
    
	public void delete(HttpServletRequest request,
                       HttpServletResponse response ) 
                throws ServletException, IOException {
		
		StringBuffer out = new StringBuffer();
		StringBuffer msgerro = new StringBuffer();
		PrintWriter responseOutput = response.getWriter();
		
	    if (msgerro.toString().trim().length()==0){
	    	String strSQL = "DELETE estabelecimento WHERE Cod_Estab = " + codigoEstab;
			AcessoBanco conn = new AcessoBanco();
			conn.conecta();
			conexao = conn.getConnection();
			
			try{
				statement = conexao.createStatement();
				if( statement.execute( strSQL ) ) {
					System.out.println("Ocorreu um erro durante Exclusao do registro.");
				}
				else
				{
					out.append("<HTML>\n");
					out.append("<HEAD>\n");
					out.append("<TITLE></TITLE>\n");
					out.append("</HEAD>\n");
					out.append("<BODY>\n");
					out.append("<P>&nbsp;&nbsp;</P>\n");
					out.append("<P align=center><STRONG><FONT color=mediumslateblue size=5>Excluido Concluido com Sucesso</FONT><BR></STRONG></P>\n");
					out.append("<P align=center><STRONG>&lt;<U>voltar</U>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<U>listar</U>&gt;</P></STRONG>\n");
					out.append("</BODY>\n");
					out.append("</HTML>\n");
					responseOutput.println(out.toString());
					responseOutput.close();
				}
				
			}
			catch (SQLException sqle) {

				System.out.println("\nProblemas Excluindo registro.");
				out.append("<HTML>\n");
				out.append("<HEAD>\n");
				out.append("<TITLE></TITLE>\n");
				out.append("</HEAD>\n");
				out.append("<BODY>\n");
				out.append("<P>&nbsp;&nbsp;</P>\n");
				out.append("<P align=center><STRONG><FONT color=mediumslateblue size=5>Ocorreu um erro ao excluir o registro</FONT><BR></STRONG></P>\n");
				out.append("<P align=center><STRONG>&lt;<U>voltar</U>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<U>listar</U>&gt;</P></STRONG>\n");
				out.append("</BODY>\n");
				out.append("</HTML>\n");
				out.append(sqle.getMessage());
				responseOutput.println(out.toString());
				responseOutput.close();
			}
	    }
	    else
	    {
	      	responseOutput.println( "<html>\n" );
	      	responseOutput.println( "<title>Erro!</title>\n" );
			responseOutput.println( "" );
	        responseOutput.println(msgerro.toString());
	        responseOutput.close();
	    }
      
    }

	public void update(HttpServletRequest request,
                       HttpServletResponse response ) 
                throws ServletException, IOException {
		
		StringBuffer out = new StringBuffer();
		StringBuffer msgerro = new StringBuffer();
		PrintWriter responseOutput = response.getWriter();
		
	    if (msgerro.toString().trim().length()==0){
	    	String strSQL = "UPDATE estabelecimento SET Descr_Estab = '" + nomeEstab.trim() + 
	    					"', Acomodacoes = '" + acomodacoes.trim() + "', em_dia = '" + (emDia?"S":"N") +
	    		    		"', Endereco = '" + endereco.trim() + "', Refeicao = '" + refeicao.trim() + 
	    		    		"', Limpeza = '" + limpeza.trim() + "', Taxa_Atendim = " + taxaAtend +
	    		    		" , Tipo_Estab = '" + tipoEstabelecimento.trim() + "', vl_contrib = " + contribuicao +
							" WHERE Cod_Estab = " + codigoEstab;
			AcessoBanco conn = new AcessoBanco();
			conn.conecta();
			conexao = conn.getConnection();
			
			try{
				statement = conexao.createStatement();
				if( statement.execute( strSQL ) ) {
					System.out.println("Ocorreu um erro durante atualizao do registro.");
				}
				else
				{
					out.append("<HTML>\n");
					out.append("<HEAD>\n");
					out.append("<TITLE></TITLE>\n");
					out.append("</HEAD>\n");
					out.append("<BODY>\n");
					out.append("<P>&nbsp;&nbsp;</P>\n");
					out.append("<P align=center><STRONG><FONT color=mediumslateblue size=5>Update Concluido com Sucesso</FONT><BR></STRONG></P>\n");
					out.append("<P align=center><STRONG>&lt;<U>voltar</U>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<U>listar</U>&gt;</P></STRONG>\n");
					out.append("</BODY>\n");
					out.append("</HTML>\n");
					responseOutput.println(out.toString());
					responseOutput.close();
				}
				
			}
			catch (SQLException sqle) {

				System.out.println("\nProblemas Atualizando registro.");
				out.append("<HTML>\n");
				out.append("<HEAD>\n");
				out.append("<TITLE></TITLE>\n");
				out.append("</HEAD>\n");
				out.append("<BODY>\n");
				out.append("<P>&nbsp;&nbsp;</P>\n");
				out.append("<P align=center><STRONG><FONT color=mediumslateblue size=5>Ocorreu um erro ao atualizar o registro</FONT><BR></STRONG></P>\n");
				out.append("<P align=center><STRONG>&lt;<U>voltar</U>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<U>listar</U>&gt;</P></STRONG>\n");
				out.append("</BODY>\n");
				out.append("</HTML>\n");
				out.append(sqle.getMessage());
				responseOutput.println(out.toString());
				responseOutput.close();
			}
	    }
	    else
	    {
	      	responseOutput.println( "<html>\n" );
	      	responseOutput.println( "<title>Erro!</title>\n" );
			responseOutput.println( "" );
	        responseOutput.println(msgerro.toString());
	        responseOutput.close();
	    }
      
    }

     
	public void insert(HttpServletRequest request,
                       HttpServletResponse response ) 
                throws ServletException, IOException {
		
		StringBuffer out = new StringBuffer();
		StringBuffer msgerro = new StringBuffer();
		PrintWriter responseOutput = response.getWriter();
		
	    if (msgerro.toString().trim().length()==0){
	    	String strSQL = "INSERT INTO estabelecimento (Cod_Estab, Descr_Estab, Acomodacoes, " +
	    					"em_dia, Endereco, Limpeza, Refeicao, Taxa_Atendim, Tipo_Estab, " +
	    					"vl_contrib) VALUES (" +
							codigoEstab + ", '" + nomeEstab.trim() + "', '" + acomodacoes.trim() + "', '" + 
							(emDia?"S":"N") + "', '" + endereco.trim() + "', '" + limpeza.trim() + "', '" + 
							refeicao.trim() + "', " + taxaAtend + ",'" + tipoEstabelecimento.trim() + "'," +
							contribuicao + ")";

			AcessoBanco conn = new AcessoBanco();
			conn.conecta();
			conexao = conn.getConnection();
			
			try{
				statement = conexao.createStatement();
				if( statement.execute( strSQL ) ) {
					System.out.println("Ocorreu um erro durante insero do registro.");
				}
				else
				{
					out.append("<HTML>\n");
					out.append("<HEAD>\n");
					out.append("<TITLE></TITLE>\n");
					out.append("</HEAD>\n");
					out.append("<BODY>\n");
					out.append("<P>&nbsp;&nbsp;</P>\n");
					out.append("<P align=center><STRONG><FONT color=mediumslateblue size=5>Cadastro Concluido com Sucesso</FONT><BR></STRONG></P>\n");
					out.append("<P align=center><STRONG>&lt;<U>voltar</U>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<U>listar</U>&gt;</P></STRONG>\n");
					out.append("</BODY>\n");
					out.append("</HTML>\n");
					responseOutput.println(out.toString());
					responseOutput.close();
				}
				
			}
			catch (SQLException sqle) {

				System.out.println("\nProblemas inserindo registro.");
				out.append("<HTML>\n");
				out.append("<HEAD>\n");
				out.append("<TITLE></TITLE>\n");
				out.append("</HEAD>\n");
				out.append("<BODY>\n");
				out.append("<P>&nbsp;&nbsp;</P>\n");
				out.append("<P align=center><STRONG><FONT color=mediumslateblue size=5>Ocorreu um erro ao incluir o registro</FONT><BR></STRONG></P>\n");
				out.append("<P align=center><STRONG>&lt;<U>voltar</U>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<U>listar</U>&gt;</P></STRONG>\n");
				out.append("</BODY>\n");
				out.append("</HTML>\n");
				out.append(sqle.getMessage());
				responseOutput.println(out.toString());
				responseOutput.close();
			}
	    }
	    else
	    {
	      	responseOutput.println( "<html>\n" );
	      	responseOutput.println( "<title>Erro!</title>\n" );
			responseOutput.println( "" );
	        responseOutput.println(msgerro.toString());
	        responseOutput.close();
	    }
      
    }
      
	public void doGet( HttpServletRequest request,
                       HttpServletResponse response )
                throws ServletException, IOException {

		PrintWriter output = response.getWriter();
		response.setContentType( "text/html" );

		System.out.println("Nome Estab: " + nomeEstab);
		System.out.println("Popula: " + popula);
		
		output.println("<HTML><HEAD>");
		output.println("<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>");
		output.println("<!--");
		output.println("function btnVoltar_onclick() {");
		output.println("	history.go(-1)");
		output.println("}");
		output.println("//-->");
		output.println("</SCRIPT>");
		output.println("</HEAD>");		
		output.println("<BODY>");
		output.println("<P><LABEL><FONT face=Verdana size=2><STRONG></STRONG></FONT></LABEL>&nbsp;<STRONG><FONT face=Verdana ");
		output.println("size=3>Cadastro de " + tipoEstabelecimento + "</FONT></STRONG></P>");
		output.println("<P><LABEL>&nbsp;<STRONG><FONT face=Verdana size=2> </FONT></STRONG>");
		output.println("<FORM action=\"/servlet/" + classeResponsavel + "\" method=\"POST\">");		
		output.println("<TABLE style=\"WIDTH: 477px; HEIGHT: 242px\" cellSpacing=1 cellPadding=1 width=477 ");
		output.println("align=center border=1>");
		output.println("  <TR>");
		output.println("    <TD><STRONG><FONT face=Verdana size=2>Cod. ");
		output.println("    Estabelecimento:</FONT></STRONG></TD>");
		output.println("    <TD align=left><INPUT style=\"WIDTH: 131px; HEIGHT: 22px\" align=left ");
		output.println("      size=18 name=codestab " + (popula==true ? "value=\"" + codigoEstab + "\"":""));
		output.println("      maxLength=9></TD></TR>");
		output.println("  <TR>");
		output.println("    <TD><FONT face=Verdana size=2><STRONG>Nome:</STRONG></FONT></TD>");
		output.println("    <TD><INPUT style=\"WIDTH: 287px; HEIGHT: 22px\" size=41 maxLength=50 name=strnome" + (popula==true ? "disabled value=\"" + nomeEstab + "\"":"") + "></TD></TR>");
		output.println("  <TR>");
		output.println("    <TD><STRONG><FONT face=Verdana size=2>Taxa de ");
		output.println("    Atendimento:</FONT></STRONG></TD>");
		output.println("    <TD><INPUT style=\"WIDTH: 133px; HEIGHT: 22px\" size=19 maxLength=15 name=dblatend" + (popula==true ? "disabled value=\"" + taxaAtend + "\"":"") + "></TD></TR>");
		output.println("  <TR>");
		output.println("    <TD><STRONG><FONT face=Verdana size=2>Acomodaes:</FONT></STRONG></TD>");
		output.println("    <TD><TEXTAREA style=\"LEFT: 1px; WIDTH: 289px; TOP: 3px; HEIGHT: 81px\" rows=4 cols=32 name=stracomodacoes>" + (popula==true ? acomodacoes :"") + "</TEXTAREA></TD></TR>");
		output.println("  <TR>");
		output.println("    <TD><STRONG><FONT face=Verdana size=2>Endereo:</FONT></STRONG></TD>");
		output.println("    <TD><TEXTAREA style=\"LEFT: 1px; WIDTH: 289px; TOP: 3px; HEIGHT: 81px\" rows=4 cols=32 name=strend>" + (popula==true ? endereco :"") + "</TEXTAREA></TD></TR>");
		output.println("  <TR>");
		output.println("    <TD><STRONG><FONT face=Verdana size=2>Refeio:</FONT></STRONG></TD>");
		output.println("    <TD><TEXTAREA style=\"LEFT: 1px; WIDTH: 289px; TOP: 3px; HEIGHT: 81px\" rows=4 cols=32 name=strrefeicao>" + (popula==true ? refeicao :"") + "</TEXTAREA></TD></TR>");
		output.println("  <TR>");
		output.println("    <TD><STRONG><FONT face=Verdana size=2>Limpeza:</FONT></STRONG></TD>");
		output.println("    <TD><TEXTAREA style=\"LEFT: 1px; WIDTH: 289px; TOP: 3px; HEIGHT: 81px\" rows=4 cols=32 name=strlimpeza>" + (popula==true ? limpeza :"") + "</TEXTAREA></TD></TR>");
		output.println("  <TR>");
		output.println("    <TD><STRONG><FONT face=Verdana size=2>Valor de Contribuio:</FONT></STRONG></TD>");
		output.println("    <TD><INPUT style=\"WIDTH: 133px; HEIGHT: 22px\" name=dblcontrib" + (popula==true ? "disabled value=\"" + contribuicao + "\"":""));
		output.println("    size=19></TD></TR>");
		output.println("  <TR>");
		output.println("    <TD><STRONG><FONT face=Verdana size=2>Em dia:</FONT></STRONG></TD>");
		output.println("    <TD><INPUT name=blnemdia" + (popula==true ? "disabled value=\"" + (emDia==true?"on":"off")  + "\"":""));
		output.println("type=checkbox></TD></TR></TABLE></LABEL></P>" +
//					   "FORM METHOD = \"post\"		
					   "<INPUT style=\"LEFT: 11px; TOP: 587px\"" + "type=Submit value=Salvar name=btnsalvar acao=salvar>" +
					   "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
					   "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");

		output.println("<FORM METHOD=\"post\" ACTION=\"/servlet/" + classeResponsavel + "&metodo=0\"\">");
		output.println("<INPUT TYPE=\"submit\" VALUE=\"Localizar\"></FORM>");

		output.println("<FORM METHOD=\"post\" ACTION=\"/servlet/" + classeResponsavel + "&metodo=1\"\">");
		output.println("<INPUT TYPE=\"submit\" VALUE=\"Incluir\"></FORM>");
		 
		output.println("<FORM METHOD=\"post\" ACTION=\"/servlet/" + classeResponsavel + "&metodo=2\"\"\">");
		output.println("<INPUT TYPE=\"submit\" VALUE=\"Alterar\"></FORM>");
		 
		output.println("<FORM METHOD=\"post\" ACTION=\"/servlet/" + classeResponsavel + "&metodo=3\"\">");
		output.println("<INPUT TYPE=\"submit\" VALUE=\"Excluir\"></FORM>");
		 
		output.println("<FORM METHOD=\"post\" ACTION=\"/servlet/" + classeResponsavel + "&metodo=4\">");
		output.println("<INPUT TYPE=\"submit\" VALUE=\"Listar\"></FORM>");

		output.println("<INPUT type=\"button\" value=\"Voltar\" id=btnVoltar name=btnVoltar LANGUAGE=javascript onclick=\"return btnVoltar_onclick()\"></BODY></HTML>");		
		output.close();                	
	}
} 