|
|
/*
|
|
|
* EnviarCorrecao.java
|
|
|
*
|
|
|
* Created on Nov 13, 2008, 11:26:00 AM
|
|
|
*/
|
|
|
|
|
|
package planosactuacao;
|
|
|
|
|
|
import com.evolute.utils.error.ErrorLogger;
|
|
|
import com.sun.rave.web.ui.appbase.AbstractPageBean;
|
|
|
import com.sun.webui.jsf.component.Button;
|
|
|
import com.sun.webui.jsf.component.DropDown;
|
|
|
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.List;
|
|
|
import java.util.ListIterator;
|
|
|
import javax.faces.FacesException;
|
|
|
import javax.faces.event.ValueChangeEvent;
|
|
|
import mail.Mail;
|
|
|
|
|
|
/**
|
|
|
* <p>Page bean that corresponds to a similarly named JSP page. This
|
|
|
* class contains component definitions (and initialization code) for
|
|
|
* all components that you have defined on this page, as well as
|
|
|
* lifecycle methods and event handlers where you may add behavior
|
|
|
* to respond to incoming events.</p>
|
|
|
*
|
|
|
* @author lluis
|
|
|
*/
|
|
|
public class EnviarCorrecao extends AbstractPageBean
|
|
|
{
|
|
|
// <editor-fold defaultstate="collapsed" desc="Managed Component Definition">
|
|
|
|
|
|
/**
|
|
|
* <p>Automatically managed component initialization. <strong>WARNING:</strong>
|
|
|
* This method is automatically generated, so any user-specified code inserted
|
|
|
* here is subject to being replaced.</p>
|
|
|
*/
|
|
|
private void _init() throws Exception
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
private StaticText lblMsg = new StaticText();
|
|
|
|
|
|
public StaticText getLblMsg()
|
|
|
{
|
|
|
return lblMsg;
|
|
|
}
|
|
|
|
|
|
public void setLblMsg(StaticText st)
|
|
|
{
|
|
|
this.lblMsg = st;
|
|
|
}
|
|
|
|
|
|
private TextArea txtObservacoes = new TextArea();
|
|
|
|
|
|
public TextArea getTxtObservacoes()
|
|
|
{
|
|
|
return txtObservacoes;
|
|
|
}
|
|
|
|
|
|
public void setTxtObservacoes(TextArea ta)
|
|
|
{
|
|
|
this.txtObservacoes = ta;
|
|
|
}
|
|
|
|
|
|
private DropDown drpIrPara = new DropDown();
|
|
|
|
|
|
public DropDown getDrpIrPara()
|
|
|
{
|
|
|
return drpIrPara;
|
|
|
}
|
|
|
|
|
|
public void setDrpIrPara(DropDown dd)
|
|
|
{
|
|
|
this.drpIrPara = dd;
|
|
|
}
|
|
|
|
|
|
private Button butCancelar = new Button();
|
|
|
|
|
|
public Button getButCancelar()
|
|
|
{
|
|
|
return butCancelar;
|
|
|
}
|
|
|
|
|
|
public void setButCancelar(Button b)
|
|
|
{
|
|
|
this.butCancelar = b;
|
|
|
}
|
|
|
|
|
|
private Button butEnviar = new Button();
|
|
|
|
|
|
public Button getButEnviar()
|
|
|
{
|
|
|
return butEnviar;
|
|
|
}
|
|
|
|
|
|
public void setButEnviar(Button b)
|
|
|
{
|
|
|
this.butEnviar = b;
|
|
|
}
|
|
|
|
|
|
// </editor-fold>
|
|
|
|
|
|
/**
|
|
|
* <p>Construct a new Page bean instance.</p>
|
|
|
*/
|
|
|
public EnviarCorrecao()
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* <p>Callback method that is called whenever a page is navigated to,
|
|
|
* either directly via a URL, or indirectly via page navigation.
|
|
|
* Customize this method to acquire resources that will be needed
|
|
|
* for event handlers and lifecycle methods, whether or not this
|
|
|
* page is performing post back processing.</p>
|
|
|
*
|
|
|
* <p>Note that, if the current request is a postback, the property
|
|
|
* values of the components do <strong>not</strong> represent any
|
|
|
* values submitted with this request. Instead, they represent the
|
|
|
* property values that were saved for this view when it was rendered.</p>
|
|
|
*/
|
|
|
@Override
|
|
|
public void init()
|
|
|
{
|
|
|
// Perform initializations inherited from our superclass
|
|
|
super.init();
|
|
|
// Perform application initialization that must complete
|
|
|
// *before* managed components are initialized
|
|
|
// TODO - add your own initialiation code here
|
|
|
|
|
|
// <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
|
|
|
// Initialize automatically managed components
|
|
|
// *Note* - this logic should NOT be modified
|
|
|
try
|
|
|
{
|
|
|
_init();
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
ErrorLogger.logException( e );
|
|
|
log("EnviarCorrecao Initialization Failure", e);
|
|
|
throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
|
|
|
}
|
|
|
|
|
|
// </editor-fold>
|
|
|
// Perform application initialization that must complete
|
|
|
// *after* managed components are initialized
|
|
|
// TODO - add your own initialization code here
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* <p>Callback method that is called after the component tree has been
|
|
|
* restored, but before any event processing takes place. This method
|
|
|
* will <strong>only</strong> be called on a postback request that
|
|
|
* is processing a form submit. Customize this method to allocate
|
|
|
* resources that will be required in your event handlers.</p>
|
|
|
*/
|
|
|
@Override
|
|
|
public void preprocess()
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* <p>Callback method that is called just before rendering takes place.
|
|
|
* This method will <strong>only</strong> be called for the page that
|
|
|
* will actually be rendered (and not, for example, on a page that
|
|
|
* handled a postback and then navigated to a different page). Customize
|
|
|
* this method to allocate resources that will be required for rendering
|
|
|
* this page.</p>
|
|
|
*/
|
|
|
@Override
|
|
|
public void prerender()
|
|
|
{
|
|
|
initialize();
|
|
|
lblMsg.setText(getSessionBean1().getMsg());
|
|
|
getSessionBean1().setMsg("");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* <p>Callback method that is called after rendering is completed for
|
|
|
* this request, if <code>init()</code> was called (regardless of whether
|
|
|
* or not this was the page that was actually rendered). Customize this
|
|
|
* method to release resources acquired in the <code>init()</code>,
|
|
|
* <code>preprocess()</code>, or <code>prerender()</code> methods (or
|
|
|
* acquired during execution of an event handler).</p>
|
|
|
*/
|
|
|
@Override
|
|
|
public void destroy()
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* <p>Return a reference to the scoped data bean.</p>
|
|
|
*
|
|
|
* @return reference to the scoped data bean
|
|
|
*/
|
|
|
protected SessionBean1 getSessionBean1()
|
|
|
{
|
|
|
return (SessionBean1) getBean("SessionBean1");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* <p>Return a reference to the scoped data bean.</p>
|
|
|
*
|
|
|
* @return reference to the scoped data bean
|
|
|
*/
|
|
|
protected ApplicationBean1 getApplicationBean1()
|
|
|
{
|
|
|
return (ApplicationBean1) getBean("ApplicationBean1");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* <p>Return a reference to the scoped data bean.</p>
|
|
|
*
|
|
|
* @return reference to the scoped data bean
|
|
|
*/
|
|
|
protected RequestBean1 getRequestBean1()
|
|
|
{
|
|
|
return (RequestBean1) getBean("RequestBean1");
|
|
|
}
|
|
|
|
|
|
public void drpIrPara_processValueChange(ValueChangeEvent event)
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
private void initialize()
|
|
|
{
|
|
|
Utilizador u = getSessionBean1().getCurrentUser();
|
|
|
com.sun.webui.jsf.model.Option[] listOptions = null;
|
|
|
|
|
|
if(u.getTipo().intValue() == Global.DIRECTOR_LOJA)
|
|
|
{
|
|
|
listOptions = new com.sun.webui.jsf.model.Option[1];
|
|
|
listOptions[0] = new Option(new Integer(Global.FASE_SEGURANCA_PREENCHIMENTO), "Respons<6E>vel de seguran<61>a");
|
|
|
}
|
|
|
else if(u.getTipo().intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA)
|
|
|
{
|
|
|
listOptions = new com.sun.webui.jsf.model.Option[2];
|
|
|
listOptions[0] = new Option(new Integer(Global.FASE_SEGURANCA_PREENCHIMENTO), "Respons<6E>vel de seguran<61>a");
|
|
|
listOptions[1] = new Option(new Integer(Global.FASE_DIR_LOJA_VALIDACAO), "Director de loja");
|
|
|
}
|
|
|
|
|
|
getSessionBean1().setIrParaOptions(listOptions);
|
|
|
getSessionBean1().setIrParaChoice(new Integer( Global.FASE_SEGURANCA_PREENCHIMENTO ));
|
|
|
//drpIrPara.setItems(listOptions);
|
|
|
//drpIrPara.setSelected(new Integer( Global.FASE_SEGURANCA_PREENCHIMENTO ));
|
|
|
}
|
|
|
|
|
|
public String butCancelar_action()
|
|
|
{
|
|
|
return "editar_plano";
|
|
|
}
|
|
|
|
|
|
public String butEnviar_action()
|
|
|
{
|
|
|
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();
|
|
|
fase = irPara.intValue();
|
|
|
if ( u.getTipo().intValue() == Global.DIRECTOR_LOJA )
|
|
|
{
|
|
|
p.setValidacao_director_loja( new Boolean( false ) );
|
|
|
}
|
|
|
else if ( u.getTipo().intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA )
|
|
|
{
|
|
|
p.setValidacao_dns( new Boolean( false ) );
|
|
|
}
|
|
|
p.setCorrecao( "y" );
|
|
|
p.setFase_antes_correcao( p.getFase() );
|
|
|
p.setFase( new Integer( fase ) );
|
|
|
String observacoes = "";
|
|
|
if ( txtObservacoes.getText() != null )
|
|
|
{
|
|
|
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
|
|
|
{
|
|
|
PlanosDataProvider pdp = PlanosDataProvider.getInstance();
|
|
|
pdp.updatePlano( p );
|
|
|
enviarMail( p );
|
|
|
return "lista_planos";
|
|
|
}
|
|
|
catch ( Exception ex )
|
|
|
{
|
|
|
ErrorLogger.logException( ex );
|
|
|
getSessionBean1().setMsg( "Erro no envio do plano para a fase " + Global.FASES_TEXTO[ fase - 1 ] );
|
|
|
}
|
|
|
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 = "<p>Exmo. (a) Senhor (a),</p>";
|
|
|
mail_text += "<p>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.</p>";
|
|
|
mail_text += "<p>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.</p>";
|
|
|
mail_text += "<p>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.</p>";
|
|
|
mail_text += "<p>Cumprimentos,</p>";
|
|
|
mail_text += "<p>A equipa da SIPRP</p>";
|
|
|
mail_text += "<p><center><b>Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático</b></center></p>";
|
|
|
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 = "<p>Exmo. (a) Senhor (a),</p>";
|
|
|
mail_text += "<p>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.</p>";
|
|
|
mail_text += "<p>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.</p>";
|
|
|
mail_text += "<p>Cumprimentos.</p>";
|
|
|
mail_text += "<p><center><b>Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático</b></center></p>";
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
String responsavel_loja = "n";
|
|
|
if ( tipo_utilizador == Global.RESPONSAVEL_SEGURANCA )
|
|
|
{
|
|
|
responsavel_loja = "y";
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
Mail mail = new Mail();
|
|
|
|
|
|
UtilizadoresDataProvider udp = UtilizadoresDataProvider.getInstance();
|
|
|
List< Utilizador > 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 )
|
|
|
{
|
|
|
ErrorLogger.logException( ex1 );
|
|
|
System.out.println( "MAIL ERROR : " + ex1.getMessage() );
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
catch ( Exception ex )
|
|
|
{
|
|
|
ErrorLogger.logException( ex );
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|