diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/LegislacaoAplicavelToPrint.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/LegislacaoAplicavelToPrint.java index 8fd5486d..62b13c37 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/LegislacaoAplicavelToPrint.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/LegislacaoAplicavelToPrint.java @@ -7,38 +7,42 @@ import org.jdom.Element; public class LegislacaoAplicavelToPrint implements PrintableInterface { - protected Vector diplomas; + protected Vector diplomasGerais; + protected String[] nomesGruposEspecificos; + protected Vector[] diplomasEspecificos; - public LegislacaoAplicavelToPrint( Vector diplomas ) + public LegislacaoAplicavelToPrint( Vector diplomasGerais, + String[] nomesGruposEspecificos, Vector[] diplomasEspecificos ) { super(); - this.diplomas = diplomas; + this.diplomasGerais = diplomasGerais; + this.nomesGruposEspecificos = nomesGruposEspecificos; + this.diplomasEspecificos = diplomasEspecificos; } - public Vector getDiplomas() - { - return diplomas; - } - - public void setDiplomas( Vector diplomas ) - { - this.diplomas = diplomas; - } - - protected void addDiploma( String diploma ) - { - diplomas.add( diploma ); - } - @Override public Element toJdomElement() throws Exception { Element legislacaoAplicavelElement = new Element( "legislacao-aplicavel" ); - for( String diploma : diplomas ) + Element legislacaoGeralElement = new Element( "legislacao-geral" ); + for( String diploma : diplomasGerais ) { Element diplomaElement = new Element( "diploma" ); diplomaElement.setText( diploma ); - legislacaoAplicavelElement.addContent( diploma ); + legislacaoGeralElement.addContent( diplomaElement ); + } + legislacaoAplicavelElement.addContent( legislacaoGeralElement ); + + for( int e = 0; e < nomesGruposEspecificos.length; e++ ) + { + Element legislacaoEspecificaElement = new Element( "legislacao-especifica" ); + for( String diploma : diplomasEspecificos[ e ] ) + { + Element diplomaElement = new Element( "diploma" ); + diplomaElement.setText( diploma ); + legislacaoEspecificaElement.addContent( diplomaElement ); + } + legislacaoAplicavelElement.addContent( legislacaoEspecificaElement ); } return legislacaoAplicavelElement; } diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/NormalizacaoToPrint.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/NormalizacaoToPrint.java new file mode 100644 index 00000000..c3746d1d --- /dev/null +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/NormalizacaoToPrint.java @@ -0,0 +1,43 @@ +package siprp.higiene.relatorio.print; + +import java.util.Vector; + +import org.jdom.Element; + +public class NormalizacaoToPrint + implements PrintableInterface +{ + protected Vector normasPortuguesas; + protected Vector normasInternacionais; + + public NormalizacaoToPrint( Vector normasPortuguesas, Vector normasInternacionais ) + { + super(); + this.normasPortuguesas = normasPortuguesas; + this.normasInternacionais = normasInternacionais; + } + + @Override + public Element toJdomElement() throws Exception + { + Element normalizacaoElement = new Element( "normalizacao-aplicavel" ); + Element portuguesaElement = new Element( "normalizacao-portuguesa" ); + addNormas( portuguesaElement, normasPortuguesas ); + normalizacaoElement.addContent( portuguesaElement ); + Element internacionalElement = new Element( "normalizacao-internacional" ); + addNormas( internacionalElement, normasInternacionais ); + normalizacaoElement.addContent( internacionalElement ); + return normalizacaoElement; + } + + protected void addNormas( Element element, Vector normas ) + { + for( String norma : normas ) + { + Element normaElement = new Element( "norma" ); + normaElement.setText( norma ); + element.addContent( normaElement ); + } + } + +} diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/RelatorioPrintDataProvider.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/RelatorioPrintDataProvider.java index 294af9db..53978e11 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/RelatorioPrintDataProvider.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/RelatorioPrintDataProvider.java @@ -154,14 +154,82 @@ public class RelatorioPrintDataProvider return array.columnLength() > 0 ? ( Integer ) array.get( 0, 0 ) : null; } - public LegislacaoAplicavelToPrint getLegislacaoAplicavel( Integer empresaId, Integer estabelecimentoId ) + public LegislacaoAplicavelToPrint getLegislacaoAplicavel( Integer relatorioId ) throws Exception { - //TODO: - LegislacaoAplicavelToPrint legislacao = new LegislacaoAplicavelToPrint( new Vector() ); + Select select = + new Select2( + new String[]{ "hs_relatorio_legislacao" }, + new Integer[]{}, + new Expression[]{}, + new String[]{ "hs_relatorio_legislacao.categoria", "hs_relatorio_legislacao.descricao" }, + new Field( "hs_relatorio_legislacao.hs_relatorio_id" ).isEqual( relatorioId ), + new String[]{ "hs_relatorio_legislacao.categoria DESC" }, + null, + null, + null ); + Virtual2DArray array = EXECUTER.executeQuery( select ); + Vector diplomasGerais = new Vector(); + Vector nomes = new Vector(); + Vector> diplomas = new Vector>(); + String last = null; + for( int n = 0; n < array.columnLength(); n++ ) + { + String categoria = ( String ) array.get( n, 0 ); + String descricao = ( String ) array.get( n, 1 ); + if( categoria == null || categoria.trim().length() == 0 ) + { + diplomasGerais.add( descricao ); + } + else + { + if( !categoria.equals( last ) ) + { + nomes.add( categoria ); + diplomas.add( new Vector() ); + } + diplomas.lastElement().add( descricao ); + } + } + LegislacaoAplicavelToPrint legislacao = + new LegislacaoAplicavelToPrint( diplomasGerais, nomes.toArray( new String[ nomes.size() ] ), + diplomas.toArray( new Vector[ diplomas.size() ] )); return legislacao; } + public NormalizacaoToPrint getNormalizacaoAplicavel( Integer relatorioId ) + throws Exception + { + Select select = + new Select2( + new String[]{ "hs_relatorio_normalizacao" }, + new Integer[]{}, + new Expression[]{}, + new String[]{ "hs_relatorio_normalizacao.portuguesa", "hs_relatorio_normalizacao.descricao" }, + new Field( "hs_relatorio_normalizacao.hs_relatorio_id" ).isEqual( relatorioId ), + new String[]{ "hs_relatorio_normalizacao.portuguesa", "hs_relatorio_normalizacao.descricao" }, + null, + null, + null ); + Virtual2DArray array = EXECUTER.executeQuery( select ); + Vector portuguesas = new Vector(); + Vector internacionais = new Vector(); + for( int n = 0; n < array.columnLength(); n++ ) + { + Boolean portuguesa = ( Boolean ) array.get( n, 0 ); + String descricao = ( String ) array.get( n, 1 ); + if( portuguesa ) + { + portuguesas.add( descricao ); + } + else + { + internacionais.add( descricao ); + } + } + return new NormalizacaoToPrint( portuguesas, internacionais ); + } + public Vector getAreasToPrintByPlanoId( Integer planoId, boolean validacaoDl, boolean validacaoDns ) throws Exception { diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/RelatorioToPrint.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/RelatorioToPrint.java index e0e16bb1..2ab74179 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/RelatorioToPrint.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/print/RelatorioToPrint.java @@ -12,10 +12,13 @@ public class RelatorioToPrint protected DataToPrint dataHs; protected DataToPrint dataProximaHs; protected LegislacaoAplicavelToPrint legislacaoAplicavel; + protected NormalizacaoToPrint normalizacaoAplicavel; protected Vector areas; public RelatorioToPrint( EmpresaToPrint empresa, DataToPrint dataRelatorio, - DataToPrint dataHs, DataToPrint dataProximaHs, LegislacaoAplicavelToPrint legislacaoAplicavel, + DataToPrint dataHs, DataToPrint dataProximaHs, + LegislacaoAplicavelToPrint legislacaoAplicavel, + NormalizacaoToPrint normalizacaoAplicavel, Vector areas ) { super(); @@ -24,6 +27,7 @@ public class RelatorioToPrint this.dataHs = dataHs; this.dataProximaHs = dataProximaHs; this.legislacaoAplicavel = legislacaoAplicavel; + this.normalizacaoAplicavel = normalizacaoAplicavel; this.areas = areas; } @@ -102,6 +106,7 @@ public class RelatorioToPrint planoElement.addContent( dataHs.toJdomElement() ); planoElement.addContent( dataProximaHs.toJdomElement() ); planoElement.addContent( legislacaoAplicavel.toJdomElement() ); + planoElement.addContent( normalizacaoAplicavel.toJdomElement() ); if( areas.size() > 0 ) { Element conclusoesElement = new Element( "conclusoes" ); @@ -114,5 +119,15 @@ public class RelatorioToPrint return planoElement; } + public NormalizacaoToPrint getNormalizacaoAplicavel() + { + return normalizacaoAplicavel; + } + + public void setNormalizacaoAplicavel( NormalizacaoToPrint normalizacaoAplicavel ) + { + this.normalizacaoAplicavel = normalizacaoAplicavel; + } + }