View Javadoc

1   /*
2    * Created on 19/05/2006
3    *
4    */
5   package ecar.servlet.relatorio;
6   
7   import java.util.Date;
8   import java.util.Iterator;
9   import java.util.List;
10  
11  import javax.servlet.http.HttpServletRequest;
12  
13  import comum.util.Data;
14  import comum.util.Mensagem;
15  import comum.util.Pagina;
16  import comum.util.Util;
17  import comum.util.XmlBuilder;
18  
19  import ecar.dao.RegControleAcessoRcaDao;
20  import ecar.exception.ECARException;
21  import ecar.pojo.RegControleAcessoRca;
22  
23  public class RelatorioAcessoUsuario extends AbstractServletReportXmlXsl {
24  
25  	private static final long serialVersionUID = 3387112017468241181L;
26  	private Date dataInicio = null;
27  	private Date dataFim = null;
28  	private String codUsu;
29  	private String nomeUsu;
30  	private List usuarios;
31  	private String ordenacao;
32  	
33  	/**
34  	 * Gera XML.<br>
35  	 * 
36  	 * @author N/C
37       * @since N/C
38       * @version N/C
39  	 * @param HttpServletRequest request
40  	 * @return StringBuffer
41  	 * @throws ECARException
42  	 */
43  	public StringBuffer getXml(HttpServletRequest request) throws ECARException{
44  		XmlBuilder builder = new XmlBuilder();
45  		
46  		Util.liberarImagem();
47  		
48  		if (!"".equals(Pagina.getParamStr(request, "dataInicio")))
49  			dataInicio = Data.parseDate(Pagina.getParamStr(request, "dataInicio"));
50  		if (!"".equals(Pagina.getParamStr(request, "dataFim")))
51  			dataFim = Data.parseDate(Pagina.getParamStr(request, "dataFim"));
52  		
53  		codUsu = Pagina.getParamStr(request, "codUsu");
54  		nomeUsu = Pagina.getParamStr(request, "nomeUsu");
55  		ordenacao = Pagina.getParamStr(request, "ordenacao");
56  
57  		builder.addNode(
58  				"relatorio", 
59  				" titulo=\"" + builder.normalize(Pagina.getParamStr(request, "titulo_sistema")) + "\"" +
60  				" dataHora=\"" + builder.normalize(Data.parseDateHourMinuteSecond(Data.getDataAtual())) + "\""
61  				);
62  		
63  		
64  		RegControleAcessoRcaDao regDao = new RegControleAcessoRcaDao(request);
65  		if (!"".equals(codUsu)){
66  			usuarios = regDao.listar(Long.valueOf(codUsu), dataInicio, dataFim, ordenacao);
67  		} else {
68  			usuarios = regDao.listar(null, dataInicio, dataFim, ordenacao);
69  		}
70  		
71  		geraXMLItens(builder, request);
72  		
73  		builder.closeNode("relatorio");
74  		
75          return builder.toStringBuffer();
76      }
77      
78  	/**
79  	 * Pega o nome do arquivo xml.<br>
80  	 * 
81  	 * @author N/C
82       * @since N/C
83       * @version N/C
84  	 * @return String
85  	 */
86      public String getXslFileName() {
87          return "relatorioAcessoUsuario.xsl";
88      }
89      
90      /**
91       * Pega o erro da pagina.<br>
92       * 
93       * @author N/C
94       * @since N/C
95       * @version N/C
96       * @param HttpServletRequest request
97       * @param String mensagem
98       * @return String
99       */
100     public String getErrorPage(HttpServletRequest request, String mensagem){        
101         String errorPage = "relatorios/rel_acessoUsuario.jsp?msgOperacao=" + mensagem; 
102         return errorPage;
103     }
104     
105     /**
106      * Gera itens XML.<br>
107      * 
108      * @author N/C
109      * @since N/C
110      * @version N/C
111      * @param XmlBuilder builder
112      * @param HttpServletRequest request
113      * @throws ECARException
114      */
115     public void geraXMLItens (XmlBuilder builder, HttpServletRequest request) throws ECARException {
116     	String coluna1 = "Nome do Usuário";
117     	String coluna2 = "Data/Hora do Login";
118     	
119     	if(!"usuario".equals(ordenacao)) {
120         	coluna1 = "Data/Hora do Login";
121         	coluna2 = "Nome do Usuário";
122     	}
123     		
124     	builder.addNode("filtro");
125     	
126     	builder.addClosedNode("campo", 
127 				" label=\"" + builder.normalize("Ordenado por: ") + "\"" +
128 				" valor=\"" + builder.normalize(coluna1) + "\"");
129     	
130     	if (!"".equals(codUsu)){
131     		builder.addClosedNode("campo", 
132     				" label=\"" + builder.normalize("Acessos do Usuário: ") + "\"" +
133     				" valor=\"" + builder.normalize(nomeUsu) + "\"");
134     	} else {
135     		builder.addClosedNode("campo", 
136     				" label=\"" + builder.normalize("Acessos de Todos os Usuários") + "\"" +
137     				" valor=\"" + builder.normalize("") + "\"");
138     	}
139     	
140 		builder.addClosedNode("campo", 
141 				" label=\"" + builder.normalize("Período de Acesso: ") + "\"" +
142 				" valor=\"" + builder.normalize(Data.parseDate(dataInicio) + " até " + Data.parseDate(dataFim)) + "\"");
143     	
144     	builder.closeNode("filtro");
145 
146     	builder.addNode("controleAcesso", "coluna1=\"" + coluna1 + "\" " + "coluna2=\"" + coluna2 + "\"");
147     	
148     	if(usuarios == null || usuarios.isEmpty()) {
149     		builder.addClosedNode("itemAcesso", 
150     				" campo1=\"" + new Mensagem(request.getSession().getServletContext()).getMensagem("relatorioAcessoUsuario.semRegistro.periodoInformado") + "\"");
151     	} else {
152 	    	Iterator itUsu = usuarios.iterator();
153 	    	while (itUsu.hasNext()){
154 	    		
155 	    		RegControleAcessoRca reg = (RegControleAcessoRca)itUsu.next();
156 	    		
157 	    		String nomeUsuario = builder.normalize(reg.getUsuarioUsu().getNomeUsuSent());
158 	    		String dataAcesso = builder.normalize("" + Data.parseDateHourMinuteSecond(reg.getDataAcessoRca()));
159 	
160 	    		if("usuario".equals(ordenacao)) {
161 		    		builder.addClosedNode("itemAcesso", 
162 		    				" campo1=\"" + nomeUsuario + "\"" +
163 		    				" campo2=\"" + dataAcesso + "\"");
164 	    		} else {
165 		    		builder.addClosedNode("itemAcesso", 
166 		    				" campo1=\"" + dataAcesso + "\"" +
167 		    				" campo2=\"" + nomeUsuario + "\"");
168 	    		}
169 	    	}
170     	}
171     	builder.closeNode("controleAcesso");
172     }
173 }