/* * 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 utils.Global; import java.util.List; 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 * 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.

* * @author lluis */ public class EnviarCorrecao extends AbstractPageBean { // /** *

Automatically managed component initialization. WARNING: * This method is automatically generated, so any user-specified code inserted * here is subject to being replaced.

*/ 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; } //
/** *

Construct a new Page bean instance.

*/ public EnviarCorrecao() { } /** *

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.

* *

Note that, if the current request is a postback, the property * values of the components do not represent any * values submitted with this request. Instead, they represent the * property values that were saved for this view when it was rendered.

*/ @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 // // 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); } // // Perform application initialization that must complete // *after* managed components are initialized // TODO - add your own initialization code here } /** *

Callback method that is called after the component tree has been * restored, but before any event processing takes place. This method * will only 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.

*/ @Override public void preprocess() { } /** *

Callback method that is called just before rendering takes place. * This method will only 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.

*/ @Override public void prerender() { initialize(); lblMsg.setText(getSessionBean1().getMsg()); getSessionBean1().setMsg(""); } /** *

Callback method that is called after rendering is completed for * this request, if init() was called (regardless of whether * or not this was the page that was actually rendered). Customize this * method to release resources acquired in the init(), * preprocess(), or prerender() methods (or * acquired during execution of an event handler).

*/ @Override public void destroy() { } /** *

Return a reference to the scoped data bean.

* * @return reference to the scoped data bean */ protected SessionBean1 getSessionBean1() { return (SessionBean1) getBean("SessionBean1"); } /** *

Return a reference to the scoped data bean.

* * @return reference to the scoped data bean */ protected ApplicationBean1 getApplicationBean1() { return (ApplicationBean1) getBean("ApplicationBean1"); } /** *

Return a reference to the scoped data bean.

* * @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), "Responsavel de seguranca"); } 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), "Responsavel de seguranca"); 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 : // enviar para correccao para responsavel de seguranca tipo_utilizador = Global.RESPONSAVEL_SEGURANCA; assunto = "Plano de Actuacao da Avaliacao de Riscos de " + p.getData_visita_str() + " - " + p.getNome_estabelecimento() + " - Pedido de Correcao"; 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; case Global.FASE_DIR_LOJA_VALIDACAO : // enviar para correccao para director de loja tipo_utilizador = Global.DIRECTOR_LOJA; assunto = "Plano de Actuacao da Avaliacao de Riscos de " + p.getData_visita_str() + " - " + p.getNome_estabelecimento() + " - Pedido de Correccao"; 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; } 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 ); } } }