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