diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasComissaoEstavel.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasComissaoEstavel.java new file mode 100644 index 000000000..6452442c2 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasComissaoEstavel.java @@ -0,0 +1,321 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.math.BigDecimal; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.rjconsultores.ventaboletos.constantes.Constantes; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioVendasComissaoBean; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioVendasComissaoCancelamentoBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioVendasComissaoEstavel extends Relatorio { + + private static Logger log = Logger.getLogger(RelatorioVendasComissaoEstavel.class); + + private List lsDadosRelatorio; + private List lsDadosRelatorioCancelamento; + + private Timestamp fecInicio; + private Timestamp fecFinal; + private Integer empresaId; + private Boolean apenasCancelados; + private String stringLsPuntoVentaId; + + public RelatorioVendasComissaoEstavel(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + + @SuppressWarnings("unchecked") + @Override + public void initDados() throws Exception { + Map parametros = this.relatorio.getParametros(); + fecInicio = (Timestamp) parametros.get("dataFiltroInicial"); + fecFinal = (Timestamp) parametros.get("dataFiltroFinal"); + if(parametros.get("EMPRESA_ID")!=null){ + empresaId = Integer.valueOf(parametros.get("EMPRESA_ID").toString()); + } + apenasCancelados = (Boolean) parametros.get("apenasCancelados"); + + List lsPuntoVentaParam = (List) parametros.get("lsPuntoVenta"); + List lsNombPuntoVenta = new ArrayList(); + List lsPuntoVentaId = new ArrayList(); + for (PuntoVenta puntoVenta : lsPuntoVentaParam) { + lsPuntoVentaId.add("'" + String.valueOf(puntoVenta.getPuntoventaId()) + "'"); + lsNombPuntoVenta.add(puntoVenta.getNombpuntoventa()); + } + stringLsPuntoVentaId = StringUtils.join(lsPuntoVentaId.toArray(new String[0]), ','); + String nombPuntoVenta = !lsNombPuntoVenta.isEmpty() ? StringUtils.join(lsNombPuntoVenta.toArray(new String[0]), ',') : "Todas;"; + parametros.put("nombPuntoVenta", nombPuntoVenta); + + Connection conexao = this.relatorio.getConexao(); + processarVendasComissao(conexao); + + if (apenasCancelados) { + setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorioCancelamento)); + } else { + setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + } + + } + + }); + } + + private void processarVendasComissao(Connection conexao) { + ResultSet rset = null; + NamedParameterStatement stmt = null; + + try { + + /* Processando vendas normais */ + stmt = carregarNamedParameterStatement(conexao); + rset = stmt.executeQuery(); + if (apenasCancelados) { + processarResultadoCancelamento(rset); + } else { + processarResultado(rset); + } + fecharConexaoBanco(stmt, rset); + + } catch (Exception e) { + log.error(e.getMessage(), e); + } + + } + + private void fecharConexaoBanco(NamedParameterStatement stmt, ResultSet rset) { + try { + if(rset != null) { + rset.close(); + } + if(stmt != null) { + stmt.close(); + } + } catch (SQLException e) { + log.error(e.getMessage(), e); + } + } + + private void processarResultado(ResultSet rset) throws SQLException { + if(lsDadosRelatorio == null) { + lsDadosRelatorio = new ArrayList(); + } + while (rset.next()) { + RelatorioVendasComissaoBean relatorioVendaComissao = new RelatorioVendasComissaoBean(); + relatorioVendaComissao.setNumPuntoVenta(rset.getString("NUMPUNTOVENTA")); + relatorioVendaComissao.setNombPuntoVenta(rset.getString("NOMBPUNTOVENTA")); + boolean indreimpresion = rset.getBoolean("INDREIMPRESION"); + String indstatusboleto = rset.getString("INDSTATUSBOLETO"); + Long motivocancelacionId = rset.getLong("MOTIVOCANCELACION_ID"); + if(isDevolucaoOrCancelamentoCaja(indstatusboleto, motivocancelacionId, indreimpresion) && StringUtils.isNotBlank(rset.getString("NUMPTOVTAVENTA"))) { + relatorioVendaComissao.setNumPuntoVenta(rset.getString("NUMPTOVTAVENTA")); + relatorioVendaComissao.setNombPuntoVenta(rset.getString("NOMBPTOVTAVENTA")); + } + + int indice = lsDadosRelatorio.indexOf(relatorioVendaComissao); + if(indice > -1) { + relatorioVendaComissao = lsDadosRelatorio.get(indice); + } + + BigDecimal total = rset.getBigDecimal("TOTAL"); + BigDecimal totalTaxas = rset.getBigDecimal("TOTAL_TAXAS"); + + if(isVenda(indstatusboleto, indreimpresion) || isTroca(indstatusboleto, indreimpresion)) { + relatorioVendaComissao.setTotalVendas(relatorioVendaComissao.getTotalVendas().add(total)); + relatorioVendaComissao.setTotalTaxasVendas(relatorioVendaComissao.getTotalTaxasVendas().add(totalTaxas)); + } else if(isCancelamentoCaja(indstatusboleto, motivocancelacionId, indreimpresion)) { + relatorioVendaComissao.setTotalVendasCanceladas(relatorioVendaComissao.getTotalVendasCanceladas().add(total)); + relatorioVendaComissao.setTotalTaxasVendasCanceladas(relatorioVendaComissao.getTotalTaxasVendasCanceladas().add(totalTaxas)); + } else if(isDevolucaoCaja(indstatusboleto, motivocancelacionId, indreimpresion) || + isDevolucaoOcdCaja(indstatusboleto, motivocancelacionId, indreimpresion) || + isDevolucaoTrocaCaja(indstatusboleto, motivocancelacionId, indreimpresion)) { + relatorioVendaComissao.setTotalVendasDevolucao(relatorioVendaComissao.getTotalVendasDevolucao().add(total)); + relatorioVendaComissao.setTotalTaxasVendasDevolucao(relatorioVendaComissao.getTotalTaxasVendasDevolucao().add(totalTaxas)); + } + + if(indice == -1) { + lsDadosRelatorio.add(relatorioVendaComissao); + } + } + + } + + private void processarResultadoCancelamento(ResultSet rset) throws SQLException { + if(lsDadosRelatorioCancelamento == null) { + lsDadosRelatorioCancelamento = new ArrayList(); + } + while (rset.next()) { + RelatorioVendasComissaoCancelamentoBean relatorioVendaComissao = new RelatorioVendasComissaoCancelamentoBean(); + relatorioVendaComissao.setNumFolioSistema(rset.getString("NUMFOLIOSISTEMA")); + relatorioVendaComissao.setCorridaId(rset.getInt("CORRIDA_ID")); + relatorioVendaComissao.setFecHorViaje(rset.getTimestamp("FECHORVIAJE")); + relatorioVendaComissao.setNumAsiento(rset.getString("NUMASIENTO")); + relatorioVendaComissao.setPrecioTotalPagado(rset.getBigDecimal("TOTAL")); + relatorioVendaComissao.setFecHorVenta(rset.getTimestamp("FECHORVENTA")); + relatorioVendaComissao.setNombPuntoVenta(rset.getString("NOMBPUNTOVENTA")); + lsDadosRelatorioCancelamento.add(relatorioVendaComissao); + } + + } + + private boolean isCancelamento(String indstatusboleto) { + return "C".equals(indstatusboleto); + } + + private boolean isVenda(String indstatusboleto, boolean indreimpresion) { + return "V".equals(indstatusboleto) && !indreimpresion; + } + + private boolean isTroca(String indstatusboleto, boolean indreimpresion) { + return "T".equals(indstatusboleto) && !indreimpresion; + } + + private boolean isCancelamentoCaja(String indstatusboleto, Long motivocancelacionId, boolean indreimpresion) { + return isCancelamento(indstatusboleto) && Constantes.MVO_CANCEL_CANCELACION.equals(motivocancelacionId) && !indreimpresion; + } + + private boolean isDevolucaoCaja(String indstatusboleto, Long motivocancelacionId, boolean indreimpresion) { + return isCancelamento(indstatusboleto) && Constantes.MVO_CANCEL_DEVOLUCAO.equals(motivocancelacionId) && !indreimpresion; + } + + private boolean isDevolucaoTrocaCaja(String indstatusboleto, Long motivocancelacionId, boolean indreimpresion) { + return isCancelamento(indstatusboleto) && Constantes.MVO_CANCEL_TROCA.equals(motivocancelacionId) && !indreimpresion; + } + + private boolean isDevolucaoOcdCaja(String indstatusboleto, Long motivocancelacionId, boolean indreimpresion) { + return isCancelamento(indstatusboleto) && Constantes.MVO_CANCEL_GERACAO_OCD.equals(motivocancelacionId) && !indreimpresion; + } + + private boolean isDevolucaoOrCancelamentoCaja(String indstatusboleto, Long motivocancelacionId, boolean indreimpresion) { + return isCancelamentoCaja(indstatusboleto, motivocancelacionId, indreimpresion) || + isDevolucaoCaja(indstatusboleto, motivocancelacionId, indreimpresion) || + isDevolucaoOcdCaja(indstatusboleto, motivocancelacionId, indreimpresion) || + isDevolucaoTrocaCaja(indstatusboleto, motivocancelacionId, indreimpresion); + } + + private NamedParameterStatement carregarNamedParameterStatement(Connection conexao) throws SQLException { + String sql = apenasCancelados ? getSqlCancelados() : getSql(); + log.info(sql); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + + if(fecInicio != null) { + stmt.setTimestamp("fecInicio", fecInicio); + } + if(fecFinal != null) { + stmt.setTimestamp("fecFinal", fecFinal); + } + if(empresaId != null){ + stmt.setInt("EMPRESA_ID", empresaId); + } + + return stmt; + } + + protected String getSql() { + + String query = "SELECT PV.PUNTOVENTA_ID, PV.NUMPUNTOVENTA, PV.NOMBPUNTOVENTA, C.PTOVTAVENTA_ID, PV1.NUMPUNTOVENTA as NUMPTOVTAVENTA, PV1.NOMBPUNTOVENTA AS NOMBPTOVTAVENTA, C.INDSTATUSBOLETO, C.MOTIVOCANCELACION_ID, C.INDREIMPRESION, " + + "SUM(COALESCE (C.PRECIOPAGADO,0) + COALESCE (C.IMPORTETAXAEMBARQUE,0) + COALESCE (C.IMPORTESEGURO,0) + COALESCE (C.IMPORTEPEDAGIO,0) + COALESCE (C.IMPORTEOUTROS,0)) AS TOTAL, " + + "SUM(COALESCE (C.IMPORTETAXAEMBARQUE,0) + COALESCE (C.IMPORTESEGURO,0) + COALESCE (C.IMPORTEPEDAGIO,0) + COALESCE (C.IMPORTEOUTROS,0)) AS TOTAL_TAXAS " + + "FROM CAJA C " + + "JOIN PUNTO_VENTA PV ON PV.PUNTOVENTA_ID = C.PUNTOVENTA_ID " + + "JOIN MARCA M ON M.MARCA_ID = C.MARCA_ID " + + "LEFT JOIN PUNTO_VENTA PV1 ON PV1.PUNTOVENTA_ID = C.PTOVTAVENTA_ID " + + "WHERE ((C.INDSTATUSBOLETO = 'V' AND C.INDREIMPRESION = 0) " + + "OR (C.INDSTATUSBOLETO = 'T' AND C.INDREIMPRESION = 0) " + + "OR (C.INDCANCELACION = 1 AND C.INDSTATUSBOLETO = 'C')) " + + "AND (C.MOTIVOCANCELACION_ID IS NULL OR C.MOTIVOCANCELACION_ID NOT IN (10, 32, 99)) " + + "AND C.FECHORVENTA BETWEEN CAST (:fecInicio AS DATE) AND CAST(:fecFinal AS DATE) "; + + if (StringUtils.isNotBlank(stringLsPuntoVentaId)) { + query += "AND C.PUNTOVENTA_ID IN(" + stringLsPuntoVentaId + ") "; + } + + if(parametros.get("EMPRESA_ID")!= null){ + query += "AND M.EMPRESA_ID =:EMPRESA_ID "; + } + + //foi adicionado indreimpresion = 0 para boleto. Foi analisado e chegou-se ao entendimento que os registros de boleto são sempre válidos + query += "GROUP BY PV.PUNTOVENTA_ID, PV.NUMPUNTOVENTA, PV.NOMBPUNTOVENTA, C.PTOVTAVENTA_ID, PV1.NUMPUNTOVENTA, PV1.NOMBPUNTOVENTA, C.INDSTATUSBOLETO, C.MOTIVOCANCELACION_ID, C.INDREIMPRESION " + + "UNION " + + "SELECT PV3.PUNTOVENTA_ID, PV3.NUMPUNTOVENTA, PV3.NOMBPUNTOVENTA, B.PTOVTAVENTA_ID, PV4.NUMPUNTOVENTA as NUMPTOVTAVENTA, PV4.NOMBPUNTOVENTA AS NOMBPTOVTAVENTA, B.INDSTATUSBOLETO, B.MOTIVOCANCELACION_ID, 0, " + + "COALESCE (B.PRECIOPAGADO,0) + COALESCE (B.IMPORTETAXAEMBARQUE,0) + COALESCE (B.IMPORTESEGURO,0) + COALESCE (B.IMPORTEPEDAGIO,0) + COALESCE (B.IMPORTEOUTROS,0) AS TOTAL, " + + "COALESCE (B.IMPORTETAXAEMBARQUE,0) + COALESCE (B.IMPORTESEGURO,0) + COALESCE (B.IMPORTEPEDAGIO,0) + COALESCE (B.IMPORTEOUTROS,0) AS TOTAL_TAXAS " + + "FROM BOLETO B " + + "JOIN PUNTO_VENTA PV3 ON PV3.PUNTOVENTA_ID = B.PUNTOVENTA_ID " + + "LEFT JOIN PUNTO_VENTA PV4 ON PV4.PUNTOVENTA_ID = B.PTOVTAVENTA_ID " + + "JOIN MARCA M2 ON M2.MARCA_ID = B.MARCA_ID " + + "WHERE B.INDSTATUSBOLETO = 'C' " + + "AND B.MOTIVOCANCELACION_ID IN(10, 32, 99) " + + "AND B.FECHORVENTA BETWEEN CAST (:fecInicio AS DATE) AND CAST(:fecFinal AS DATE) "; + + if (StringUtils.isNotBlank(stringLsPuntoVentaId)) { + query += "AND B.PUNTOVENTA_ID IN(" + stringLsPuntoVentaId + ") "; + } + + if(parametros.get("EMPRESA_ID")!= null){ + query += "AND M2.EMPRESA_ID = :EMPRESA_ID "; + } + + query += "ORDER BY NUMPUNTOVENTA, NUMPTOVTAVENTA, INDSTATUSBOLETO "; + + return query; + + } + + protected String getSqlCancelados() { + + String query = "SELECT B.NUMFOLIOSISTEMA, B.CORRIDA_ID, B.FECHORVIAJE, B.NUMASIENTO, B.PRECIOPAGADO, B.FECHORVENTA, COALESCE(PV2.NOMBPUNTOVENTA, PV1.NOMBPUNTOVENTA) NOMBPUNTOVENTA, " + + "(COALESCE (B.PRECIOPAGADO,0) + COALESCE (B.IMPORTETAXAEMBARQUE,0) + COALESCE (B.IMPORTESEGURO,0) + COALESCE (B.IMPORTEPEDAGIO,0) + COALESCE (B.IMPORTEOUTROS,0)) AS TOTAL " + + "FROM BOLETO B " + + "JOIN MARCA M ON M.MARCA_ID = B.MARCA_ID " + + "LEFT JOIN PUNTO_VENTA PV1 ON PV1.PUNTOVENTA_ID = B.PUNTOVENTA_ID " + + "LEFT JOIN PUNTO_VENTA PV2 ON PV2.PUNTOVENTA_ID = B.PTOVTAVENTA_ID " + + "WHERE B.INDSTATUSBOLETO = 'C' " + + "AND (B.MOTIVOCANCELACION_ID IN(10, 32, 99)) " + + "AND B.FECHORVENTA BETWEEN CAST (:fecInicio AS DATE) AND CAST(:fecFinal AS DATE) "; + + if(parametros.get("EMPRESA_ID")!= null) { + query += "AND M.EMPRESA_ID =:EMPRESA_ID "; + } + + if (StringUtils.isNotBlank(stringLsPuntoVentaId)) { + query += "AND B.PUNTOVENTA_ID IN(" + stringLsPuntoVentaId + ") "; + } + + return query; + + } + + @Override + protected void processaParametros() throws Exception { + } + + public List getLsDadosRelatorio() { + return lsDadosRelatorio; + } + + @Override + public String getNome() { + if (apenasCancelados) { + return "RelatorioVendasComissaoCancelamento"; + } + return super.getNome(); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasComissaoEstavel_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasComissaoEstavel_es.properties new file mode 100644 index 000000000..9bd241b06 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasComissaoEstavel_es.properties @@ -0,0 +1,24 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório Vendas para Comissão +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +cabecalho.usuario=Usuário: +label.numPuntoVenta=Número Agência +label.nombPuntoVenta=Nome Agência +label.totalVendas=Vendas +label.totalTaxasVendas=Taxas Vendas +label.totalVendasCanceladas=Anulação +label.totalTaxasVendasCanceladas=Taxas Anulação +label.totalVendasDevolucao=Devolução +label.totalTaxasVendasDevolucao=Taxas Devolução +label.total=Total +label.puntoVenta=Agência: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasComissaoEstavel_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasComissaoEstavel_pt_BR.properties new file mode 100644 index 000000000..9bd241b06 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasComissaoEstavel_pt_BR.properties @@ -0,0 +1,24 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório Vendas para Comissão +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +cabecalho.usuario=Usuário: +label.numPuntoVenta=Número Agência +label.nombPuntoVenta=Nome Agência +label.totalVendas=Vendas +label.totalTaxasVendas=Taxas Vendas +label.totalVendasCanceladas=Anulação +label.totalTaxasVendasCanceladas=Taxas Anulação +label.totalVendasDevolucao=Devolução +label.totalTaxasVendasDevolucao=Taxas Devolução +label.total=Total +label.puntoVenta=Agência: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasComissaoEstavel.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasComissaoEstavel.jasper new file mode 100644 index 000000000..7076af100 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasComissaoEstavel.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasComissaoEstavel.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasComissaoEstavel.jrxml new file mode 100644 index 000000000..d0068a051 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasComissaoEstavel.jrxml @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="81" splitType="Stretch"> + <textField> + <reportElement uuid="43b2c28d-4760-4890-b00d-25e931e79c74" x="0" y="0" width="620" height="20"/> + <textElement markup="none"> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.nome}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy HH:mm"> + <reportElement uuid="4d1bcd65-c9a6-44b4-8dca-cc3c4c20c9a5" x="638" y="0" width="164" height="20"/> + <textElement textAlignment="Right"> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="fd05bd35-30d9-4baf-aa56-f8e5d3c3268b" x="0" y="20" width="620" height="20"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.periodo} + " " + $P{fecInicio} + " " + $R{cabecalho.periodoA} + " " + $P{fecFinal}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="8fa1c53b-1da7-4d4d-a75c-ab1543acae2a" x="53" y="41" width="139" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{empresa}]]></textFieldExpression> + </textField> + <staticText> + <reportElement uuid="a91f6081-4740-4e36-8965-41b6cde4cc20" x="0" y="41" width="53" height="20"/> + <textElement/> + <text><![CDATA[Empresa:]]></text> + </staticText> + <textField> + <reportElement uuid="1a29d731-e121-4507-8c0b-e93f437e8d80" x="0" y="61" width="53" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$R{label.puntoVenta}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="53d53aa5-d8c9-43c6-b17d-1e6b49697237" x="53" y="61" width="748" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{nombPuntoVenta}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasComissaoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasComissaoController.java index bad0b4c28..d7837cdb9 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasComissaoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasComissaoController.java @@ -1,5 +1,6 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; +import java.sql.SQLException; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -26,6 +27,7 @@ import org.zkoss.zul.Paging; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioVendasComissao; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioVendasComissaoEstavel; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.utilerias.DateUtil; @@ -69,20 +71,28 @@ public class RelatorioVendasComissaoController extends MyGenericForwardComposer super.doAfterCompose(comp); } - @SuppressWarnings({ "unchecked", "rawtypes" }) public void onClick$btnExecutarRelatorio(Event ev) throws Exception { - + excutarRelatorios(false); + } + + public void onClick$btnExecutarRelatorioEstavel(Event ev) throws Exception { + excutarRelatorios(true); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void excutarRelatorios(boolean versionestable) throws SQLException, Exception { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Date dataDe = dataInicial.getValue(); Date dataAte = dataFinal.getValue(); - + Timestamp fecVentaInicial = new Timestamp(DateUtil.inicioFecha(dataDe).getTime()); Timestamp fecVentaFinal = new Timestamp(DateUtil.fimFecha(dataAte).getTime()); - + Map parametros = new HashMap(); parametros.put("fecInicio", sdf.format(dataDe)); parametros.put("fecFinal", sdf.format(dataAte)); - + parametros.put("dataFiltroInicial", fecVentaInicial); parametros.put("dataFiltroFinal", fecVentaFinal); @@ -91,22 +101,27 @@ public class RelatorioVendasComissaoController extends MyGenericForwardComposer Empresa empresa = (Empresa) itemEmpresa.getValue(); parametros.put("EMPRESA_ID", empresa.getEmpresaId()); parametros.put("empresa", empresa.getNombempresa()); - } else{ + } else { parametros.put("empresa", "Todas;"); } - + parametros.put("apenasCancelados", chkApenasCancelados.isChecked()); - + List lsPuntoVentaSelecionados = new ArrayList(Arrays.asList(puntoVentaSelList.getData())); parametros.put("lsPuntoVenta", lsPuntoVentaSelecionados); - - Relatorio relatorio = new RelatorioVendasComissao(parametros, dataSourceRead.getConnection()); - + Map args = new HashMap(); - args.put("relatorio", relatorio); + if (versionestable) { + Relatorio relatorio = new RelatorioVendasComissaoEstavel(parametros, dataSourceRead.getConnection()); + args.put("relatorio", relatorio); + } else { + Relatorio relatorio = new RelatorioVendasComissao(parametros, dataSourceRead.getConnection()); + args.put("relatorio", relatorio); + } openWindow("/component/reportView.zul", - Labels.getLabel("indexController.mniRelatorioVendasComissao.label"), args, MODAL); + Labels.getLabel("indexController.mniRelatorioVendasComissao.label"), args, MODAL); + } public void onClick$btnPesquisa(Event ev) { diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 70941c020..489dabfc4 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -72,7 +72,7 @@ relatorio.lb.btnSalvarRelatorio = Guardar reporte relatorio.lb.btnSalvarRelatorioPdf = Guardar reporte en PDF relatorio.lb.btnSalvarRelatorioXls = Guardar reporte en XLS relatorio.parametro.msgNoData = No fue posible obtener datos con los parámetros informados. - +relatorio.lb.btnExecutarRelatorioEstavel = Ejecutar reporte - Versión Estable # tooltip botões tooltiptext.btnFechar = Cerrar diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 3def725b9..7250bc863 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -74,7 +74,7 @@ relatorio.lb.btnSalvarRelatorio = Salvar Relatório relatorio.lb.btnSalvarRelatorioPdf = Salvar Relatório em PDF relatorio.lb.btnSalvarRelatorioXls = Salvar Relatório em XLS relatorio.parametro.msgNoData = Não foi possivel obter dados com os parâmetros informados. - +relatorio.lb.btnExecutarRelatorioEstavel = Executar Relatório - Versão Estável # tooltip botões tooltiptext.btnFechar = Fechar diff --git a/web/gui/relatorios/filtroRelatorioVendasComissao.zul b/web/gui/relatorios/filtroRelatorioVendasComissao.zul index 471adeee9..6b3cd8898 100644 --- a/web/gui/relatorios/filtroRelatorioVendasComissao.zul +++ b/web/gui/relatorios/filtroRelatorioVendasComissao.zul @@ -98,8 +98,11 @@ -