diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesConsolidado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesConsolidado.java new file mode 100644 index 000000000..4d45950e6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesConsolidado.java @@ -0,0 +1,98 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.util.Date; +import java.sql.ResultSet; +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioCadastroClientesConsolidado extends Relatorio { + + public RelatorioCadastroClientesConsolidado(Map parametros, Connection conexao) throws Exception { + + super(parametros, conexao); + + this.setCustomDataSource(new ArrayDataSource(this) { + + public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + + String sql = getSql(parametros); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + ResultSet rset = stmt.executeQuery(); + + while (rset.next()) { + Map dataResult = new HashMap(); + + dataResult.put("empresa", rset.getString("empresa")); + dataResult.put("codigoPuntoVenta", rset.getString("codigoPuntoVenta")); + dataResult.put("puntoVenta", rset.getString("puntoVenta")); + dataResult.put("tipoPuntoVenta", rset.getString("tipoPuntoVenta")); + dataResult.put("quantidadeCadastrada", rset.getInt("quantidadeCadastrada")); + this.dados.add(dataResult); + } + + this.resultSet = rset; + } + }); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(Map parametros) { + + StringBuilder sql = new StringBuilder(); + + String formatToDate = ("'dd/MM/yyyy hh24:mi:ss'"); + SimpleDateFormat formatSemHora = new SimpleDateFormat("dd/MM/yyyy"); + + Date dataCadastroInicial = (Date) parametros.get("DATA_CADASTRO_INICIAL"); + Date dataCadastroFinal = (Date) parametros.get("DATA_CADASTRO_FINAL"); + Integer empresaId = (Integer) parametros.get("EMPRESA_ID"); + Integer puntoVentaId = (Integer) parametros.get("PUNTOVENTA_ID"); + + sql.append("SELECT empresa.NOMBEMPRESA AS \"empresa\", "); + sql.append("puntoVenta.PUNTOVENTA_ID AS \"codigoPuntoVenta\", "); + sql.append("puntoVenta.NOMBPUNTOVENTA AS \"puntoVenta\", "); + sql.append("tipoPuntoVenta.DESCTIPO AS \"tipoPuntoVenta\", "); + sql.append("COUNT(cliente.CLIENTE_ID) AS \"quantidadeCadastrada\" "); + + sql.append("FROM CLIENTE cliente "); + sql.append("INNER JOIN USUARIO usuario ON usuario.USUARIO_ID = cliente.USUARIO_ID "); + sql.append("INNER JOIN USUARIO_UBICACION usuarioUbicacion ON usuario.USUARIO_ID = usuarioUbicacion.USUARIO_ID "); + sql.append("INNER JOIN PUNTO_VENTA puntoVenta ON usuarioUbicacion.PUNTOVENTA_ID = puntoVenta.PUNTOVENTA_ID "); + sql.append("INNER JOIN TIPO_PTOVTA tipoPuntoVenta ON tipoPuntoVenta.TIPOPTOVTA_ID = puntoVenta.TIPOPTOVTA_ID "); + sql.append("LEFT JOIN EMPRESA empresa ON empresa.EMPRESA_ID = cliente.EMPRESA_ID "); + + sql.append("WHERE cliente.ACTIVO = 1 "); + sql.append("AND usuarioUbicacion.ACTIVO = 1 "); + sql.append("AND usuario.ACTIVO = 1 "); + + if (empresaId != null && empresaId.intValue() != -1) { + sql.append("AND empresa.EMPRESA_ID = " + empresaId + " "); + } + if (puntoVentaId != null && puntoVentaId.intValue() != -1) { + sql.append("AND puntoVenta.PUNTOVENTA_ID = " + puntoVentaId + " "); + } + if (dataCadastroInicial != null && dataCadastroFinal != null) { + sql.append("AND cliente.FECCADASTRO BETWEEN TO_DATE('" + formatSemHora.format(dataCadastroInicial) + " 00:00:00', " + formatToDate + ") " + + "AND TO_DATE('" + formatSemHora.format(dataCadastroFinal) + " 23:59:59', " + formatToDate + ") "); + } + + sql.append("GROUP BY empresa.NOMBEMPRESA,"); + sql.append("puntoVenta.NUMPUNTOVENTA,"); + sql.append("puntoVenta.NOMBPUNTOVENTA,"); + sql.append("tipoPuntoVenta.DESCTIPO"); + + return sql.toString(); + } +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesDetalhado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesDetalhado.java new file mode 100644 index 000000000..bad978335 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesDetalhado.java @@ -0,0 +1,126 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.util.Date; +import java.sql.ResultSet; +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioCadastroClientesDetalhado extends Relatorio { + + public RelatorioCadastroClientesDetalhado(Map parametros, Connection conexao) throws Exception { + + super(parametros, conexao); + + this.setCustomDataSource(new ArrayDataSource(this) { + + public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + + String sql = getSql(parametros); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + ResultSet rset = stmt.executeQuery(); + + while (rset.next()) { + Map dataResult = new HashMap(); + + dataResult.put("numFidelidade", rset.getString("numFidelidade")); + dataResult.put("cliente", rset.getString("cliente")); + dataResult.put("identificaUno", rset.getString("identificaUno")); + dataResult.put("identificaDos", rset.getString("identificaDos")); + dataResult.put("fecNascimento", rset.getDate("fecNascimento")); + dataResult.put("celular", rset.getString("celular")); + dataResult.put("telefone", rset.getString("telefone")); + dataResult.put("fax", rset.getString("fax")); + dataResult.put("email", rset.getString("email")); + dataResult.put("sexo", rset.getString("sexo")); + dataResult.put("fecCadastro", rset.getDate("fecCadastro")); + dataResult.put("empresaId", rset.getInt("empresaId")); + dataResult.put("codUsuario", rset.getInt("codUsuario")); + dataResult.put("usuario", rset.getString("usuario")); + dataResult.put("codigoPuntoVenta", rset.getString("codigoPuntoVenta")); + dataResult.put("puntoVenta", rset.getString("puntoVenta")); + + this.dados.add(dataResult); + } + + this.resultSet = rset; + } + }); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(Map parametros) { + + StringBuilder sql = new StringBuilder(); + + String formatToDate = ("'dd/MM/yyyy hh24:mi:ss'"); + SimpleDateFormat formatSemHora = new SimpleDateFormat("dd/MM/yyyy"); + + Date dataCadastroInicial = (Date) parametros.get("DATA_CADASTRO_INICIAL"); + Date dataCadastroFinal = (Date) parametros.get("DATA_CADASTRO_FINAL"); + Integer empresaId = (Integer) parametros.get("EMPRESA_ID"); + Integer puntoVentaId = (Integer) parametros.get("PUNTOVENTA_ID"); + + sql.append("SELECT "); +// sql.append("(SELECT LISTAGG((tarjetaFidelidad.NUMTARJETA || '(' || empresaFidelidad.EMPRESA_ID || ')') , ', ') WITHIN GROUP (ORDER BY tarjetaFidelidad.NUMTARJETA DESC) "); + sql.append("(SELECT tarjetaFidelidad.NUMTARJETA "); + sql.append("FROM CLIENTE_FIDELIDAD clienteFidelidad "); + sql.append("INNER JOIN TARJETA_FIDELIDAD tarjetaFidelidad ON tarjetaFidelidad.TARJETAFIDELIDAD_ID = clienteFidelidad.TARJETAFIDELIDAD_ID "); + sql.append("INNER JOIN EMPRESA empresaFidelidad ON empresaFidelidad.EMPRESA_ID = clienteFidelidad.EMPRESA_ID "); + sql.append("WHERE tarjetaFidelidad.ACTIVO = 1 "); + sql.append("AND clienteFidelidad.ACTIVO = 1 "); + sql.append("AND empresaFidelidad.EMPRESA_ID = empresa.EMPRESA_ID "); + sql.append("AND clienteFidelidad.CLIENTE_ID = cliente.CLIENTE_ID) AS \"numFidelidade\", "); + sql.append("cliente.NOMBCLIENTE AS \"cliente\", "); + sql.append("cliente.NUMIDENTIFICAUNO AS \"identificaUno\", "); + sql.append("cliente.NUMEXTENSIONDOS AS \"identificaDos\", "); + sql.append("cliente.FECNACIMIENTO AS \"fecNascimento\", "); + sql.append("cliente.NUMTELEFONODOS AS \"celular\", "); + sql.append("cliente.NUMIDENTIFICAUNO AS \"telefone\", "); + sql.append("cliente.NUMFAX AS \"fax\", "); + sql.append("cliente.DESCCORREO AS \"email\", "); + sql.append("cliente.INDSEXO AS \"sexo\", "); + sql.append("cliente.FECCADASTRO AS \"fecCadastro\", "); + sql.append("cliente.EMPRESA_ID AS \"empresaId\", "); + sql.append("usuario.USUARIO_ID AS \"codUsuario\", "); + sql.append("usuario.NOMBUSUARIO AS \"usuario\", "); + sql.append("puntoVenta.PUNTOVENTA_ID AS \"codigoPuntoVenta\", "); + sql.append("puntoVenta.NOMBPUNTOVENTA AS \"puntoVenta\" "); + + sql.append("FROM CLIENTE cliente "); + sql.append("INNER JOIN USUARIO usuario ON usuario.USUARIO_ID = cliente.USUARIO_ID "); + sql.append("INNER JOIN USUARIO_UBICACION usuarioUbicacion ON usuario.USUARIO_ID = usuarioUbicacion.USUARIO_ID "); + sql.append("INNER JOIN PUNTO_VENTA puntoVenta ON usuarioUbicacion.PUNTOVENTA_ID = puntoVenta.PUNTOVENTA_ID "); + sql.append("INNER JOIN TIPO_PTOVTA tipoPuntoVenta ON tipoPuntoVenta.TIPOPTOVTA_ID = puntoVenta.TIPOPTOVTA_ID "); + sql.append("LEFT JOIN EMPRESA empresa ON empresa.EMPRESA_ID = cliente.EMPRESA_ID "); + + sql.append("WHERE cliente.ACTIVO = 1 "); + sql.append("AND usuarioUbicacion.ACTIVO = 1 "); + sql.append("AND usuario.ACTIVO = 1 "); + + if (empresaId != null && empresaId.intValue() != -1) { + sql.append("AND empresa.EMPRESA_ID = " + empresaId + " "); + } + if (puntoVentaId != null && puntoVentaId.intValue() != -1) { + sql.append("AND puntoVenta.PUNTOVENTA_ID = " + puntoVentaId + " "); + } + if (dataCadastroInicial != null && dataCadastroFinal != null) { + sql.append("AND cliente.FECCADASTRO BETWEEN TO_DATE('" + formatSemHora.format(dataCadastroInicial) + " 00:00:00', " + formatToDate + ") " + + "AND TO_DATE('" + formatSemHora.format(dataCadastroFinal) + " 23:59:59', " + formatToDate + ") "); + } + + return sql.toString(); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesConsolidado_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesConsolidado_es.properties new file mode 100644 index 000000000..8355e04e7 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesConsolidado_es.properties @@ -0,0 +1,18 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +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: + +label.empresa=Empresa +label.codigoPuntoVenta:Cód. +label.puntoVenta:Agência +label.tipoPuntoVenta:Canal +label.quantidadeCadastrada:Quantidade Cadastrada \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesConsolidado_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesConsolidado_pt_BR.properties new file mode 100644 index 000000000..8355e04e7 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesConsolidado_pt_BR.properties @@ -0,0 +1,18 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +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: + +label.empresa=Empresa +label.codigoPuntoVenta:Cód. +label.puntoVenta:Agência +label.tipoPuntoVenta:Canal +label.quantidadeCadastrada:Quantidade Cadastrada \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesDetalhado_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesDetalhado_es.properties new file mode 100644 index 000000000..6349b414a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesDetalhado_es.properties @@ -0,0 +1,29 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +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: + +label.numFidelidade=Nº Fidelidade +label.cliente=Cliente +label.identificaUno=CPF +label.identificaDos=RG +label.fecNascimento=Data Nasc. +label.celular=Celular +label.telefone=Tel. +label.fax=Fax +label.email=Email +label.sexo=Sexo +label.fecCadastro=Data Cad. +label.empresaId=Empresa +label.codUsuario=Cod. Usuário +label.usuario=Usuário +label.codigoPuntoVenta= Cód. Ag. +label.puntoVenta=Ag. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesDetalhado_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesDetalhado_pt_BR.properties new file mode 100644 index 000000000..6349b414a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCadastroClientesDetalhado_pt_BR.properties @@ -0,0 +1,29 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +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: + +label.numFidelidade=Nº Fidelidade +label.cliente=Cliente +label.identificaUno=CPF +label.identificaDos=RG +label.fecNascimento=Data Nasc. +label.celular=Celular +label.telefone=Tel. +label.fax=Fax +label.email=Email +label.sexo=Sexo +label.fecCadastro=Data Cad. +label.empresaId=Empresa +label.codUsuario=Cod. Usuário +label.usuario=Usuário +label.codigoPuntoVenta= Cód. Ag. +label.puntoVenta=Ag. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesConsolidado.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesConsolidado.jasper new file mode 100644 index 000000000..7065465a4 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesConsolidado.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesConsolidado.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesConsolidado.jrxml new file mode 100644 index 000000000..86ca873c7 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesConsolidado.jrxml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="da52f710-3882-4beb-ba6f-870e03f6800d" mode="Transparent" x="0" y="0" width="180" height="41" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="14" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> + </textField> + <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> + <reportElement uuid="2f4f1314-9363-4e6d-822f-c85c1890998b" mode="Transparent" x="533" y="25" width="21" height="16" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Center" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="c8a70b8d-369e-48ae-a911-a5d9692316f7" mode="Transparent" x="450" y="42" width="104" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.impressorPor}+" "+$P{USUARIO}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy HH:mm" isBlankWhenNull="false"> + <reportElement uuid="ad4bbfb8-582d-4aa2-904d-8dfe60e54442" mode="Transparent" x="450" y="0" width="104" height="25" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="8601bf20-f5f8-4fed-9445-7adfe580d236" mode="Transparent" x="265" y="25" width="267" height="16" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.pagina}+" "+$V{PAGE_NUMBER}+" "+$R{cabecalho.de}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="b48a0903-0b2a-4ae5-ae04-811d097a9f91" x="265" y="0" width="185" height="25"/> + <textElement textAlignment="Right"> + <font size="9" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.dataHora}]]></textFieldExpression> + </textField> + <line> + <reportElement uuid="3c577f75-c6d6-4c11-a846-bfe71a8a1b42" x="-1" y="58" width="554" height="1"/> + </line> + <textField isStretchWithOverflow="true"> + <reportElement uuid="aff6535e-c25b-4f31-ad3a-baacc52e4974" x="-1" y="59" width="555" height="15"/> + <textElement verticalAlignment="Middle"> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[$P{FILTROS}]]></textFieldExpression> + </textField> + <line> + <reportElement uuid="84641d2c-21a5-47f0-b4a8-afe7bf700cb6" positionType="Float" x="-1" y="78" width="554" height="1"/> + </line> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesDetalhado.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesDetalhado.jasper new file mode 100644 index 000000000..7791db663 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesDetalhado.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesDetalhado.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesDetalhado.jrxml new file mode 100644 index 000000000..34301ee74 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCadastroClientesDetalhado.jrxml @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="da52f710-3882-4beb-ba6f-870e03f6800d" mode="Transparent" x="0" y="0" width="457" height="41" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="14" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> + </textField> + <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> + <reportElement uuid="2f4f1314-9363-4e6d-822f-c85c1890998b" mode="Transparent" x="811" y="25" width="21" height="16" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Center" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="c8a70b8d-369e-48ae-a911-a5d9692316f7" mode="Transparent" x="728" y="42" width="104" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.impressorPor}+" "+$P{USUARIO}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy HH:mm" isBlankWhenNull="false"> + <reportElement uuid="ad4bbfb8-582d-4aa2-904d-8dfe60e54442" mode="Transparent" x="728" y="0" width="104" height="25" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="8601bf20-f5f8-4fed-9445-7adfe580d236" mode="Transparent" x="543" y="25" width="267" height="16" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.pagina}+" "+$V{PAGE_NUMBER}+" "+$R{cabecalho.de}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="b48a0903-0b2a-4ae5-ae04-811d097a9f91" x="543" y="0" width="185" height="25"/> + <textElement textAlignment="Right"> + <font size="9" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.dataHora}]]></textFieldExpression> + </textField> + <line> + <reportElement uuid="3c577f75-c6d6-4c11-a846-bfe71a8a1b42" x="-1" y="58" width="832" height="1"/> + </line> + <textField isStretchWithOverflow="true"> + <reportElement uuid="aff6535e-c25b-4f31-ad3a-baacc52e4974" x="-1" y="59" width="833" height="15"/> + <textElement verticalAlignment="Middle"> + <font size="10"/> + </textElement> + <textFieldExpression><![CDATA[$P{FILTROS}]]></textFieldExpression> + </textField> + <line> + <reportElement uuid="84641d2c-21a5-47f0-b4a8-afe7bf700cb6" positionType="Float" x="-1" y="78" width="832" height="1"/> + </line> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCadastroClienteController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCadastroClienteController.java new file mode 100644 index 000000000..2d2543cb8 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCadastroClienteController.java @@ -0,0 +1,161 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +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.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Radio; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioCadastroClientesDetalhado; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioCadastroClientesConsolidado; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioCadastroClienteController") +@Scope("prototype") +public class RelatorioCadastroClienteController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + private Datebox dtCadastroInicial; + private Datebox dtCadastroFinal; + private MyComboboxEstandar cmbEmpresa; + private Combobox cmbPuntoVenta; + private Radio rdbConsolidado; + + private List lsEmpresa; + + @Autowired + private EmpresaService empresaService; + @Autowired + private DataSource dataSourceRead; + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEmpresa = empresaService.obtenerTodos(); + super.doAfterCompose(comp); + + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + private void executarRelatorio() throws Exception { + Relatorio relatorio; + Map parametros = new HashMap(); + StringBuilder filtro = new StringBuilder(); + SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); + + if (!validar()) { + return; + } + + if (dtCadastroInicial.getValue() != null) { + filtro.append("Data Cadastro: ") + .append(format.format(dtCadastroInicial.getValue())) + .append(" - ") + .append(format.format(dtCadastroFinal.getValue())) + .append(";"); + } + + parametros.put("DATA_CADASTRO_INICIAL", (java.util.Date) dtCadastroInicial.getValue()); + parametros.put("DATA_CADASTRO_FINAL", (java.util.Date) dtCadastroFinal.getValue()); + + parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioCadastroClientesController.window.title")); + parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString()); + parametros.put("USUARIO_NOME", UsuarioLogado.getUsuarioLogado().getNombusuario()); + + filtro.append("Empresa: "); + Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); + if (itemEmpresa != null) { + Empresa empresa = (Empresa) itemEmpresa.getValue(); + parametros.put("EMPRESA_ID", empresa.getEmpresaId()); + filtro.append(empresa.getNombempresa() + ";"); + } else { + filtro.append(" Todas; "); + } + + filtro.append("Agência: "); + Comboitem itemPuntoVenta = cmbPuntoVenta.getSelectedItem(); + if (itemPuntoVenta != null) { + PuntoVenta puntoVenta = (PuntoVenta) itemPuntoVenta.getValue(); + parametros.put("PUNTOVENTA_ID", puntoVenta.getPuntoventaId()); + filtro.append(puntoVenta.getNombpuntoventa() + ";"); + } else { + filtro.append(" Todas; "); + } + + parametros.put("FILTROS", filtro.toString()); + + if (rdbConsolidado.isSelected()) { + relatorio = new RelatorioCadastroClientesConsolidado(parametros, dataSourceRead.getConnection()); + } else { + relatorio = new RelatorioCadastroClientesDetalhado(parametros, dataSourceRead.getConnection()); + } + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioHistoricoClientesController.window.title"), args, MODAL); + } + + private boolean validar() { + try { + if (dtCadastroInicial.getValue() == null || dtCadastroFinal.getValue() == null) { + Messagebox.show(Labels.getLabel("relatorioCadastroClientesController.MSG.informarDataCadastro"), + Labels.getLabel("relatorioCadastroClientesController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return false; + } + + if(dtCadastroInicial.getValue().after(dtCadastroFinal.getValue())){ + Messagebox.show(Labels.getLabel("relatorioCadastroClientesController.MSG.dataInicialMaiorQueFinal"), + Labels.getLabel("relatorioCadastroClientesController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return false; + } + + } catch (InterruptedException ex) { + return false; + } + return true; + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + executarRelatorio(); + } + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + public MyComboboxEstandar getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(MyComboboxEstandar cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java index 2a29ae5b7..c67ab0372 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/sendaAmigo/EditarClienteController.java @@ -2,6 +2,7 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.sendaAmigo; import java.util.ArrayList; import java.util.Calendar; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -804,7 +805,7 @@ public class EditarClienteController extends MyGenericForwardComposer { numtelefonodos.getValue(); cmbMotivacionViaje.getValue(); cmbOcupacion.getValue(); - + List lsCliente = clienteService.buscarPorDocumento(txtNumRfc.getValue()); if (lsCliente.size() > 1 || (lsCliente.size() == 1 && !lsCliente.get(0).getClienteId().equals(cliente.getClienteId()))) { @@ -851,6 +852,8 @@ public class EditarClienteController extends MyGenericForwardComposer { try { if (cliente.getClienteId() == null) { + cliente.setFecCadastro(new Date()); + if (cmbMotivacionViaje.getSelectedItem() != null) { cliente.setMotivoviajeId( (MotivoViaje) cmbMotivacionViaje.getSelectedItem().getValue()); diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioCadastroClientes.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioCadastroClientes.java new file mode 100644 index 000000000..a9ee70e0f --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioCadastroClientes.java @@ -0,0 +1,25 @@ +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 ItemMenuRelatorioCadastroClientes extends DefaultItemMenuSistema { + + public ItemMenuRelatorioCadastroClientes() { + super("indexController.mniRelatorioCadastroClientes.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.CADASTROCLIENTES"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioCadastroClientes.zul", + Labels.getLabel("relatorioCadastroClientesController.window.title"), getArgs(), desktop); + + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties index a420fab66..d06c4f24f 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties @@ -125,6 +125,7 @@ analitico=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.MenuA analitico.item=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.ItemMenuAnalitico analitico.gerenciais=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.SubMenuGerenciais analitico.gerenciais.segundaVia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioSegundaVia +analitico.gerenciais.cadastroClientes=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioCadastroClientes analitico.gerenciais.historicoClientes=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioHistoricoClientes analitico.gerenciais.aidfDetalhado=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioAidfDetalhado analitico.gerenciais.cancelamentoAutomaticoECF=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioCancelamentoAutomaticoECF diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderClienteFidelidade.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderClienteFidelidade.java index 3077d9fa7..709eade2c 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderClienteFidelidade.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderClienteFidelidade.java @@ -14,7 +14,7 @@ public class RenderClienteFidelidade implements ListitemRenderer { Listcell lc = new Listcell(clienteFidelidad.getClienteFidelidadId() == null ? "-" : clienteFidelidad.getClienteFidelidadId().toString()); lc.setParent(lstm); - if(clienteFidelidad.getTarjetaFidelidad() != null){ + if(clienteFidelidad.getTarjetaFidelidad() != null && clienteFidelidad.getTarjetaFidelidad().getNumTarjeta() != null){ lc = new Listcell(clienteFidelidad.getTarjetaFidelidad().getNumTarjeta().toString()); }else{ lc = new Listcell("-"); diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 281e31b3c..e8648f153 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -282,6 +282,7 @@ indexController.mniRelatorioTabelaPreco.label = Reporte de tabla de precios indexController.mniRelatorioAIDF.label = Reporte AIDF indexController.mniRelatorioAIDFDetalhado.label = Reporte Estoque indexController.mniRelatorioHistoricoClientes.label = Histórico Clientes +indexController.mniRelatorioCadastroClientes.label = Cadastro Clientes indexController.mniRelatorioSegundaVia.label = Segunda Via indexController.mniPrecoApanhe.label = Precio Apanhe indexController.mniRelatorioVendasPacotesResumido.label = Ventas de paquetes - Resumido @@ -483,6 +484,18 @@ relatorioHistoricoClientesController.MSG.informarDataVenda = Favor informar o pe relatorioHistoricoClientesController.MSG.informarDataEmbarque = Favor infromar o período completo de embarque. relatorioHistoricoClientesController.lblAgruparPorCliente.value = Agrupar por Cliente +#Relatorio Cadastro Clientes +relatorioCadastroClientesController.window.title = Relatório Cadastro de Clientes +relatorioCadastroClientesController.lblDataCadastroInicial.value = Data Cadastro Inicial +relatorioCadastroClientesController.lblDataCadastroFinal.value = Data Cadastro Final +relatorioCadastroClientesController.lblEmpresa.value = Empresa +relatorioCadastroClientesController.lblPuntoVenta.value = Agência +relatorioCadastroClientesController.lblTipoRelatorio = Tipo Relatório +relatorioCadastroClientesController.lblConsolidado.value = Consolidado +relatorioCadastroClientesController.lblDetalhado.value = Detalhado +relatorioCadastroClientesController.MSG.informarDataCadastro = Favor informar data de cadastro inicial e final. +relatorioCadastroClientesController.MSG.dataInicialMaiorQueFinal = Data de cadastro inicial não pode ser maior do que a final. + # Relatorio OCD Empresa relatorioOCDController.window.title=Reporte OCD por la empresa relatorioOCDController.lbEmpresa.value=Empresa @@ -6079,6 +6092,7 @@ editarClienteController.tab.label.curso = Curso editarClienteController.lbNumFidelidade.value= Numero de Fidelidade editarClienteController.empresa.value = Empresa +editarClienteController.empresaCadastro.value = Empresa Cadastro editarClienteController.btnAddNumFidelidade.tooltiptext = Adicionar editarClienteController.btnRemoveNumFidelidade.tooltiptext = Remover editarClienteController.msg.noEmpresa = Favor seleccionar una empresa diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 642efa40b..4f367d9c4 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -299,6 +299,7 @@ indexController.mniRelatorioTabelaPreco.label = Tabela de Preços indexController.mniRelatorioAIDF.label = AIDF indexController.mniRelatorioAIDFDetalhado.label = Relatório Estoque indexController.mniRelatorioHistoricoClientes.label = Histórico Clientes +indexController.mniRelatorioCadastroClientes.label = Cadastro Clientes indexController.mniRelatorioConsultaAntt.label= Consulta ANTT indexController.mniRelatorioSegundaVia.label = Segunda Via indexController.mniPrecoApanhe.label = Preço Apanhe @@ -508,6 +509,18 @@ relatorioHistoricoClientesController.MSG.informarDataVenda = Favor informar o pe relatorioHistoricoClientesController.MSG.informarDataEmbarque = Favor infromar o período completo de embarque. relatorioHistoricoClientesController.lblAgruparPorCliente.value = Agrupar por Cliente +#Relatorio Cadastro Clientes +relatorioCadastroClientesController.window.title = Relatório Cadastro de Clientes +relatorioCadastroClientesController.lblDataCadastroInicial.value = Data Cadastro Inicial +relatorioCadastroClientesController.lblDataCadastroFinal.value = Data Cadastro Final +relatorioCadastroClientesController.lblEmpresa.value = Empresa +relatorioCadastroClientesController.lblPuntoVenta.value = Agência +relatorioCadastroClientesController.lblTipoRelatorio = Tipo Relatório +relatorioCadastroClientesController.lblConsolidado.value = Consolidado +relatorioCadastroClientesController.lblDetalhado.value = Detalhado +relatorioCadastroClientesController.MSG.informarDataCadastro = Favor informar data de cadastro inicial e final. +relatorioCadastroClientesController.MSG.dataInicialMaiorQueFinal = Data de cadastro inicial não pode ser maior do que a final. + # Relatorio OCD Empresa relatorioOCDController.window.title=Relatório OCD por Empresa relatorioOCDController.lbEmpresa.value=Empresa @@ -6331,6 +6344,7 @@ editarClienteController.tab.label.curso = Curso editarClienteController.lbNumFidelidade.value= Número de Fidelidade editarClienteController.empresa.value = Empresa +editarClienteController.empresaCadastro.value = Empresa Cadastro editarClienteController.btnAddNumFidelidade.tooltiptext = Adicionar editarClienteController.btnRemoveNumFidelidade.tooltiptext = Remover editarClienteController.msg.noEmpresa = Favor selecionar uma empresa diff --git a/web/gui/relatorios/filtroRelatorioCadastroClientes.zul b/web/gui/relatorios/filtroRelatorioCadastroClientes.zul new file mode 100644 index 000000000..c08938f75 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioCadastroClientes.zul @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +