diff --git a/trunk/AnaliseAcidentesTrabalho/nbproject/navigation.NavData b/trunk/AnaliseAcidentesTrabalho/nbproject/navigation.NavData
index 6bc91625..84ffcf95 100644
--- a/trunk/AnaliseAcidentesTrabalho/nbproject/navigation.NavData
+++ b/trunk/AnaliseAcidentesTrabalho/nbproject/navigation.NavData
@@ -2,15 +2,15 @@
 
     
     
-        
         
+        
         
         
-        
         
+        
         
-        
         
+        
         
         
         
@@ -20,8 +20,8 @@
         
         
         
-        
         
+        
     
     
 
diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Acesso.java b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Acesso.java
index 0530fed1..74176c52 100644
--- a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Acesso.java
+++ b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Acesso.java
@@ -7,10 +7,13 @@
 package analiseacidentestrabalho;
 
 import com.sun.rave.web.ui.appbase.AbstractPageBean;
+import com.sun.rave.web.ui.component.DropDown;
 import com.sun.rave.web.ui.component.StaticText;
+import db.AnalisesDataProvider;
 import db.UtilizadoresDataProvider;
 import global.Global;
 import javax.faces.FacesException;
+import javax.faces.component.html.HtmlPanelGrid;
 import javax.faces.context.FacesContext;
 import utils.JSFUtils;
 import utils.Utils;
@@ -43,6 +46,24 @@ public class Acesso extends AbstractPageBean {
     public void setStWelcome(StaticText st) {
         this.stWelcome = st;
     }
+    private DropDown drpEstabelecimentos = new DropDown();
+
+    public DropDown getDrpEstabelecimentos() {
+        return drpEstabelecimentos;
+    }
+
+    public void setDrpEstabelecimentos(DropDown dd) {
+        this.drpEstabelecimentos = dd;
+    }
+    private HtmlPanelGrid gridEstabelecimento = new HtmlPanelGrid();
+
+    public HtmlPanelGrid getGridEstabelecimento() {
+        return gridEstabelecimento;
+    }
+
+    public void setGridEstabelecimento(HtmlPanelGrid hpg) {
+        this.gridEstabelecimento = hpg;
+    }
 
     // 
 
@@ -118,6 +139,16 @@ public class Acesso extends AbstractPageBean {
          //System.out.println("NOME UNICODE : " + nomeUnicode);
          String nomeHtml = Utils.unicodeToHTML( u.getNome() );
          stWelcome.setText("Bem vindo(a) " + nomeHtml);
+
+         if(u.getTipo().intValue() == Global.TIPO_UTILIZADOR_GESTOR)
+         {
+            initializeEstabelecimentos();
+         }
+         else
+         {
+             gridEstabelecimento.setRendered(false);
+         }
+
     }
 
     /**
@@ -200,9 +231,29 @@ public class Acesso extends AbstractPageBean {
             switch(permissao.intValue())
             {
                 case 1: //seguranca
-                    return "form_seguranca";                      
+                    return "form_seguranca";
+                case 2: //rh
+                    return "form_rh";
                 case 3: //hs
-                    return "form_hs";                      
+                    return "form_hs";
+                case 6: //gestor
+                    Integer estabelecimento = null;
+                    if(u.getTipo().intValue() == Global.TIPO_UTILIZADOR_GESTOR)
+                    {
+                       estabelecimento = (Integer) drpEstabelecimentos.getSelected();
+            //           if(estabelecimento.intValue() == -1)
+            //           {
+            //               getSessionBean1().setMsg("Falta estabelecimento!");
+            //               return null;
+            //           }
+            //           else
+            //           {
+            //               u.setEstabelecimento(estabelecimento_outro);
+                       u.setEstabelecimento_gestor(estabelecimento);
+                    }
+                    return "form_gestor";
+                case 7: //dir ger rh
+                    return "form_dir_ger_rh";
                 case 8: //dir_siprp
                     return "form_dir_siprp";                                          
                 default:
@@ -223,8 +274,25 @@ public class Acesso extends AbstractPageBean {
         
         Utilizador u = getSessionBean1().getCurrentUser();
 //        String curUser = "?user=" + u.getId().toString();        
-        FacesContext fc = getFacesContext().getCurrentInstance();        
-        Global.redirectToPlanos(fc, u);                
+        FacesContext fc = getFacesContext().getCurrentInstance();
+
+        Integer estabelecimento = null;
+        if(u.getTipo().intValue() == Global.TIPO_UTILIZADOR_GESTOR)
+        {
+           estabelecimento = (Integer) drpEstabelecimentos.getSelected();
+//           if(estabelecimento.intValue() == -1)
+//           {
+//               getSessionBean1().setMsg("Falta estabelecimento!");
+//               return null;
+//           }
+//           else
+//           {
+//               u.setEstabelecimento(estabelecimento_outro);
+           u.setEstabelecimento_gestor(estabelecimento);
+        }
+
+
+        Global.redirectToPlanos(fc, u);
         
 //        FacesContext fc = getFacesContext().getCurrentInstance();
 //        Utilizador u = getSessionBean1().getCurrentUser();
@@ -240,6 +308,24 @@ public class Acesso extends AbstractPageBean {
 
         return null;
     }
+
+    private void initializeEstabelecimentos()
+    {
+        AnalisesDataProvider adp = new AnalisesDataProvider();
+       try
+       {
+                com.sun.rave.web.ui.model.Option[] listGestorOptions = adp.getEstabelecimentosGestorList( getSessionBean1().getCurrentUser().getEmpresa_id(), new Boolean(true));
+                //listGestorOptions[0].setLabel("-Seleccionar-");
+
+
+            getSessionBean1().setEstabelecimentosGestorOptions( listGestorOptions );
+            drpEstabelecimentos.setSelected(new Integer(0));
+       }
+       catch(Exception ex)
+       {
+           ex.printStackTrace();
+       }
+    }
     
 }
 
diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java
index c2d67e2a..8e27c573 100644
--- a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java
+++ b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/AnaliseAcidenteTrabalho.java
@@ -11606,8 +11606,15 @@ public class AnaliseAcidenteTrabalho extends AbstractPageBean {
         if(txtCoefIncapacidade.getText() != null)
         {
             String coef_str = txtCoefIncapacidade.getText().toString();
-            int coef = Integer.parseInt(coef_str);
-            a.setCoef_incapacidade(new Integer(coef));
+            try
+            {
+                int coef = Integer.parseInt(coef_str);
+                a.setCoef_incapacidade(new Integer(coef));
+            }
+            catch(Exception ex)
+            {
+                ex.printStackTrace();
+            }
         }
         
         DateFormat formatador = new SimpleDateFormat("yyyy-MM-dd");
diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Dummy.java b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Dummy.java
index 193fad43..863ff953 100644
--- a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Dummy.java
+++ b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Dummy.java
@@ -148,6 +148,15 @@ public class Dummy extends AbstractPageBean {
     public void setDropDown1DefaultOptions(SingleSelectOptionsList ssol) {
         this.dropDown1DefaultOptions = ssol;
     }
+    private SingleSelectOptionsList dropDown2DefaultOptions = new SingleSelectOptionsList();
+
+    public SingleSelectOptionsList getDropDown2DefaultOptions() {
+        return dropDown2DefaultOptions;
+    }
+
+    public void setDropDown2DefaultOptions(SingleSelectOptionsList ssol) {
+        this.dropDown2DefaultOptions = ssol;
+    }
     
     // 
     
diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/FormGestor.java b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/FormGestor.java
index c550ab1e..3b258afa 100644
--- a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/FormGestor.java
+++ b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/FormGestor.java
@@ -911,14 +911,29 @@ public class FormGestor extends AbstractPageBean {
         AnalisesDataProvider adp = new AnalisesDataProvider();   
        try
        {
+           Integer estabelecimento_id = null;
             //lblActivos.setRendered(true);
             table1.setRendered(true);                                      
             ArrayList seguimentoList = null;
-            if(curUser.getGestor_geral().matches("y") || curUser.getTipo().intValue() == Global.TIPO_UTILIZADOR_DIRECTOR_NACIONAL_SEGURANCA || curUser.getTipo().intValue() == Global.TIPO_UTILIZADOR_DIRECTOR_LOJA)
+            //if(curUser.getGestor_geral().matches("y") || curUser.getTipo().intValue() == Global.TIPO_UTILIZADOR_DIRECTOR_NACIONAL_SEGURANCA || curUser.getTipo().intValue() == Global.TIPO_UTILIZADOR_DIRECTOR_LOJA)
+           if(curUser.getTipo().intValue() == Global.TIPO_UTILIZADOR_GESTOR)
+           {
+               estabelecimento_id = curUser.getEstabelecimento_gestor();
+               if(estabelecimento_id.intValue() == 0)
+               {
+                    seguimentoList = adp.getAnalisesSeguimentoGestorList(null);
+               }
+               else
+               {
+                seguimentoList = adp.getAnalisesSeguimentoGestorList(curUser.getEstabelecimento_id());
+               }
+           }
+
+            else if(curUser.getGestor_geral().matches("y") || curUser.getTipo().intValue() == Global.TIPO_UTILIZADOR_DIRECTOR_NACIONAL_SEGURANCA)
             {
                 seguimentoList = adp.getAnalisesSeguimentoGestorList(null);                
             }
-            else if(curUser.getGestor_geral().matches("n") )
+            else if(curUser.getGestor_geral().matches("n") || curUser.getTipo().intValue() == Global.TIPO_UTILIZADOR_DIRECTOR_LOJA)
             {
                 seguimentoList = adp.getAnalisesSeguimentoGestorList(curUser.getEstabelecimento_id());                                
             }
diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Login.java b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Login.java
index adc3a3b3..40bd21e4 100644
--- a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Login.java
+++ b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Login.java
@@ -398,7 +398,15 @@ public class Login extends AbstractPageBean {
                                         }
                                         else if(permissao.intValue() == 2)  // rh
                                         {
-                                            sRet = "form_rh";                                        
+                                            if(u.getResponsavel_loja().matches("y"))
+                                            {
+                                                sRet = "acesso";
+                                            }
+                                            else
+                                            {
+                                                sRet = "form_rh";
+                                            }
+                                            //sRet = "form_rh";
                                         }
                                         else if(permissao.intValue() == 3)  // hs
                                         {
@@ -411,12 +419,14 @@ public class Login extends AbstractPageBean {
                                         }   
                                         else if(permissao.intValue() == 6)  // gestor
                                         {
-                                            sRet = "form_gestor";                                        
+                                            //sRet = "form_gestor";
+                                            sRet = "acesso";
                                         }                                       
                                         else if(permissao.intValue() == 7)  // director geral rh
                                         {
                                             //sRet = "form_rh";                                        
-                                            sRet = "form_dir_ger_rh";                                                                                    
+                                            //sRet = "form_dir_ger_rh";
+                                            sRet = "acesso";
                                         }  
                                         else if(permissao.intValue() == 8)  // director siprp
                                         {
diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/SessionBean1.java b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/SessionBean1.java
index 33dd4c8f..5fe5c2fb 100644
--- a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/SessionBean1.java
+++ b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/SessionBean1.java
@@ -438,7 +438,28 @@ public class SessionBean1 extends AbstractSessionBean {
 
     public void setEstabelecimentosOptions(com.sun.rave.web.ui.model.Option[] estabelecimentosOptions) {
         this.estabelecimentosOptions = estabelecimentosOptions;
-    } 
+    }
+
+    private Integer estabelecimentoGestorChoice;
+
+    public Integer getEstabelecimentoGestorChoice() {
+        return estabelecimentoGestorChoice;
+    }
+
+    public void setEstabelecimentoGestorChoice(Integer estabelecimentoGestorChoice) {
+        this.estabelecimentoGestorChoice = estabelecimentoGestorChoice;
+    }
+
+    private com.sun.rave.web.ui.model.Option[] estabelecimentosGestorOptions;
+
+    public com.sun.rave.web.ui.model.Option[] getEstabelecimentosGestorOptions() {
+        return estabelecimentosGestorOptions;
+    }
+
+    public void setEstabelecimentosGestorOptions(com.sun.rave.web.ui.model.Option[] estabelecimentosGestorOptions) {
+        this.estabelecimentosGestorOptions = estabelecimentosGestorOptions;
+    }
+
     
     
     //
@@ -451,6 +472,8 @@ public class SessionBean1 extends AbstractSessionBean {
     public void setEstabelecimentoOutroChoice(Integer estabelecimentoOutroChoice) {
         this.estabelecimentoOutroChoice = estabelecimentoOutroChoice;
     }
+
+
     
     private com.sun.rave.web.ui.model.Option[] estabelecimentosOutroOptions;    
 
diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Utilizador.java b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Utilizador.java
index 6e375480..e0f723b8 100644
--- a/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Utilizador.java
+++ b/trunk/AnaliseAcidentesTrabalho/src/java/analiseacidentestrabalho/Utilizador.java
@@ -49,6 +49,8 @@ public class Utilizador {
     private String apagado;
     
     private Date data_password;
+
+    private Integer estabelecimento_gestor = null;
     
     /** Creates a new instance of Utilizador */
     public Utilizador() {
@@ -245,5 +247,19 @@ public class Utilizador {
     public void setData_password(Date data_password) {
         this.data_password = data_password;
     }
+
+    /**
+     * @return the estabelecimento_gestor
+     */
+    public Integer getEstabelecimento_gestor() {
+        return estabelecimento_gestor;
+    }
+
+    /**
+     * @param estabelecimento_gestor the estabelecimento_gestor to set
+     */
+    public void setEstabelecimento_gestor(Integer estabelecimento_gestor) {
+        this.estabelecimento_gestor = estabelecimento_gestor;
+    }
     
 }
diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/db/AnalisesDataProvider.java b/trunk/AnaliseAcidentesTrabalho/src/java/db/AnalisesDataProvider.java
index 4dc2ebcd..42037d0f 100644
--- a/trunk/AnaliseAcidentesTrabalho/src/java/db/AnalisesDataProvider.java
+++ b/trunk/AnaliseAcidentesTrabalho/src/java/db/AnalisesDataProvider.java
@@ -1883,7 +1883,61 @@ public class AnalisesDataProvider {
         }
         dblocal.close();                
         return listOptions;        
-    }    
+    }
+
+    public com.sun.rave.web.ui.model.Option[] getEstabelecimentosGestorList(Integer empresa_id, Boolean booGestor) throws Exception
+    {
+        Dblocal dblocal = new Dblocal();
+        dblocal.connect();
+        Statement stlocal = dblocal.createStatement();
+        ArrayList list = new ArrayList();
+        Estabelecimento e = null;
+        //Estabelecimento e = new Estabelecimento();
+        //e.setId(new Integer(-1));
+
+        //e.setNome("-Seleccionar-");
+
+        //list.add(e);
+        if(booGestor.equals(new Boolean(true)))
+        {
+            e = new Estabelecimento();
+            e.setId(new Integer(0));
+            e.setNome("-Todos os estabelecimentos-");
+
+            list.add(e);
+        }
+        String sql ="SELECT * FROM estabelecimentos WHERE empresa_id = " + empresa_id + " AND inactivo = 'n' ORDER BY nome_plain";
+
+        ResultSet rslocal = stlocal.executeQuery(sql);
+        if(rslocal.isBeforeFirst())
+        {
+            rslocal.first();
+            do
+            {
+                e = new Estabelecimento();
+                e.setId(new Integer(rslocal.getInt("id")));
+                //e.setNome_plain(rslocal.getString("nome_plain"));
+                e.setNome(rslocal.getString("nome"));
+        System.out.println("ESTABELECIMENTOAA : " + e.getId().toString() + " - " + e.getNome());
+                //t.setActivo(rs.getString("activo"));
+                //t.setOrdem(new Integer(rs.getInt("ordem")));
+                list.add(e);
+            }while(rslocal.next());
+        }
+
+        com.sun.rave.web.ui.model.Option[] listOptions = new com.sun.rave.web.ui.model.Option[list.size()];
+        ListIterator iter = list.listIterator();
+        int i = 0;
+        while(iter.hasNext())
+        {
+            e = (Estabelecimento) iter.next();
+        System.out.println("ESTABELECIMENTOL : " + e.getId().toString() + " - " + e.getNome());
+            listOptions[i] = new Option(e.getId(), Utils.unicodeToHTML(e.getNome()));
+            i++;
+        }
+        dblocal.close();
+        return listOptions;
+    }
     
     public com.sun.rave.web.ui.model.Option[] getMedicosList() throws Exception
     {
diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/db/Dblocal.java b/trunk/AnaliseAcidentesTrabalho/src/java/db/Dblocal.java
index 565bfe3f..48fa4e63 100644
--- a/trunk/AnaliseAcidentesTrabalho/src/java/db/Dblocal.java
+++ b/trunk/AnaliseAcidentesTrabalho/src/java/db/Dblocal.java
@@ -22,7 +22,7 @@ import javax.servlet.http.HttpSession;
  */
 public class Dblocal {
     //String connectionURL = "jdbc:postgresql://storage/siprp_local"; //testes
-    String connectionURL = "jdbc:postgresql://localhost:5436/siprp_local_3";    
+    String connectionURL = "jdbc:postgresql://localhost:5436/siprp_local_3";
     String User = "postgres";
     String Pass = null;
     Connection connection = null;    
diff --git a/trunk/AnaliseAcidentesTrabalho/src/java/global/Global.java b/trunk/AnaliseAcidentesTrabalho/src/java/global/Global.java
index 23f39469..79bebc5b 100755
--- a/trunk/AnaliseAcidentesTrabalho/src/java/global/Global.java
+++ b/trunk/AnaliseAcidentesTrabalho/src/java/global/Global.java
@@ -145,11 +145,17 @@ public class Global {
     
     public static void redirectToPlanos(FacesContext fc, Utilizador currentUser)
     {
-        String curUser = "?user=" + currentUser.getId().toString();        
+        String curUser = "?user=" + currentUser.getId().toString();
+        String estab = "";
+        if(currentUser.getTipo().intValue() == Global.TIPO_UTILIZADOR_GESTOR)
+        {
+            //obtem estabelecimento da lista de estabelecimentos
+            estab = "&estab_gestor=" + currentUser.getEstabelecimento_gestor().intValue();
+        }
         fc = fc.getCurrentInstance();
         try
         {
-            JSFUtils.redirect(fc, Global.PLANOS_ACTUACAO_URL + curUser);            
+            JSFUtils.redirect(fc, Global.PLANOS_ACTUACAO_URL + curUser + estab);
             //JSFUtils.dispatch(fc, Global.PLANOS_ACTUACAO_URL + curUser);                        
         }
         catch(Exception ex)
diff --git a/trunk/AnaliseAcidentesTrabalho/web/Acesso.jsp b/trunk/AnaliseAcidentesTrabalho/web/Acesso.jsp
index cf5cfe7d..e2a639ab 100644
--- a/trunk/AnaliseAcidentesTrabalho/web/Acesso.jsp
+++ b/trunk/AnaliseAcidentesTrabalho/web/Acesso.jsp
@@ -42,6 +42,15 @@
                                             
                                         
                                     
+                                    
+                                    
+                                        
+                                            
+                                            
+                                        
+                                    
                                 
                                 
                                 
diff --git a/trunk/AnaliseAcidentesTrabalho/web/Dummy.jsp b/trunk/AnaliseAcidentesTrabalho/web/Dummy.jsp
index b02d7983..d8921857 100644
--- a/trunk/AnaliseAcidentesTrabalho/web/Dummy.jsp
+++ b/trunk/AnaliseAcidentesTrabalho/web/Dummy.jsp
@@ -63,8 +63,18 @@
                                 
                             
                         
-                        
-                        
+                        
+                            
+                                
+                                
+                            
+                        
+                        
+                            
+                            
+                        
+                        
                     
                 
             
diff --git a/trunk/AnaliseAcidentesTrabalho/web/WEB-INF/navigation.xml b/trunk/AnaliseAcidentesTrabalho/web/WEB-INF/navigation.xml
index 5266d92b..5e0f02a0 100644
--- a/trunk/AnaliseAcidentesTrabalho/web/WEB-INF/navigation.xml
+++ b/trunk/AnaliseAcidentesTrabalho/web/WEB-INF/navigation.xml
@@ -423,6 +423,14 @@
             gestor
             /FormGestor.jsp
         
+        
+            form_rh
+            /FormRH.jsp
+        
+        
+            form_dir_ger_rh
+            /FormDirGerRh.jsp
+        
         
             form_hs
             /FormHS.jsp
@@ -434,7 +442,11 @@
         
             form_dir_siprp
             /FormDirSiprp.jsp
-                
+        
+        
+            form_gestor
+            /FormGestor.jsp
+        
         
             login
             /Login.jsp