diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCarteirinha.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCarteirinha.java index 02196b327..ee33eac84 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCarteirinha.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCarteirinha.java @@ -6,6 +6,7 @@ import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -14,7 +15,10 @@ import javax.imageio.ImageIO; import org.slf4j.Logger; -import com.rjconsultores.ventaboletos.dao.hibernate.CajaHibernateDAO; +import com.rjconsultores.ventaboletos.entidad.Cliente; +import com.rjconsultores.ventaboletos.entidad.ClienteDescuento; +import com.rjconsultores.ventaboletos.entidad.ClienteDireccion; +import com.rjconsultores.ventaboletos.entidad.ClienteFidelidad; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; @@ -23,12 +27,16 @@ public class RelatorioCarteirinha extends Relatorio { private static Logger log = org.slf4j.LoggerFactory.getLogger(RelatorioCarteirinha.class); - public RelatorioCarteirinha(Map parametros, Connection conexao) throws Exception { + private List clientes; + + + public RelatorioCarteirinha(Map parametros, final List lsClienteSelecionados, Connection conexao) throws Exception { super(parametros, conexao); + this.clientes = lsClienteSelecionados; this.setCustomDataSource(new ArrayDataSource(this) { public void initDados() throws Exception { Connection conexao = this.relatorio.getConexao(); - buscarDadosEmpresa(conexao, this.dados, this.resultSet); + buscarDados(conexao, this.dados, this.resultSet); } }); } @@ -37,8 +45,8 @@ public class RelatorioCarteirinha extends Relatorio { protected void processaParametros() throws Exception { } - private void buscarDadosEmpresa(Connection conexao, List> dados, ResultSet resultSet) throws SQLException { - StringBuilder sqlLogoEmpresa = new StringBuilder(); + private void buscarDados(Connection conexao, List> dados, ResultSet resultSet) throws SQLException { + StringBuilder sqlLogoEmpresa = new StringBuilder(); sqlLogoEmpresa.append(" SELECT IE.NUMINSCRICAOESTADUAL, M.LOGOTIPOMARCA, E.LOGRADOURO, M.DESCMARCA, E.BAIRRO, "); sqlLogoEmpresa.append(" C.NOMBCIUDAD, ES.NOMBESTADO, E.CEP, E.NUMTELEFONO, E.NUMERO, E.CNPJ "); sqlLogoEmpresa.append(" FROM MARCA M "); @@ -49,67 +57,143 @@ public class RelatorioCarteirinha extends Relatorio { sqlLogoEmpresa.append(" WHERE M.EMPRESA_ID = :empresaId "); sqlLogoEmpresa.append(" AND C.ESTADO_ID = IE.ESTADO_ID "); sqlLogoEmpresa.append(" AND LOGOTIPOMARCA IS NOT NULL "); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sqlLogoEmpresa.toString()); stmt.setInt("empresaId", Integer.valueOf(parametros.get("EMPRESA_ID").toString())); ResultSet rset = stmt.executeQuery(); - while (rset.next()) { - Map dataResult = new HashMap(); + if (rset.next()) { InputStream blob = rset.getBinaryStream("LOGOTIPOMARCA"); BufferedImage image = null; try { image = ImageIO.read(blob); } catch (IOException e) { log.error("", e); - } - dataResult.put("logomarca", image); - dataResult.put("nomeEmpresa", rset.getString("DESCMARCA")); - dataResult.put("enderecoEmpresa" , construirStringEnderecoCompleto(rset)); - dataResult.put("cepTelefoneEmpresa", construirStringCepTelefone(rset)); - dataResult.put("cnpjIEstadualEmpresa", contruirStringCnpjIEstadual(rset)); - dataResult.put("local", rset.getString("NOMBCIUDAD")); - imprimirQuantidadePorPagina(dados, dataResult); + } + for(int i = 0; i < clientes.size(); i++){ + Map dataResult = new HashMap(); + preencherDadosCliente(i, dataResult); + preencherDadosEmpresa(dados, rset, image, dataResult); + } } resultSet = rset; } - private void imprimirQuantidadePorPagina(List> dados, Map dataResult) { - final Integer QUANTIDADE_POR_PAGINA = 8; - for(int i = 0; i < QUANTIDADE_POR_PAGINA; i++){ - dados.add(dataResult); + private void preencherDadosEmpresa(List> dados, ResultSet rset, BufferedImage image, Map dataResult) throws SQLException { + dataResult.put("logomarca", image); + dataResult.put("nomeEmpresa", rset.getString("DESCMARCA") != null ? rset.getString("DESCMARCA") : ""); + dataResult.put("enderecoEmpresa" , construirStringEnderecoCompletoEmpresa(rset)); + dataResult.put("cepTelefoneEmpresa", construirStringCepTelefoneEmpresa(rset)); + dataResult.put("cnpjIEstadualEmpresa", contruirStringCnpjIEstadual(rset)); + dataResult.put("local", rset.getString("NOMBCIUDAD") != null ? rset.getString("NOMBCIUDAD") + "," : ""); + dados.add(dataResult); + } + + private void preencherDadosCliente(int i, Map dataResult) { + + String numeroFidelidade = null; + + for(ClienteFidelidad clienteFidelidad : clientes.get(i).getListClienteFidelidadActivos()){ + clienteFidelidad.getEmpresa().getEmpresaId().equals(clientes.get(i)); + } + + if(clientes.get(i).getListClienteFidelidadActivos() != null && clientes.get(i).getListClienteFidelidadActivos().size() > 0){ + numeroFidelidade = clientes.get(i).getListClienteFidelidadActivos().get(0).getTarjetaFidelidad().getNumTarjeta().toString(); } + + dataResult.put("numeroCliente", numeroFidelidade != null? numeroFidelidade : ""); + dataResult.put("nomeCliente", clientes.get(i).getNombcliente()); + + if(clientes.get(i).getLsClienteDireccion() != null && clientes.get(i).getLsClienteDireccion().size() > 0){ + ClienteDireccion clienteDireccion = clientes.get(i).getLsClienteDireccion().get(0); + dataResult.put("enderecoCliente", construirStringEnderecoCompletoCliente(clienteDireccion)); + }else{ + dataResult.put("enderecoCliente", ""); + } + + if(clientes.get(i).getEscola() != null){ + dataResult.put("escola", clientes.get(i).getEscola().getNombescola()); + }else{ + dataResult.put("escola", ""); + } + + if(clientes.get(i).getLsClienteDescuento() != null && clientes.get(i).getLsClienteDescuento().size() > 0){ + StringBuilder trechosDescuento = new StringBuilder(); + for(ClienteDescuento clienteDescuento : clientes.get(i).getLsClienteDescuento()){ + trechosDescuento.append(clienteDescuento.getOrigem().getCveparada()); + trechosDescuento.append(" -> "); + trechosDescuento.append(clienteDescuento.getDestino().getCveparada()); + trechosDescuento.append(","); + } + trechosDescuento.deleteCharAt(trechosDescuento.length()-1); + dataResult.put("trajeto", trechosDescuento.toString()); + }else{ + dataResult.put("trajeto", ""); + } + + preecherDataAtual(dataResult); + + } + + private void preecherDataAtual(Map dataResult) { + Calendar calendarDataAtual = Calendar.getInstance(); + Integer diaAtual = calendarDataAtual.get(Calendar.DAY_OF_MONTH); + Integer anoAtual = calendarDataAtual.get(Calendar.YEAR); + String meses[] = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", + "Novembro", "Dezembro"}; + String mesAtual = meses[calendarDataAtual.get(Calendar.MONTH)]; + dataResult.put("dia", diaAtual.toString()); + dataResult.put("mes", mesAtual); + dataResult.put("ano", anoAtual.toString()); + } + + private String construirStringEnderecoCompletoCliente(ClienteDireccion clienteDireccion) { + StringBuilder enderecoCompletoCliente = new StringBuilder(); + enderecoCompletoCliente.append(clienteDireccion.getDesccallecomp() != null ? clienteDireccion.getDesccallecomp(): " "); + enderecoCompletoCliente.append(" "); + enderecoCompletoCliente.append(clienteDireccion.getDesccalle() != null ? clienteDireccion.getDesccalle(): " " ); + enderecoCompletoCliente.append(" "); + enderecoCompletoCliente.append("Nº "); + enderecoCompletoCliente.append(clienteDireccion.getNumexterior() != null ? clienteDireccion.getNumexterior(): " "); + enderecoCompletoCliente.append(", BAIRRO "); + enderecoCompletoCliente.append(clienteDireccion.getDesccolonia() != null ? clienteDireccion.getDesccolonia(): " " ); + enderecoCompletoCliente.append(", "); + enderecoCompletoCliente.append(clienteDireccion.getDesciudad() != null ? clienteDireccion.getDesciudad(): " "); + enderecoCompletoCliente.append("-"); + enderecoCompletoCliente.append(clienteDireccion.getDesestado() != null ? clienteDireccion.getDesestado() : " "); + return enderecoCompletoCliente.toString(); } private String contruirStringCnpjIEstadual(ResultSet rset) throws SQLException { StringBuilder cnpjIEstadualEmpresa = new StringBuilder(); cnpjIEstadualEmpresa.append("CNPJ "); - cnpjIEstadualEmpresa.append(rset.getString("CNPJ")); + cnpjIEstadualEmpresa.append(rset.getString("CNPJ") != null ? rset.getString("CNPJ") : "" ); cnpjIEstadualEmpresa.append(" - "); cnpjIEstadualEmpresa.append("Inscr. Estadual "); - cnpjIEstadualEmpresa.append(rset.getString("NUMINSCRICAOESTADUAL")); + cnpjIEstadualEmpresa.append(rset.getString("NUMINSCRICAOESTADUAL") != null ? rset.getString("NUMINSCRICAOESTADUAL") : "" ); return cnpjIEstadualEmpresa.toString(); } - private String construirStringCepTelefone(ResultSet rset) throws SQLException { + private String construirStringCepTelefoneEmpresa(ResultSet rset) throws SQLException { StringBuilder cepTelefoneEmpresa = new StringBuilder(); cepTelefoneEmpresa.append("CEP "); - cepTelefoneEmpresa.append(rset.getString("CEP")); + cepTelefoneEmpresa.append(rset.getString("CEP") != null ? rset.getString("CEP") : ""); cepTelefoneEmpresa.append(" - "); cepTelefoneEmpresa.append("Fone "); - cepTelefoneEmpresa.append(rset.getString("NUMTELEFONO")); + cepTelefoneEmpresa.append(rset.getString("NUMTELEFONO") != null ? rset.getString("NUMTELEFONO") : "" ); return cepTelefoneEmpresa.toString(); } - private String construirStringEnderecoCompleto(ResultSet rset) throws SQLException { + private String construirStringEnderecoCompletoEmpresa(ResultSet rset) throws SQLException { StringBuilder enderecoCompleto = new StringBuilder(); - enderecoCompleto.append(rset.getString("LOGRADOURO")); + enderecoCompleto.append(rset.getString("LOGRADOURO") != null ? rset.getString("LOGRADOURO") : "" ); enderecoCompleto.append(", "); - enderecoCompleto.append(rset.getString("NUMERO")); + enderecoCompleto.append(rset.getString("NUMERO") != null ? rset.getString("NUMERO") : ""); enderecoCompleto.append(" - "); - enderecoCompleto.append(rset.getString("BAIRRO")); + enderecoCompleto.append(rset.getString("BAIRRO") != null ? rset.getString("BAIRRO") : ""); enderecoCompleto.append(" - "); - enderecoCompleto.append(rset.getString("NOMBCIUDAD")); + enderecoCompleto.append(rset.getString("NOMBCIUDAD") != null ? rset.getString("NOMBCIUDAD") : ""); enderecoCompleto.append(" - "); - enderecoCompleto.append(rset.getString("NOMBESTADO")); + enderecoCompleto.append(rset.getString("NOMBESTADO") != null ? rset.getString("NOMBESTADO") : "" ); return enderecoCompleto.toString(); } } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCarteirinha_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCarteirinha_es.properties index a2300834e..78df384e4 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCarteirinha_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCarteirinha_es.properties @@ -1,8 +1,8 @@ label.titulo=CARTEIRA DE IDENTIFICAÇÃO - PASSE ESCOLAR -label.numero = Nº -label.nome = Nome -label.endereco = Endereço -label.escola = Escola -label.trajeto = Trajeto +label.numero = Nº: +label.nome = Nome: +label.endereco = Endereço: +label.escola = Escola: +label.trajeto = Trajeto: label.assinatura = Assinatura -label.de = De \ No newline at end of file +label.de = de \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCarteirinha_pt.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCarteirinha_pt.properties index a2300834e..78df384e4 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCarteirinha_pt.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCarteirinha_pt.properties @@ -1,8 +1,8 @@ label.titulo=CARTEIRA DE IDENTIFICAÇÃO - PASSE ESCOLAR -label.numero = Nº -label.nome = Nome -label.endereco = Endereço -label.escola = Escola -label.trajeto = Trajeto +label.numero = Nº: +label.nome = Nome: +label.endereco = Endereço: +label.escola = Escola: +label.trajeto = Trajeto: label.assinatura = Assinatura -label.de = De \ No newline at end of file +label.de = de \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCarteirinha.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCarteirinha.jasper index 2dbca29f7..bb6e45b9c 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCarteirinha.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCarteirinha.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCarteirinha.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCarteirinha.jrxml index d9b7c987f..830efe6ef 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCarteirinha.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCarteirinha.jrxml @@ -1,8 +1,8 @@ - - - + + +