desactivar planos (TECNICOS_HS e DIRECTOR_SIPRP)

git-svn-id: https://svn.coded.pt/svn/SIPRP@1166 bb69d46d-e84e-40c8-a05a-06db0d633741
lxbfYeaa
Diogo Neves 16 years ago
parent 05eb853f82
commit 7b77fe0347

@ -56,10 +56,12 @@ public class PlanoActuacao {
private String data_validacao_dir_loja_str; private String data_validacao_dir_loja_str;
private String data_validacao_dns_str; private String data_validacao_dns_str;
private String data_validacao_hs_str; private String data_validacao_hs_str;
private Date data_controlo; private Date data_controlo;
private Date data_email_controlo; private Date data_email_controlo;
private Boolean concluido_por_desactivacao;
public Integer getId() { public Integer getId() {
return id; return id;
@ -83,7 +85,7 @@ public class PlanoActuacao {
public void setFase(Integer fase) { public void setFase(Integer fase) {
this.fase = fase; this.fase = fase;
fase_nome = Global.FASES_TEXTO[fase.intValue()-1]; fase_nome = Global.FASES_TEXTO[fase.intValue()-1];
} }
public String getDescricao() { public String getDescricao() {
@ -121,6 +123,10 @@ public class PlanoActuacao {
} }
public String getFase_nome() { public String getFase_nome() {
if ( fase.intValue() == Global.FASE_CONCLUIDO && getConcluidoPorDesactivacao() != null && getConcluidoPorDesactivacao() )
{
return "Prazo Expirado";
}
return fase_nome; return fase_nome;
} }
@ -376,4 +382,14 @@ public class PlanoActuacao {
public void setData_relatorio(Date data_relatorio) { public void setData_relatorio(Date data_relatorio) {
this.data_relatorio = data_relatorio; this.data_relatorio = data_relatorio;
} }
public Boolean getConcluidoPorDesactivacao()
{
return concluido_por_desactivacao;
}
public void setConcluidoPorDesactivacao( boolean value )
{
this.concluido_por_desactivacao = value;
}
} }

@ -33,7 +33,7 @@ public class PlanosDataProvider extends GenericDataProvider{
{ {
Statement st = createStatement(); Statement st = createStatement();
Integer newId = getMaxTableId("planos_actuacao"); Integer newId = getMaxTableId("planos_actuacao");
String sql = "insert into planos_actuacao (id, estabelecimento_id, fase, data_visita, data_relatorio, nome_estabelecimento, empresa_id, nome_empresa, data_controlo, tecnico_hs_id, tecnico_hs_nome) values ("; String sql = "insert into planos_actuacao (id, estabelecimento_id, fase, data_visita, data_relatorio, nome_estabelecimento, empresa_id, nome_empresa, data_controlo, tecnico_hs_id, tecnico_hs_nome, concluido_por_desactivacao) values (";
sql += newId + ", "; sql += newId + ", ";
sql += p.getEstabelecimento_id() + ", "; sql += p.getEstabelecimento_id() + ", ";
sql += p.getFase() + ", '"; sql += p.getFase() + ", '";
@ -50,13 +50,22 @@ public class PlanosDataProvider extends GenericDataProvider{
sql += p.getTecnico_hs_id() + ", "; sql += p.getTecnico_hs_id() + ", ";
if(p.getTecnico_hs_nome() == null) if(p.getTecnico_hs_nome() == null)
{ {
sql += null; sql += null + ", ";
} }
else else
{ {
sql += "'" + p.getTecnico_hs_nome() + "'"; sql += "'" + p.getTecnico_hs_nome() + "', ";
} }
//concluido_por_desactivacao
if ( p.getConcluidoPorDesactivacao() == null )
{
sql += Boolean.FALSE;
}
else
{
sql += p.getConcluidoPorDesactivacao();
}
sql += ")"; sql += ")";
System.out.println("SQL CREATE PLANO : " + sql); System.out.println("SQL CREATE PLANO : " + sql);
@ -67,6 +76,10 @@ public class PlanosDataProvider extends GenericDataProvider{
public void updatePlano(PlanoActuacao p) throws Exception public void updatePlano(PlanoActuacao p) throws Exception
{ {
if ( p.getConcluidoPorDesactivacao() == null )
{
p.setConcluidoPorDesactivacao( false );
}
if(p.getObs_correcao() == null) if(p.getObs_correcao() == null)
{ {
p.setObs_correcao(""); p.setObs_correcao("");
@ -114,6 +127,8 @@ public class PlanosDataProvider extends GenericDataProvider{
sql += "obs_correcao = '" + p.getObs_correcao() + "', "; sql += "obs_correcao = '" + p.getObs_correcao() + "', ";
sql += "correcao = '" + p.getCorrecao() + "', "; sql += "correcao = '" + p.getCorrecao() + "', ";
sql += "fase_antes_correcao = " + p.getFase_antes_correcao() + ", "; sql += "fase_antes_correcao = " + p.getFase_antes_correcao() + ", ";
sql += "concluido_por_desactivacao = " + p.getConcluidoPorDesactivacao() + ", ";
if(p.getData_validacao_dir_loja() == null) if(p.getData_validacao_dir_loja() == null)
{ {
sql += "data_validacao_dir_loja = " + null + ", "; sql += "data_validacao_dir_loja = " + null + ", ";
@ -555,7 +570,9 @@ public class PlanosDataProvider extends GenericDataProvider{
pa.setData_validacao_hs(rs.getDate("data_validacao_hs")); pa.setData_validacao_hs(rs.getDate("data_validacao_hs"));
pa.setUser_hs(new Integer(rs.getInt("user_hs"))); pa.setUser_hs(new Integer(rs.getInt("user_hs")));
pa.setTecnico_hs_id(new Integer(rs.getInt("tecnico_hs_id"))); pa.setTecnico_hs_id(new Integer(rs.getInt("tecnico_hs_id")));
pa.setTecnico_hs_nome(rs.getString("tecnico_hs_nome")); pa.setTecnico_hs_nome(rs.getString("tecnico_hs_nome"));
pa.setConcluidoPorDesactivacao( new Boolean( rs.getBoolean( "concluido_por_desactivacao" ) ) );
list.add(pa); list.add(pa);
}while(rs.next()); }while(rs.next());

@ -87,9 +87,7 @@ public class EditarPlano extends AbstractPageBean {
HtmlPanelGrid gridValor; HtmlPanelGrid gridValor;
HtmlPanelGrid gridMedida; HtmlPanelGrid gridMedida;
HtmlPanelGrid gridPosto; HtmlPanelGrid gridPosto;
HtmlPanelGrid gridResponsavel; HtmlPanelGrid gridResponsavel;
int risco_id = 0; int risco_id = 0;
int medida_id = 0; int medida_id = 0;
@ -185,6 +183,16 @@ public class EditarPlano extends AbstractPageBean {
public void setChkValidacao(Checkbox c) { public void setChkValidacao(Checkbox c) {
this.chkValidacao = c; this.chkValidacao = c;
} }
private Checkbox chkDesactivar = new Checkbox();
public Checkbox getChkDesactivar() {
return chkDesactivar;
}
public void setChkDesactivar( Checkbox c ) {
this.chkDesactivar = c;
}
private HtmlInputHidden hidValidacao = new HtmlInputHidden(); private HtmlInputHidden hidValidacao = new HtmlInputHidden();
public HtmlInputHidden getHidValidacao() { public HtmlInputHidden getHidValidacao() {
@ -749,7 +757,8 @@ public class EditarPlano extends AbstractPageBean {
break; break;
} }
chkDesactivar.setSelected( Boolean.FALSE );
// gridPlano.setId("gridPlano"); // gridPlano.setId("gridPlano");
// gridPlano.setWidth("100%"); // gridPlano.setWidth("100%");
@ -769,7 +778,7 @@ public class EditarPlano extends AbstractPageBean {
gridArea.setColumnClasses("gridColCenter"); gridArea.setColumnClasses("gridColCenter");
gridArea.setWidth("100%"); gridArea.setWidth("100%");
gridArea.setStyle("background-color: #f6f4e8; border: solid 1px #766c6c"); gridArea.setStyle("background-color: #f6f4e8; border: solid 1px #766c6c");
gridPlano.getChildren().add(gridArea); gridPlano.getChildren().add(gridArea);
if(p.getAreas().size() > 0) if(p.getAreas().size() > 0)
@ -792,6 +801,18 @@ public class EditarPlano extends AbstractPageBean {
} }
} }
showPreviousValidacoes(p); showPreviousValidacoes(p);
//TODO: do this IFF userType is Rogerio or 'tecnico ?'
Utilizador currentUser = getSessionBean1().getCurrentUser();
if ( currentUser.getTipo().intValue() == Global.TECNICO_HS
|| currentUser.getTipo().intValue() == Global.DIRECTOR_SIPRP )
{
chkDesactivar.setId( "chkDesactivarPlano" );
chkDesactivar.setLabel( "Desactivar Plano" );
chkDesactivar.setSelected( p.getConcluidoPorDesactivacao() );
chkDesactivar.setStyle( "float: left;" );
gridPlano.getChildren().add( chkDesactivar );
}
} }
private void showArea(Area a) private void showArea(Area a)
@ -799,7 +820,7 @@ public class EditarPlano extends AbstractPageBean {
pg = new PanelGroup(); pg = new PanelGroup();
st = new StaticText(); st = new StaticText();
st.setEscape(false); st.setEscape(false);
st.setStyleClass("label"); st.setStyleClass("label");
st.setText("Área: "); st.setText("Área: ");
pg.getChildren().add(st); pg.getChildren().add(st);
st = new StaticText(); st = new StaticText();
@ -1490,9 +1511,10 @@ public class EditarPlano extends AbstractPageBean {
public String butGravarPlano_action() { public String butGravarPlano_action() {
// TODO: Process the action. Return value is a navigation // TODO: Process the action. Return value is a navigation
// case name where null will return to the same page. // case name where null will return to the same page.
String page = null;
try try
{ {
gravarPlano(); page = gravarPlano();
getSessionBean1().setMsg("Os dados do Plano de Actuação foram guardados"); getSessionBean1().setMsg("Os dados do Plano de Actuação foram guardados");
} }
catch(Exception ex) catch(Exception ex)
@ -1501,11 +1523,12 @@ public class EditarPlano extends AbstractPageBean {
getSessionBean1().setMsg("Erro na gravação do plano!"); getSessionBean1().setMsg("Erro na gravação do plano!");
} }
return null; return page;
} }
private void gravarPlano() throws Exception private String gravarPlano() throws Exception
{ {
String returnToPage = null;
PlanoActuacao p = getSessionBean1().getPlanoActuacao(); PlanoActuacao p = getSessionBean1().getPlanoActuacao();
int fase = p.getFase().intValue(); int fase = p.getFase().intValue();
switch(fase) switch(fase)
@ -1571,8 +1594,26 @@ public class EditarPlano extends AbstractPageBean {
} }
} }
} }
Utilizador currentUser = getSessionBean1().getCurrentUser();
if ( currentUser.getTipo().intValue() == Global.TECNICO_HS
|| currentUser.getTipo().intValue() == Global.DIRECTOR_SIPRP )
{
Checkbox chkD = ( Checkbox ) gridPlano.findComponent( "form1:chkDesactivarPlano" );
if ( chkD != null )
{
Boolean desactivar = ( Boolean ) chkD.getSelected();
if ( desactivar != null && desactivar )
{
p.setFase( Global.FASE_CONCLUIDO );
p.setConcluidoPorDesactivacao( Boolean.TRUE );
returnToPage = "lista_planos";
}
}
}
pdp.updatePlano(p); pdp.updatePlano(p);
//Valor curValor = getSessionBean1().getCurrentValor(); //Valor curValor = getSessionBean1().getCurrentValor();
Risco curValor = getSessionBean1().getCurrentRisco(); Risco curValor = getSessionBean1().getCurrentRisco();
curValor = fillValorFields(curValor); curValor = fillValorFields(curValor);
@ -1602,7 +1643,9 @@ public class EditarPlano extends AbstractPageBean {
{ {
pdp.updateMedidas( r ); pdp.updateMedidas( r );
} }
} }
return returnToPage;
} }
public String butGravarRisco_action() { public String butGravarRisco_action() {
@ -1881,7 +1924,7 @@ public class EditarPlano extends AbstractPageBean {
public String butEnviar_action() { public String butEnviar_action() {
// TODO: Process the action. Return value is a navigation // TODO: Process the action. Return value is a navigation
// case name where null will return to the same page. // case name where null will return to the same page.
PlanoActuacao p = getSessionBean1().getPlanoActuacao(); PlanoActuacao p = getSessionBean1().getPlanoActuacao();
if(planoValidationOk(p)) if(planoValidationOk(p))
{ {

@ -10,7 +10,9 @@ import com.evolute.utils.timer.TimedEvent;
import com.evolute.utils.timer.Timer; import com.evolute.utils.timer.Timer;
import com.sun.data.provider.RowKey; import com.sun.data.provider.RowKey;
import com.sun.rave.web.ui.appbase.AbstractPageBean; import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.webui.jsf.component.Button;
import com.sun.webui.jsf.component.Table; import com.sun.webui.jsf.component.Table;
import com.sun.webui.jsf.component.TableColumn;
import com.sun.webui.jsf.component.TableRowGroup; import com.sun.webui.jsf.component.TableRowGroup;
import db.Dblocal; import db.Dblocal;
import db.entidades.PlanoActuacao; import db.entidades.PlanoActuacao;
@ -101,6 +103,52 @@ public class ListaPlanos extends AbstractPageBean {
this.gridActual = hpg; this.gridActual = hpg;
} }
private TableColumn tableColumn55 = new TableColumn();
public TableColumn getTableColumn55()
{
return tableColumn55;
}
public void setTableColumn55( TableColumn c )
{
this.tableColumn55 = c;
}
private Button buttonDesactivar = new Button();
public Button getButtonDesactivar() {
return buttonDesactivar;
}
public void setButtonDesactivar( Button b ) {
this.buttonDesactivar = b;
}
private TableColumn tableColumn56 = new TableColumn();
public TableColumn getTableColumn56()
{
return tableColumn56;
}
public void setTableColumn56( TableColumn c )
{
this.tableColumn56 = c;
}
private Button buttonDesactivarSeguimento = new Button();
public Button getButtonDesactivarSeguimento() {
return buttonDesactivarSeguimento;
}
public void setButtonDesactivarSeguimento( Button b ) {
this.buttonDesactivarSeguimento = b;
}
/** /**
* <p>Construct a new Page bean instance.</p> * <p>Construct a new Page bean instance.</p>
*/ */
@ -230,6 +278,17 @@ public class ListaPlanos extends AbstractPageBean {
tableRowGroup3.setEmptyDataMsg("Sem registos"); tableRowGroup3.setEmptyDataMsg("Sem registos");
} }
//Column para desactivar plano - mostra se o utilizador for DIRECTOR SIPRP
int uType = u.getTipo().intValue();
boolean renderOrNot = uType == Global.DIRECTOR_SIPRP || uType == Global.TECNICO_HS;
tableColumn55.setRendered( renderOrNot );
buttonDesactivar.setRendered( renderOrNot );
tableColumn56.setRendered( renderOrNot );
buttonDesactivarSeguimento.setRendered( renderOrNot );
initialize(); initialize();
} }
@ -279,6 +338,47 @@ public class ListaPlanos extends AbstractPageBean {
return "editar_plano"; return "editar_plano";
} }
//TODO:
public String goDesactivarPlano_action()
{
System.out.println( "\ngoDesactivarPlano_action():" );
PlanoActuacao p = getTableActivosRowData();
desactivarPlano( p );
// System.out.println( "\tPlanoActuacao: " + p.getId() );
return null;
}
//TODO:
public String goDesactivarPlanoSeguimento_action()
{
System.out.println( "\ngoDesactivarPlanoSeguimento_action():" );
PlanoActuacao p = getTableSeguimentoRowData();
desactivarPlano( p );
// System.out.println( "\tPlanoActuacao: " + p.getId() );
return null;
}
private void desactivarPlano( PlanoActuacao p )
{
Utilizador currentUser = getSessionBean1().getCurrentUser();
if ( currentUser.getTipo().intValue() == Global.DIRECTOR_SIPRP || currentUser.getTipo().intValue() == Global.TECNICO_HS )
{
p.setFase( Global.FASE_CONCLUIDO );
p.setConcluidoPorDesactivacao( Boolean.TRUE );
try
{
pdp.updatePlano( p );
}
catch ( Exception e )
{
e.printStackTrace();
}
}
}
public String goEditarPlano_action() { public String goEditarPlano_action() {
// TODO: Process the action. Return value is a navigation // TODO: Process the action. Return value is a navigation
// case name where null will return to the same page. // case name where null will return to the same page.

@ -8,6 +8,7 @@ package planosactuacao;
import com.sun.rave.web.ui.appbase.AbstractPageBean; import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.webui.jsf.component.Button; import com.sun.webui.jsf.component.Button;
import com.sun.webui.jsf.component.Checkbox;
import com.sun.webui.jsf.component.PageSeparator; import com.sun.webui.jsf.component.PageSeparator;
import com.sun.webui.jsf.component.PanelGroup; import com.sun.webui.jsf.component.PanelGroup;
import com.sun.webui.jsf.component.StaticText; import com.sun.webui.jsf.component.StaticText;
@ -190,6 +191,15 @@ public class ViewPlano extends AbstractPageBean {
gridPlano.setColumnClasses("gridColCenter"); gridPlano.setColumnClasses("gridColCenter");
//plano //plano
//lblTop.setText("Plano de actua&ccedil;&atilde;o da auditoria " + p.getData_visita_str()); //lblTop.setText("Plano de actua&ccedil;&atilde;o da auditoria " + p.getData_visita_str());
System.out.println( "VIEWPLANO - : " + p.getConcluidoPorDesactivacao() );
if ( p.getConcluidoPorDesactivacao() )
{
StaticText st = new StaticText();
st.setText( "N\u00E3o realizado por falta de cumprimento do prazo." );
st.setStyle( "color: #FF0000; font-weight: bold; font-size: 13px;" );
gridPlano.getChildren().add( st );
}
gridLayout.getChildren().add(gridPlano); gridLayout.getChildren().add(gridPlano);
showAreas(p.getAreas()); showAreas(p.getAreas());
showValidacoes(gridPlano, p); showValidacoes(gridPlano, p);

@ -27,6 +27,11 @@
} }
} }
function alertOnDeactivate()
{
return confirm( 'Tem a certeza que pretende desactivar o plano ?\nEsta acção é irreversível e passará o plano para o estado Concluído.' );
}
</script> </script>
</webuijsf:head> </webuijsf:head>
<webuijsf:body id="body1" onLoad="checkEmptyTables();"> <webuijsf:body id="body1" onLoad="checkEmptyTables();">
@ -66,6 +71,12 @@
<webuijsf:tableColumn headerText="Loja" id="tableColumn13" sort="loja_nome"> <webuijsf:tableColumn headerText="Loja" id="tableColumn13" sort="loja_nome">
<webuijsf:hyperlink actionExpression="#{ListaPlanos.goEditarPlano_action}" id="lnkLojaActivo" text="#{currentRow.value['nome_estabelecimento']}"/> <webuijsf:hyperlink actionExpression="#{ListaPlanos.goEditarPlano_action}" id="lnkLojaActivo" text="#{currentRow.value['nome_estabelecimento']}"/>
</webuijsf:tableColumn> </webuijsf:tableColumn>
<webuijsf:tableColumn headerText="" id="tableColumn55" binding="#{ListaPlanos.tableColumn55}">
<webuijsf:button id="btnDesactivar" text="Desactivar Plano" onClick="return alertOnDeactivate();"
actionExpression="#{ListaPlanos.goDesactivarPlano_action}" binding="#{ListaPlanos.buttonDesactivar}" />
</webuijsf:tableColumn>
</webuijsf:tableRowGroup> </webuijsf:tableRowGroup>
</webuijsf:table> </webuijsf:table>
</h:panelGrid> </h:panelGrid>
@ -93,6 +104,13 @@
<webuijsf:tableColumn headerText="Loja" id="tableColumn14"> <webuijsf:tableColumn headerText="Loja" id="tableColumn14">
<webuijsf:hyperlink actionExpression="#{ListaPlanos.goVerPlanoFromSeguimento_action}" id="hyperlink5" text="#{currentRow.value['nome_estabelecimento']}"/> <webuijsf:hyperlink actionExpression="#{ListaPlanos.goVerPlanoFromSeguimento_action}" id="hyperlink5" text="#{currentRow.value['nome_estabelecimento']}"/>
</webuijsf:tableColumn> </webuijsf:tableColumn>
<webuijsf:tableColumn headerText="" id="tableColumn56" binding="#{ListaPlanos.tableColumn56}">
<webuijsf:button id="btnDesactivarSeguimento" text="Desactivar Plano" onClick="return alertOnDeactivate();"
actionExpression="#{ListaPlanos.goDesactivarPlanoSeguimento_action}" binding="#{ListaPlanos.buttonDesactivarSeguimento}" />
</webuijsf:tableColumn>
</webuijsf:tableRowGroup> </webuijsf:tableRowGroup>
</webuijsf:table> </webuijsf:table>
</h:panelGrid> </h:panelGrid>

Loading…
Cancel
Save