diff --git a/trunk/PlanosActuacao/src/java/db/entidades/PlanoActuacao.java b/trunk/PlanosActuacao/src/java/db/entidades/PlanoActuacao.java index d7d4416c..dc070119 100644 --- a/trunk/PlanosActuacao/src/java/db/entidades/PlanoActuacao.java +++ b/trunk/PlanosActuacao/src/java/db/entidades/PlanoActuacao.java @@ -19,6 +19,7 @@ public class PlanoActuacao { private Integer estabelecimento_id; private String nome_estabelecimento; private Integer fase; + private Integer fase_anterior; private String descricao; private List areas; private List riscos; @@ -48,10 +49,14 @@ public class PlanoActuacao { private Integer user_dns; private Date data_validacao_hs; private Integer user_hs; + private String data_validacao_dir_loja_str; private String data_validacao_dns_str; private String data_validacao_hs_str; + + private Date data_controlo; + private Date data_email_controlo; public Integer getId() { return id; @@ -320,4 +325,28 @@ public class PlanoActuacao { public void setObservacoes_dns(String observacoes_dns) { this.observacoes_dns = observacoes_dns; } + + public Integer getFase_anterior() { + return fase_anterior; + } + + public void setFase_anterior(Integer fase_anterior) { + this.fase_anterior = fase_anterior; + } + + public Date getData_controlo() { + return data_controlo; + } + + public void setData_controlo(Date data_controlo) { + this.data_controlo = data_controlo; + } + + public Date getData_email_controlo() { + return data_email_controlo; + } + + public void setData_email_controlo(Date data_email_controlo) { + this.data_email_controlo = data_email_controlo; + } } diff --git a/trunk/PlanosActuacao/src/java/db/entidades/Valor.java b/trunk/PlanosActuacao/src/java/db/entidades/Valor.java index 7c89c8b0..366a699f 100644 --- a/trunk/PlanosActuacao/src/java/db/entidades/Valor.java +++ b/trunk/PlanosActuacao/src/java/db/entidades/Valor.java @@ -24,6 +24,7 @@ public class Valor { private Date data_fim; private String parecer_dns; private String parecer_dl; + private String verificacao_siprp; public Integer getValor() { return valor; @@ -104,4 +105,12 @@ public class Valor { public void setParecer_dl(String parecer_dl) { this.parecer_dl = parecer_dl; } + + public String getVerificacao_siprp() { + return verificacao_siprp; + } + + public void setVerificacao_siprp(String verificacao_siprp) { + this.verificacao_siprp = verificacao_siprp; + } } diff --git a/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java b/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java index be87c65d..f61357b1 100644 --- a/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java +++ b/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java @@ -30,13 +30,16 @@ public class PlanosDataProvider extends GenericDataProvider{ { Statement st = createStatement(); Integer newId = getMaxTableId("planos_actuacao"); - String sql = "insert into planos_actuacao (id, estabelecimento_id, fase, data_visita, nome_estabelecimento) values ("; + String sql = "insert into planos_actuacao (id, estabelecimento_id, fase, data_visita, nome_estabelecimento, data_controlo) values ("; sql += newId + ", "; sql += p.getEstabelecimento_id() + ", "; sql += p.getFase() + ", '"; java.sql.Date sqlDate = new java.sql.Date(p.getData_visita().getTime()); sql += sqlDate + "', '"; - sql += p.getNome_estabelecimento() + "'"; + sql += p.getNome_estabelecimento() + "', '"; + Date today = new Date(); + sqlDate = new java.sql.Date(today.getTime()); + sql += sqlDate + "'"; sql += ")"; System.out.println("SQL CREATE PLANO : " + sql); @@ -47,6 +50,18 @@ public class PlanosDataProvider extends GenericDataProvider{ public void updatePlano(PlanoActuacao p) throws Exception { + if(p.getObs_correcao() == null) + { + p.setObs_correcao(""); + } + if(p.getObservacoes_dl() == null) + { + p.setObservacoes_dl(""); + } + if(p.getObservacoes_dns() == null) + { + p.setObservacoes_dns(""); + } Statement st = createStatement(); String sql = ""; @@ -89,7 +104,26 @@ public class PlanosDataProvider extends GenericDataProvider{ java.sql.Date sqlDate = new java.sql.Date(p.getData_validacao_hs().getTime()); sql += "data_validacao_hs = '" + sqlDate + "', "; } - sql += "user_hs = " + p.getUser_hs() + " "; + sql += "user_hs = " + p.getUser_hs() + ", "; + if(p.getData_controlo() == null) + { + sql += "data_controlo = " + null + ", "; + } + else + { + java.sql.Date sqlDate = new java.sql.Date(p.getData_controlo().getTime()); + sql += "data_controlo = '" + sqlDate + "', "; + } + if(p.getData_email_controlo() == null) + { + sql += "data_email_controlo = " + null + " "; + } + else + { + java.sql.Date sqlDate = new java.sql.Date(p.getData_email_controlo().getTime()); + sql += "data_email_controlo = '" + sqlDate + "' "; + } + sql += "WHERE id = " + p.getId(); System.out.println("SQL UPDATE PLANO : " + sql); st.execute(sql); @@ -110,6 +144,28 @@ public class PlanosDataProvider extends GenericDataProvider{ public void updateValor(Valor v) throws Exception { + if(v.getResponsavel_execucao() == null) + { + v.setResponsavel_execucao(""); + } + + if(v.getRecursos_necessarios() == null) + { + v.setRecursos_necessarios(""); + } + if(v.getParecer_dl() == null) + { + v.setParecer_dl(""); + } + if(v.getParecer_dns() == null) + { + v.setParecer_dns(""); + } + if(v.getVerificacao_siprp() == null) + { + v.setVerificacao_siprp(""); + } + Statement st = createStatement(); String sql = ""; @@ -135,7 +191,8 @@ public class PlanosDataProvider extends GenericDataProvider{ sql += "data_fim = '" + sqlDate + "', "; } sql += "parecer_dns = '" + v.getParecer_dns() + "', "; - sql += "parecer_dl = '" + v.getParecer_dl() + "' "; + sql += "parecer_dl = '" + v.getParecer_dl() + "', "; + sql += "verificacao_siprp = '" + v.getVerificacao_siprp() + "' "; sql += "WHERE id = " + v.getId(); System.out.println("SQL UPDATE VALOR : " + sql); st.execute(sql); @@ -229,6 +286,7 @@ public class PlanosDataProvider extends GenericDataProvider{ { java.sql.Date sqlDate = rs.getDate("data_visita"); java.util.Date data_visita = new java.util.Date(sqlDate.getTime()); + System.out.println("DATA PLANO : " + data_visita.toString()); list.add(data_visita); }while(rs.next()); } @@ -290,6 +348,10 @@ public class PlanosDataProvider extends GenericDataProvider{ case Global.DIRECTOR_NACIONAL_SEGURANCA: sql += "WHERE fase <> 4 AND fase <> 6"; break; + + case Global.DIRECTOR_SIPRP: + sql += "WHERE fase > 1 AND fase < 6"; + break; } ResultSet rs = st.executeQuery(sql); @@ -347,7 +409,7 @@ public class PlanosDataProvider extends GenericDataProvider{ private List getAreasByPlano(PlanoActuacao p) throws Exception { Statement st = createStatement(); - String sql = "SELECT * FROM plano_areas WHERE plano_id = " + p.getId(); + String sql = "SELECT * FROM plano_areas WHERE plano_id = " + p.getId() + " ORDER BY id"; ResultSet rs = st.executeQuery(sql); List areas = new ArrayList(); @@ -372,7 +434,7 @@ public class PlanosDataProvider extends GenericDataProvider{ { List riscos = new ArrayList(); Statement st = createStatement(); - String sql = "SELECT * FROM plano_riscos WHERE area_id = " + a.getId(); + String sql = "SELECT * FROM plano_riscos WHERE area_id = " + a.getId() + " ORDER BY id"; ResultSet rs = st.executeQuery(sql); if(rs.isBeforeFirst()) @@ -410,7 +472,7 @@ public class PlanosDataProvider extends GenericDataProvider{ List valores = new ArrayList(); Statement st = createStatement(); - String sql = "SELECT * FROM plano_valores WHERE risco_id = " + r.getId(); + String sql = "SELECT * FROM plano_valores WHERE risco_id = " + r.getId() + " ORDER BY id"; ResultSet rs = st.executeQuery(sql); if(rs.isBeforeFirst()) @@ -439,6 +501,7 @@ public class PlanosDataProvider extends GenericDataProvider{ } v.setParecer_dl(rs.getString("parecer_dl")); v.setParecer_dns(rs.getString("parecer_dns")); + v.setVerificacao_siprp(rs.getString("verificacao_siprp")); valores.add(v); }while(rs.next()); } @@ -450,7 +513,7 @@ public class PlanosDataProvider extends GenericDataProvider{ List medidas = new ArrayList(); Statement st = createStatement(); - String sql = "SELECT * FROM plano_medidas WHERE valor_id = " + v.getId(); + String sql = "SELECT * FROM plano_medidas WHERE valor_id = " + v.getId() + " ORDER BY id"; ResultSet rs = st.executeQuery(sql); if(rs.isBeforeFirst()) @@ -474,7 +537,7 @@ public class PlanosDataProvider extends GenericDataProvider{ List postos = new ArrayList(); Statement st = createStatement(); - String sql = "SELECT * FROM plano_postos_trabalho WHERE medida_id = " + m.getId(); + String sql = "SELECT * FROM plano_postos_trabalho WHERE medida_id = " + m.getId() + " ORDER BY id"; ResultSet rs = st.executeQuery(sql); if(rs.isBeforeFirst()) @@ -653,7 +716,7 @@ public class PlanosDataProvider extends GenericDataProvider{ { Medida m= null; Statement st = createStatement(); - String sql = "SELECT * FROM madidas_plano_actuacao WHERE id = " + medidaId + " AND activo = 'y'"; + String sql = "SELECT * FROM medidas_plano_actuacao WHERE id = " + medidaId + " AND activo = 'y'"; ResultSet rs = st.executeQuery(sql); if(rs.isBeforeFirst()) @@ -665,5 +728,85 @@ public class PlanosDataProvider extends GenericDataProvider{ m.setActiva( rs.getString("activo") ); } return m; - } + } + +// public List getPlanosDelayed() throws Exception +// { +// Date today = new Date(); +// java.sql.Date sqlToday = new java.sql.Date(today.getTime()); +// Statement st = createStatement(); +// String sql = "select dias_atraso, dias_email_atraso from "; +// sql += "(select id, EXTRACT(DAY FROM (now()- data_controlo)) as dias_atraso, EXTRACT(DAY FROM (now()- data_email_controlo)) as dias_email_atraso from planos_actuacao) subquery "; +// sql += "where dias_atraso > 14 and (dias_email_atraso > 3 or dias_email_atraso isnull) and (fase = 2 or fase = 3) "; +// ResultSet rs = st.executeQuery(sql); +// +// ArrayList list = new ArrayList(); +// if(rs.isBeforeFirst()) +// { +// rs.first(); +// do +// { +// PlanoActuacao pa = new PlanoActuacao(); +// pa.setId( new Integer( rs.getInt("id") ) ); +// pa.setEstabelecimento_id(new Integer(rs.getInt("estabelecimento_id"))); +// pa.setNome_estabelecimento(rs.getString("nome_estabelecimento")); +// pa.setFase( new Integer( rs.getInt("fase") ) ); +// java.sql.Date sqlDate = rs.getDate("data_visita"); +// pa.setData_visita(new java.util.Date(sqlDate.getTime())); +// pa.setValidacao_director_loja(new Boolean( rs.getBoolean("validacao_director_loja") )); +// pa.setValidacao_dns(new Boolean( rs.getBoolean("validacao_dns") )); +// pa.setValidacao_hs(new Boolean( rs.getBoolean("validacao_hs") )); +// pa.setObservacoes_dl(rs.getString("observacoes_dl")); +// pa.setObservacoes_dns(rs.getString("observacoes_dns")); +// pa.setObs_correcao(rs.getString("obs_correcao")); +//// pa.setAreas(getAreasByPlano(pa)); +//// pa.setTotal_riscos(getTotalRiscosByPlano(pa.getId())); +// pa.setCorrecao(rs.getString("correcao")); +// pa.setFase_antes_correcao(new Integer(rs.getInt("fase_antes_correcao"))); +// pa.setData_validacao_dir_loja(rs.getDate("data_validacao_dir_loja")); +// pa.setUser_dir_loja(new Integer(rs.getInt("user_dir_loja"))); +// pa.setData_validacao_dns(rs.getDate("data_validacao_dns")); +// pa.setUser_dns(new Integer(rs.getInt("user_dns"))); +// pa.setData_validacao_hs(rs.getDate("data_validacao_hs")); +// pa.setUser_hs(new Integer(rs.getInt("user_hs"))); +// pa.setVerificacao_siprp(rs.getString("verificacao_siprp")); +// pa.setData_controlo(rs.getDate("data_controlo")); +// pa.setData_email_controlo(rs.getDate("data_email_controlo")); +// list.add(pa); +// +// }while(rs.next()); +// } +// return list; +// } +// +// public void updateControlo(PlanoActuacao p) throws Exception +// { +// Statement st = createStatement(); +// String sql = ""; +// +// //To Do sql string here : +// if(p.getData_controlo() == null) +// { +// sql = "UPDATE planos_actuacao SET data_controlo = " + null + ", "; +// } +// else +// { +// java.sql.Date sqlDate = new java.sql.Date(p.getData_controlo().getTime()); +// sql = "UPDATE planos_actuacao SET data_controlo = '" + sqlDate + "', "; +// } +// +// if(p.getData_email_controlo() == null) +// { +// sql += "data_email_controlo = " + null + " "; +// } +// else +// { +// java.sql.Date sqlDate = new java.sql.Date(p.getData_email_controlo().getTime()); +// sql += "data_email_controlo = '" + sqlDate + "' "; +// } +// +// sql += "WHERE id = " + p.getId(); +// System.out.println("SQL UPDATE CONTROLO : " + sql); +// st.execute(sql); +// } } diff --git a/trunk/PlanosActuacao/src/java/db/providers/UtilizadoresDataProvider.java b/trunk/PlanosActuacao/src/java/db/providers/UtilizadoresDataProvider.java index 17620ee9..fd7789b3 100644 --- a/trunk/PlanosActuacao/src/java/db/providers/UtilizadoresDataProvider.java +++ b/trunk/PlanosActuacao/src/java/db/providers/UtilizadoresDataProvider.java @@ -5,10 +5,11 @@ package db.providers; -import db.*; import db.entidades.Utilizador; +import global.Global; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; /** * @@ -42,5 +43,82 @@ public class UtilizadoresDataProvider extends GenericDataProvider{ u.setGestor_geral(rs.getString("gestor_geral")); u.setApagado(rs.getString("apagado")); return u; + } + + public ArrayList getUtilizadoresListByTipo(Integer tipo, String responsavel_loja, Integer estabelecimento_id) throws Exception + { + ArrayList list = new ArrayList(); + Statement st = createStatement(); + String sql = ""; + String estabelecimento_constraint = ""; + if(tipo.intValue() == Global.DIRECTOR_LOJA || tipo.intValue() == Global.RESPONSAVEL_SEGURANCA || tipo.intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA) + { + estabelecimento_constraint = " AND estabelecimento_id = " + estabelecimento_id; + } + if(tipo.intValue() == Global.RESPONSAVEL_SEGURANCA && responsavel_loja.matches("y")) + { + sql = "SELECT * FROM utilizadores WHERE activo = 'y' AND apagado = 'n' AND responsavel_loja = 'y' AND tipo = " + tipo + estabelecimento_constraint; + } + else if(tipo.intValue() == Global.DIRECTOR_LOJA || tipo.intValue() == Global.TECNICO_HS || tipo.intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA) + { + sql = "SELECT * FROM utilizadores WHERE activo = 'y' AND apagado = 'n' AND tipo = " + tipo + estabelecimento_constraint; + } + + ResultSet rs = st.executeQuery(sql); + rs.first(); + do + { + Utilizador u = new Utilizador(); + u.setId(new Integer(rs.getInt("id"))); + u.setLogin(rs.getString("login")); + u.setPassword(rs.getString("password")); + u.setData_password(rs.getDate("data_password")); + u.setEmail(rs.getString("email")); + u.setEmpresa_id(new Integer(rs.getInt("empresa_id"))); + u.setEstabelecimento_id(new Integer(rs.getInt("estabelecimento_id"))); + u.setAdministrador(rs.getString("administrador")); + u.setTipo(new Integer(rs.getInt("tipo"))); + u.setNumero_cedula(rs.getString("numero_cedula")); + u.setCap(rs.getString("cap")); + u.setNome(rs.getString("nome")); + u.setMedico_id(new Integer(rs.getInt("medico_id"))); + u.setFuncionario_hst_id(new Integer(rs.getInt("funcionario_hst_id"))); + u.setActivo(rs.getString("activo")); + u.setResponsavel_loja(rs.getString("responsavel_loja")); + list.add(u); + }while(rs.next()); + return list; } + + public ArrayList getUtilizadoresList() throws Exception + { + ArrayList list = new ArrayList(); + Statement st = createStatement(); + String sql = "select * from utilizadores where activo = 'y' and apagado = 'n'"; + + ResultSet rs = st.executeQuery(sql); + rs.first(); + do + { + Utilizador u = new Utilizador(); + u.setId(new Integer(rs.getInt("id"))); + u.setLogin(rs.getString("login")); + u.setPassword(rs.getString("password")); + u.setData_password(rs.getDate("data_password")); + u.setEmail(rs.getString("email")); + u.setEmpresa_id(new Integer(rs.getInt("empresa_id"))); + u.setEstabelecimento_id(new Integer(rs.getInt("estabelecimento_id"))); + u.setAdministrador(rs.getString("administrador")); + u.setTipo(new Integer(rs.getInt("tipo"))); + u.setNumero_cedula(rs.getString("numero_cedula")); + u.setCap(rs.getString("cap")); + u.setNome(rs.getString("nome")); + u.setMedico_id(new Integer(rs.getInt("medico_id"))); + u.setFuncionario_hst_id(new Integer(rs.getInt("funcionario_hst_id"))); + u.setActivo(rs.getString("activo")); + u.setResponsavel_loja(rs.getString("responsavel_loja")); + list.add(u); + }while(rs.next()); + return list; + } } diff --git a/trunk/PlanosActuacao/src/java/mail/Mail.java b/trunk/PlanosActuacao/src/java/mail/Mail.java index 57bbd522..1db45fd6 100644 --- a/trunk/PlanosActuacao/src/java/mail/Mail.java +++ b/trunk/PlanosActuacao/src/java/mail/Mail.java @@ -27,7 +27,7 @@ public class Mail { private final static String SERVIDOR_SMTP = "mail2.evolute.pt"; private final static String SERVIDOR_SMTP_PASSWORD = "EVOLUTE"; -//public final static String ENDERECO_ENVIO = "acidentes.auchan@siprp.pt"; +//public final static String ENDERECO_ENVIO = "planos.auchan@siprp.pt"; public final static String ENDERECO_ENVIO = "lluis@evolute.pt"; //testes diff --git a/trunk/PlanosActuacao/src/java/phaselistener/MainPhaseListener.java b/trunk/PlanosActuacao/src/java/phaselistener/MainPhaseListener.java index 61fdeabe..672941b0 100644 --- a/trunk/PlanosActuacao/src/java/phaselistener/MainPhaseListener.java +++ b/trunk/PlanosActuacao/src/java/phaselistener/MainPhaseListener.java @@ -5,6 +5,8 @@ package phaselistener; +import db.entidades.Utilizador; +import global.Global; import javax.faces.application.NavigationHandler; import javax.faces.component.UIViewRoot; import javax.faces.context.FacesContext; @@ -82,7 +84,9 @@ public class MainPhaseListener implements PhaseListener{ //disable/enable EditarPlano menu String sview = fc.getViewRoot().getViewId(); session.setRenderTopMenuImages(true); - session.setRenderSubHeader(false); + session.setRenderSubHeader(false); + Utilizador u = session.getCurrentUser(); + if(sview.matches("/EditarPlano.jsp") || sview.matches("/EnviarCorrecao.jsp") || sview.matches("/ViewPlano.jsp")) { session.setDisableMenu(true); @@ -94,9 +98,11 @@ public class MainPhaseListener implements PhaseListener{ } else if(sview.matches("/EditarPlano.jsp")) { + session.setDisableMenuPlanos(true); session.setRenderTopMenuImages(false); session.setRenderSubHeader(true); } + } else { diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/Dummy.java b/trunk/PlanosActuacao/src/java/planosactuacao/Dummy.java index 2b1c639e..b0c76163 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/Dummy.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/Dummy.java @@ -7,10 +7,12 @@ package planosactuacao; import com.sun.rave.web.ui.appbase.AbstractPageBean; -import com.sun.webui.jsf.component.Calendar; -import com.sun.webui.jsf.component.PanelGroup; -import java.util.Locale; +import db.entidades.Utilizador; +import db.providers.UtilizadoresDataProvider; +import java.sql.Connection; +import java.util.ArrayList; +import java.util.ListIterator; import javax.faces.FacesException; import javax.faces.event.ActionEvent; @@ -40,6 +42,7 @@ public class Dummy extends AbstractPageBean { *

Construct a new Page bean instance.

*/ public Dummy() { + connect(); } /** @@ -99,6 +102,7 @@ public class Dummy extends AbstractPageBean { */ @Override public void prerender() { + printUsers(); } /** @@ -153,5 +157,56 @@ public class Dummy extends AbstractPageBean { } + private void printUsers() + { + UtilizadoresDataProvider udp = new UtilizadoresDataProvider(); + + try + { + ArrayList list = udp.getUtilizadoresList(); + ListIterator iter = list.listIterator(); + System.out.println("=================================================================================="); + System.out.println("LOGIN\tEMAIL\tTIPO\tESTABELECIMENTO\tRESP. LOJA\tACTIVO\tAPAGADO"); + while(iter.hasNext()) + { + Utilizador u = (Utilizador) iter.next(); + System.out.print(u.getLogin() + "\t"); + System.out.print(u.getEmail() + "\t"); + System.out.print(u.getTipo() + "\t"); + System.out.print(u.getEstabelecimento_id() + "\t"); + System.out.print(u.getResponsavel_loja() + "\t"); + System.out.print(u.getActivo() + "\t"); + System.out.print(u.getApagado() + "\t\n"); + } + System.out.println(""); + System.out.println("=================================================================================="); + } + catch(Exception ex) + { + ex.printStackTrace(); + } + } + + private void connect() + { + db.Db db = new db.Db(); + try + { + Connection connection = db.connect(); + } + catch(Exception ex) + { + getSessionBean1().setMsg("Erro na ligação à Base de Dados"); + //***** terminate session + try { + getExternalContext().redirect("faces/Erro.jsp"); + } catch(Exception e) { + // . . . handle exception . . . + e.printStackTrace(); + } + ex.printStackTrace(); + } + } + } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java b/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java index 03f4434f..c9540d93 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java @@ -26,9 +26,12 @@ import db.providers.PlanosDataProvider; import db.providers.UtilizadoresDataProvider; import global.Global; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.Iterator; import java.util.List; +import java.util.ListIterator; import java.util.Vector; import javax.el.MethodExpression; import javax.faces.FacesException; @@ -93,7 +96,8 @@ public class EditarPlano extends AbstractPageBean { Calendar dtInicio; Calendar dtFim; TextArea txtParecerDns; - TextArea txtParecerDl; + TextArea txtParecerDl; + TextArea txtVerificacaoSiprp; public HtmlPanelGrid getGridLayout() { @@ -307,7 +311,7 @@ public class EditarPlano extends AbstractPageBean { // *after* managed components are initialized // TODO - add your own initialization code here Utilizador u = getSessionBean1().getCurrentUser(); - if(u.getTipo().intValue() != Global.DIRECTOR_NACIONAL_SEGURANCA) + if(u.getTipo().intValue() != Global.DIRECTOR_NACIONAL_SEGURANCA && u.getTipo().intValue() != Global.DIRECTOR_LOJA) { butEnviarCorrecao.setStyleClass("hidden"); } @@ -344,7 +348,8 @@ public class EditarPlano extends AbstractPageBean { getRiscosByPlano(p); if(!isPostback) { - //initializePlano(); + //initializePlano(); + fillValoresHash(p); initialize(p); showPlano(p); //fillPlano(); @@ -409,6 +414,7 @@ public class EditarPlano extends AbstractPageBean { private void initialize(PlanoActuacao p) { + //Test.showPlanoTree(p); //getSessionBean1().setPaginationPageNr(1); Pagination pagination = new Pagination(p); getSessionBean1().setPagination(pagination); @@ -421,6 +427,10 @@ public class EditarPlano extends AbstractPageBean { { hidValidacao.setValue("dir_loja"); } + if(u.getTipo().intValue() == Global.TECNICO_HS) + { + hidValidacao.setValue("hs"); + } //gridValidar.setStyleClass("hidden"); @@ -477,7 +487,8 @@ public class EditarPlano extends AbstractPageBean { st = new StaticText(); st.setEscape(false); st.setText(p.getObservacoes_dns()); - pg.getChildren().add(st); + pg.getChildren().add(st); + if(p.getCorrecao().matches("n")) { @@ -500,6 +511,7 @@ public class EditarPlano extends AbstractPageBean { case Global.FASE_DIR_LOJA_VALIDACAO: //butEnviar.setText("Enviar a Director de Loja"); pg = new PanelGroup(); + pg.setId("pgObsDl"); gridObservacoes.getChildren().add(pg); st = new StaticText(); st.setEscape(false); @@ -522,17 +534,30 @@ public class EditarPlano extends AbstractPageBean { st = new StaticText(); st.setEscape(false); st.setText(p.getObservacoes_dns()); - pg.getChildren().add(st); - + pg.getChildren().add(st); + if(p.getValidacao_director_loja().booleanValue() == true) { - chkValidacao.setSelected(new Boolean(true)); - butEnviar.setText("Enviar a Director Nacional Segurança>>"); - } + chkValidacao.setSelected(new Boolean(true)); +// gridParecer.setStyleClass(""); + butEnviarCorrecao.setDisabled(true); + } else { - butEnviar.setText("Enviar para Responsável de Segurança>>"); +// gridParecer.setStyleClass("hidden"); + butEnviarCorrecao.setDisabled(false); } + butEnviar.setText("Enviar a Director Nacional Segurança>>"); + +// if(p.getValidacao_director_loja().booleanValue() == true) +// { +// chkValidacao.setSelected(new Boolean(true)); +// butEnviar.setText("Enviar a Director Nacional Segurança>>"); +// } +// else +// { +// butEnviar.setText("Enviar para Responsável de Segurança>>"); +// } if(p.getCorrecao().matches("y")) { butEnviar.setText("Enviar a Director Nacional Segurança>>"); @@ -545,11 +570,12 @@ public class EditarPlano extends AbstractPageBean { case Global.FASE_DNS_PARECER: pg = new PanelGroup(); + pg.setId("pgObsDl"); gridObservacoes.getChildren().add(pg); st = new StaticText(); st.setEscape(false); st.setStyleClass("label"); - st.setText("Observações gerais DL: "); + st.setText("Observações gerais DL: "); pg.getChildren().add(st); st = new StaticText(); st.setEscape(false); @@ -557,16 +583,17 @@ public class EditarPlano extends AbstractPageBean { pg.getChildren().add(st); pg = new PanelGroup(); + pg.setId("pgObsDns"); gridObservacoes.getChildren().add(pg); st = new StaticText(); st.setEscape(false); st.setStyleClass("label"); - st.setText("Observações gerais DNS: "); + st.setText("Observações gerais DNS: "); pg.getChildren().add(st); TextArea txtObservacoesDns = new TextArea(); txtObservacoesDns.setId("txtObservacoesDns"); txtObservacoesDns.setColumns(200); - txtObservacoesDns.setText(p.getObservacoes_dl()); + txtObservacoesDns.setText(p.getObservacoes_dns()); pg.getChildren().add(txtObservacoesDns); if(p.getValidacao_dns().booleanValue() == true) { @@ -586,7 +613,7 @@ public class EditarPlano extends AbstractPageBean { // listOptions[1] = new Option(new Integer(Global.FASE_DIR_LOJA_VALIDACAO), "Director de loja"); // drpIrPara.setItems(listOptions); // drpIrPara.setSelected(new Integer( Global.FASE_SEGURANCA_PREENCHIMENTO )); - butEnviar.setText("Enviar para Técnico de SHS>>"); + butEnviar.setText("Enviar para Técnico de HS>>"); break; case Global.FASE_SIPRP_CONCLUSAO: @@ -595,7 +622,7 @@ public class EditarPlano extends AbstractPageBean { st = new StaticText(); st.setEscape(false); st.setStyleClass("label"); - st.setText("Observações gerais DL: "); + st.setText("Observações gerais DL: "); pg.getChildren().add(st); st = new StaticText(); st.setEscape(false); @@ -607,12 +634,26 @@ public class EditarPlano extends AbstractPageBean { st = new StaticText(); st.setEscape(false); st.setStyleClass("label"); - st.setText("Observações gerais DNS: "); + st.setText("Observações gerais DNS: "); pg.getChildren().add(st); st = new StaticText(); st.setEscape(false); st.setText(p.getObservacoes_dns()); - pg.getChildren().add(st); + pg.getChildren().add(st); + +// pg = new PanelGroup(); +// pg.setId("pgVerSiprp"); +// gridObservacoes.getChildren().add(pg); +// st = new StaticText(); +// st.setEscape(false); +// st.setStyleClass("label"); +// st.setText("Verificação SIPRP: "); +// pg.getChildren().add(st); +// TextArea txtVerificacaoSiprp = new TextArea(); +// txtVerificacaoSiprp.setId("txtVerificacaoSiprp"); +// txtVerificacaoSiprp.setColumns(200); +// txtVerificacaoSiprp.setText(p.getVerificacao_siprp()); +// pg.getChildren().add(txtVerificacaoSiprp); if(p.getValidacao_hs().booleanValue() == true) { @@ -638,7 +679,7 @@ public class EditarPlano extends AbstractPageBean { gridArea = new HtmlPanelGrid(); gridArea.setId("gridArea"); gridArea.setColumns(1); - gridArea.setColumnClasses("gridColLeft"); + gridArea.setColumnClasses("gridColCenter"); gridArea.setWidth("100%"); gridArea.setStyle("border: solid 1px #766c6c"); gridPlano.getChildren().add(gridArea); @@ -676,15 +717,16 @@ public class EditarPlano extends AbstractPageBean { HtmlPanelGrid grd = new HtmlPanelGrid(); grd.setColumns(1); grd.setWidth("100%"); - grd.setStyleClass("centerBlock"); - gridArea.getChildren().add(grd); + //grd.setStyleClass("centerBlock"); +// gridArea.getChildren().add(grd); gridRisco = new HtmlPanelGrid(); - gridRisco.setStyleClass("centerBlock"); + //gridRisco.setStyleClass("centerBlock"); gridRisco.setWidth("98%"); gridRisco.setColumns(1); gridRisco.setColumnClasses("gridColLeft"); - grd.getChildren().add(gridRisco); + //grd.getChildren().add(gridRisco); + gridArea.getChildren().add(gridRisco); pg = new PanelGroup(); st = new StaticText(); @@ -839,6 +881,8 @@ public class EditarPlano extends AbstractPageBean { private void showResponsavel(Valor v) { + System.out.println("VALOR : " + v.getId().toString()); + System.out.println("RESPONSAVEL : " + v.getResponsavel_execucao()); Utilizador u = getSessionBean1().getCurrentUser(); gridResponsavel = new HtmlPanelGrid(); gridResponsavel.setId("gridResponsavel"); @@ -874,7 +918,7 @@ public class EditarPlano extends AbstractPageBean { st = new StaticText(); st.setEscape(false); st.setStyleClass("label"); - st.setText("Recursos necessários à implementação da medida:"); + st.setText("Recursos necessários à implementação da medida: "); pg.getChildren().add(st); gridResponsavel.getChildren().add(pg); if(u.getTipo().intValue() == Global.RESPONSAVEL_SEGURANCA) @@ -890,7 +934,8 @@ public class EditarPlano extends AbstractPageBean { st = new StaticText(); st.setEscape(false); st.setText(v.getRecursos_necessarios()); - gridResponsavel.getChildren().add(st); + //gridResponsavel.getChildren().add(st); + pg.getChildren().add(st); } HtmlPanelGrid grd = new HtmlPanelGrid(); @@ -966,53 +1011,100 @@ public class EditarPlano extends AbstractPageBean { gridResponsavel.getChildren().add(grd); - pg = new PanelGroup(); - st = new StaticText(); - st.setEscape(false); - st.setStyleClass("label"); - st.setText("Parecer Director de Loja:"); - pg.getChildren().add(st); - gridResponsavel.getChildren().add(pg); - - if(u.getTipo().intValue() == Global.DIRECTOR_LOJA) + if(v.getParecer_dl() != null) { - txtParecerDl = new TextArea(); - txtParecerDl.setId("txtParecerDl"); - txtParecerDl.setColumns(200); - txtParecerDl.setText(v.getRecursos_necessarios()); - gridResponsavel.getChildren().add(txtParecerDl); + if(v.getParecer_dl().trim().length() > 0) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Parecer Director de Loja: "); + pg.getChildren().add(st); + gridResponsavel.getChildren().add(pg); + + if(u.getTipo().intValue() == Global.DIRECTOR_LOJA) + { + txtParecerDl = new TextArea(); + txtParecerDl.setId("txtParecerDl"); + txtParecerDl.setColumns(200); + txtParecerDl.setText(v.getParecer_dl()); + gridResponsavel.getChildren().add(txtParecerDl); + } + else + { + st = new StaticText(); + st.setEscape(false); + st.setText(v.getParecer_dl()); + //gridResponsavel.getChildren().add(st); + pg.getChildren().add(st); + } + } } - else + + if(v.getParecer_dns() != null) { - st = new StaticText(); - st.setEscape(false); - st.setText(v.getParecer_dl()); - gridResponsavel.getChildren().add(st); - } - - pg = new PanelGroup(); - st = new StaticText(); - st.setEscape(false); - st.setStyleClass("label"); - st.setText("Parecer Director Nacional de Segurança:"); - pg.getChildren().add(st); - gridResponsavel.getChildren().add(pg); + if(v.getParecer_dns().trim().length() > 0) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Parecer Director Nacional de Segurança: "); + pg.getChildren().add(st); + gridResponsavel.getChildren().add(pg); + + if(u.getTipo().intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA) + { + txtParecerDns = new TextArea(); + txtParecerDns.setId("txtParecerDns"); + txtParecerDns.setColumns(200); + txtParecerDns.setText(v.getParecer_dns()); + gridResponsavel.getChildren().add(txtParecerDns); + } + else + { + st = new StaticText(); + st.setEscape(false); + st.setText(v.getParecer_dns()); + //gridResponsavel.getChildren().add(st); + pg.getChildren().add(st); + } + } + } - if(u.getTipo().intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA) + //Verificacao SIPRP + if(v.getVerificacao_siprp() != null) { - txtParecerDns = new TextArea(); - txtParecerDns.setId("txtParecerDns"); - txtParecerDns.setColumns(200); - txtParecerDns.setText(v.getRecursos_necessarios()); - gridResponsavel.getChildren().add(txtParecerDns); - } - else - { - st = new StaticText(); - st.setEscape(false); - st.setText(v.getParecer_dns()); - gridResponsavel.getChildren().add(st); - } + if(v.getVerificacao_siprp().trim().length() > 0) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Verificação SIPRP: "); + pg.getChildren().add(st); + gridResponsavel.getChildren().add(pg); + + if(u.getTipo().intValue() == Global.TECNICO_HS) + { + txtVerificacaoSiprp = new TextArea(); + txtVerificacaoSiprp.setId("txtVerificacaoSiprp"); + txtVerificacaoSiprp.setColumns(200); + txtVerificacaoSiprp.setText(v.getVerificacao_siprp()); + gridResponsavel.getChildren().add(txtVerificacaoSiprp); + } + else + { + st = new StaticText(); + st.setEscape(false); + st.setText(v.getVerificacao_siprp()); + //gridResponsavel.getChildren().add(st); + pg.getChildren().add(st); + } + } + } + } private void showPreviousValidacoes(PlanoActuacao p) @@ -1143,8 +1235,38 @@ public class EditarPlano extends AbstractPageBean { public String butGravarPlano_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. + try + { + gravarPlano(); + } + catch(Exception ex) + { + ex.printStackTrace(); + getSessionBean1().setMsg("Erro na gravação do plano!"); + } + return null; } + + private void gravarPlano() throws Exception + { + PlanoActuacao p = getSessionBean1().getPlanoActuacao(); + pdp.updatePlano(p); + + Valor curValor = getSessionBean1().getCurrentValor(); + curValor = fillValorFields(curValor); + getSessionBean1().getValoresHash().remove(curValor.getId()); + getSessionBean1().getValoresHash().put(curValor.getId(), curValor); + + HashMap valores = getSessionBean1().getValoresHash(); + Iterator iter = valores.keySet().iterator(); + while(iter.hasNext()) + { + Integer id = iter.next(); + Valor v = valores.get(id); + pdp.updateValor(v); + } + } public String butGravarRisco_action() { // TODO: Process the action. Return value is a navigation @@ -1159,7 +1281,8 @@ public class EditarPlano extends AbstractPageBean { Valor v = getSessionBean1().getCurrentValor(); v = fillValorFields(v); pdp.updateValor(v); - + getSessionBean1().getValoresHash().remove(v.getId()); + getSessionBean1().getValoresHash().put(v.getId(), v); Pagination pagination = getSessionBean1().getPagination(); @@ -1191,6 +1314,50 @@ public class EditarPlano extends AbstractPageBean { return null; } + private void fillPlanoFields() + { + PlanoActuacao p = getSessionBean1().getPlanoActuacao(); + + int fase = p.getFase().intValue(); + switch(fase) + { + case Global.FASE_DIR_LOJA_VALIDACAO: + Boolean validacao = (Boolean)chkValidacao.getSelected(); + p.setValidacao_hs(validacao); + + TextArea txtObs = (TextArea) pg.findComponent("txtObservacoesDl"); + if(txtObs != null) + { + if(txtObs.getText() != null) + { + p.setObservacoes_dl((String) txtObs.getText()); + } + } + break; + + case Global.DIRECTOR_NACIONAL_SEGURANCA: + validacao = (Boolean)chkValidacao.getSelected(); + p.setValidacao_hs(validacao); + + txtObs = (TextArea) pg.findComponent("txtObservacoesDns"); + if(txtObs != null) + { + if(txtObs.getText() != null) + { + p.setObservacoes_dns((String) txtObs.getText()); + } + } + break; + + case Global.FASE_SIPRP_CONCLUSAO: + validacao = (Boolean)chkValidacao.getSelected(); + p.setValidacao_hs(validacao); + break; + + + } + } + private Valor fillValorFields(Valor v) { //gridPlano = (HtmlPanelGrid) gridLayout.findComponent("form1:gridPlano"); @@ -1245,6 +1412,15 @@ public class EditarPlano extends AbstractPageBean { } } + TextArea txtVerificacaoSiprp = (TextArea) gridResponsavel.findComponent("form1:txtVerificacaoSiprp"); + if(txtVerificacaoSiprp != null) + { + if(txtVerificacaoSiprp.getText() != null) + { + v.setVerificacao_siprp((String) txtVerificacaoSiprp.getText()); + } + } + return v; } @@ -1255,6 +1431,16 @@ public class EditarPlano extends AbstractPageBean { if(planoValidationOk(p)) { + try //save current valor + { + Valor v = getSessionBean1().getCurrentValor(); + v = fillValorFields(v); + pdp.updateValor(v); + } + catch(Exception ex) + { + ex.printStackTrace(); + } try { processEnviar(p); @@ -1276,7 +1462,8 @@ public class EditarPlano extends AbstractPageBean { boolean processo_validado = true; int dns_next_fase = 2; - int fase = p.getFase().intValue(); + int fase = p.getFase().intValue(); + p.setFase_anterior(new Integer(fase)); switch(fase) { // case Global.FASE_SIPRP_EMISSAO: @@ -1302,6 +1489,20 @@ public class EditarPlano extends AbstractPageBean { Date today = new Date(); p.setData_validacao_hs(today); p.setUser_hs(getSessionBean1().getCurrentUser().getId()); + +// PanelGroup pg = (PanelGroup) gridObservacoes.findComponent("pgVerSiprp"); +// if(pg != null) +// { +// TextArea txtVer = (TextArea) pg.findComponent("txtVerificacaoSiprp"); +// if(txtVer != null) +// { +// p.setVerificacao_siprp(""); +// if(txtVer.getText() != null) +// { +// p.setVerificacao_siprp((String) txtVer.getText()); +// } +// } +// } } } @@ -1311,7 +1512,7 @@ public class EditarPlano extends AbstractPageBean { } else { - getSessionBean1().setMsg("Tem de validar o processo!"); + getSessionBean1().setMsg("É necessário validar o processo antes de dar seguimento para a fase seguinte!"); ok = false; } break; @@ -1332,6 +1533,21 @@ public class EditarPlano extends AbstractPageBean { Date today = new Date(); p.setData_validacao_dir_loja(today); p.setUser_dir_loja(getSessionBean1().getCurrentUser().getId()); + + PanelGroup pg = (PanelGroup) gridObservacoes.findComponent("pgObsDl"); + if(pg != null) + { + TextArea txtObs = (TextArea) pg.findComponent("txtObservacoesDl"); + if(txtObs != null) + { + p.setObservacoes_dl(""); + if(txtObs.getText() != null) + { + p.setObservacoes_dl((String) txtObs.getText()); + } + } + } + } } @@ -1361,6 +1577,20 @@ public class EditarPlano extends AbstractPageBean { Date today = new Date(); p.setData_validacao_dns(today); p.setUser_dns(getSessionBean1().getCurrentUser().getId()); + + PanelGroup pg = (PanelGroup) gridObservacoes.findComponent("pgObsDns"); + if(pg != null) + { + TextArea txtObs = (TextArea) pg.findComponent("txtObservacoesDns"); + if(txtObs != null) + { + p.setObservacoes_dns(""); + if(txtObs.getText() != null) + { + p.setObservacoes_dns((String) txtObs.getText()); + } + } + } } } @@ -1387,6 +1617,11 @@ public class EditarPlano extends AbstractPageBean { // } fase++; } + else + { + getSessionBean1().setMsg("É necessário validar o processo antes de dar seguimento para a fase seguinte!"); + ok = false; + } // else // { // Integer irPara = (Integer)drpIrPara.getSelected(); @@ -1396,72 +1631,252 @@ public class EditarPlano extends AbstractPageBean { break; } - if(p.getCorrecao().matches("y")) + if(!checkCamposObrigatorios()) + { + ok = false; + getSessionBean1().setMsg("Por favor preencha todos os campos antes de prosseguir!"); + } + + if(ok) { - fase = p.getFase_antes_correcao().intValue(); - p.setCorrecao("n"); - p.setObs_correcao(""); + if(p.getCorrecao().matches("y")) + { + fase = p.getFase_antes_correcao().intValue(); + p.setCorrecao("n"); + p.setObs_correcao(""); + } + + p.setFase(new Integer(fase)); } - p.setFase(new Integer(fase)); + return ok; } + private boolean checkCamposObrigatorios() + { + boolean res = true; + HashMap valores = getSessionBean1().getValoresHash(); + Iterator iter = valores.keySet().iterator(); + while(iter.hasNext()) + { + Integer id = iter.next(); + Valor v = valores.get(id); + if(v.getResponsavel_execucao() == null) + { + res = false; + break; + } + else if(v.getResponsavel_execucao().trim().length() == 0) + { + res = false; + break; + } + + if(v.getRecursos_necessarios() == null) + { + res = false; + break; + } + else if(v.getRecursos_necessarios().trim().length() == 0) + { + res = false; + break; + } + + if(v.getData_inicio() == null) + { + res = false; + break; + } + + if(v.getData_fim() == null) + { + res = false; + break; + } + } + return res; + } + private void processEnviar(PlanoActuacao p) throws Exception { PlanosDataProvider pdp = new PlanosDataProvider(); p.setObs_correcao(""); pdp.updatePlano(p); - enviarMail(p.getFase().intValue()); + enviarMail(p); } - public void enviarMail(int fase) + public void enviarMail(PlanoActuacao p) { + UtilizadoresDataProvider udp = new UtilizadoresDataProvider(); + Mail mail = new Mail(); String assunto = ""; String mail_text = ""; + int fase = p.getFase().intValue(); + int tipo_utilizador = 0; switch(fase) { // case Global.FASE_SIPRP_EMISSAO: // break; case Global.FASE_SEGURANCA_PREENCHIMENTO: - assunto = "PLANOS - SEGURANÇA (PREENCHIMENTO)"; - mail_text = "Notifica-se que o Plano passou para a fase Segurança(Preenchimento)"; + if(p.getFase_anterior() == null ) + { + assunto = "PLANOS - SEGURANÇA (PREENCHIMENTO)"; + mail_text = "Notifica-se que o Plano passou para a fase Segurança(Preenchimento)"; + } + else + { + switch(p.getFase_anterior().intValue()) + { + case Global.FASE_DIR_LOJA_VALIDACAO: + tipo_utilizador = Global.DIRECTOR_LOJA; + assunto = "Plano de Actuação da Avaliação de Riscos de " + p.getData_visita_str() + " - Pedido de Correcção"; + mail_text = "

Exmo. (a) Senhor (a),

"; + mail_text += "

O Plano de Actuação referente à auditoria de Avaliação de Riscos Laborais realizada no passado dia " + p.getData_visita_str() + " foi devolvido para correcção.

"; + mail_text += "

Proceda, por favor, em www.siprp.com à(s) respectiva(s) correcção(ões) de acordo com as indicações e volte a reenviar o processo para a fase seguinte.

"; + mail_text += "

Caso tenha alguma dúvida ou necessite de qualquer esclarecimento, contacte, por favor, a Área Técnica da SIPRP através do telefone 213 504 540.

"; + mail_text += "

Cumprimentos,

"; + mail_text += "

A equipa da SIPRP

"; + mail_text += "

Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático

"; + break; + } + } break; case Global.FASE_DIR_LOJA_VALIDACAO: - assunto = "PLANOS - DIRECTOR LOJA (VALIDAÇÃO)"; - mail_text = "Notifica-se que o Plano passou para a fase Director de Loja(Validação)"; + tipo_utilizador = Global.DIRECTOR_LOJA; + assunto = "Plano de Actuação da Avaliação de Riscos de " + p.getData_visita_str(); + mail_text = "

Exmo. (a) Senhor (a),

"; + mail_text += "

Encontra-se disponível em www.siprp.com o Plano de Actuação referente à auditoria de "; + mail_text += "Avaliação de Riscos Laborais realizada no passado dia " + p.getData_visita_str() + " para que possa "; + mail_text += "validar a informação preenchida.

"; + mail_text += "

Cumprimentos.

"; + mail_text += "

Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático

"; + break; case Global.FASE_DNS_PARECER: - assunto = "PLANOS - DNS (PARECER)"; - mail_text = "Notifica-se que o Plano passou para a fase Dns(Parecer)"; + tipo_utilizador = Global.DIRECTOR_NACIONAL_SEGURANCA; + assunto = "Plano de Actuação da Avaliação de Riscos de " + p.getData_visita_str() + " - " + p.getNome_estabelecimento(); + mail_text = "

Exmo. Senhor Silvestre Machado,

"; + mail_text += "

Encontra-se disponível em www.siprp.com o Plano de Actuação referente à auditoria de Avaliação de Riscos Laborais realizada no passado dia " + p.getData_visita_str() + " para que o possa validar.

"; + mail_text += "

Cumprimentos.

"; + mail_text += "

Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático

"; break; case Global.FASE_SIPRP_CONCLUSAO: - assunto = "PLANOS - TSHS SIPRP (CONCLUSÃO)"; - mail_text = "Notifica-se que o Plano passou para a fase TSHS(Conclusão)"; - break; + tipo_utilizador = Global.TECNICO_HS; + assunto = "Plano de Actuação da Avaliação de Riscos de " + p.getData_visita_str() + " - " + p.getNome_estabelecimento(); + mail_text = "

Exmo. (a) Senhor (a),

"; + mail_text += "

Encontra-se disponível em www.siprp.com o Plano de Actuação referente à auditoria de Avaliação de Riscos Laborais realizada no passado dia " + p.getData_visita_str() + " para que possa efectuar a sua verificação.

"; + mail_text += "

Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático

"; + break; + + case Global.FASE_CONCLUIDO: + assunto = "Plano de Actuação da Avaliação de Riscos de " + p.getData_visita_str() + " - " + p.getNome_estabelecimento() + " - Processo finalizado"; + mail_text = "

Exmo. (a) Senhor (a),

"; + mail_text += "

Encontra-se disponível em www.siprp.com o Plano de Actuação referente à auditoria de Avaliação de Riscos Laborais realizada no passado dia " + p.getData_visita_str() + " finalizado após verificação pelos Técnicos Superiores de Higiene e Segurança da SIPRP.

"; + mail_text += "

Aproveitamos para agradecer toda a disponibilidade e ficamos ao vosso dispor, caso tenha alguma dúvida ou necessite de qualquer esclarecimento, através do telefone 213 504 540.

"; + mail_text += "

Cumprimentos,

"; + mail_text += "

Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático

"; + break; } if(fase < Global.FASE_CONCLUIDO) // nao envia para ninguem na fase Concluido { - Mail mail = new Mail(); + String responsavel_loja = "n"; + if(tipo_utilizador == Global.RESPONSAVEL_SEGURANCA) + { + responsavel_loja = "y"; + } try { - mail.send("lluis@evolute.pt", Mail.ENDERECO_ENVIO, assunto, mail_text); - System.out.println("EMAIL ENVIADO !!"); + ArrayList list = udp.getUtilizadoresListByTipo(tipo_utilizador, responsavel_loja, p.getEstabelecimento_id()); + ListIterator iter = list.listIterator(); + while(iter.hasNext()) + { + Utilizador u = (Utilizador) iter.next(); + System.out.println("USER MAIL NEXT FASE : " + u.getLogin() + " ; " + u.getEmail()); + try + { + mail.send(u.getEmail(), Mail.ENDERECO_ENVIO, assunto, mail_text); + System.out.println("EMAIL ENVIADO !!"); + } + catch(Exception ex1) + { + ex1.printStackTrace(); + System.out.println("MAIL ERROR : " + ex1.getMessage()); + } + + } } catch(Exception ex) { ex.printStackTrace(); - System.out.println("ERRO NO ENVIO DO EMAIL !!"); - } + } + } + else //fase concluido + { + int[] users = new int[]{Global.RESPONSAVEL_SEGURANCA, Global.DIRECTOR_LOJA, Global.DIRECTOR_NACIONAL_SEGURANCA}; + for(int i=0; i < users.length; i++) + { + tipo_utilizador = users[i]; + + String responsavel_loja = "n"; + if(tipo_utilizador == Global.RESPONSAVEL_SEGURANCA) + { + responsavel_loja = "y"; + } + try + { + ArrayList list = udp.getUtilizadoresListByTipo(tipo_utilizador, responsavel_loja, p.getEstabelecimento_id()); + ListIterator iter = list.listIterator(); + while(iter.hasNext()) + { + Utilizador u = (Utilizador) iter.next(); + System.out.println("USER MAIL NEXT FASE : " + u.getLogin() + " ; " + u.getEmail()); + try + { + mail.send(u.getEmail(), Mail.ENDERECO_ENVIO, assunto, mail_text); + System.out.println("EMAIL ENVIADO !!"); + } + catch(Exception ex1) + { + ex1.printStackTrace(); + System.out.println("MAIL ERROR : " + ex1.getMessage()); + } + + } + } + catch(Exception ex) + { + ex.printStackTrace(); + } + + } } + +// catch(Exception ex) +// { +// //ex.printStackTrace(); +// } +// Mail mail = new Mail(); +// try +// { +// mail.send("lluis@evolute.pt", Mail.ENDERECO_ENVIO, assunto, mail_text); +// System.out.println("EMAIL ENVIADO !!"); +// } +// catch(Exception ex) +// { +// ex.printStackTrace(); +// System.out.println("ERRO NO ENVIO DO EMAIL !!"); +// } +// } } @@ -1511,8 +1926,28 @@ public class EditarPlano extends AbstractPageBean { getSessionBean1().setRiscosHash(riscosHash); } + private void fillValoresHash(PlanoActuacao p) + { + HashMap valoresHash = new HashMap(); + for(Area a : p.getAreas()) + { + for(Risco r : a.getRiscos()) + { + for(Valor v : r.getValores()) + { + valoresHash.put(v.getId(), v); + } + } + } + getSessionBean1().setValoresHash(valoresHash); + } + public void paginacao_actionListener(ActionEvent e) { + Valor curValor = getSessionBean1().getCurrentValor(); + curValor = fillValorFields(curValor); + getSessionBean1().getValoresHash().remove(curValor.getId()); + getSessionBean1().getValoresHash().put(curValor.getId(), curValor); //gridPlano = (HtmlPanelGrid) gridLayout.findComponent("form1:gridPlano"); gridArea = (HtmlPanelGrid) gridPlano.findComponent("form1:gridArea"); if(gridArea.getChildren() != null) @@ -1521,7 +1956,8 @@ public class EditarPlano extends AbstractPageBean { } Pagina pagina = (Pagina) e.getSource(); Pagination pagination = getSessionBean1().getPagination(); - Valor v = pagination.getValor(pagina); + Valor v = pagination.getValor(pagina); + v = getSessionBean1().getValoresHash().get(v.getId()); //Risco r = getSessionBean1().getRiscosHash().get(v.getRisco_id()); Risco r = getSessionBean1().getRiscosHash().get(v.getRisco_id()); //Risco r = pagination.getRisco(pagina); @@ -1541,6 +1977,51 @@ public class EditarPlano extends AbstractPageBean { public String butLimparDados_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. + gridArea = (HtmlPanelGrid) gridPlano.findComponent("form1:gridArea"); + gridResponsavel = (HtmlPanelGrid) gridArea.findComponent("form1:gridResponsavel"); + PlanoActuacao p = getSessionBean1().getPlanoActuacao(); + int fase = p.getFase().intValue(); + switch(fase) + { + case Global.FASE_SEGURANCA_PREENCHIMENTO: + TextField txtResponsavel = (TextField) gridResponsavel.findComponent("form1:pgResponsavel:txtResponsavel"); + TextArea txtRecursos = (TextArea) gridResponsavel.findComponent("form1:txtRecursos"); + Calendar dtInicio = (Calendar) gridResponsavel.findComponent("form1:dtInicio:"); + Calendar dtFim = (Calendar) gridResponsavel.findComponent("form1:dtFim"); + txtResponsavel.setText(""); + txtRecursos.setText(""); + dtInicio.setValue(null); + dtFim.setValue(null); + break; + + case Global.FASE_DIR_LOJA_VALIDACAO: + TextArea txtParecerDl = (TextArea) gridResponsavel.findComponent("form1:txtParecerDl"); + txtParecerDl.setText(""); + PanelGroup pg = (PanelGroup) gridObservacoes.findComponent("pgObsDl"); + if(pg != null) + { + TextArea txtObs = (TextArea) pg.findComponent("txtObservacoesDl"); + txtObs.setText(""); + } + break; + + case Global.FASE_DNS_PARECER: + TextArea txtParecerDns = (TextArea) gridResponsavel.findComponent("form1:txtParecerDns"); + txtParecerDns.setText(""); + pg = (PanelGroup) gridObservacoes.findComponent("pgObsDns"); + if(pg != null) + { + TextArea txtObs = (TextArea) pg.findComponent("txtObservacoesDns"); + txtObs.setText(""); + } + break; + + case Global.FASE_SIPRP_CONCLUSAO: + TextArea txtVerificacaoSiprp = (TextArea) gridResponsavel.findComponent("form1:txtVerificacaoSiprp"); + txtVerificacaoSiprp.setText(""); + break; + } + return null; } @@ -1551,5 +2032,7 @@ public class EditarPlano extends AbstractPageBean { return "enviar_correcao"; } + + } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/EnviarCorrecao.java b/trunk/PlanosActuacao/src/java/planosactuacao/EnviarCorrecao.java index 5eb3d97b..e9deba53 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/EnviarCorrecao.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/EnviarCorrecao.java @@ -13,10 +13,15 @@ import com.sun.webui.jsf.component.StaticText; import com.sun.webui.jsf.component.TextArea; import com.sun.webui.jsf.model.Option; import db.entidades.PlanoActuacao; +import db.entidades.Utilizador; import db.providers.PlanosDataProvider; +import db.providers.UtilizadoresDataProvider; import global.Global; +import java.util.ArrayList; +import java.util.ListIterator; import javax.faces.FacesException; import javax.faces.event.ValueChangeEvent; +import mail.Mail; /** *

Page bean that corresponds to a similarly named JSP page. This @@ -197,10 +202,19 @@ public class EnviarCorrecao extends AbstractPageBean { private void initialize() { + Utilizador u = getSessionBean1().getCurrentUser(); com.sun.webui.jsf.model.Option[] listOptions = new com.sun.webui.jsf.model.Option[2]; - listOptions[0] = new Option(new Integer(Global.FASE_SEGURANCA_PREENCHIMENTO), "Responsável de segurança"); - listOptions[1] = new Option(new Integer(Global.FASE_DIR_LOJA_VALIDACAO), "Director de loja"); + if(u.getTipo().intValue() == Global.DIRECTOR_LOJA) + { + listOptions[0] = new Option(new Integer(Global.FASE_SEGURANCA_PREENCHIMENTO), "Responsável de segurança"); + } + else if(u.getTipo().intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA) + { + listOptions[0] = new Option(new Integer(Global.FASE_SEGURANCA_PREENCHIMENTO), "Responsável de segurança"); + listOptions[1] = new Option(new Integer(Global.FASE_DIR_LOJA_VALIDACAO), "Director de loja"); + } + drpIrPara.setItems(listOptions); drpIrPara.setSelected(new Integer( Global.FASE_SEGURANCA_PREENCHIMENTO )); } @@ -214,8 +228,10 @@ public class EnviarCorrecao extends AbstractPageBean { public String butEnviar_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. + Utilizador u = getSessionBean1().getCurrentUser(); PlanosDataProvider pdp = new PlanosDataProvider(); PlanoActuacao p = getSessionBean1().getPlanoActuacao(); + p.setFase_anterior(p.getFase()); int dns_next_fase = 0; int fase = 0; Integer irPara = (Integer)drpIrPara.getSelected(); @@ -223,14 +239,24 @@ public class EnviarCorrecao extends AbstractPageBean { p.setCorrecao("y"); p.setFase_antes_correcao(p.getFase()); p.setFase(new Integer(fase)); + String observacoes = ""; if(txtObservacoes.getText() != null) { - - p.setObs_correcao((String) txtObservacoes.getText()); + if(u.getTipo().intValue() == Global.DIRECTOR_LOJA) + { + observacoes = "Observações do Director de Loja: "; + } + else if(u.getTipo().intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA) + { + observacoes = "Observações do Director Nacional de Segurança: "; + } + observacoes += (String)txtObservacoes.getText(); + p.setObs_correcao(observacoes); } try { pdp.updatePlano(p); + enviarMail(p); return "lista_planos"; } catch(Exception ex) @@ -241,5 +267,87 @@ public class EnviarCorrecao extends AbstractPageBean { return null; } + private void enviarMail(PlanoActuacao p) + { + String assunto = ""; + String mail_text = ""; + + int fase = p.getFase().intValue(); + int tipo_utilizador = 0; + switch(fase) + { + case Global.FASE_SEGURANCA_PREENCHIMENTO: + tipo_utilizador = Global.RESPONSAVEL_SEGURANCA; + assunto = "Plano de Actuação da Avaliação de Riscos de " + p.getData_visita_str() + " - Pedido de Correcção"; + mail_text = "

Exmo. (a) Senhor (a),

"; + mail_text += "

O Plano de Actuação referente à auditoria de Avaliação de Riscos Laborais realizada no passado dia " + p.getData_visita_str() + " foi devolvido para correcção.

"; + mail_text += "

Proceda, por favor, em www.siprp.com à(s) respectiva(s) correcção(ões) de acordo com as indicações do Director Nacional de Segurança e volte a reenviar o processo para a fase seguinte.

"; + mail_text += "

Caso tenha alguma dúvida ou necessite de qualquer esclarecimento, contacte, por favor, a Área Técnica da SIPRP através do telefone 213 504 540.

"; + mail_text += "

Cumprimentos,

"; + mail_text += "

A equipa da SIPRP

"; + mail_text += "

Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático

"; + break; + + case Global.FASE_DIR_LOJA_VALIDACAO: + tipo_utilizador = Global.DIRECTOR_LOJA; + assunto = "Plano de Actuação da Avaliação de Riscos de " + p.getData_visita_str() + " - Pedido de Correcção"; + mail_text = "

Exmo. (a) Senhor (a),

"; + mail_text += "

O Plano de Actuação referente à auditoria de Avaliação de Riscos Laborais realizada no passado dia " + p.getData_visita_str() + " foi devolvido para correcção.

"; + mail_text += "

Proceda, por favor, em www.siprp.com à(s) respectiva(s) correcção(ões) de acordo com as indicações do Director Nacional de Segurança e volte a reenviar o processo para a fase seguinte.

"; + mail_text += "

Cumprimentos.

"; + mail_text += "

Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático

"; + break; + } + + Mail mail = new Mail(); + + UtilizadoresDataProvider udp = new UtilizadoresDataProvider(); + String responsavel_loja = "n"; + if(tipo_utilizador == Global.RESPONSAVEL_SEGURANCA) + { + responsavel_loja = "y"; + } + try + { + ArrayList list = udp.getUtilizadoresListByTipo(tipo_utilizador, responsavel_loja, p.getEstabelecimento_id()); + ListIterator iter = list.listIterator(); + while(iter.hasNext()) + { + Utilizador u = (Utilizador) iter.next(); + System.out.println("USER MAIL NEXT FASE : " + u.getLogin() + " ; " + u.getEmail()); + try + { + mail.send(u.getEmail(), Mail.ENDERECO_ENVIO, assunto, mail_text); + System.out.println("EMAIL ENVIADO !!"); + } + catch(Exception ex1) + { + ex1.printStackTrace(); + System.out.println("MAIL ERROR : " + ex1.getMessage()); + } + + } + } + catch(Exception ex) + { + //ex.printStackTrace(); + } + +// +// +// +// +// try +// { +// mail.send("lluis@evolute.pt", Mail.ENDERECO_ENVIO, assunto, mail_text); +// System.out.println("EMAIL ENVIADO !!"); +// } +// catch(Exception ex) +// { +// ex.printStackTrace(); +// System.out.println("ERRO NO ENVIO DO EMAIL !!"); +// } + } + } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/Header.java b/trunk/PlanosActuacao/src/java/planosactuacao/Header.java index 6693256b..5824da1d 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/Header.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/Header.java @@ -186,12 +186,46 @@ public class Header extends AbstractFragmentBean { public String lnkGerirUtilizadores1_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. + FacesContext fc = getFacesContext(); + SessionBean1 session = JSFUtils.getSessionBean(fc); + Utilizador u = session.getCurrentUser(); + + String url = Global.ANALISE_ACIDENTES_URL; + int tipo = u.getTipo().intValue(); + + url += "GestaoUtilizadores.jsp?user=" + u.getId().intValue(); + try + { + JSFUtils.redirect(fc.getCurrentInstance(), url); + } + catch(Exception ex) + { + ex.printStackTrace(); + } + return null; } public String lnkDadosUtilizador1_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. + FacesContext fc = getFacesContext(); + SessionBean1 session = JSFUtils.getSessionBean(fc); + Utilizador u = session.getCurrentUser(); + + String url = Global.ANALISE_ACIDENTES_URL; + int tipo = u.getTipo().intValue(); + + url += "FichaUtilizador.jsp?user=" + u.getId().intValue() + "&mode=edit"; + try + { + JSFUtils.redirect(fc.getCurrentInstance(), url); + } + catch(Exception ex) + { + ex.printStackTrace(); + } + return null; } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java b/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java index 3509d559..c1ec27dd 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java @@ -25,6 +25,7 @@ import java.util.Calendar; import java.util.Date; import java.util.List; import javax.faces.FacesException; +import javax.faces.component.html.HtmlPanelGrid; import javax.faces.context.FacesContext; import siprp.database.cayenne.providers.PlanoActuacaoDAO; import tabledataproviders.PlanosActualDataProvider; @@ -89,7 +90,16 @@ public class ListaPlanos extends AbstractPageBean { } // - PlanosDataProvider pdp = new PlanosDataProvider(); + PlanosDataProvider pdp = new PlanosDataProvider(); + private HtmlPanelGrid gridActual = new HtmlPanelGrid(); + + public HtmlPanelGrid getGridActual() { + return gridActual; + } + + public void setGridActual(HtmlPanelGrid hpg) { + this.gridActual = hpg; + } /** *

Construct a new Page bean instance.

@@ -156,13 +166,10 @@ public class ListaPlanos extends AbstractPageBean { public void prerender() { //UIComponent emptyCol = tableRowGroup1.getEmptyDataText(); - - tableRowGroup1.setEmptyDataMsg("Sem registos"); - tableRowGroup2.setEmptyDataMsg("Sem registos"); - tableRowGroup3.setEmptyDataMsg("Sem registos"); FacesContext fc = getFacesContext(); String user_id = JSFUtils.getRequestParameter(fc, "user"); + Utilizador u = null; try { Integer userId = new Integer(Integer.parseInt(user_id)); @@ -171,7 +178,7 @@ public class ListaPlanos extends AbstractPageBean { { UtilizadoresDataProvider udp = new UtilizadoresDataProvider(); udp.checkConnection(); - Utilizador u = udp.getUtilizador(userId); + u = udp.getUtilizador(userId); getSessionBean1().setCurrentUser(u); } catch(Exception ex1) @@ -184,6 +191,22 @@ public class ListaPlanos extends AbstractPageBean { ex.printStackTrace(); } + u = getSessionBean1().getCurrentUser(); + if(u.getTipo().intValue() == Global.DIRECTOR_SIPRP) + { + gridActual.setRendered(false); + tableRowGroup2.setEmptyDataMsg("Sem registos"); + tableRowGroup3.setEmptyDataMsg("Sem registos"); + } + + if(u.getTipo().intValue() != Global.DIRECTOR_SIPRP) + { + getSessionBean1().setDisableMenuUtilizadores(true); + tableRowGroup1.setEmptyDataMsg("Sem registos"); + tableRowGroup2.setEmptyDataMsg("Sem registos"); + tableRowGroup3.setEmptyDataMsg("Sem registos"); + } + initialize(); } @@ -311,6 +334,8 @@ public class ListaPlanos extends AbstractPageBean { List listPlanosConcluidos = planos.getPlanosConcluidos(); getSessionBean1().getPlanosConcluidosDataProvider().setList(listPlanosConcluidos); + + checkPlanosDelayed(); } @@ -344,7 +369,12 @@ public class ListaPlanos extends AbstractPageBean { ArrayList list = (ArrayList) provider.getList(); PlanoActuacao p = (PlanoActuacao)list.get(k); return p; - } + } + + private void checkPlanosDelayed() + { + + } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/PlanosActuacao.java b/trunk/PlanosActuacao/src/java/planosactuacao/PlanosActuacao.java index 052afb82..d6a4ad94 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/PlanosActuacao.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/PlanosActuacao.java @@ -14,11 +14,14 @@ import db.entidades.Utilizador; import db.entidades.Valor; import db.providers.PlanosDataProvider; import db.providers.RelatoriosDataProvider; +import db.providers.UtilizadoresDataProvider; import global.Global; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; +import java.util.ListIterator; +import mail.Mail; import siprp.database.cayenne.objects.HsRelatorio; import siprp.database.cayenne.providers.PlanoActuacaoDAO; @@ -39,12 +42,14 @@ public class PlanosActuacao { { rdp = new RelatoriosDataProvider(); Integer estabelecimentoId = null; - if(u.getTipo().intValue() != Global.TECNICO_HS ) + if(u.getTipo().intValue() != Global.TECNICO_HS && u.getTipo().intValue() != Global.DIRECTOR_SIPRP) { estabelecimentoId = u.getEstabelecimento_id(); } List planosOnlineList = getPlanosOnline(); + System.out.println("PLANOS ONLINE LIST : " + planosOnlineList.size()); List listRelatorios = getRelatorios(planosOnlineList, estabelecimentoId); + System.out.println("LIST RELATORIOS : " + listRelatorios.size()); putPlanosOnline(listRelatorios); } catch(Exception ex) @@ -85,7 +90,7 @@ public class PlanosActuacao { try { PlanoActuacao p = createPlano(relatorio); - + enviarMail(p); //showPlano(p); } catch(Exception ex) @@ -255,4 +260,75 @@ public class PlanosActuacao { System.out.println(" " + p.getDescricao()); } } + + private void enviarMail(PlanoActuacao p) + { + String assunto = ""; + String mail_text = ""; + + int fase = p.getFase().intValue(); + int tipo_utilizador = 0; + switch(fase) + { + case Global.FASE_SEGURANCA_PREENCHIMENTO: + tipo_utilizador = Global.RESPONSAVEL_SEGURANCA; + assunto = "Plano de Actuação da Avaliação de Riscos de " + p.getData_visita_str() + " - " + p.getNome_estabelecimento(); + mail_text = "

Exmo. (a) Senhor (a),

"; + mail_text += "

Encontra-se disponível em www.siprp.com o Plano de Actuação referente à auditoria de Avaliação de Riscos Laborais realizada no passado dia " + p.getData_visita_str() + " para que possa efectuar o seu preenchimento.

"; + mail_text += "

Recordamos que dispõe de duas semanas para efectuar o seu preenchimento e passar o respectivo processo para a fase seguinte, ou seja, para o responsável pelo seu estabelecimento.

"; + mail_text += "

Caso tenha alguma dúvida ou necessite de qualquer esclarecimento, contacte, por favor, a área técnica da SIPRP através do telefone 213 504 540.

"; + mail_text += "

Cumprimentos,

"; + mail_text += "

A equipa da SIPRP

"; + mail_text += "

Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático

"; + break; + } + + Mail mail = new Mail(); + + + + UtilizadoresDataProvider udp = new UtilizadoresDataProvider(); + String responsavel_loja = "n"; + if(tipo_utilizador == Global.RESPONSAVEL_SEGURANCA) + { + responsavel_loja = "y"; + } + try + { + ArrayList list = udp.getUtilizadoresListByTipo(tipo_utilizador, responsavel_loja, p.getEstabelecimento_id()); + ListIterator iter = list.listIterator(); + while(iter.hasNext()) + { + Utilizador u = (Utilizador) iter.next(); + System.out.println("USER MAIL NEXT FASE : " + u.getLogin() + " ; " + u.getEmail()); + try + { + mail.send(u.getEmail(), Mail.ENDERECO_ENVIO, assunto, mail_text); + System.out.println("EMAIL ENVIADO !!"); + } + catch(Exception ex1) + { + ex1.printStackTrace(); + System.out.println("MAIL ERROR : " + ex1.getMessage()); + } + + } + } + catch(Exception ex) + { + //ex.printStackTrace(); + } + + +// try +// { +// mail.send("lluis@evolute.pt", Mail.ENDERECO_ENVIO, assunto, mail_text); +// System.out.println("EMAIL ENVIADO !!"); +// } +// catch(Exception ex) +// { +// ex.printStackTrace(); +// System.out.println("ERRO NO ENVIO DO EMAIL !!"); +// } + } } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java b/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java index eea3a953..6b3aeef5 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java @@ -67,6 +67,7 @@ public class SessionBean1 extends AbstractSessionBean { //fase private int fase = 1; + private HashMap valoresHash; private HashMap areasHash; private HashMap riscosHash; private Pagination pagination = null; @@ -360,5 +361,13 @@ public class SessionBean1 extends AbstractSessionBean { this.currentValor = currentValor; } + public HashMap getValoresHash() { + return valoresHash; + } + + public void setValoresHash(HashMap valoresHash) { + this.valoresHash = valoresHash; + } + } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/Test.java b/trunk/PlanosActuacao/src/java/planosactuacao/Test.java new file mode 100644 index 00000000..42b52ec1 --- /dev/null +++ b/trunk/PlanosActuacao/src/java/planosactuacao/Test.java @@ -0,0 +1,74 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package planosactuacao; + +import db.entidades.Area; +import db.entidades.Medida; +import db.entidades.PlanoActuacao; +import db.entidades.PostoTrabalho; +import db.entidades.Risco; +import db.entidades.Valor; +import java.util.List; + +/** + * + * @author lluis + */ +public class Test { + private PlanoActuacao p; + + public static void showPlanoTree(PlanoActuacao p) + { + System.out.println("====================================================="); + System.out.println(" PLANO : " + p.getData_visita_str()); + showAreas(p.getAreas()); + System.out.println("====================================================="); + } + + private static void showAreas(List areas) + { + for(Area a : areas) + { + System.out.println("\t" + a.getDescricao()); + showRiscos(a.getRiscos()); + } + } + + private static void showRiscos(List riscos) + { + for(Risco r : riscos) + { + System.out.println("\t\t" + r.getDescricao()); + showValores(r.getValores()); + } + } + + private static void showValores(List valores) + { + for(Valor v : valores) + { + System.out.println("\t\t\t" + v.getValor()); + showMedidas(v.getMedidas()); + } + } + + private static void showMedidas(List medidas) + { + for(Medida m : medidas) + { + System.out.println("\t\t\t" + m.getDescricao()); + showPostos(m.getPostos()); + } + } + + private static void showPostos(List postos) + { + for(PostoTrabalho p : postos) + { + System.out.println("\t\t\t\t" + p.getDescricao()); + } + } +} diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/ViewPlano.java b/trunk/PlanosActuacao/src/java/planosactuacao/ViewPlano.java index 0f9201bf..29a519e1 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/ViewPlano.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/ViewPlano.java @@ -18,6 +18,7 @@ import db.entidades.Risco; import db.entidades.Utilizador; import db.entidades.Valor; import db.providers.UtilizadoresDataProvider; +import java.text.SimpleDateFormat; import java.util.List; import javax.faces.FacesException; import javax.faces.component.html.HtmlPanelGrid; @@ -198,7 +199,7 @@ public class ViewPlano extends AbstractPageBean { { gridArea = new HtmlPanelGrid(); gridArea.setColumns(1); - gridArea.setColumnClasses("gridColLeft"); + gridArea.setColumnClasses("gridColCenter"); gridArea.setWidth("100%"); gridPlano.getChildren().add(gridArea); @@ -280,8 +281,150 @@ public class ViewPlano extends AbstractPageBean { gridValor.getChildren().add(pg); showMedidas(valor.getMedidas()); - } } - + + grd = new HtmlPanelGrid(); + grd.setColumns(1); + grd.setWidth("100%"); + grd.setStyleClass("centerBlock"); + gridValor.getChildren().add(grd); + HtmlPanelGrid gridParecer = new HtmlPanelGrid(); + gridParecer.setStyleClass("centerBlock"); + gridParecer.setWidth("98%"); + gridParecer.setColumns(1); + gridParecer.setColumnClasses("gridColLeft"); + grd.getChildren().add(gridParecer); + + if(valor.getResponsavel_execucao() != null) + { + if(valor.getResponsavel_execucao().trim().length() > 0) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Responsável de execução: "); + pg.getChildren().add(st); + st = new StaticText(); + st.setEscape(false); + st.setText(valor.getResponsavel_execucao().toString()); + pg.getChildren().add(st); + gridParecer.getChildren().add(pg); + } + } + + if(valor.getRecursos_necessarios() != null) + { + if(valor.getRecursos_necessarios().trim().length() > 0) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Recursos necessários: "); + pg.getChildren().add(st); + st = new StaticText(); + st.setEscape(false); + st.setText(valor.getRecursos_necessarios().toString()); + pg.getChildren().add(st); + gridParecer.getChildren().add(pg); + } + } + + if(valor.getData_inicio() != null) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Data início: "); + pg.getChildren().add(st); + st = new StaticText(); + st.setEscape(false); + String data_str = ""; + SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); + data_str = formatter.format(valor.getData_inicio()); + st.setText(data_str); + pg.getChildren().add(st); + gridParecer.getChildren().add(pg); + } + + if(valor.getData_fim() != null) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Data fim: "); + pg.getChildren().add(st); + st = new StaticText(); + st.setEscape(false); + String data_str = ""; + SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); + data_str = formatter.format(valor.getData_fim()); + st.setText(data_str); + pg.getChildren().add(st); + gridParecer.getChildren().add(pg); + } + + if(valor.getParecer_dl() != null) + { + if(valor.getParecer_dl().trim().length() > 0) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Parecer DL: "); + pg.getChildren().add(st); + st = new StaticText(); + st.setEscape(false); + st.setText(valor.getParecer_dl().toString()); + pg.getChildren().add(st); + gridParecer.getChildren().add(pg); + + } + } + + if(valor.getParecer_dns() != null) + { + if(valor.getParecer_dns().trim().length() > 0) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Parecer DNS: "); + pg.getChildren().add(st); + st = new StaticText(); + st.setEscape(false); + st.setText(valor.getParecer_dns().toString()); + pg.getChildren().add(st); + gridParecer.getChildren().add(pg); + + } + } + + if(valor.getVerificacao_siprp() != null) + { + if(valor.getVerificacao_siprp().trim().length() > 0) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Verificação SIPRP: "); + pg.getChildren().add(st); + st = new StaticText(); + st.setEscape(false); + st.setText(valor.getVerificacao_siprp().toString()); + pg.getChildren().add(st); + gridParecer.getChildren().add(pg); + + } + } + } + } + private void showMedidas(List medidas) { for(Medida medida : medidas) @@ -371,6 +514,23 @@ public class ViewPlano extends AbstractPageBean { } st.setText("Validado por " + nome + " (Director de Loja) a " + p.getData_validacao_dir_loja_str()); grd.getChildren().add(st); + + if(p.getObservacoes_dl() != null) + { + if(p.getObservacoes_dl().trim().length() > 0) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setText("Observações gerais DL: "); + pg.getChildren().add(st); + st = new StaticText(); + st.setEscape(false); + st.setText(p.getObservacoes_dl()); + pg.getChildren().add(st); + grd.getChildren().add(pg); + } + } } if(p.getValidacao_dns().booleanValue()) @@ -391,6 +551,23 @@ public class ViewPlano extends AbstractPageBean { } st.setText("Validado por " + nome + " (Director Nacional de Segurança) a " + p.getData_validacao_dns_str()); grd.getChildren().add(st); + + if(p.getObservacoes_dns() != null) + { + if(p.getObservacoes_dns().trim().length() > 0) + { + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setText("Observações gerais DNS: "); + pg.getChildren().add(st); + st = new StaticText(); + st.setEscape(false); + st.setText(p.getObservacoes_dns()); + pg.getChildren().add(st); + grd.getChildren().add(pg); + } + } } if(p.getValidacao_hs().booleanValue()) @@ -411,6 +588,23 @@ public class ViewPlano extends AbstractPageBean { } st.setText("Validado por " + nome + " (Técnico de SHS) a " + p.getData_validacao_hs_str()); grd.getChildren().add(st); + +// if(p.getVerificacao_siprp() != null) +// { +// if(p.getVerificacao_siprp().trim().length() > 0) +// { +// pg = new PanelGroup(); +// st = new StaticText(); +// st.setEscape(false); +// st.setText("Verificação SIPRP: "); +// pg.getChildren().add(st); +// st = new StaticText(); +// st.setEscape(false); +// st.setText(p.getVerificacao_siprp()); +// pg.getChildren().add(st); +// grd.getChildren().add(pg); +// } +// } } if(hasValidations) diff --git a/trunk/PlanosActuacao/web/EditarPlano.jsp b/trunk/PlanosActuacao/web/EditarPlano.jsp index c8adddcd..81420878 100644 --- a/trunk/PlanosActuacao/web/EditarPlano.jsp +++ b/trunk/PlanosActuacao/web/EditarPlano.jsp @@ -81,11 +81,42 @@ function show(chk) { hid = document.getElementById("form1:hidValidacao"); + + if(chk.checked) + { + if(hid.value == 'dir_loja') + { + webui.suntheme4_2.widget.common._createWidget('_form1:groupPanel2:butEnviar',{"id":"form1:groupPanel2:butEnviar","widgetType":"webui.suntheme4_2.widget.button","style":"width: 223px","visible":true,"primary":false,"value":"Enviar a Director Nacional Segurança>>","escape":true,"mini":false,"disabled":false}); + } + else if(hid.value == 'dns') + { + webui.suntheme4_2.widget.common._createWidget('_form1:groupPanel2:butEnviar',{"id":"form1:groupPanel2:butEnviar","widgetType":"webui.suntheme4_2.widget.button","style":"width: 223px","visible":true,"primary":false,"value":"Enviar para Técnico HS>>","escape":true,"mini":false,"disabled":false}); + } + else if(hid.value == 'hs') + { + webui.suntheme4_2.widget.common._createWidget('_form1:groupPanel2:butEnviar',{"id":"form1:groupPanel2:butEnviar","widgetType":"webui.suntheme4_2.widget.button","style":"width: 223px","visible":true,"primary":false,"value":"Concluir","escape":true,"mini":false,"disabled":false}); + } + } + else + { + if(hid.value == 'dir_loja') + { + webui.suntheme4_2.widget.common._createWidget('_form1:groupPanel2:butEnviar',{"id":"form1:groupPanel2:butEnviar","widgetType":"webui.suntheme4_2.widget.button","style":"width: 223px","visible":true,"primary":false,"value":"Enviar a Director Nacional Segurança>>","escape":true,"mini":false,"disabled":true}); + } + else if(hid.value == 'dns') + { + webui.suntheme4_2.widget.common._createWidget('_form1:groupPanel2:butEnviar',{"id":"form1:groupPanel2:butEnviar","widgetType":"webui.suntheme4_2.widget.button","style":"width: 223px","visible":true,"primary":false,"value":"Enviar para Técnico HS>>","escape":true,"mini":false,"disabled":true}); + } + else if(hid.value == 'hs') + { + webui.suntheme4_2.widget.common._createWidget('_form1:groupPanel2:butEnviar',{"id":"form1:groupPanel2:butEnviar","widgetType":"webui.suntheme4_2.widget.button","style":"width: 223px","visible":true,"primary":false,"value":"Concluir","escape":true,"mini":false,"disabled":true}); + } + } if(hid.value == 'dns') { if(chk.checked) { - document.getElementById("form1:gridParecer").className = ""; + //document.getElementById("form1:gridParecer").className = ""; //document.getElementById("form1:groupPanel2:butEnviarCorrecao").disabled = true; //document.getElementById("form1:groupPanel2:butEnviarCorrecao").className = "Btn2Dis_sun4"; webui.suntheme4_2.widget.common._createWidget('_form1:groupPanel2:butEnviarCorrecao',{"id":"form1:groupPanel2:butEnviarCorrecao","widgetType":"webui.suntheme4_2.widget.button","visible":true,"primary":false,"value":"Enviar correcão","escape":false,"mini":false,"disabled":true}); @@ -96,7 +127,7 @@ } else { - document.getElementById("form1:gridParecer").className = "hidden"; + //document.getElementById("form1:gridParecer").className = "hidden"; //document.getElementById("form1:groupPanel2:butEnviarCorrecao").disabled = false; //document.getElementById("form1:groupPanel2:butEnviarCorrecao").className = ""; webui.suntheme4_2.widget.common._createWidget('_form1:groupPanel2:butEnviarCorrecao',{"id":"form1:groupPanel2:butEnviarCorrecao","widgetType":"webui.suntheme4_2.widget.button","visible":true,"primary":false,"value":"Enviar correção","escape":false,"mini":false,"disabled":false}); @@ -109,13 +140,15 @@ { if(chk.checked) { - var butEnviar = document.getElementById("form1:groupPanel2:butEnviar"); - butEnviar.value = "Enviar para Director Nacional de Segurança>>"; + webui.suntheme4_2.widget.common._createWidget('_form1:groupPanel2:butEnviarCorrecao',{"id":"form1:groupPanel2:butEnviarCorrecao","widgetType":"webui.suntheme4_2.widget.button","visible":true,"primary":false,"value":"Enviar correcão","escape":false,"mini":false,"disabled":true}); + //var butEnviar = document.getElementById("form1:groupPanel2:butEnviar"); + //butEnviar.value = "Enviar para Director Nacional de Segurança>>"; } else { - var butEnviar = document.getElementById("form1:groupPanel2:butEnviar"); - butEnviar.value = "Enviar para Responsável de Segurança>>"; + webui.suntheme4_2.widget.common._createWidget('_form1:groupPanel2:butEnviarCorrecao',{"id":"form1:groupPanel2:butEnviarCorrecao","widgetType":"webui.suntheme4_2.widget.button","visible":true,"primary":false,"value":"Enviar correção","escape":false,"mini":false,"disabled":false}); + //var butEnviar = document.getElementById("form1:groupPanel2:butEnviar"); + //butEnviar.value = "Enviar para Responsável de Segurança>>"; } } @@ -128,11 +161,11 @@ - + - - + + diff --git a/trunk/PlanosActuacao/web/ListaPlanos.jsp b/trunk/PlanosActuacao/web/ListaPlanos.jsp index 1d8885c2..b0d0cd44 100644 --- a/trunk/PlanosActuacao/web/ListaPlanos.jsp +++ b/trunk/PlanosActuacao/web/ListaPlanos.jsp @@ -40,7 +40,8 @@ - + diff --git a/trunk/PlanosActuacao/web/WEB-INF/faces-config.xml b/trunk/PlanosActuacao/web/WEB-INF/faces-config.xml index ddbdd4aa..d602dad8 100644 --- a/trunk/PlanosActuacao/web/WEB-INF/faces-config.xml +++ b/trunk/PlanosActuacao/web/WEB-INF/faces-config.xml @@ -117,5 +117,9 @@ editar_plano /EditarPlano.jsp + + lista_planos + /ListaPlanos.jsp + diff --git a/trunk/common/src/siprp/database/cayenne/providers/PlanoActuacaoDAO.java b/trunk/common/src/siprp/database/cayenne/providers/PlanoActuacaoDAO.java index eb286ec6..62f4cd93 100644 --- a/trunk/common/src/siprp/database/cayenne/providers/PlanoActuacaoDAO.java +++ b/trunk/common/src/siprp/database/cayenne/providers/PlanoActuacaoDAO.java @@ -92,6 +92,7 @@ public class PlanoActuacaoDAO extends MainDAO for( HsRelatorio relatorio : all ) { MarcacoesEstabelecimento visita = relatorio.getToHsMarcacoesEstabelecimento(); + if( visita != null ) { if( estabelecimentoID == null