From 725b42b4ce7801eddf222e01f2e34549c1731b8c Mon Sep 17 00:00:00 2001 From: Diogo Neves Date: Wed, 16 Mar 2011 17:03:15 +0000 Subject: [PATCH] cores em riscos por preencher para responsaveis de seguranca git-svn-id: https://svn.coded.pt/svn/SIPRP@1638 bb69d46d-e84e-40c8-a05a-06db0d633741 --- .../java/db/providers/PlanosDataProvider.java | 63 +-------- .../src/java/db/providers/RiscoLogic.java | 132 ++++++++++++++++++ .../src/java/pagination/Pagination.java | 35 ++--- .../src/java/planosactuacao/EditarPlano.java | 96 +++---------- 4 files changed, 172 insertions(+), 154 deletions(-) create mode 100644 trunk/PlanosActuacao/src/java/db/providers/RiscoLogic.java diff --git a/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java b/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java index 3ac96fdc..fcce160e 100644 --- a/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java +++ b/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java @@ -629,66 +629,5 @@ public class PlanosDataProvider extends GenericDataProvider } return list; } - - private boolean isEmpty( String str ) - { - return str == null || "".equals( str.trim() ); - } - - public boolean isRiscoTratado( Risco risco, Utilizador user ) - { - boolean isTratado = false; - - if ( risco != null && user != null ) - { - int userType = user.getTipo() == null ? -1 : user.getTipo().intValue(); - - switch ( userType ) - { - case Global.RESPONSAVEL_SEGURANCA : - { - String resp = risco.getResponsavel_execucao(); - String por = risco.getPor(); - String rec = risco.getRecursos_necessarios(); - Date dataInicio = risco.getData_inicio(); - Date dataFim = risco.getData_fim(); - - isTratado = ! isEmpty( resp ) && ! isEmpty( por ) && ! isEmpty( rec ) && dataInicio != null && dataFim != null; - break; - } - case Global.DIRECTOR_LOJA : - { - String parecer = risco.getParecer_dl(); - - isTratado = ! isEmpty( parecer ); - - break; - } - case Global.DIRECTOR_NACIONAL_SEGURANCA : - { - String parecer = risco.getParecer_dns(); - - isTratado = ! isEmpty( parecer ); - - break; - } - case Global.TECNICO_HS : - { - String verify = risco.getVerificacao_siprp(); - isTratado = ! isEmpty( verify ); - List< Medida > medidas = risco.getMedidas(); - for ( int i = 0; i < medidas.size() && isTratado; i++ ) - { - Medida m = medidas.get( i ); - Integer estadoMedida = m.getValidarMedidaId(); - isTratado &= estadoMedida != null; - } - break; - } - } - } - - return isTratado; - } - + } diff --git a/trunk/PlanosActuacao/src/java/db/providers/RiscoLogic.java b/trunk/PlanosActuacao/src/java/db/providers/RiscoLogic.java new file mode 100644 index 00000000..1b6236e8 --- /dev/null +++ b/trunk/PlanosActuacao/src/java/db/providers/RiscoLogic.java @@ -0,0 +1,132 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package db.providers; + +import db.entidades.Medida; +import db.entidades.Risco; +import db.entidades.Utilizador; +import global.Global; +import java.util.Date; +import java.util.List; + +/** + * + * @author dneves + */ +public class RiscoLogic +{ + + private static RiscoLogic INSTANCE = null; + + private RiscoLogic() + { + + } + + public static synchronized RiscoLogic getInstance() + { + if ( INSTANCE == null ) + { + INSTANCE = new RiscoLogic(); + } + return INSTANCE; + } + + + private boolean hasValue( Object obj ) + { + boolean result = false; + if ( obj != null ) + { + if ( obj instanceof String ) + { + result = ! "".equals( ( ( String ) obj ).trim() ); + } + else if ( obj instanceof Date ) + { + result = true; + } + } + return result; + } + + public boolean isRiscoTratado( Risco r ) + { + boolean result = false; + + String responsavelExecucao = r.getResponsavel_execucao(); + String por = r.getPor(); + String recursosNecessarios = r.getRecursos_necessarios(); + Date dataInicio = r.getData_inicio(); + Date dataFim = r.getData_fim(); + + result = hasValue( responsavelExecucao ) && hasValue( por ) && hasValue( recursosNecessarios ) + && hasValue( dataInicio ) && hasValue( dataFim ); + return result; + } + + + public boolean isRiscoTratado( Risco risco, Utilizador user ) + { + boolean isTratado = false; + + if ( risco != null && user == null ) + { + isTratado = isRiscoTratado( risco ); + } + else if ( risco != null && user != null ) + { + int userType = user.getTipo() == null ? -1 : user.getTipo().intValue(); + + switch ( userType ) + { + case Global.RESPONSAVEL_SEGURANCA : + { + String resp = risco.getResponsavel_execucao(); + String por = risco.getPor(); + String rec = risco.getRecursos_necessarios(); + Date dataInicio = risco.getData_inicio(); + Date dataFim = risco.getData_fim(); + + isTratado = hasValue( resp ) && hasValue( por ) && hasValue( rec ) && hasValue( dataInicio ) && hasValue( dataFim ); + break; + } + case Global.DIRECTOR_LOJA : + { + String parecer = risco.getParecer_dl(); + + isTratado = hasValue( parecer ); + + break; + } + case Global.DIRECTOR_NACIONAL_SEGURANCA : + { + String parecer = risco.getParecer_dns(); + + isTratado = hasValue( parecer ); + + break; + } + case Global.TECNICO_HS : + { + String verify = risco.getVerificacao_siprp(); + isTratado = hasValue( verify ); + List< Medida > medidas = risco.getMedidas(); + for ( int i = 0; i < medidas.size() && isTratado; i++ ) + { + Medida m = medidas.get( i ); + Integer estadoMedida = m.getValidarMedidaId(); + isTratado &= estadoMedida != null; + } + + break; + } + } + } + + return isTratado; + } +} diff --git a/trunk/PlanosActuacao/src/java/pagination/Pagination.java b/trunk/PlanosActuacao/src/java/pagination/Pagination.java index 37178797..ef565b76 100644 --- a/trunk/PlanosActuacao/src/java/pagination/Pagination.java +++ b/trunk/PlanosActuacao/src/java/pagination/Pagination.java @@ -5,25 +5,31 @@ package pagination; -import com.evolute.utils.error.ErrorLogger; import db.entidades.PlanoActuacao; import db.entidades.Risco; import db.entidades.Utilizador; -import db.providers.PlanosDataProvider; +import db.providers.RiscoLogic; +import global.Global; import java.io.Serializable; +import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import java.util.Map; import planosactuacao.SessionBean1.PAGINATION_ENUM; -/** - * - * @author lluis - */ + public abstract class Pagination implements Serializable { - private static final String COLOR_TRATADO = "#0000FF"; - private static final String COLOR_NAO_TRATADO = "#FF0000"; +// private static final String COLOR_TRATADO = "#000000"; +// private static final String COLOR_NAO_TRATADO = "#FF5858"; + + private static final Map< Integer, String > COLOR_NAO_TRATADO = new HashMap< Integer, String >(); + static + { + COLOR_NAO_TRATADO.put( Global.RESPONSAVEL_SEGURANCA, "#FF5858" ); + } + private final PAGINATION_ENUM pagination; private final PlanoActuacao planoActuacao; @@ -155,15 +161,10 @@ public abstract class Pagination implements Serializable private String getColor( Risco risco ) { String result = null; -// try -// { -// boolean isRiscoTratado = PlanosDataProvider.getInstance().isRiscoTratado( risco, user ); -// result = isRiscoTratado ? COLOR_TRATADO : COLOR_NAO_TRATADO; -// } -// catch ( Exception e ) -// { -// ErrorLogger.logException( e ); -// } + + boolean isRiscoTratado = RiscoLogic.getInstance().isRiscoTratado( risco, user ); + result = isRiscoTratado ? null : COLOR_NAO_TRATADO.get( user.getTipo() ); + return result; } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java b/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java index bbb57f11..8acc84fd 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java @@ -27,6 +27,7 @@ import db.entidades.Risco; import db.entidades.Utilizador; import db.entidades.Valor; import db.providers.PlanosDataProvider; +import db.providers.RiscoLogic; import db.providers.UtilizadoresDataProvider; import db.providers.UtilizadoresLogic; import global.Global; @@ -461,7 +462,9 @@ public class EditarPlano extends AbstractPageBean { lblObs.setText( p.getObs_correcao() ); } - lblMsg.setText( getSessionBean1().getMsg() ); + + String errorMessage = getSessionBean1().getMsg(); + lblMsg.setText( ( errorMessage != null && ! "".equals( errorMessage.trim() ) ? "
" : "" ) + errorMessage ); getSessionBean1().setMsg( "" ); } @@ -536,22 +539,11 @@ public class EditarPlano extends AbstractPageBean { hidValidacao.setValue( "hs" ); } - - if ( u.getTipo().intValue() != Global.DIRECTOR_LOJA && u.getTipo().intValue() != Global.DIRECTOR_NACIONAL_SEGURANCA && u.getTipo().intValue() != Global.TECNICO_HS ) + if ( u.getTipo().intValue() != Global.DIRECTOR_LOJA && u.getTipo().intValue() != Global.DIRECTOR_NACIONAL_SEGURANCA + && u.getTipo().intValue() != Global.TECNICO_HS ) { gridValidar.setRendered( false ); } -// else -// { -// if ( u.getTipo().intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA ) -// { -// -// } -// else if ( u.getTipo().intValue() == Global.DIRECTOR_LOJA || u.getTipo().intValue() == Global.TECNICO_HS ) -// { -// -// } -// } int fase = p.getFase().intValue(); switch ( fase ) @@ -1832,21 +1824,17 @@ public class EditarPlano extends AbstractPageBean if ( planoValidationOk( p ) ) { - //Valor curValor = getSessionBean1().getCurrentValor(); Risco curValor = getSessionBean1().getCurrentRisco(); curValor = fillValorFields( curValor ); getSessionBean1().getRiscosHash().remove( curValor.getId() ); getSessionBean1().getRiscosHash().put( curValor.getId(), curValor ); - if ( !checkCamposObrigatorios() ) + if ( ! checkCamposObrigatorios() ) { getSessionBean1().setMsg( "Faltam preencher alguns riscos/valor. Por favor preencha todos os campos antes de prosseguir" ); return null; } try //save current valor { -// Valor v = getSessionBean1().getCurrentValor(); -// v = fillValorFields(v); -// pdp.updateValor(v); PlanosDataProvider pdp = PlanosDataProvider.getInstance(); HashMap valores = getSessionBean1().getRiscosHash(); @@ -1895,12 +1883,12 @@ public class EditarPlano extends AbstractPageBean HtmlPanelGrid gridDtFim = ( HtmlPanelGrid ) gridResponsavel.findComponent( "form1:gridDtFim" ); HtmlCalendar calDtFim = ( HtmlCalendar ) gridDtFim.findComponent( "form1:dtFim" ); // Date dtInicio = calDtInicio.getSelectedDate(); - Date dtInicio = ( Date ) calDtInicio.getValue(); + Date dataInicio = ( Date ) calDtInicio.getValue(); // Date dtFim = calDtFim.getSelectedDate(); - Date dtFim = ( Date ) calDtFim.getValue(); - if ( dtInicio != null && dtFim != null ) + Date dataFim = ( Date ) calDtFim.getValue(); + if ( dataInicio != null && dataFim != null ) { - if ( dtInicio.after( dtFim ) ) + if ( dataInicio.after( dataFim ) ) { getSessionBean1().setMsg( "Data Início não pode ser superior à data fim!" ); ok = false; @@ -2053,60 +2041,18 @@ public class EditarPlano extends AbstractPageBean private boolean checkCamposObrigatorios() { - boolean res = true; - HashMap valores = getSessionBean1().getRiscosHash(); - Iterator iter = valores.keySet().iterator(); - while ( iter.hasNext() ) - { - Integer id = iter.next(); -// Valor v = valores.get(id); - Risco r = valores.get( id ); - if ( r.getResponsavel_execucao() == null ) - { - res = false; - break; - } - else if ( r.getResponsavel_execucao().trim().length() == 0 ) - { - res = false; - break; - } + boolean result = true; - if ( r.getPor() == null ) - { - res = false; - break; - } - else if ( r.getPor().trim().length() == 0 ) - { - res = false; - break; - } - - if ( r.getRecursos_necessarios() == null ) - { - res = false; - break; - } - else if ( r.getRecursos_necessarios().trim().length() == 0 ) - { - res = false; - break; - } - - if ( r.getData_inicio() == null ) - { - res = false; - break; - } - - if ( r.getData_fim() == null ) - { - res = false; - break; - } + Utilizador user = getSessionBean1().getCurrentUser(); + + HashMap< Integer, Risco > valores = getSessionBean1().getRiscosHash(); + Iterator< Integer > iter = valores.keySet().iterator(); + while ( result && iter.hasNext() ) + { + Risco risco = valores.get( iter.next() ); + result = RiscoLogic.getInstance().isRiscoTratado( risco, user ); } - return res; + return result; } private void processEnviar( PlanoActuacao p ) throws Exception