package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import net.sf.jasperreports.engine.JRDataSource; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLElement; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.centralit.citcorpore.util.Enumerados.TipoDate; import br.com.centralit.citcorpore.util.UtilRelatorio; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.dto.LogDados; import br.com.citframework.service.LogDadosService; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; /** * @author Fl�vio * */ public class LogController extends AjaxFormAction { UsuarioDTO usuario; private String localeSession = null; public void load (DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usrDto = (UsuarioDTO) WebUtil.getUsuario(request); if(usrDto == null){ return; } document.getSelectById("nomeTabela").removeAllOptions(); LogDadosService logsService = (LogDadosService) ServiceLocator.getInstance().getService(LogDadosService.class, null); Collection<LogDados> col = logsService.listNomeTabela(); document.getSelectById("nomeTabela").addOption("", "-- "+UtilI18N.internacionaliza(request, "citcorpore.comum.todos")+" --"); document.getSelectById("nomeTabela").addOptions(col, "nomeTabela", "nomeTabela", null); } public void contentLog(DocumentHTML document, List<LogDados> listLog, HttpServletRequest request) throws Exception { StringBuilder html = new StringBuilder(); html.append("<div id='table'><table class='table' width='1850px' cellpadding='3' cellspacing='1' style='letter-spacing: 0px;'>"); html.append( "<thead>" + " <tr style='background-color: #eaeaea !important;'>" + " <th style='width:15%;'>" + UtilI18N.internacionaliza(request, "logs.nomeUsuario") + "</th>" + " <th style='width:10%;'>" + UtilI18N.internacionaliza(request, "logs.tabela") + "</th>" + " <th style='width:5%;'>" + UtilI18N.internacionaliza(request, "logs.operacao") + "</th>" + " <th style='width:10%;'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.datahora") + "</th>" + " <th style='width:60%;'>" + UtilI18N.internacionaliza(request, "logs.dados") + "</th>" + " </tr>" + "</thead><tbody>"); if(!listLog.isEmpty()) { for (LogDados logDados : listLog) { html.append( "<tr bgcolor='#ededed'>" + "<td style='text-align: left;'>" + logDados.getNomeUsuario() + "</td>" + "<td style='text-align: left;'>" + logDados.getNomeTabela() + "</td>" + "<td style='text-align: left;'>" + (logDados.getOperacao().equals("I") ? UtilI18N.internacionaliza(request, "logs.inclusao") : UtilI18N.internacionaliza(request, "logs.alteracao")) + "</td>" + "<td style='text-align: left;'>" + (logDados.getDataLog() == null ? "" : UtilDatas.convertDateToString(TipoDate.TIMESTAMP_WITH_SECONDS, logDados.getDataLog(), WebUtil.getLanguage(request))) + "</td>" + "<td style='text-align: left;'>" + logDados.getDados() + "</td>" + "</tr>"); } } else { html.append("<tr><td colspan='3'>" + UtilI18N.internacionaliza(request, "MSG04") + "</td></tr>"); } html.append("</tbody></table>"); HTMLElement page = document.getElementById("page") ; page.setInnerHTML(html.toString()); } public void filtrar (DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = (UsuarioDTO) WebUtil.getUsuario(request); if (usuario == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } LogDados log = (LogDados) document.getBean(); LogDadosService logsService = (LogDadosService) ServiceLocator.getInstance().getService(LogDadosService.class, null); if (log.getDataInicio() == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.validacao.datainicio")); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } if (log.getDataFim() == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.validacao.datafim")); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } ArrayList<LogDados> colLogs = (ArrayList<LogDados>) logsService.listLogs(log); if(colLogs == null){ colLogs = new ArrayList<LogDados>(); } contentLog(document, colLogs, request); } /** * Faz a impress�o do relat�rio no formato pdf. * * @param document * @param request * @param response * @throws Exception * @author Flavio.santana */ public void imprimirRelatorio(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = ((HttpServletRequest) request).getSession(); LogDados logDados = (LogDados) document.getBean(); LogDadosService logDadosService = (LogDadosService) ServiceLocator.getInstance().getService(LogDadosService.class, null); usuario = WebUtil.getUsuario(request); if (usuario == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } if (logDados.getDataInicio() == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.validacao.datainicio")); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } if (logDados.getDataFim() == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.validacao.datafim")); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } /*Iterando a lista*/ ArrayList<LogDados> colLogs = (ArrayList<LogDados>) logDadosService.listLogs(logDados); if(colLogs == null) { colLogs = new ArrayList<LogDados>(); } Date dt = new Date(); String strCompl = "" + dt.getTime(); String caminhoJasper = CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioLogs.jasper"; String diretorioReceita = CITCorporeUtil.CAMINHO_REAL_APP + "/tempFiles"; String diretorioRelativoOS = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/tempFiles"; Map<String, Object> parametros = new HashMap<String, Object>(); parametros = UtilRelatorio.trataInternacionalizacaoLocale(session, parametros); parametros.put("TITULO_RELATORIO", UtilI18N.internacionaliza(request, "relatorioLogs.titulo")); parametros.put("CIDADE", UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioCidade")); parametros.put("DATA_HORA", UtilDatas.getDataHoraAtual()); parametros.put("NOME_USUARIO", usuario.getNomeUsuario()); parametros.put("dataInicio", logDados.getDataInicio()); parametros.put("dataFim", logDados.getDataFim()); if (colLogs.size() == 0) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioVazio")); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } JRDataSource dataSource = new JRBeanCollectionDataSource(colLogs); JasperPrint print = JasperFillManager.fillReport(caminhoJasper, parametros, dataSource); JasperExportManager.exportReportToPdfFile(print, diretorioReceita + "/RelatorioLogs" + strCompl + "_" + usuario.getIdUsuario() + ".pdf"); document.executeScript("window.open('" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/printPDF/printPDF.jsp?url=" + diretorioRelativoOS + "/RelatorioLogs" + strCompl + "_" + usuario.getIdUsuario() + ".pdf')"); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); } public Class<LogDados> getBeanClass(){ return LogDados.class; } }