diff --git a/trunk/AnaliseAcidentesTrabalho/src/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java b/trunk/AnaliseAcidentesTrabalho/src/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java index d3ca221f..75f225fe 100644 --- a/trunk/AnaliseAcidentesTrabalho/src/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java +++ b/trunk/AnaliseAcidentesTrabalho/src/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java @@ -11483,7 +11483,7 @@ public class AnaliseAcidenteTrabalho extends AbstractPageBean } else // edit analise { - if ( validationOk() ) + if ( validationOk() && canSendToNextUser() ) { AnaliseAcidente a = fillAnaliseFields(); Acidentado ac = null; @@ -11606,6 +11606,52 @@ public class AnaliseAcidenteTrabalho extends AbstractPageBean } return null; } + + private boolean canSendToNextUser() + { + AnaliseAcidente a = fillAnaliseFields(); + int estado = a.getEstado().intValue(); + int tipoUser = -1; + String responsavel_loja = "n"; + switch ( estado ) + { + case Global.ESTADO_RH1: + tipoUser = new Integer( Global.TIPO_UTILIZADOR_RH ); + break; + case Global.ESTADO_HS: + tipoUser = new Integer( Global.TIPO_UTILIZADOR_HS ); + break; + case Global.ESTADO_RH2: + tipoUser = new Integer( Global.TIPO_UTILIZADOR_RH ); + break; + case Global.ESTADO_CONSOLIDACAO: + tipoUser = new Integer( Global.TIPO_UTILIZADOR_HS ); + break; + case Global.ESTADO_ASSINATURA_SEG: + tipoUser = new Integer( Global.TIPO_UTILIZADOR_SEGURANCA ); + responsavel_loja = "y"; + break; + case Global.ESTADO_ASSINATURA_RH: + tipoUser = new Integer( Global.TIPO_UTILIZADOR_RH ); + responsavel_loja = "y"; + break; + case Global.ESTADO_FECHAR: + tipoUser = new Integer( Global.TIPO_UTILIZADOR_HS ); + break; + } + Utilizador utilizador = this.getSessionBean1().getCurrentUser(); + int tipoCurrentUser = utilizador.getTipo(); + String responsavel_loja_current_user = utilizador.getResponsavel_loja(); + if(tipoUser == tipoCurrentUser && (responsavel_loja_current_user.equals(responsavel_loja) || responsavel_loja_current_user.equals("y") )) + { + return true; + } + else + { + getSessionBean1().setMsg( "Não tem permissão para enviar o processo para a fase seguinte!" ); + return false; + } + } private AnaliseAcidente create( AnaliseAcidente a, Acidentado ac ) throws Exception {