diff --git a/cit-contratos-api/src/main/java/br/com/centralit/api/dao/impl/RegistroOcorrenciaDaoHibernate.java b/cit-contratos-api/src/main/java/br/com/centralit/api/dao/impl/RegistroOcorrenciaDaoHibernate.java index 6acd8d3..6f1f0a0 100644 --- a/cit-contratos-api/src/main/java/br/com/centralit/api/dao/impl/RegistroOcorrenciaDaoHibernate.java +++ b/cit-contratos-api/src/main/java/br/com/centralit/api/dao/impl/RegistroOcorrenciaDaoHibernate.java @@ -44,22 +44,17 @@ public class RegistroOcorrenciaDaoHibernate extends CitGenericDAOImpl implements return this.search(search, this.persistentClass); } + @Override public PersistentObject buscarUltimoRegistroPorDataEmissao(String property, Calendar dataEmissaoOcorrencia, Long idOrganizacao) { int anoInformado = dataEmissaoOcorrencia.get(Calendar.YEAR); Calendar dataInicial = Calendar.getInstance(); - dataInicial.set(anoInformado, Calendar.JANUARY, 1); - dataInicial.set(Calendar.HOUR_OF_DAY,00); - dataInicial.set(Calendar.MINUTE,00); - dataInicial.set(Calendar.SECOND,00); + dataInicial.set(anoInformado, Calendar.JANUARY, 1, 00, 00, 00); dataInicial.set(Calendar.MILLISECOND,0); Calendar dataFinal = Calendar.getInstance(); - dataFinal.set(anoInformado, Calendar.DECEMBER, 31); - dataFinal.set(Calendar.HOUR_OF_DAY,23); - dataFinal.set(Calendar.MINUTE,59); - dataFinal.set(Calendar.SECOND,59); + dataFinal.set(anoInformado, Calendar.DECEMBER, 31, 23, 59, 59); dataFinal.set(Calendar.MILLISECOND,999); Search search = new Search(); @@ -91,4 +86,4 @@ public class RegistroOcorrenciaDaoHibernate extends CitGenericDAOImpl implements return totalGlosa; } -} +} \ No newline at end of file diff --git a/cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/EventoRegistroNaoConformidadeServiceImpl.java b/cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/EventoRegistroNaoConformidadeServiceImpl.java index cb8e0f4..3c777c2 100644 --- a/cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/EventoRegistroNaoConformidadeServiceImpl.java +++ b/cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/EventoRegistroNaoConformidadeServiceImpl.java @@ -1,13 +1,21 @@ package br.com.centralit.api.service.impl; +import java.io.InputStream; import java.sql.Connection; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperCompileManager; +import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.design.JasperDesign; +import net.sf.jasperreports.engine.xml.JRXmlLoader; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -33,6 +41,7 @@ import br.com.centralit.framework.model.Dominio; import br.com.centralit.framework.model.Usuario; import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; import br.com.centralit.framework.util.UtilColecao; +import br.com.centralit.framework.util.UtilDataBase; import br.com.centralit.framework.util.UtilObjeto; /** @@ -141,7 +150,7 @@ public class EventoRegistroNaoConformidadeServiceImpl extends GenericServiceImpl } if (!UtilColecao.isVazio(documento.getAnexos())){ - Anexo anexo = (Anexo) ((List)documento.getAnexos()).get(0); + Anexo anexo = ((List)documento.getAnexos()).get(0); List listaAnexo = new ArrayList(); listaAnexo.add(this.anexoService.getReference(anexo.getId())); documento.setAnexos(listaAnexo); @@ -170,9 +179,37 @@ public class EventoRegistroNaoConformidadeServiceImpl extends GenericServiceImpl } @Override - public JasperPrint getJasperPrintRelatorioRegistroNaoConformidade(Long idContrato, Date dataInicial, Date dataFinal, + public JasperPrint getJasperPrintRelatorioRegistroNaoConformidade(Long idContrato, Date dataInicial, Date dataFinal, Connection conn, Usuario usuarioLogado, String titulo) throws JRException { - // TODO Auto-generated method stub - return null; + + InputStream input = null; + InputStream inputSub = null; + JasperPrint jasperPrint = null; + try { + input = this.getClass().getResourceAsStream("/reports/templateRetrato.jrxml"); + inputSub = this.getClass().getResourceAsStream("/reports/relatorioEventoNaoConformidade.jrxml"); + + JasperDesign jasperDesign = JRXmlLoader.load(input); + JasperDesign jasperDesignSub = JRXmlLoader.load(inputSub); + JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); + JasperReport jasperReportSub = JasperCompileManager.compileReport(jasperDesignSub); + + Map subReportParameters = new HashMap(); + subReportParameters.put("contratoId", idContrato); + subReportParameters.put("dataInicial", dataInicial); + subReportParameters.put("dataFinal", dataFinal); + + Map parameters = new HashMap(); + parameters.put("ORGANIZACAO_ID", usuarioLogado.getOrganizacao().getId()); + parameters.put("TITULO", titulo); + parameters.put("SUBREPORT_DIR", jasperReportSub); + parameters.put("SUBREPORT_PARAMETERS_MAP", subReportParameters); + parameters.put("REPORT_CONNECTION", conn); + + jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn); + } finally { + UtilDataBase.closeResources(inputSub); + } + return jasperPrint; } } diff --git a/cit-contratos-web/src/main/java/br/com/centralit/controller/ContratoEventoController.java b/cit-contratos-web/src/main/java/br/com/centralit/controller/ContratoEventoController.java index 3277763..548d686 100644 --- a/cit-contratos-web/src/main/java/br/com/centralit/controller/ContratoEventoController.java +++ b/cit-contratos-web/src/main/java/br/com/centralit/controller/ContratoEventoController.java @@ -136,8 +136,8 @@ public class ContratoEventoController extends GenericController List lista = new ArrayList(); - Date dataInicial = dataInicio != null ? UtilDate.jsonToDate(dataInicio) : null; - Date dateFinal = dataFim != null ? UtilDate.jsonToDate(dataFim) : null; + Date dataInicial = StringUtils.isNotBlank(dataInicio) ? UtilDate.jsonToDate(dataInicio) : null; + Date dateFinal = StringUtils.isNotBlank(dataFim) ? UtilDate.jsonToDate(dataFim) : null; Collection listaEventos = this.contratoEventoService.findAllByContratoIntervalDataEmissao(contratoId, dataInicial, dateFinal); @@ -224,17 +224,17 @@ public class ContratoEventoController extends GenericController @ResponseBody @RequestMapping(method = RequestMethod.GET, value = "/pdfGerarRelatorios") public void gerarRelatorios( - @RequestParam(value = "idsTiposRelatorio") String idsRelatoriosSelecionados, + @RequestParam(value = "idsTiposRelatorio") String idsRelatoriosSelecionados, @RequestParam(value = "idContrato") Long idContrato, - @RequestParam(value = "dataInicial", required = false) String dataInicial, + @RequestParam(value = "dataInicial", required = false) String dataInicial, @RequestParam(value = "dataFinal", required = false) String dataFinal, @RequestParam(value = "download") boolean download, HttpServletResponse response) throws SQLException, JRException, IOException { - + Long[] arrayLong = getArrayLong(idsRelatoriosSelecionados); - Date dataInicio = StringUtils.isEmpty(dataInicial) || dataInicial.equalsIgnoreCase("null") ? null : UtilDate.jsonToDate(UtilDate.dataInicioFormatada(dataInicial)); - Date dataFim = StringUtils.isEmpty(dataFinal) || dataFinal.equalsIgnoreCase("null") ? null : UtilDate.jsonToDate(UtilDate.dataInicioFormatada(dataFinal)); - + Date dataInicio = StringUtils.isBlank(dataInicial) ? null : UtilDate.jsonToDate(UtilDate.dataInicioFormatada(dataInicial)); + Date dataFim = StringUtils.isBlank(dataFinal) ? null : UtilDate.jsonToDate(UtilDate.dataInicioFormatada(dataFinal)); + this.contratoEventoService.gerarRelatorios(arrayLong, idContrato, dataInicio, dataFim, download, response); } diff --git a/cit-contratos-web/src/main/resources/reports/relatorioEventoEmpenho.jrxml b/cit-contratos-web/src/main/resources/reports/relatorioEventoEmpenho.jrxml index 3872e6d..af2bd1b 100644 --- a/cit-contratos-web/src/main/resources/reports/relatorioEventoEmpenho.jrxml +++ b/cit-contratos-web/src/main/resources/reports/relatorioEventoEmpenho.jrxml @@ -1,6 +1,6 @@ - + @@ -83,16 +83,16 @@ order by evEmpenho.id asc]]> contrato.numeroanocontrato as numeroanocontrato, (contrato.valorcontrato + (CASE WHEN -(SELECT count(valoraditivo) FROM cnt_ev_aditivo WHERE contratoaditivo_id = $P{contratoId} AND tipoalteracaovalor_id = (SELECT id FROM dominio WHERE chave = 'tipoAlteracaoValor' AND codigo = 1)) > 0 +(SELECT count(valoraditivo) FROM cnt_ev_aditivo WHERE contratoaditivo_id = evEmpenho.contrato_id AND tipoalteracaovalor_id = (SELECT id FROM dominio WHERE chave = 'tipoAlteracaoValor' AND codigo = 1)) > 0 THEN -(SELECT sum(valoraditivo) FROM cnt_ev_aditivo WHERE contratoaditivo_id = $P{contratoId} AND tipoalteracaovalor_id = (SELECT id FROM dominio WHERE chave = 'tipoAlteracaoValor' AND codigo = 1)) +(SELECT sum(valoraditivo) FROM cnt_ev_aditivo WHERE contratoaditivo_id = evEmpenho.contrato_id AND tipoalteracaovalor_id = (SELECT id FROM dominio WHERE chave = 'tipoAlteracaoValor' AND codigo = 1)) ELSE 0 END) - (CASE WHEN -(SELECT count(valoraditivo) FROM cnt_ev_aditivo WHERE contratoaditivo_id = $P{contratoId} AND tipoalteracaovalor_id = (SELECT id FROM dominio WHERE chave = 'tipoAlteracaoValor' AND codigo = 2)) > 0 +(SELECT count(valoraditivo) FROM cnt_ev_aditivo WHERE contratoaditivo_id = evEmpenho.contrato_id AND tipoalteracaovalor_id = (SELECT id FROM dominio WHERE chave = 'tipoAlteracaoValor' AND codigo = 2)) > 0 THEN -(SELECT sum(valoraditivo) FROM cnt_ev_aditivo WHERE contratoaditivo_id = contrato.id AND tipoalteracaovalor_id = (SELECT id FROM dominio WHERE chave = 'tipoAlteracaoValor' AND codigo = 2)) +(SELECT sum(valoraditivo) FROM cnt_ev_aditivo WHERE contratoaditivo_id = evEmpenho.contrato_id AND tipoalteracaovalor_id = (SELECT id FROM dominio WHERE chave = 'tipoAlteracaoValor' AND codigo = 2)) ELSE 0 END)) as valorContrato @@ -104,21 +104,16 @@ left join dominio as tipoEvento on tipoEvento.id = evEmpenho.tipoevento_id where evEmpenho.contrato_id = $P{contratoId} and tipoEvento.chave = 'tipoEventoContrato' and -tipoEvento.codigo = '6']]> +tipoEvento.codigo = '6' + +limit 1]]> - - - - - - - - + - + @@ -127,52 +122,79 @@ tipoEvento.codigo = '6']]> - + - + - - - - - - + - + - + + - + + + + + + + + + - - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -355,24 +377,6 @@ tipoEvento.codigo = '6']]> - - - - - - - - - - - - - - - - diff --git a/cit-contratos-web/src/main/resources/reports/relatorioEventoNaoConformidade.jrxml b/cit-contratos-web/src/main/resources/reports/relatorioEventoNaoConformidade.jrxml new file mode 100644 index 0000000..03cf01f --- /dev/null +++ b/cit-contratos-web/src/main/resources/reports/relatorioEventoNaoConformidade.jrxml @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ConsultaRelatoriosController.js b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ConsultaRelatoriosController.js index f6f2135..5bbd7ff 100644 --- a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ConsultaRelatoriosController.js +++ b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ConsultaRelatoriosController.js @@ -59,25 +59,28 @@ citApp.controller('ConsultaRelatoriosController', ['$scope', '$filter', '$timeou } } $scope.setLoadingGet(true); - if($scope.consultaRelatoriosForm.$valid && $scope.isTiposRelatorioSelecionado) { - - var idsRelatoriosSelecionados = ''; - angular.forEach($scope.tiposRelatorios, function(relatorio) { - if(relatorio.$selected){ - idsRelatoriosSelecionados += relatorio.id + ','; - } - }); - - $scope.url = '/cit-contratos-web/rest/contratoEvento/pdfGerarRelatorios?idsTiposRelatorio=' - + idsRelatoriosSelecionados + '&idContrato=' + $scope.contrato.id + '&dataInicial=' + $scope.dataInicial + '&dataFinal=' + $scope.dataFinal; - $scope.visualizarRelatorio($scope.url, $translate.instant('CONTRATOS.LABEL.RELATORIOS')); - $scope.setLoading(false); - - } else { + if($scope.consultaRelatoriosForm.$invalid && !$scope.isTiposRelatorioSelecionado) { $scope.setLoading(false); //Mensagem de erro de campos obrigatorios não preenchidos $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + return; } + var idsRelatoriosSelecionados = ''; + angular.forEach($scope.tiposRelatorios, function(relatorio) { + if(relatorio.$selected){ + idsRelatoriosSelecionados += relatorio.id + ','; + } + }); + + var dataInicial = $scope.dataInicial == null ? '' : $scope.dataInicial; + var dataFinal = $scope.dataFinal == null ? '' : $scope.dataFinal; + $scope.url = '/cit-contratos-web/rest/contratoEvento/pdfGerarRelatorios?' + + 'idsTiposRelatorio='+ idsRelatoriosSelecionados + + '&idContrato=' + $scope.contrato.id + + '&dataInicial=' + dataInicial + + '&dataFinal=' + dataFinal; + $scope.visualizarRelatorio($scope.url, $translate.instant('CONTRATOS.LABEL.RELATORIOS')); + $scope.setLoading(false); }; }]); \ No newline at end of file -- libgit2 0.21.2