diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDescontos.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDescontos.java new file mode 100644 index 000000000..4390082f6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDescontos.java @@ -0,0 +1,120 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.Date; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioDescontos extends Relatorio { + + List> dadosRelatorio = new ArrayList>(); + + public RelatorioDescontos(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + setCustomDataSource(new DataSource(this){ + @Override + public void initDados() throws Exception { + Connection coneConnection = relatorio.getConexao(); + Map parametros = relatorio.getParametros(); + + Integer idPuntoVenta = (Integer) parametros.get("idPuntoVenta"); + Date fecVentaInicial = new Date(((java.util.Date) parametros.get("fecVentaInicial")).getTime()); + Date fecVentaFinal = new Date(((java.util.Date) parametros.get("fecVentaFinal")).getTime()); + String codconvenio = (String) parametros.get("codconvenio"); + + String query = getQuery(idPuntoVenta, codconvenio); + System.out.println(query); + + NamedParameterStatement statement = new NamedParameterStatement(coneConnection, query); + statement.setDate("fecVentaInicial", fecVentaInicial); + statement.setDate("fecVentaFinal", fecVentaFinal); + if(idPuntoVenta != null) { + statement.setInt("idPuntoVenta", idPuntoVenta); + } + if(codconvenio != null && !codconvenio.isEmpty()) { + statement.setString("codconvenio", codconvenio); + } + + ResultSet resultSet = statement.executeQuery(); + + preencherDadosRelatorio(resultSet); + } + + + }); + } + + private void preencherDadosRelatorio(ResultSet resultSet) throws SQLException { + while (resultSet.next()) { + HashMap singleData = new HashMap(); + singleData.put("codConvenio", resultSet.getString("codConvenio")); + singleData.put("nomeAgencia", resultSet.getString("nomeAgencia")); + singleData.put("dataEmissao", resultSet.getDate("dataEmissao")); + singleData.put("dataViagem", resultSet.getDate("dataViagem")); + singleData.put("codServico", resultSet.getString("codServico")); + singleData.put("codOrigem", resultSet.getString("codOrigem")); + singleData.put("codDestino", resultSet.getString("codDestino")); + singleData.put("tarifaComDesconto", resultSet.getDouble("tarifaComDesconto")); + singleData.put("tut", resultSet.getDouble("tut")); + singleData.put("pedagio", resultSet.getDouble("pedagio")); + dadosRelatorio.add(singleData); + } + + if(!dadosRelatorio.isEmpty()) { + setCollectionDataSource(new JRBeanCollectionDataSource(dadosRelatorio)); + } + } + + private String getQuery(Integer idPuntoVenta, String codconvenio) { + + String query = " SELECT " + + + " CONV.CVECONVENIO AS codConvenio, " + + " PUNT_V.NOMBPUNTOVENTA AS nomeAgencia, " + + " BOL.FECHORVENTA AS dataEmissao, " + + " BOL.FECHORVIAJE AS dataViagem, " + + " BOL.CORRIDA_ID AS codServico, " + + " ORIG.CVEPARADA AS codOrigem, " + + " DEST.CVEPARADA AS codDestino, " + + " BOL.PRECIOPAGADO AS tarifaComDesconto, " + + " BOL.IMPORTETAXAEMBARQUE AS tut, " + + " BOL.IMPORTEPEDAGIO AS pedagio " + + + " FROM BOLETO BOL " + + " JOIN CONVENIO_DET CONV_D ON CONV_D.CONVENIODET_ID = BOL.CONVENIODET_ID " + + " JOIN CONVENIO CONV ON CONV.CONVENIO_ID = CONV_D.CONVENIO_ID " + + " JOIN PUNTO_VENTA PUNT_V ON PUNT_V.PUNTOVENTA_ID = BOL.PUNTOVENTA_ID " + + " JOIN PARADA ORIG ON ORIG.PARADA_ID = BOL.ORIGEN_ID " + + " JOIN PARADA DEST ON DEST.PARADA_ID = BOL.DESTINO_ID " + + + " WHERE " + + " BOL.INDSTATUSOPERACION = 'F' " + + " AND BOL.ACTIVO = 1 " + + " AND BOL.FECHORVENTA BETWEEN :fecVentaInicial AND :fecVentaFinal "; + + if(idPuntoVenta != null) { + query += " AND (BOL.PUNTOVENTA_ID = :idPuntoVenta) "; + } + if (codconvenio != null && !codconvenio.isEmpty()) { + query += " AND (CONV.CVECONVENIO = :codconvenio)"; + } + + query += " ORDER BY CONV.CVECONVENIO "; + + return query; + } + + @Override + protected void processaParametros() throws Exception {} +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_es.properties new file mode 100644 index 000000000..3622b3b8b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_es.properties @@ -0,0 +1,22 @@ +label.codConvenio = Código do Convênio: +label.fecVentaInicial = Data da Venda Inicial: +label.fecVentaFinal = Data da Venda Final: +label.puntoVenta = Agência: +cabecalho.dataHora = Data/Hora: +cabecalho.impressorPor = Impresso por: +cabecalho.pagina = Página +cabecalho.de = de +label.codigo = Código: +label.nomeAgencia = Agc. Emissora +label.dataEmissao = Data Emissão +label.dataViagem = Data Viagem +label.codServico = Serviço +label.codOrigem = Origem +label.codDestino = Destino +label.tarifaComDesconto = Tarifa c/ des +label.tut = TUT +label.pedagio = Pedágio +label.totalPorConvenio = Total deste Convênio +label.totalGeral = Total Geral +label.total = Total +msg.noData = Não foi possivel obter dados com os parâmetros informados. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_pt_BR.properties new file mode 100644 index 000000000..3622b3b8b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDescontos_pt_BR.properties @@ -0,0 +1,22 @@ +label.codConvenio = Código do Convênio: +label.fecVentaInicial = Data da Venda Inicial: +label.fecVentaFinal = Data da Venda Final: +label.puntoVenta = Agência: +cabecalho.dataHora = Data/Hora: +cabecalho.impressorPor = Impresso por: +cabecalho.pagina = Página +cabecalho.de = de +label.codigo = Código: +label.nomeAgencia = Agc. Emissora +label.dataEmissao = Data Emissão +label.dataViagem = Data Viagem +label.codServico = Serviço +label.codOrigem = Origem +label.codDestino = Destino +label.tarifaComDesconto = Tarifa c/ des +label.tut = TUT +label.pedagio = Pedágio +label.totalPorConvenio = Total deste Convênio +label.totalGeral = Total Geral +label.total = Total +msg.noData = Não foi possivel obter dados com os parâmetros informados. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jasper new file mode 100644 index 000000000..e63707927 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jrxml new file mode 100644 index 000000000..c69fa4775 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDescontos.jrxml @@ -0,0 +1,494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDescontosController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDescontosController.java new file mode 100644 index 000000000..84df10d81 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDescontosController.java @@ -0,0 +1,110 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.util.HashMap; +import java.util.Map; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +import org.zkoss.zhtml.Messagebox; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Textbox; + +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioDescontos; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioDescontosController") +@Scope("prototype") +public class RelatorioDescontosController extends MyGenericForwardComposer { + private static final long serialVersionUID = 1L; + + @Autowired + private DataSource dataSourceRead; + + private MyComboboxPuntoVenta cmbAgencia; + private Datebox fecVentaInicial; + private Datebox fecVentaFinal; + private Textbox txtCodConvenio; + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + validarAntesImpressao(); + } + + private void validarAntesImpressao() throws Exception { + + if(fecVentaInicial.getValue() == null) { + Messagebox.show( + Labels.getLabel("relatorioDescontosController.info.fecVentaInicial"), + Labels.getLabel("relatorioDescontosController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return; + } + + if(fecVentaFinal.getValue() == null) { + Messagebox.show( + Labels.getLabel("relatorioDescontosController.info.fecVentaFinal"), + Labels.getLabel("relatorioDescontosController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return; + } + + executarRelatorio(); + } + + private void executarRelatorio() throws Exception { + Map parametros = new HashMap(); + parametros.put("fecVentaInicial", fecVentaInicial.getValue()); + parametros.put("fecVentaFinal", fecVentaFinal.getValue()); + parametros.put("codconvenio", txtCodConvenio.getValue()); + parametros.put("usuario", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString() + " - " + UsuarioLogado.getUsuarioLogado().getNombusuario()); + parametros.put("nomeRelatorio", Labels.getLabel("relatorioDescontosController.window.title")); + + if (cmbAgencia.getSelectedIndex() != -1) { + + PuntoVenta puntoVenta = (PuntoVenta) cmbAgencia.getSelectedItem().getValue(); + parametros.put("idPuntoVenta", puntoVenta.getPuntoventaId()); + parametros.put("puntoVenta", puntoVenta.getPuntoventaId() + " - " + puntoVenta.getNombpuntoventa()); + } + + Relatorio relatorio = new RelatorioDescontos(parametros, dataSourceRead.getConnection()); + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", Labels.getLabel("relatorioDescontosController.window.title"), args, MODAL); + + } + + public MyComboboxPuntoVenta getCmbAgencia() { + return cmbAgencia; + } + + public void setCmbAgencia(MyComboboxPuntoVenta cmbAgencia) { + this.cmbAgencia = cmbAgencia; + } + public Datebox getFecVentaInicial() { + return fecVentaInicial; + } + public void setFecVentaInicial(Datebox fecVentaInicial) { + this.fecVentaInicial = fecVentaInicial; + } + public Datebox getFecVentaFinal() { + return fecVentaFinal; + } + public void setFecVentaFinal(Datebox fecVentaFinal) { + this.fecVentaFinal = fecVentaFinal; + } + public Textbox getTxtCodConvenio() { + return txtCodConvenio; + } + public void setTxtCodConvenio(Textbox txtCodConvenio) { + this.txtCodConvenio = txtCodConvenio; + } +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioDescontos.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioDescontos.java new file mode 100644 index 000000000..321917b74 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioDescontos.java @@ -0,0 +1,24 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuRelatorioDescontos extends DefaultItemMenuSistema { + + public ItemMenuRelatorioDescontos() { + super("indexController.mniRelatorioDescontos.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIODESCONTOS"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioDescontos.zul", + Labels.getLabel("relatorioDescontosController.window.title"), getArgs() ,desktop); + } +} \ No newline at end of file diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index cf6d4d828..c91cca56d 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -261,6 +261,7 @@ indexController.mniManutencaoPacote.label=Manutenção Pacote indexController.mniEscola.label = Escuela indexController.mniCurso.label = Curso indexController.mniPracaPedagio.label = Praça Pedágio +indexController.mniRelatorioDescontos.label = Relatório Descontos #PARTE REALIZADA POR MANUEL indexController.mnCortesias.label = Cortesias para empleados @@ -5416,6 +5417,15 @@ relatorioGratuidadeController.lbLinhas.value = Ruta relatorioGratuidadeController.lbDataIni.value = Fecha Inicio relatorioGratuidadeController.lbDataFin.value = Fecha Final +# Relatório de Descontos +relatorioDescontosController.window.title = Relatório de Descontos +relatorioDescontosController.lbAgencia.value = Agência +relatorioDescontosController.lbCodConvenio.value = Código Convênio +relatorioDescontosController.lbPeriodoVendaInicial.value = Data Venda Inicial +relatorioDescontosController.lbPeriodoVendaFinal.value = Data Venda Final +relatorioDescontosController.info.fecVentaInicial = Informe a Data Venda Inicial +relatorioDescontosController.info.fecVentaFinal = Informe a Data Venda Final + # Filtro Relatorio de Agências Não Importadas filtroRelatorioAgenciasNaoImportadas.lbDataIni.value = Fecha Inicio filtroRelatorioAgenciasNaoImportadas.lbDataFin.value = Fecha Final diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index dd65d0f51..f2a027eba 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -266,13 +266,13 @@ indexController.mniTotnaofiscalEmpresa.label=Totalizadoes Não-fiscais indexController.mniFormapagoEmpresa.label=Formas de Pagamento indexController.mniRelgerencialEmpresa.label=Relatorio Gerencial indexController.mniImportacionFiscal.label=Importação Fiscal - indexController.mniSubMenuClientePacote.label=Pacote indexController.mniManutencaoPacote.label=Manutenção Pacote indexController.mniEscola.label = Escola indexController.mniCurso.label = Curso indexController.mniPracaPedagio.label = Praça Pedágio +indexController.mniRelatorioDescontos.label = Relatório Descontos #PARTE REALIZADA POR MANUEL indexController.mnCortesias.label = Cortesias Para Funcionários @@ -5495,6 +5495,15 @@ relatorioGratuidadeController.lbLinhas.value = Linha relatorioGratuidadeController.lbDataIni.value = Data Inicio relatorioGratuidadeController.lbDataFin.value = Data Final +# Relatório de Descontos +relatorioDescontosController.window.title = Relatório de Descontos +relatorioDescontosController.lbAgencia.value = Agência +relatorioDescontosController.lbCodConvenio.value = Código Convênio +relatorioDescontosController.lbPeriodoVendaInicial.value = Data Venda Inicial +relatorioDescontosController.lbPeriodoVendaFinal.value = Data Venda Final +relatorioDescontosController.info.fecVentaInicial = Informe a Data Venda Inicial +relatorioDescontosController.info.fecVentaFinal = Informe a Data Venda Final + indexController.mniRelatorioAgenciaFechamento.label= Relatorio Agências Fechamento integracion.totvs=ERRO ao fazer integração com a TOTVS diff --git a/web/gui/relatorios/filtroRelatorioDescontos.zul b/web/gui/relatorios/filtroRelatorioDescontos.zul new file mode 100644 index 000000000..19a69083c --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioDescontos.zul @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +