@ -40,14 +40,13 @@ import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener ;
import javax.swing.event.ChangeEvent ;
import javax.swing.event.ChangeListener ;
import javax.swing.text.AbstractDocument.LeafElement ;
import leaf.data.Validator ;
import leaf.ui.LeafButton ;
import leaf.ui.LeafDialog ;
import leaf.ui.LeafIconButton ;
import leaf.ui.LeafLogic ;
import leaf.ui.LeafTextAreaEditor ;
import siprp.database.cayenne.objects.Estabelecimentos ;
import siprp.database.cayenne.objects.HsEmailEstabelecimento ;
import siprp.database.cayenne.objects.HsRelatorio ;
import siprp.database.cayenne.objects.MarcacoesEstabelecimento ;
@ -65,6 +64,8 @@ public class PanelRelatorio extends JPanel implements CaretListener, ChangeListe
private static final long serialVersionUID = 1L ;
private static final int MAX_NOME_ESTABELECIMENTO_ON_FILENAME = 10 ;
private static final String DEFAULT_FUNCIONARIOS_TEXT = "A empresa supracitada possui ? funcionários, sendo que ? destes exercem actividades na zona de produtos frescos." ;
private static final String ICON_NAME_SAVE = "siprp/higiene/gestao/riscos/save.png" ;
@ -355,11 +356,13 @@ public class PanelRelatorio extends JPanel implements CaretListener, ChangeListe
setCursor ( new Cursor ( Cursor . WAIT_CURSOR ) ) ;
if ( relatorio ! = null )
{
relatorio . setIsSubmetido ( new Date ( ) ) ;
relatorio . save ( ) ;
sendMail ( relatorio ) ;
refresh ( ) ;
setRelatorio ( relatorio , false ) ;
if ( sendMail ( relatorio ) )
{
refresh ( ) ;
relatorio . setIsSubmetido ( new Date ( ) ) ;
relatorio . save ( ) ;
setRelatorio ( relatorio , false ) ;
}
}
}
catch ( Exception e )
@ -452,66 +455,96 @@ public class PanelRelatorio extends JPanel implements CaretListener, ChangeListe
return frame ;
}
private void sendMail ( HsRelatorio relatorio ) throws Exception
private boolean sendMail ( HsRelatorio relatorio ) throws Exception
{
List < HsEmailEstabelecimento > rels = relatorio . getToHsMarcacoesEstabelecimento ( ) . getToEstabelecimentos ( ) . getHsEmailEstabelecimento ( ) ;
String to = "" ;
for ( HsEmailEstabelecimento rel : rels )
{
to + = rel . getToHsEmail ( ) . getEmail ( ) + ( to . length ( ) = = 0 ? "" : ", " ) ;
}
if ( to . length ( ) > 0 & & to . contains ( "@" ) )
boolean result = false ;
List < HsEmailEstabelecimento > rels = relatorio . getToHsMarcacoesEstabelecimento ( ) . getToEstabelecimentos ( ) . getHsEmailEstabelecimento ( ) ;
String to = "" ;
for ( HsEmailEstabelecimento rel : rels )
{
to + = rel . getToHsEmail ( ) . getEmail ( ) + "," ;
}
if ( to . endsWith ( "," ) )
{
to = to . substring ( 0 , to . length ( ) - 1 ) ;
}
if ( to . length ( ) > 0 )
{
String nomeEstabelecimento = relatorio . getToHsMarcacoesEstabelecimento ( ) . getToEstabelecimentos ( ) . getNome ( ) ;
MarcacoesTecnicosHst tecnico = relatorio . getToHsMarcacoesEstabelecimento ( ) . getToMarcacoesTecnicosHst ( ) ;
String nomeTecnico = tecnico = = null ? "" : tecnico . getNome ( ) ;
Date dataVisita = relatorio . getToHsMarcacoesEstabelecimento ( ) . getData ( ) ;
String dataVisitaString = new SimpleDateFormat ( "dd/MM/yyyy" ) . format ( dataVisita ) ;
String subject = "Relatório da Avaliação de Riscos Laborais e Plano de Actuação de " + nomeEstabelecimento + " - auditoria de " + dataVisitaString ;
String body = "<html>Exmos. Senhores" +
"<br>" +
"<br>" +
"<br>" +
"Junto enviamos o relatório de avaliação de riscos laborais e " +
"respectivo plano de actuação da auditoria realizada no dia " +
dataVisitaString +
" ao vosso estabelecimento de(o) " +
nomeEstabelecimento +
". Aconselhamos que tenham em conta as não conformidades indicadas " +
"nestes documentos e que preencham o plano de actuação por forma a " +
"auxiliar-vos na planificação das medidas correctivas e para poderem " +
"apresentá-los em caso de inspecção da ACT – Autoridade para as Condições do Trabalho." +
"<br>" +
"<br>" +
"<br>" +
"Caso pretendam o nosso apoio ou necessitem de qualquer esclarecimento, contactem-nos, por favor, através do telefone (+351) 213 504 540." +
"<br>" +
"<br>" +
"<br>" +
"Com os melhores cumprimentos, " +
"<br>" +
"<br>" +
"<br>" +
nomeTecnico +
"<br>" +
"SIPRP - Sociedade Ibérica de Prevenção de Riscos Profissionais " +
"<br>" +
"Atrium Saldanha - Praça Duque de Saldanha, 1 - 9º G - 1050-094 Lisboa " +
"<br>" +
"Telefone: (+351) 213 504 540 " +
"<br>" +
"Fax: (+351) 213 504 549 " +
"<br>" +
"E-mail: geral@siprp.pt " +
"<br>" +
"URL: www.siprp.com " +
"<br>" +
"<br>" +
"<br>" +
"Esta é uma mensagem gerada automaticamente pelo nosso sistema, por favor não responda.</html>" ;
MailDialog md = new MailDialog ( getFrame ( ) , to , "" , subject , body , getRelatoriosTemp ( relatorio ) ) ;
result = md . wasSent ( ) ;
}
return result ;
}
private String getShortNameForEstabelecimento ( Estabelecimentos estabelecimento )
{
String result = null ;
String nome = estabelecimento . getNomePlain ( ) ;
if ( nome ! = null )
{
result = nome . trim ( ) ;
if ( result . length ( ) > MAX_NOME_ESTABELECIMENTO_ON_FILENAME )
{
String nomeEstabelecimento = relatorio . getToHsMarcacoesEstabelecimento ( ) . getToEstabelecimentos ( ) . getNome ( ) ;
MarcacoesTecnicosHst tecnico = relatorio . getToHsMarcacoesEstabelecimento ( ) . getToMarcacoesTecnicosHst ( ) ;
String nomeTecnico = tecnico = = null ? "" : tecnico . getNome ( ) ;
Date dataVisita = relatorio . getToHsMarcacoesEstabelecimento ( ) . getData ( ) ;
String dataVisitaString = new SimpleDateFormat ( "dd/MM/yyyy" ) . format ( dataVisita ) ;
String subject = "Relatório da Avaliação de Riscos Laborais e Plano de Actuação de " + nomeEstabelecimento + " - auditoria de " + dataVisitaString ;
String body = "<html>Exmos. Senhores" +
"<br>" +
"<br>" +
"<br>" +
"Junto enviamos o relatório de avaliação de riscos laborais e " +
"respectivo plano de actuação da auditoria realizada no dia " +
dataVisitaString +
" ao vosso estabelecimento de(o) " +
nomeEstabelecimento +
". Aconselhamos que tenham em conta as não conformidades indicadas " +
"nestes documentos e que preencham o plano de actuação por forma a " +
"auxiliar-vos na planificação das medidas correctivas e para poderem " +
"apresentá-los em caso de inspecção da ACT – Autoridade para as Condições do Trabalho." +
"<br>" +
"<br>" +
"<br>" +
"Caso pretendam o nosso apoio ou necessitem de qualquer esclarecimento, contactem-nos, por favor, através do telefone (+351) 213 504 540." +
"<br>" +
"<br>" +
"<br>" +
"Com os melhores cumprimentos, " +
"<br>" +
"<br>" +
"<br>" +
nomeTecnico +
"<br>" +
"SIPRP - Sociedade Ibérica de Prevenção de Riscos Profissionais " +
"<br>" +
"Atrium Saldanha - Praça Duque de Saldanha, 1 - 9º G - 1050-094 Lisboa " +
"<br>" +
"Telefone: (+351) 213 504 540 " +
"<br>" +
"Fax: (+351) 213 504 549 " +
"<br>" +
"E-mail: geral@siprp.pt " +
"<br>" +
"URL: www.siprp.com " +
"<br>" +
"<br>" +
"<br>" +
"Esta é uma mensagem gerada automaticamente pelo nosso sistema, por favor não responda.</html>" ;
new MailDialog ( getFrame ( ) , to , "" , subject , body , getRelatoriosTemp ( relatorio ) ) ;
String [ ] tokens = result . split ( " " ) ;
if ( tokens ! = null & & tokens . length > 2 )
{
result = "" ;
for ( String token : tokens )
{
result + = token = = null ? "" : token ;
}
}
}
}
return result ;
}
private Vector < File > getRelatoriosTemp ( HsRelatorio relatorio )
{
@ -522,8 +555,8 @@ public class PanelRelatorio extends JPanel implements CaretListener, ChangeListe
byte [ ] planoPDF = new PlanoActuacaoPDFCreator ( ) . createPDF ( relatorio . getId ( ) , false ) ;
if ( relatorioPDF ! = null )
{
String data = relatorio . getToHsMarcacoesEstabelecimento ( ) . getDataRelatorio ( ) = = null ? "" : relatorio. getData ( ) . toString ( ) ;
String estabelecimento = relatorio. getToHsMarcacoesEstabelecimento ( ) . getToEstabelecimentos ( ) . getNomePlain ( ) ;
String data = relatorio . getToHsMarcacoesEstabelecimento ( ) . getDataRelatorio ( ) = = null ? "" : HsRelatorio. DATE_FORMAT . format ( relatorio. getData ( ) . toString ( ) ) ;
String estabelecimento = getShortNameForEstabelecimento( relatorio. getToHsMarcacoesEstabelecimento ( ) . getToEstabelecimentos ( ) ) ;
File relat = File . createTempFile ( "Relatorio - " + estabelecimento + " - " + data , ".pdf" ) ;
if ( relat ! = null )
{