diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCarteirinha.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCarteirinha.java new file mode 100644 index 000000000..02196b327 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCarteirinha.java @@ -0,0 +1,115 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.io.InputStream; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.imageio.ImageIO; + +import org.slf4j.Logger; + +import com.rjconsultores.ventaboletos.dao.hibernate.CajaHibernateDAO; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioCarteirinha extends Relatorio { + + private static Logger log = org.slf4j.LoggerFactory.getLogger(RelatorioCarteirinha.class); + + public RelatorioCarteirinha(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + this.setCustomDataSource(new ArrayDataSource(this) { + public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); + buscarDadosEmpresa(conexao, this.dados, this.resultSet); + } + }); + } + + @Override + protected void processaParametros() throws Exception { + } + + private void buscarDadosEmpresa(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 "); + sqlLogoEmpresa.append(" INNER JOIN EMPRESA E ON M.EMPRESA_ID = E.EMPRESA_ID "); + sqlLogoEmpresa.append(" INNER JOIN CIUDAD C ON E.CIUDAD_ID = C.CIUDAD_ID "); + sqlLogoEmpresa.append(" INNER JOIN ESTADO ES ON ES.ESTADO_ID = C.ESTADO_ID "); + sqlLogoEmpresa.append(" INNER JOIN INSCRICAO_ESTADUAL IE ON IE.EMPRESA_ID = E.EMPRESA_ID "); + 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(); + 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); + } + 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 String contruirStringCnpjIEstadual(ResultSet rset) throws SQLException { + StringBuilder cnpjIEstadualEmpresa = new StringBuilder(); + cnpjIEstadualEmpresa.append("CNPJ "); + cnpjIEstadualEmpresa.append(rset.getString("CNPJ")); + cnpjIEstadualEmpresa.append(" - "); + cnpjIEstadualEmpresa.append("Inscr. Estadual "); + cnpjIEstadualEmpresa.append(rset.getString("NUMINSCRICAOESTADUAL")); + return cnpjIEstadualEmpresa.toString(); + } + + private String construirStringCepTelefone(ResultSet rset) throws SQLException { + StringBuilder cepTelefoneEmpresa = new StringBuilder(); + cepTelefoneEmpresa.append("CEP "); + cepTelefoneEmpresa.append(rset.getString("CEP")); + cepTelefoneEmpresa.append(" - "); + cepTelefoneEmpresa.append("Fone "); + cepTelefoneEmpresa.append(rset.getString("NUMTELEFONO")); + return cepTelefoneEmpresa.toString(); + } + + private String construirStringEnderecoCompleto(ResultSet rset) throws SQLException { + StringBuilder enderecoCompleto = new StringBuilder(); + enderecoCompleto.append(rset.getString("LOGRADOURO")); + enderecoCompleto.append(", "); + enderecoCompleto.append(rset.getString("NUMERO")); + enderecoCompleto.append(" - "); + enderecoCompleto.append(rset.getString("BAIRRO")); + enderecoCompleto.append(" - "); + enderecoCompleto.append(rset.getString("NOMBCIUDAD")); + enderecoCompleto.append(" - "); + enderecoCompleto.append(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 new file mode 100644 index 000000000..a2300834e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCarteirinha_es.properties @@ -0,0 +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.assinatura = Assinatura +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 new file mode 100644 index 000000000..a2300834e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCarteirinha_pt.properties @@ -0,0 +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.assinatura = Assinatura +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 new file mode 100644 index 000000000..2dbca29f7 Binary files /dev/null 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 new file mode 100644 index 000000000..d9b7c987f --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCarteirinha.jrxml @@ -0,0 +1,158 @@ + + + + + +