package br.com.centralit.citcorpore.ajaxForms; import java.util.Collection; import java.util.Date; import java.util.HashMap; 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.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.export.JRXlsExporter; import net.sf.jasperreports.engine.export.JRXlsExporterParameter; import net.sf.jasperreports.engine.xml.JRXmlLoader; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLTable; import br.com.centralit.citcorpore.bean.GrupoDTO; import br.com.centralit.citcorpore.bean.PesquisaRequisicaoMudancaDTO; import br.com.centralit.citcorpore.bean.TipoMudancaDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.GrupoService; import br.com.centralit.citcorpore.negocio.RequisicaoMudancaService; import br.com.centralit.citcorpore.negocio.TipoMudancaService; 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.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; @SuppressWarnings({"rawtypes","unchecked"}) public class PesquisaRequisicaoMudanca extends AjaxFormAction { UsuarioDTO usuario; private String localeSession = null; @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { document.executeScript("$('#divTblRequisicaoMudanca').hide();"); this.preencherComboCidade(document, request, response); this.preencherComboTipoMudanca(document, request, response); } public void pesquisaRequisicaoMudanca(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { PesquisaRequisicaoMudancaDTO pesquisaRequisicaoMudancaDto = (PesquisaRequisicaoMudancaDTO) document.getBean(); RequisicaoMudancaService requisicaoMudancaService = (RequisicaoMudancaService) ServiceLocator.getInstance().getService(RequisicaoMudancaService.class, null); Collection<PesquisaRequisicaoMudancaDTO> listRequisicaoMudancaByCriterios = requisicaoMudancaService.listRequisicaoMudancaByCriterios(pesquisaRequisicaoMudancaDto); if (listRequisicaoMudancaByCriterios != null) { HTMLTable tblRequisicaoMudanca = document.getTableById("tblRequisicaoMudanca"); tblRequisicaoMudanca.deleteAllRows(); for (PesquisaRequisicaoMudancaDTO requisicaoMudanca : listRequisicaoMudancaByCriterios) { requisicaoMudanca.setDataHoraInicioStr(UtilDatas.convertDateToString(TipoDate.TIMESTAMP_DEFAULT, requisicaoMudanca.getDataHoraInicio(), WebUtil.getLanguage(request))); tblRequisicaoMudanca.addRow(requisicaoMudanca, new String[] { "idRequisicaoMudanca", "tipo", "status", "titulo", "motivo", "descricao", "nomeProprietario", "nomeSolicitante", "nomeCategoriaMudanca", "dataHoraInicioStr", "nomeGrupoAtual" }, null, null, null, null, null); document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblRequisicaoMudanca', 'tblRequisicaoMudanca');"); } document.executeScript("$('#divTblRequisicaoMudanca').show();"); } else { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.resultado")); document.executeScript("$('#divTblRequisicaoMudanca').hide();"); } document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); } /** * fireEvent para impress�o dos relatorio. * * @param document * @param request * @param response * @throws Exception * @author thays.araujo */ public void imprimirRelatorioRequisicaoMudanca(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = ((HttpServletRequest) request).getSession(); PesquisaRequisicaoMudancaDTO pesquisaRequisicaoMudancaDto = (PesquisaRequisicaoMudancaDTO) document.getBean(); GrupoDTO grupoDto = new GrupoDTO(); GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null); usuario = WebUtil.getUsuario(request); RequisicaoMudancaService requisicaoMudancaService = (RequisicaoMudancaService) ServiceLocator.getInstance().getService(RequisicaoMudancaService.class, null); Collection<PesquisaRequisicaoMudancaDTO> listRequisicaoMudancaByCriterios = requisicaoMudancaService.listRequisicaoMudancaByCriterios(pesquisaRequisicaoMudancaDto); if (listRequisicaoMudancaByCriterios != null) { Date dt = new Date(); String strCompl = "" + dt.getTime(); String caminhoJasper = CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioPesquisaRequisicaoMudanca.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, "pesquisaRequisicaoMudanca.tituloRelatorioRequisicaoMudanca")); parametros.put("CIDADE", UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioCidade")); parametros.put("DATA_HORA", UtilDatas.getDataHoraAtual()); parametros.put("NOME_USUARIO", usuario.getNomeUsuario()); parametros.put("dataInicio", pesquisaRequisicaoMudancaDto.getDataInicio()); parametros.put("dataFim", pesquisaRequisicaoMudancaDto.getDataFim()); parametros.put("totalRequisicaoMudanca", listRequisicaoMudancaByCriterios.size()); parametros.put("numero", pesquisaRequisicaoMudancaDto.getIdRequisicaoMudanca()); parametros.put("status", pesquisaRequisicaoMudancaDto.getStatus()); parametros.put("nomeSolicitante", pesquisaRequisicaoMudancaDto.getNomeSolicitante()); parametros.put("proprietario", pesquisaRequisicaoMudancaDto.getNomeProprietario()); parametros.put("exibirCampoDescricao", pesquisaRequisicaoMudancaDto.getExibirCampoDescricao()); parametros.put("tipo", pesquisaRequisicaoMudancaDto.getTipo()); parametros.put("nomeItemConfiguracao", pesquisaRequisicaoMudancaDto.getNomeItemConfiguracao()); parametros.put("nomeCategoriaMudanca", pesquisaRequisicaoMudancaDto.getNomeCategoriaMudanca()); if (pesquisaRequisicaoMudancaDto.getIdGrupoAtual() != null) { grupoDto.setIdGrupo(pesquisaRequisicaoMudancaDto.getIdGrupoAtual()); grupoDto = (GrupoDTO) grupoService.restore(grupoDto); parametros.put("grupoSolucionador", grupoDto.getNome()); } else { parametros.put("grupoSolucionador", ""); } /* if (pesquisaRequisicaoMudancaDto.getIdCategoriaMudanca() != null) { categoriaMudancaDto.setIdCategoriaMudanca(pesquisaRequisicaoMudancaDto.getIdCategoriaMudanca()); categoriaMudancaDto = (CategoriaMudancaDTO) categoriaMudancaService.restore(categoriaMudancaDto); parametros.put("categoria", categoriaMudancaDto.getNomeCategoria()); }else{ parametros.put("categoria", ""); }*/ if (pesquisaRequisicaoMudancaDto.getFormatoArquivoRelatorio().equalsIgnoreCase("pdf")) { this.gerarRelatorioFormatoPdf(listRequisicaoMudancaByCriterios, caminhoJasper, parametros, diretorioReceita, strCompl, document, diretorioRelativoOS, usuario); } else { this.gerarRelatorioFormatoXls(listRequisicaoMudancaByCriterios, parametros, diretorioReceita, strCompl, document, diretorioRelativoOS, usuario); } } else { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioVazio")); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); } /** * Gerar relat�rio no formato .pdf * * @param listRequisicaoMudancaByCriterios * @param caminhoJasper * @param parametros * @param diretorioReceita * @param strCompl * @param document * @param diretorioRelativoOS * @param usuario * @throws Exception * @author thays.araujo */ public void gerarRelatorioFormatoPdf(Collection<PesquisaRequisicaoMudancaDTO> listRequisicaoMudancaByCriterios, String caminhoJasper, Map<String, Object> parametros, String diretorioReceita, String strCompl, DocumentHTML document, String diretorioRelativoOS, UsuarioDTO usuario) throws Exception { JRDataSource dataSource = new JRBeanCollectionDataSource(listRequisicaoMudancaByCriterios); JasperPrint print = JasperFillManager.fillReport(caminhoJasper, parametros, dataSource); JasperExportManager.exportReportToPdfFile(print, diretorioReceita + "/RelatorioPesquisaRequisicaoMudanca" + strCompl + "_" + usuario.getIdUsuario() + ".pdf"); document.executeScript("window.open('" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/printPDF/printPDF.jsp?url=" + diretorioRelativoOS + "/RelatorioPesquisaRequisicaoMudanca" + strCompl + "_" + usuario.getIdUsuario() + ".pdf')"); } /** * Gerar relat�rio no formato .xls * * @param listRequisicaoMudancaByCriterios * @param parametros * @param diretorioReceita * @param strCompl * @param document * @param diretorioRelativoOS * @param usuario * @throws Exception * @author thays.araujo */ public void gerarRelatorioFormatoXls(Collection<PesquisaRequisicaoMudancaDTO> listRequisicaoMudancaByCriterios, Map<String, Object> parametros, String diretorioReceita, String strCompl, DocumentHTML document, String diretorioRelativoOS, UsuarioDTO usuario) throws Exception { JRDataSource dataSource = new JRBeanCollectionDataSource(listRequisicaoMudancaByCriterios); JasperDesign desenho = JRXmlLoader.load(CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioPesquisaRequisicaoMudancaXls.jrxml"); JasperReport relatorio = JasperCompileManager.compileReport(desenho); JasperPrint impressao = JasperFillManager.fillReport(relatorio, parametros, dataSource); JRXlsExporter exporter = new JRXlsExporter(); exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, impressao); exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.TRUE); exporter.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME, diretorioReceita + "/RelatorioPesquisaRequisicaoMudanca" + strCompl + "_" + usuario.getIdUsuario() + ".xls"); exporter.exportReport(); document.executeScript("window.open('" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/printPDF/printPDF.jsp?url=" + diretorioRelativoOS + "/RelatorioPesquisaRequisicaoMudanca" + strCompl + "_" + usuario.getIdUsuario() + ".xls')"); } public void preencherComboCidade(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { document.getSelectById("idGrupoAtual").removeAllOptions(); GrupoService grupoSegurancaService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null); Collection colGrupos = grupoSegurancaService.findGruposAtivos(); document.getSelectById("idGrupoAtual").addOption("", "-- " + UtilI18N.internacionaliza(request, "citcorpore.comum.todos") + " --"); document.getSelectById("idGrupoAtual").addOptions(colGrupos, "idGrupo", "nome", null); } public void preencherComboTipoMudanca(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { document.getSelectById("comboTipo").removeAllOptions(); TipoMudancaService tipoMudancaService = (TipoMudancaService) ServiceLocator.getInstance().getService(TipoMudancaService.class, null); Collection<TipoMudanca> listTipoMudanca = tipoMudancaService.getAtivos(); document.getSelectById("comboTipo").addOption("", "-- " + UtilI18N.internacionaliza(request, "citcorpore.comum.todos") + " --"); document.getSelectById("comboTipo").addOptions(listTipoMudanca, "idTipomudanca", "nomeTipoMudanca", null); } public Class getBeanClass() { return PesquisaRequisicaoMudancaDTO.class; } public void validacaoCategoriaMudanca(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { PesquisaRequisicaoMudancaDTO pesquisaRequisicaoMudancaDto = (PesquisaRequisicaoMudancaDTO) document.getBean(); TipoMudancaService tipoMudancaService = (TipoMudancaService)ServiceLocator.getInstance().getService(TipoMudancaService.class, null); TipoMudancaDTO tipoMudancaDto = new TipoMudancaDTO(); if(pesquisaRequisicaoMudancaDto.getIdTipoMudanca()!= null){ tipoMudancaDto.setIdTipoMudanca(pesquisaRequisicaoMudancaDto.getIdTipoMudanca()); tipoMudancaDto = (TipoMudancaDTO) tipoMudancaService.restore(tipoMudancaDto); if(tipoMudancaDto.getNomeTipoMudanca()!=null && tipoMudancaDto.getNomeTipoMudanca().equalsIgnoreCase("Normal")){ document.executeScript("$('#nomeCategoriaMudanca').attr('disabled', " + false + ");"); document.executeScript("$('#div_categoria').show();"); }else{ document.executeScript("$('#div_categoria').hide();"); document.executeScript("$('#nomeCategoriaMudanca').attr('disabled', " + true + ");"); } } } }