import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
//import java.sql.*;
//servlet de pesquisa COPENE
public class attrsearch extends HttpServlet {

	String row;
	String stringConeccao;
	String novascsHome;
	String cabecalhoHtml;


	public void init(ServletConfig configuracao)
	throws ServletException
    {
    	//versao do Programa
	   	System.out.println("Pesquisa COPENE Customizada");

		
		// captura os parametros de inicialização
		super.init(configuracao);
		
	
		//captura o numero maximo de linhas apresentadas
		row = getInitParameter("rowNumber");
		
		//captura o nome endereco do novascs
       	novascsHome = getInitParameter("novascsHome");
		if (novascsHome == null) {
	    		throw new UnavailableException (this, "Variavel novascsHome nao encontrada em servlet.properties");
		}
		System.out.println("Endereco Novascs: " + novascsHome);


		//compoe cabecalho
		cabecalhoHtml = 
			"<html><head><title>Pesquisa - COPENE - Novation SCS</title></head>"
      + "<body BGCOLOR=\"#FFFFFF\" LEFTMARGIN=\"3\" TOPMARGIN=\"3\">"
      + "<table width=\"100%\" CELLSPACING=\"0\" CELLPADDING=\"2\" BGCOLOR=\"#99CCCC\" BORDER=\"0\" width=\"100%\">"
      + "<tr><td VALIGN=\"BOTTOM\" ALIGN=\"LEFT\" width=\"40\"><img SRC=\"" + novascsHome + "/file/logo.gif\""
      + "ALT=\"Novation Secure Content Server da NovaSoft\" BORDER=\"0\"></td>"
      + "<td VALIGN=\"BOTTOM\" ALIGN=\"LEFT\" width=\"180\"><a href=\"javascript:void(history.go(-1))\">"
      + "<img SRC=\" "+ novascsHome + "/file/voltar.gif\" ALT=\"Voltar\" BORDER=\"0\"></a><img SRC=\"" + novascsHome + "/file/clear.gif\" WIDTH=\"10\""
      + "HEIGHT=\"1\" BORDER=\"0\" ALT><a HREF=\"" + novascsHome + "/file/attrsearch.html\"><img SRC=\"" + novascsHome + "/file/searchT.gif\""
      + "ALT=\"Nova Pesquisa\" BORDER=\"0\"></a></td>"
      + "<td VALIGN=\"bottom\" ALIGN=\"left\" width=\"512\"><p align=\"center\">"
			+ "<font face=\"Arial\" size=\"5\" color=\"#800080\"><strong>Resultado da Pesquisa</strong></font></td><td></td></tr></table>"
			+ "<font SIZE=\"-1\" FACE=\"Arial,Helvetica\">";
			
			
	}
	        
/*======================================================================*/

	public void doPost (HttpServletRequest req, HttpServletResponse res)
    	throws ServletException, IOException {
		
		PrintWriter	out;

		res.setContentType("text/html");
		out = res.getWriter ();
	
		// verifica quem esta solicitando 
		/*String deOnde = req.getHeader("Referer");
		if ((deOnde == null) || (! deOnde.equals(aceitarDe))) {
			out.println("<h1>Acesso ilegal ao sistema!</h1>");
			out.println("<h1>Solicitado por: " + deOnde + "</h1>");
			out.println("<h1>Aceitar apenas de: " + aceitarDe + "</h1>");
			System.err.println("Acesso ilegal ao sistema: " + req.getRemoteAddr());
			return;
		}
		*/

		//captura o id do documento
		//Enumeration values = req.getParameterNames();
		
		
		//String name = (String)values.nextElement();
		//System.out.println(name);
		//name = (String)values.nextElement();
		//System.out.println(name);
	
	    	String vcodigo = req.getParameter("Vcodigo");	
        String vtitulo = req.getParameter("Vtitulo");
        String vrevisao = req.getParameter("Vrevisao");
        String vsituacao = req.getParameter("Vsituacao");
        String vnivel = req.getParameter("Vnivel");
        String vformato = req.getParameter("Vformato");
        String vaprovador = req.getParameter("Vaprovador");
        String vchave = req.getParameter("Vchave");
        String vtipo = req.getParameter("Vtipo");
        String varea = req.getParameter("Varea");
        String vclasse = req.getParameter("Vclasse");
        String vclasse_eng = req.getParameter("Vclasse_eng");
        String vnorma = req.getParameter("Vnorma");
        String vitem = req.getParameter("Vitem");
	    	String vgestor = req.getParameter("Vgestor");
	    	String vprocesso = req.getParameter("Vprocesso");
	    	String velaborador = req.getParameter("Velaborador");
	      

        
      	String datecondition1_index = req.getParameter("datecondition1_index");
      	String datecondition2_index = req.getParameter("datecondition2_index");
      	String dateattr = req.getParameter("dateattr");
      	String datecondition1 = req.getParameter("datecondition1");
      	String dateday1 = req.getParameter("dateday1");
      	String datemonth1 = req.getParameter("datemonth1");
      	String dateyear1 = req.getParameter("dateyear1");
      	String datecondition2 = req.getParameter("datecondition2");
      	String dateday2 = req.getParameter("dateday2");
      	String datemonth2 = req.getParameter("datemonth2");
      	String dateyear2 = req.getParameter("dateyear2");
		


      	System.out.println("datecondition1_index " +  datecondition1_index);
      	System.out.println( "datecondition2_index " + datecondition2_index);
      	System.out.println("dateattr " + dateattr);
      	System.out.println("datecondition1 " + datecondition1);
      	System.out.println("dateday1 " + dateday1);
      	System.out.println("datemonth1 " + datemonth1);
      	System.out.println("dateyear1 " + dateyear1);
      	System.out.println("datecondition2 " + datecondition2);
      	System.out.println("dateday2 " + dateday2);
      	System.out.println("datemonth2 " + datemonth2);
      	System.out.println("dateyear2 " + dateyear2);
      
      
      
      
        
        out.println(cabecalhoHtml);
        
				String haspa = "'";
      			String aux = "";
    	  String query = "select ID,NAME,TITLE,REVISION,OBJ_TYPE,FOLHA,TOTFOL,DTREVS,ORGCOP,PROC,NORMA,ITNOR from nm$catalog where STATUS in ('released', 'checked out') and aplic='2' and ";
    	 
   	  	String where = "";
   				
   				  				
//===============================================================================================================================   				
   				
   	System.out.println("Pesquisando Codigo");
			
		// Pesquisa o Código 
		
      if (!vcodigo.equals("")) {
		    	where = where + " " + aux  + " name like "+ haspa  + vcodigo + haspa;
		    	aux = "and";
		
		   }

		System.out.println("Pesquisando Titulo");		
				
		// Pesquisa o Título
				
		if (!vtitulo.equals("")) {
			where = where + " " + aux + " title like "+ haspa  + vtitulo + haspa;
			aux = "and";
		
		}


		System.out.println("Pesquisando Tipo");	
		
		// Pesquisa o Tipo
				
		if (!vtipo.equals("")) {
			where = where + " " + aux + " tipo like " + haspa + vtipo + haspa;
			aux = "and";
		
	  	}

	  System.out.println("Pesquisando Area");
	  
		// Pesquisa a Área
		
    if (!(varea==null)){
    	if (!varea.equals("")) {
    		where = where + " " + aux + " area like " + haspa + varea + haspa;
    		aux = "and";
    	
      }
    }
      
   	System.out.println("Pesquisando Classe");  
   	
    // Pesquisa a Classe
    
    if (!(vclasse==null)) {
    	 if(!vclasse.equals("")) {
    	where = where + " " + aux + " norcla like " + haspa + vclasse + haspa;
    	aux = "and";
    	
      }
    }	
   	
   	System.out.println("Pesquisando Norma");	
   	
   	// Pesquisa a Norma
   		
		if (!(vnorma==null)) {
			 if(!vnorma.equals("")) {
			where = where + " " + aux + " norma like " + haspa + vnorma + haspa;
			aux = "and";
		
		   }
		}

	  System.out.println("Pesquisando Item");
	  
		// Pesquisa o Item
   		
		if (!(vitem==null)) {
			  if(!vitem.equals("")) {
			where = where + " " + aux + " itnor like " + haspa + vitem + haspa;
			aux = "and";
		
		 }
		}
		System.out.println("Pesquisando Gestor");
		
		// Pesquisa o Gestor
   		
		if (!(vgestor==null)) {
			 if(!vgestor.equals("")) {
			where = where + " " + aux + " orgcop like " + haspa + vgestor + haspa;
			aux = "and";
		
		 }
		}
		
		System.out.println("Pesquisando Processo");

  	// Pesquisa o Processo
   		
		if (!(vprocesso==null)) {
			 if(!vprocesso.equals("")) {
			where = where + " " + aux + " proc like " + haspa + vprocesso + haspa;
			aux = "and";
		
	  	}
		}

 	  System.out.println("Pesquisando Elaborador");
 	  
  	// Pesquisa o Elaborador
   		
		if (!velaborador.equals("")) {
			where = where + " " + aux + " elabor like " + haspa + velaborador + haspa;
			aux = "and";
		
	   	
    }
	
	
	  	// Pesquisa a data de revisao
   		
		if (!datecondition1.equals("")) {
			if (dateday1.length()==1) {
				dateday1="0"+dateday1;	
			}
			
			if (datemonth1.length()==1) {
				datemonth1="0"+datemonth1;	
			}
			
			
		  where = where + " " + aux + " trunc(dtrevs,'DD') " + datecondition1 + " to_date('" + dateday1 + "/" + datemonth1 + "/" + dateyear1  + "','DD/MM/YYYY')";
	  	aux = "and";
			
	   	
    }


		if (!datecondition2.equals("")) {
			if (dateday2.length()==1) {
				dateday2="0"+dateday2;	
			}
			
			if (datemonth2.length()==1) {
				datemonth2="0"+datemonth2;	
			}
		
			where = where + " " + aux + " trunc(dtrevs,'DD') <= to_date('" + dateday2 + "/" + datemonth2 + "/" + dateyear2  + "','DD/MM/YYYY')";
			aux = "and";
		
	   	
    }
	
	
	
	
	

		
//==========================================================================================================================		

		query = query + " " + where + "and rownum <= "+ row + " order by name,revision";
		
 				
		QueryJDBC QueryJDBC = new QueryJDBC ();
		QueryJDBC.setSelectSQL(query);
		QueryJDBC.executarQuery();
		
		java.util.Vector Resultado = QueryJDBC.getResultadoVector();
			
		
		if (QueryJDBC.getException() != null) {
			out.println(QueryJDBC.getException());
			return;
		}
		
		if (Resultado.size() == 0 ) {
			out.println("<p><font SIZE=\"+2\">Nenhum documento encontrado.</font></p>");
			out.println("<p>Não foram encontrados documentos com permissão de visualização.</p>");
			out.println("<p>Verifique a digitação das palavras em sua pesquisa. Você também pode querer adicionar mais palavras, tornar outras opcionais, ou alterar o intervalo de datas. Estão disponíveis dicas de como pesquisar.</p>");	
			out.println("<p>Use o botão <b>Voltar</b> para retornar à página anterior.</p>");
		}


		if (Resultado.size() > 0 ) {
			
			out.println("<table border=\"0\" width=\"91%\">");
			out.println("<font FACE=\"Arial,Helvetica\"></font><font SIZE=\"-1\">Resultados:<strong>" + Resultado.size() + "</strong></font><tr>");
			out.println("<font FACE=\"Arial,Helvetica\"></font><font SIZE=\"-1\">Pesquisa:<strong>" + where + "</strong></font><tr>" );
			out.println("</table>");
			out.println("<table border=\"0\" width=\"100%\">");
			out.println("<tr>");
			out.println("<td width=\"2\"><font SIZE=\"2\" face=\"ARIAL\"></font></td>");
			out.println("<td width=\"43\"><font FACE=\"Arial\"></font><font SIZE=\"-1\"><strong>Ref.</strong></font></td>");
			out.println("<td width=\"146\"><font FACE=\"Arial\"></font><font SIZE=\"-1\"><strong>Código</strong></font></td>");
			//out.println("<td width=\"71\"><font FACE=\"Arial\"></font><font SIZE=\"-1\"><strong>Pág./Cap</strong></font></td>");
			//out.println("<td width=\"89\"><font FACE=\"Arial\"></font><font SIZE=\"-1\"><strong>Tot.Pág.</strong></font></td>");
			out.println("<td width=\"76\"><font FACE=\"Arial\"></font><font SIZE=\"-1\"><strong>Revisão</strong></font></td>");
			out.println("<td width=\"126\"><div align=\"center\"><font FACE=\"Arial\"></font><font SIZE=\"-1\"><strong>Data Revisão</strong></font></td></div>");
			out.println("<td width=\"117\"><font FACE=\"Arial\"></font><font SIZE=\"-1\"><strong>Órgão Gestor</strong></font></td>");
			out.println("<td width=\"88\"><font FACE=\"Arial\"></font><font SIZE=\"-1\"><strong>Processo</strong></font></td>");
			out.println("<td width=\"78\"><font FACE=\"Arial\"></font><font SIZE=\"-1\"><strong>Norma</strong></font></td>");
      out.println("<td width=\"60\"><font FACE=\"Arial\"></font><font SIZE=\"-1\"><strong>Item</strong></font></td>");
      out.println("</table>");
      

			for (int i = 0; i < Resultado.size(); i++) {
				String id = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(0));
				String name = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(1));
				String title = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(2));
				String revision = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(3));
		   	String obj_type = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(4));
				String folha = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(5));	
        String totfol = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(6));	
        String dtrevs = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(7));	
        String orgcop = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(8));	
        String proc = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(9));	
        String norma = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(10));	
        String itnor = new String ((java.lang.String)((java.util.Vector)(Resultado.elementAt(i))).elementAt(11));	
        
        
        
				out.println("<table border=\"0\" width=\"762\">");
				
				if (!obj_type.equals("document")){
				    out.println("<td width=\"2\"><img SRC=\" "+ novascsHome + "/file/image2.gif\" BORDER=\"0\"></a></td>");
				 // out.println("<td width=\"43\"><font SIZE=\"2\" face=\"ARIAL\"><a href=\"http://upson3:8090/servlet/DocDetalhes?opcao=det&docId=" + id + "\">Ref.</a></font></td>");
				    out.println("<td width=\"43\"><font SIZE=\"2\" face=\"ARIAL\"><a href=\" + novascsHome + /servlet/DocDetalhes?opcao=det&docId=" + id + "\">Ref.</a></font></td>");
				   
				    out.println("<td width=\"135\"><font SIZE=\"2\" face=\"ARIAL\">"+ name + "</font></td>");
				}
				else {
					out.println("<td width=\"2\"><a href=\"http://upson3:8080/document/" + id + "\"><img SRC=\" "+ novascsHome + "/file/image1.gif\" BORDER=\"0\"></a></td>");
					out.println("<td width=\"43\"><font SIZE=\"2\" face=\"ARIAL\"><a href=\"http://upson3:8090/servlet/DocDetalhes?opcao=det&docId=" + id + "\">Ref.</a></font></td>");
					out.println("<td width=\"135\"><font SIZE=\"2\" face=\"ARIAL\"><a href=\"http://upson3:8080/document/" + id + "\">" + name + "</a></font></td>");
				}
				
			//	out.println("<td width=\"69\"><font SIZE=\"2\" face=\"ARIAL\">"+ folha + "</font></td>");
		  //	out.println("<td width=\"90\"><font SIZE=\"2\" face=\"ARIAL\">"+ totfol + "</font></td>");
		  	out.println("<td width=\"76\"><font SIZE=\"2\" face=\"ARIAL\">"+ revision + "</font></td>");
		  	out.println("<td width=\"126\"><font SIZE=\"2\" face=\"ARIAL\">"+ dtrevs + "</font></td>");
		  	out.println("<td width=\"95\"><font SIZE=\"2\" face=\"ARIAL\">"+ orgcop + "</font></td>");
			 	out.println("<td width=\"81\"><font SIZE=\"2\" face=\"ARIAL\">"+ proc + "</font></td>");
				out.println("<td width=\"92\"><font SIZE=\"2\" face=\"ARIAL\">"+ norma + "</font></td>");
				out.println("<td width=\"59\"><font SIZE=\"2\" face=\"ARIAL\">"+ itnor + "</font></td>");
				out.println("<tr>");
				out.println("</table>");
				out.println("<table border=\"0\" width=\"100%\">");
				out.println("<td width=\"5\"><font SIZE=\"3\" face=\"ARIAL\"></font></td>");
				out.println("<td width=\"95\"><font SIZE=\"-1\" face=\"ARIAL\">"+ title + "</font></td>");
				out.println("</tr>");
				//out.println("<tr>");
				out.println("</table>");
			}
			
			out.println("<table border=\"0\" width=\"91%\">");
			out.println("<font FACE=\"Arial,Helvetica\"><font SIZE=\"-1\">Resultados:<strong>" + Resultado.size() + "</strong></font><tr>");
			out.println("<font FACE=\"Arial,Helvetica\"><font SIZE=\"-1\">Pesquisa:<strong>" + where + "</strong></font><tr>");
			out.println("</table>");	 
			out.println(cabecalhoHtml);
			out.println("</font>");
			out.println("</body>");
			out.println("</html>");
		}
		
		System.out.println("Fechando a conexao");
		QueryJDBC =  new QueryJDBC ();
		out.close();
		System.gc();			
    }
}
        	
		