From 57a7462c95ecd3bbbcad2c90256f8c41c67f245d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Sim=C3=A3o?= Date: Tue, 5 May 2009 16:26:37 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@1011 bb69d46d-e84e-40c8-a05a-06db0d633741 --- .../higiene/relatorio/PanelRelatorio.java | 163 +++++++++++------- .../medicina/processo/mail/MailDialog.java | 119 ++++++------- .../database/cayenne/objects/BaseObject.java | 2 +- .../objects/MarcacoesEstabelecimento.java | 2 +- .../cayenne/objects/Trabalhadores.java | 2 +- .../objects/TrabalhadoresConsultas.java | 2 +- .../objects/TrabalhadoresConsultasDatas.java | 2 +- .../TrabalhadoresConsultasDatasEmails.java | 2 +- .../cayenne/objects/TrabalhadoresEcds.java | 2 +- .../objects/TrabalhadoresEcdsDatas.java | 2 +- .../objects/TrabalhadoresEcdsDatasEmails.java | 2 +- .../objects/TrabalhadoresFichasAptidao.java | 2 +- .../objects/TrabalhadoresProcesso.java | 2 +- 13 files changed, 170 insertions(+), 134 deletions(-) diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PanelRelatorio.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PanelRelatorio.java index 3e090883..74aed5e1 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PanelRelatorio.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PanelRelatorio.java @@ -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 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 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 = "Exmos. Senhores" + + "
" + + "
" + + "
" + + "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." + + "
" + + "
" + + "
" + + "Caso pretendam o nosso apoio ou necessitem de qualquer esclarecimento, contactem-nos, por favor, através do telefone (+351) 213 504 540." + + "
" + + "
" + + "
" + + "Com os melhores cumprimentos, " + + "
" + + "
" + + "
" + + nomeTecnico + + "
" + + "SIPRP - Sociedade Ibérica de Prevenção de Riscos Profissionais " + + "
" + + "Atrium Saldanha - Praça Duque de Saldanha, 1 - 9º G - 1050-094 Lisboa " + + "
" + + "Telefone: (+351) 213 504 540 " + + "
" + + "Fax: (+351) 213 504 549 " + + "
" + + "E-mail: geral@siprp.pt " + + "
" + + "URL: www.siprp.com " + + "
" + + "
" + + "
" + + "Esta é uma mensagem gerada automaticamente pelo nosso sistema, por favor não responda."; + 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 = "Exmos. Senhores" + - "
" + - "
" + - "
" + - "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." + - "
" + - "
" + - "
" + - "Caso pretendam o nosso apoio ou necessitem de qualquer esclarecimento, contactem-nos, por favor, através do telefone (+351) 213 504 540." + - "
" + - "
" + - "
" + - "Com os melhores cumprimentos, " + - "
" + - "
" + - "
" + - nomeTecnico + - "
" + - "SIPRP - Sociedade Ibérica de Prevenção de Riscos Profissionais " + - "
" + - "Atrium Saldanha - Praça Duque de Saldanha, 1 - 9º G - 1050-094 Lisboa " + - "
" + - "Telefone: (+351) 213 504 540 " + - "
" + - "Fax: (+351) 213 504 549 " + - "
" + - "E-mail: geral@siprp.pt " + - "
" + - "URL: www.siprp.com " + - "
" + - "
" + - "
" + - "Esta é uma mensagem gerada automaticamente pelo nosso sistema, por favor não responda."; - 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 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 ) { diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/mail/MailDialog.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/mail/MailDialog.java index 55410d74..c98c0504 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/mail/MailDialog.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/mail/MailDialog.java @@ -13,9 +13,6 @@ import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; import java.util.Arrays; import java.util.Comparator; import java.util.LinkedList; @@ -29,7 +26,6 @@ import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; -import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; @@ -47,7 +43,6 @@ import com.evolute.utils.images.ImageIconLoader; import com.evolute.utils.tables.BaseTable; import com.evolute.utils.tables.VectorTableModel; import com.evolute.utils.ui.CustomJDialog; -import com.evolute.utils.ui.DialogException; public class MailDialog extends CustomJDialog { @@ -69,50 +64,52 @@ public class MailDialog extends CustomJDialog protected Action removeAttachmentAction; - public static void main( String args[] ) - throws Exception - { - MailDialog mailDialog = new MailDialog( null ); - mailDialog.setTo( "fredPalma@netcabo.pt" ); - mailDialog.setBcc( "fpalma@evolute.pt" ); - mailDialog.setSubject( "SIPRP - Marca\u00E7\u00E3o de consulta de 'Frederico Palma'" ); - mailDialog.setMessage( - "

" - + "Vimos pelo presente informar que 'Frederico Palma' deverá comparecer " - + "nas nossas instalações para a realização da consulta de Medicina " - + "do Trabalho, no dia '10-01-2008', pelas 08H30. " - + "

" - + "

" - + "Solicitamos, também, que o colaborador seja portador do Boletim de Vacinas e " - + "dos últimos exames complementares realizados." - + "

" - + "

" - + "Caso não seja possível a comparência deste colaborador na data " - + "indicada, contacte-nos, por favor, através do telefone 21 350 45 40 " - + "ou respondendo ao remetente desta mensagem." - + "

" - + "

" - + "Cumprimentos," - + "

" - + "

" - + "SIPRP" -// color=\"#497895\" - + "

" - + "

" - + "ATRIUM SALDANHA" - + "

" - + "

" - + "Praça Duque de Saldanha, 1 - 9ºG" - + "

" - + "

" - + "1050-094 Lisboa" - + "

" ); - mailDialog.setSize( 1024, 768 ); - mailDialog.setVisible( true ); - System.exit( 0 ); - } + private boolean sent = false; +// +// public static void main( String args[] ) +// throws Exception +// { +// MailDialog mailDialog = new MailDialog( null ); +// mailDialog.setTo( "fredPalma@netcabo.pt" ); +// mailDialog.setBcc( "fpalma@evolute.pt" ); +// mailDialog.setSubject( "SIPRP - Marca\u00E7\u00E3o de consulta de 'Frederico Palma'" ); +// mailDialog.setMessage( +// "

" +// + "Vimos pelo presente informar que 'Frederico Palma' deverá comparecer " +// + "nas nossas instalações para a realização da consulta de Medicina " +// + "do Trabalho, no dia '10-01-2008', pelas 08H30. " +// + "

" +// + "

" +// + "Solicitamos, também, que o colaborador seja portador do Boletim de Vacinas e " +// + "dos últimos exames complementares realizados." +// + "

" +// + "

" +// + "Caso não seja possível a comparência deste colaborador na data " +// + "indicada, contacte-nos, por favor, através do telefone 21 350 45 40 " +// + "ou respondendo ao remetente desta mensagem." +// + "

" +// + "

" +// + "Cumprimentos," +// + "

" +// + "

" +// + "SIPRP" +//// color=\"#497895\" +// + "

" +// + "

" +// + "ATRIUM SALDANHA" +// + "

" +// + "

" +// + "Praça Duque de Saldanha, 1 - 9ºG" +// + "

" +// + "

" +// + "1050-094 Lisboa" +// + "

" ); +// mailDialog.setSize( 1024, 768 ); +// mailDialog.setVisible( true ); +// System.exit( 0 ); +// } - public MailDialog( JFrame owner, String to, String bcc, String subject, String message, Vector files ) + public MailDialog( JFrame owner, String to, String bcc, String subject, String message, Vector files) throws Exception { super( owner, true ); @@ -128,16 +125,16 @@ public class MailDialog extends CustomJDialog setVisible( true ); } - public MailDialog( JFrame owner ) - throws Exception - { - super( owner, true ); - this.owner = owner; - commonStartup(); - setModal( true ); - setSize( 1024, 768 ); - setVisible( true ); - } +// public MailDialog( JFrame owner ) +// throws Exception +// { +// super( owner, true ); +// this.owner = owner; +// commonStartup(); +// setModal( true ); +// setSize( 1024, 768 ); +// setVisible( true ); +// } private void commonStartup() throws Exception @@ -581,6 +578,7 @@ public class MailDialog extends CustomJDialog try { sender.send( to, bcc, subject, body, attachmentList, attachments ); + sent = true; } catch( Exception ex ) { @@ -588,6 +586,11 @@ public class MailDialog extends CustomJDialog } } + public boolean wasSent() + { + return sent; + } + public void close() { SwingUtilities.invokeLater( new Runnable(){ diff --git a/trunk/common/src/siprp/database/cayenne/objects/BaseObject.java b/trunk/common/src/siprp/database/cayenne/objects/BaseObject.java index de830269..46e005b2 100644 --- a/trunk/common/src/siprp/database/cayenne/objects/BaseObject.java +++ b/trunk/common/src/siprp/database/cayenne/objects/BaseObject.java @@ -22,7 +22,7 @@ public class BaseObject extends CayenneDataObject implements Comparable