1
2 package ecar.email;
3
4 import java.lang.reflect.InvocationTargetException;
5 import java.util.ArrayList;
6 import java.util.Calendar;
7 import java.util.Date;
8 import java.util.GregorianCalendar;
9 import java.util.HashSet;
10 import java.util.Iterator;
11 import java.util.List;
12 import java.util.Set;
13 import java.util.Timer;
14 import java.util.TimerTask;
15
16 import javax.mail.MessagingException;
17 import javax.mail.internet.AddressException;
18
19 import comum.database.HibernateUtil;
20 import comum.util.Data;
21 import comum.util.Pagina;
22 import comum.util.Util;
23
24 import ecar.dao.AcompRealFisicoDao;
25 import ecar.dao.AcompReferenciaItemDao;
26 import ecar.dao.AcompRelatorioDao;
27 import ecar.dao.ConfigMailCfgmDAO;
28 import ecar.dao.ConfiguracaoDao;
29 import ecar.dao.EmpresaDao;
30 import ecar.dao.ItemEstruturaDao;
31 import ecar.dao.PontoCriticoDao;
32 import ecar.dao.ServicoDao;
33 import ecar.dao.TfuncacompConfigmailTfacfgmDAO;
34 import ecar.dao.UsuarioDao;
35 import ecar.exception.ECARException;
36 import ecar.pojo.AcompRealFisicoArf;
37 import ecar.pojo.AcompRefItemLimitesArli;
38 import ecar.pojo.AcompReferenciaItemAri;
39 import ecar.pojo.AcompRelatorioArel;
40 import ecar.pojo.ConfigMailCfgm;
41 import ecar.pojo.ConfiguracaoCfg;
42 import ecar.pojo.EmpresaEmp;
43 import ecar.pojo.ItemEstUsutpfuacIettutfa;
44 import ecar.pojo.ItemEstrtIndResulIettr;
45 import ecar.pojo.ItemEstruturaIett;
46 import ecar.pojo.PontoCriticoPtc;
47 import ecar.pojo.PontocriticoCorPtccor;
48 import ecar.pojo.ServicoSer;
49 import ecar.pojo.TfuncacompConfigmailTfacfgm;
50 import ecar.pojo.TfuncacompConfigmailTfacfgmPK;
51 import ecar.pojo.TipoFuncAcompTpfa;
52 import ecar.pojo.UsuarioUsu;
53 import ecar.util.Dominios;
54
55
56
57
58
59
60 public class AgendadorEmail extends TimerTask {
61
62 private static AgendadorEmail instance = null;
63 private final static long INTERVALO = 1000*60*60*24;
64
65 private Timer timer = null;
66 private Date dataAtual;
67 private String hora = "03:00";
68
69 private String nomeSistema = "";
70 private String contextPath = "";
71 private String cabecalho = "";
72
73 private String emailErroEmpresa = "";
74
75 public final static String LABEL_WHO_CHANGE_ALTERACAO = "Alteração efetuada por:";
76 public final static String LABEL_WHO_CHANGE_LIBERACAO = "Liberação de acompanhamento efetuada por:";
77 public final static String LABEL_WHO_CHANGE_RECUPERACAO = "Recuperação de acompanhamento efetuada por:";
78
79 public AgendadorEmail() {}
80
81
82
83
84
85
86
87
88
89
90
91 public static AgendadorEmail getInstance() {
92 if(instance == null) {
93 instance = new AgendadorEmail();
94 }
95 return instance;
96 }
97
98
99
100
101
102
103
104
105
106 private void atualizaCabecalhos() throws ECARException {
107
108 ConfiguracaoCfg configCfg = new ConfiguracaoDao(null).getConfiguracao();
109
110
111 this.nomeSistema = "Sistema " + configCfg.getTituloSistema();
112 this.contextPath = configCfg.getContextPath();
113
114
115 String logotipo = "";
116 List listEmpresa = new ArrayList();
117 listEmpresa = new EmpresaDao(null).listar(EmpresaEmp.class, null);
118 if(listEmpresa != null && !listEmpresa.isEmpty()){
119 EmpresaEmp emp = (EmpresaEmp) listEmpresa.iterator().next();
120 logotipo = emp.getLogotipoEmailEmp();
121
122 this.emailErroEmpresa = emp.getEmailErrosEmp();
123 }
124
125 this.cabecalho = contextPath + "/DownloadFile?tipo=open&downloadEmail=S&RemoteFile=" + configCfg.getRaizUpload() + logotipo;
126 }
127
128
129
130
131
132
133
134
135 public void disparaTimer(){
136 try {
137 ConfiguracaoCfg configCfg = new ConfiguracaoDao(null).getConfiguracao();
138
139 this.atualizaCabecalhos();
140
141 if(configCfg.getEmailServer() != null && !"".equals(configCfg.getEmailServer().trim())) {
142 if (configCfg.getHoraEnvioMailCfg() == null)
143 this.hora = "03:00";
144 else
145 this.hora = configCfg.getHoraEnvioMailCfg().trim();
146
147 this.dataAtual = Data.getDataAtual();
148 String data = Data.parseDateHour(this.dataAtual).substring(0,10) + " " + this.hora + ":00:000";
149 Date dataExecucao;
150 if (Data.isPassado(Data.parseDateHour(data)))
151 dataExecucao = Data.addDias(1, this.dataAtual);
152 else
153 dataExecucao = this.dataAtual;
154
155 data = Data.parseDateHour(dataExecucao);
156 data = data.substring(0,10) + " " + this.hora + ":00:000";
157
158 dataExecucao = Data.parseDateHour(data);
159
160
161
162
163
164 if (timer == null)
165 timer = new Timer();
166
167
168
169
170
171 timer.scheduleAtFixedRate(this, dataExecucao, AgendadorEmail.INTERVALO);
172 } else {
173 throw new ECARException("erro.servidor.email.invalido");
174 }
175 } catch (Exception e){
176 org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
177 this.enviarEmailExcecao("AgendadorEmail.disparaTimer()", e);
178 } finally {
179 try {
180
181 HibernateUtil.closeSession();
182 } catch (Exception e) {
183 org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
184 this.enviarEmailExcecao("AgendadorEmail.disparaTimer() - HibernateUtil.closeSession()", e);
185 }
186 }
187
188 }
189
190
191
192
193
194
195
196
197 public void run() {
198 org.apache.log4j.Logger.getLogger(this.getClass()).info("Enviando e-mails em " + Data.getDataAtual() + " " + Data.getHoraAtual(true));
199
200
201 try {
202 ConfiguracaoDao confDao = new ConfiguracaoDao(null);
203 ConfiguracaoCfg configuracao = confDao.getConfiguracao();
204 ConfigMailCfgmDAO configMailCfgmDAO = new ConfigMailCfgmDAO();
205 List listConfigMailCfgm = configMailCfgmDAO.getMailsAtivos();
206
207 this.atualizaCabecalhos();
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233 Long diasAnt;
234 Iterator it = listConfigMailCfgm.iterator();
235
236 String dataLimStr = null;
237
238 while( it.hasNext() ) {
239 ConfigMailCfgm configMailCfgm = (ConfigMailCfgm) it.next();
240 Date dataCorr = Data.addDias(0, configuracao.getUltimoEnvioEmailCfg());
241
242 if ((configuracao.getDiasAntecedenciaMailCfg().intValue() <= 0)
243 || ("".equals(configuracao.getDiasAntecedenciaMailCfg().toString()))
244 || (configuracao.getDiasAntecedenciaMailCfg() == null))
245 {
246 diasAnt = Long.valueOf("1");
247 }
248 else
249 {
250 diasAnt = configMailCfgm.getConfiguracaoCfg().getDiasAntecedenciaMailCfg();
251 }
252
253 Date data = Data.parseDateHour(Data.parseDateHour(Data.getDataAtual()).substring(0,10) + " 00:00:00:000");
254
255
256 while (dataCorr.compareTo(data) < 0)
257 {
258 dataCorr = Data.addDias(1, dataCorr);
259 Date dataLim = Data.addDias(diasAnt.intValue(), dataCorr);
260 dataLimStr = Data.parseDate(dataLim);
261
262 switch( configMailCfgm.getCodCfgm().intValue() ) {
263 case 4:
264 eMailVenctoLimiteFisico(dataLimStr, configMailCfgm);
265 break;
266 case 5:
267 eMailVenctoParecer(dataLimStr, configMailCfgm);
268 break;
269 case 6:
270 eMailVenctoPontoCritico(dataCorr, configMailCfgm, dataLimStr);
271 break;
272
273
274
275
276 }
277
278
279 if( configMailCfgm.getCodCfgm().intValue() > 6 && configMailCfgm.getCodCfgm().intValue() < 14 ) {
280 eMailDataItem(dataLimStr, configMailCfgm);
281 }
282
283 }
284 }
285 configuracao.setUltimoEnvioEmailCfg(Data.getDataAtual());
286 confDao.alterar(configuracao);
287 org.apache.log4j.Logger.getLogger(this.getClass()).info("E-mails enviados em " + Data.getDataAtual() + " " + Data.getHoraAtual(true));
288 } catch(Exception e) {
289 org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
290 this.enviarEmailExcecao("AgendadorEmail.run()", e);
291 } finally {
292 try {
293
294 HibernateUtil.closeSession();
295 } catch(Exception e) {
296 org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
297 this.enviarEmailExcecao("AgendadorEmail.run() - HibernateUtil.closeSession()", e);
298 }
299 }
300 }
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316 public StringBuffer montaEmail(String textoEmail, String nomeResp, Long item, String dataLimite,
317 String tipoAcompanhamento) throws ECARException {
318
319
320
321 ItemEstruturaDao iettDao = new ItemEstruturaDao(null);
322 ItemEstruturaIett iett = (ItemEstruturaIett) iettDao.buscar(ItemEstruturaIett.class, item);
323 return this.makeMail(nomeResp, textoEmail, null, dataLimite, null, null, iett, null, tipoAcompanhamento);
324 }
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345 public StringBuffer montaEmail(String textoEmail, String nomeResp, String quemAlterou, Long item,
346 String descEvent, String anterior, String atual, String labelQuemAlterou, String tipoAcompanhamento) throws ECARException {
347
348
349
350 ItemEstruturaDao iettDao = new ItemEstruturaDao(null);
351 ItemEstruturaIett iett = (ItemEstruturaIett) iettDao.buscar(ItemEstruturaIett.class, item);
352 return this.makeMail(nomeResp, textoEmail, quemAlterou, anterior, atual, descEvent, iett, labelQuemAlterou, tipoAcompanhamento);
353 }
354
355
356
357
358
359
360
361
362
363
364 private String makeHeaderMail(String nameTo) throws ECARException{
365 String header = new String();
366 header = "<html><head><title>E-Mail Automatico</title></head><body style=\"{font-family: verdana, arial; font-size: 10px; color: #000;}\">";
367 header = header + "<img src=\""+ this.cabecalho + "\">";
368 header = header + "<p>Caro Sr(a). " + nameTo + ",</p><br>";
369
370 return header;
371 }
372
373
374
375
376
377
378
379
380
381
382
383 private String makeFooterMail(String eventDesc) throws ECARException{
384 String footer = new String();
385
386 footer = "<p><i>Esta mensagem foi gerada automaticamente pelo " + this.nomeSistema + ", <b>favor não responder</b>.";
387 if( eventDesc != null )
388 footer = footer + " (" + eventDesc + ")";
389 footer = footer + "</i></p>";
390 footer = footer + "</body></html>";
391
392 return footer;
393 }
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413 private StringBuffer makeMail(String nameTo, String bodyText, String whoChange,
414 String original, String novo, String eventDesc,
415 ItemEstruturaIett iett, String labelWhoChange, String tipoAcompanhamento) throws ECARException {
416 this.atualizaCabecalhos();
417 StringBuffer html = new StringBuffer();
418
419 html.append(this.makeHeaderMail(nameTo));
420 html.append("<p>").append(bodyText).append("</p>");
421 html.append("<p>");
422
423 if( original != null && novo != null )
424 html.append("Anterior: ").append(original).append(" / Novo: ").append(novo).append("<br><br>");
425 else if( original != null )
426 html.append("Referência: ").append(original).append("<br><br>");
427 if( tipoAcompanhamento != null && !"".equals(tipoAcompanhamento.trim()))
428 html.append("Tipo do acompanhamento: ").append(tipoAcompanhamento).append("<br><br>");
429 if( labelWhoChange != null && whoChange != null )
430 html.append(labelWhoChange).append(" ").append(whoChange).append("<br><br>");
431 if( iett != null ) {
432 ItemEstruturaDao itemEstruturaDAO = new ItemEstruturaDao(null);
433
434 List listAscendentes = itemEstruturaDAO.getAscendentes(iett);
435 listAscendentes.add(iett);
436 Iterator it = listAscendentes.iterator();
437
438 while( it.hasNext() ) {
439 ItemEstruturaIett itemIett = (ItemEstruturaIett) it.next();
440
441
442 for(int i = 1; i < itemIett.getNivelIett().intValue(); i++){
443 html.append("<img src=\"").append(this.contextPath).append("/images/pixel.gif\" width=\"22\" height=\"9\">");
444 }
445
446 html.append("<img src=\"").append(this.contextPath).append("/images/icon_seta_ident.gif\">");
447 html.append(itemIett.getEstruturaEtt().getNomeEtt()).append(" - ").append(itemIett.getNomeIett());
448 html.append("<br>");
449 }
450 }
451 html.append("</p>");
452 html.append(this.makeFooterMail(eventDesc));
453
454 return html;
455 }
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471 public void enviarEmail(String assunto, String remetente, String texto, String destinatarioPara, String destinatarioCc, String destinatarioBcc, UsuarioUsu usuario) throws ECARException{
472 try {
473 Util.enviarEmail(assunto, this.nomeSistema, remetente, texto, destinatarioPara, destinatarioCc, destinatarioBcc, usuario);
474
475 org.apache.log4j.Logger.getLogger(this.getClass()).info(
476 "E-mail enviado (" +
477 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
478 " assunto: " + assunto +
479 " - remetente: " + remetente +
480 " - destinatarioPara: " + destinatarioPara +
481 " - destinatarioCc: " + destinatarioCc +
482 " - destinatarioBcc: " + destinatarioBcc
483 );
484 } catch (AddressException ae) {
485 org.apache.log4j.Logger.getLogger(this.getClass()).error(ae);
486 this.enviarEmailExcecao("AgendadorEmail.enviarEmail()", ae);
487 throw new ECARException("erro.email.invalido", ae);
488 } catch (MessagingException me) {
489 org.apache.log4j.Logger.getLogger(this.getClass()).error(me);
490 this.enviarEmailExcecao("AgendadorEmail.enviarEmail()", me);
491 throw new ECARException("erro.envio.email", me);
492 } catch (ECARException ec) {
493 org.apache.log4j.Logger.getLogger(this.getClass()).error(ec);
494 this.enviarEmailExcecao("AgendadorEmail.enviarEmail()", ec);
495 throw new ECARException(ec.getMessageKey(), ec);
496 } catch (Exception e) {
497 org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
498 this.enviarEmailExcecao("AgendadorEmail.enviarEmail()", e);
499 throw new ECARException("erro.envio.email", e);
500 }
501 }
502
503
504
505
506
507
508
509
510
511
512
513
514 private void eMailVenctoParecer (String dataLimStr, ConfigMailCfgm configMailCfgm) throws ECARException, Exception {
515 try {
516 AcompReferenciaItemDao ariDAO = new AcompReferenciaItemDao(null);
517 UsuarioDao usuDAO = new UsuarioDao();
518 TfuncacompConfigmailTfacfgmDAO tfuncacompConfigmailTfacfgmDAO = new TfuncacompConfigmailTfacfgmDAO();
519 AcompRelatorioDao acompRelatorioDao = new AcompRelatorioDao(null);
520
521 List listItens = null;
522 String dataCompStr = null;
523 Iterator itItem = null;
524
525
526
527
528
529
530
531
532 listItens = ariDAO.listarAcompReferenciaItemLimitesPorVenctoParecer(dataLimStr);
533 if( listItens != null ) itItem = listItens.iterator();
534
535
536
537 while( itItem.hasNext() ){
538 AcompRefItemLimitesArli arli = (AcompRefItemLimitesArli) itItem.next();
539 dataCompStr = Data.parseDate(arli.getDataLimiteArli());
540
541 if( dataLimStr.equals(dataCompStr) ) {
542 AcompReferenciaItemAri ari = arli.getAcompReferenciaItemAri();
543
544 List listAri = new ArrayList();
545 if( ari.getItemEstruturaIett() != null && ari.getItemEstruturaIett().getItemEstUsutpfuacIettutfas() != null )
546 listAri = new ArrayList(ari.getItemEstruturaIett().getItemEstUsutpfuacIettutfas());
547
548 List usuariosEmailEnviado = new ArrayList();
549
550 Iterator itList = listAri.iterator();
551 while( itList.hasNext() ) {
552 ItemEstUsutpfuacIettutfa itemEstUsutpfacIetutfa = (ItemEstUsutpfuacIettutfa) itList.next();
553 TipoFuncAcompTpfa tipoFuncao = itemEstUsutpfacIetutfa.getTipoFuncAcompTpfa();
554 TfuncacompConfigmailTfacfgmPK tfcfgmPK = new TfuncacompConfigmailTfacfgmPK();
555 tfcfgmPK.setConfigMailCfgm(configMailCfgm);
556 tfcfgmPK.setTipoFuncAcompTpfa(tipoFuncao);
557 TfuncacompConfigmailTfacfgm tfcfm = (TfuncacompConfigmailTfacfgm) tfuncacompConfigmailTfacfgmDAO.buscar(TfuncacompConfigmailTfacfgm.class, tfcfgmPK);
558
559
560
561 AcompRelatorioArel acompRelatorio = acompRelatorioDao.getAcompRelatorio(tipoFuncao, ari);
562 if ( acompRelatorio != null && !"S".equals(acompRelatorio.getIndLiberadoArel()) ) {
563
564 if ( itemEstUsutpfacIetutfa != null && itemEstUsutpfacIetutfa.getComp_id() != null && "S".equals(tfcfm.getEnviaMailTfacfgm()) ) {
565
566
567
568 List usuarios = new ArrayList();
569 if (itemEstUsutpfacIetutfa.getUsuarioUsu() != null) {
570 usuarios.add((UsuarioUsu) usuDAO.buscar(UsuarioUsu.class, itemEstUsutpfacIetutfa.getUsuarioUsu().getCodUsu()));
571 } else if (itemEstUsutpfacIetutfa.getSisAtributoSatb() != null){
572 usuarios.addAll(usuDAO.getUsuariosBySisAtributoSatb(itemEstUsutpfacIetutfa.getSisAtributoSatb()));
573 }
574
575 Iterator itUsu = usuarios.iterator();
576
577 while (itUsu.hasNext()){
578
579 UsuarioUsu usu = (UsuarioUsu) itUsu.next();
580
581 if(!usuariosEmailEnviado.contains(usu)) {
582 usuariosEmailEnviado.add(usu);
583
584 Long codIett = Long.valueOf(0);
585 String textoMail = "";
586 String assunto = "";
587 String remetente = "";
588
589 if( configMailCfgm.getTextosSiteMail() != null ) {
590 textoMail = configMailCfgm.getTextosSiteMail().getTextoTxts();
591 assunto = configMailCfgm.getTextosSiteMail().getDescricaoUsoTxts();
592 remetente = configMailCfgm.getTextosSiteMail().getEmailResponsavelTxts();
593 }
594
595 if( ari.getItemEstruturaIett() != null )
596 codIett = ari.getItemEstruturaIett().getCodIett();
597
598 try{
599 String html = this.montaEmail(textoMail, usu.getNomeUsu(), codIett, dataLimStr, acompRelatorio.getAcompReferenciaItemAri().getAcompReferenciaAref().getTipoAcompanhamentoTa().getDescricaoTa()).toString();
600 if ((usu.getEmail1Usu() != null) && (!"".equals(usu.getEmail1Usu()))) {
601 Util.enviarEmail(assunto, this.nomeSistema, remetente, html, usu.getEmail1Usu(),"", "", usu);
602
603 org.apache.log4j.Logger.getLogger(this.getClass()).info(
604 "E-mail enviado (" +
605 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
606 " assunto: " + assunto +
607 " - remetente: " + remetente +
608 " - destinatarioPara: " + usu.getEmail1Usu()
609 );
610 } else {
611 String erro = "Erro na tentativa de enviar e-mail para o usuario " + usu.getNomeUsu() + "(Cod: " + usu.getCodUsu() + ")<br> Verifique o e-mail e o nome do mesmo no cadastro de usuarios";
612 Util.enviarEmail("[" + this.nomeSistema + "] Erro de Envio de Email", this.nomeSistema, remetente, erro, remetente, "", "", usu);
613 org.apache.log4j.Logger.getLogger(this.getClass()).info(
614 "E-mail enviado (" +
615 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
616 " assunto: " + assunto +
617 " - remetente: " + remetente +
618 " - destinatarioPara: " + remetente
619 );
620 }
621 } catch (Exception e) {
622 org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
623 String erro = "Erro na tentativa de enviar e-mail para o usuario " + usu.getNomeUsu() + "(Cod: " + usu.getCodUsu() + ")<br> Verifique o e-mail e o nome do mesmo no cadastro de usuarios";
624 erro = erro + "<br>" + e.toString();
625 Util.enviarEmail("[" + this.nomeSistema + "] Erro de Envio de Email", this.nomeSistema, remetente, erro, remetente, "", "",usu);
626 org.apache.log4j.Logger.getLogger(this.getClass()).info(
627 "E-mail enviado (" +
628 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
629 " assunto: " + assunto +
630 " - remetente: " + remetente +
631 " - destinatarioPara: " + remetente
632 );
633 this.enviarEmailExcecao("AgendadorEmail.eMailVenctoParecer() (1)", e);
634 }
635 }
636 }
637 }
638
639 if ("S".equals(tfcfm.getEnviaSms())) {
640
641 }
642 }
643 }
644
645 }
646 }
647 } catch(Exception e) {
648 this.enviarEmailExcecao("AgendadorEmail.eMailVenctoParecer() (2)", e);
649 throw(e);
650 }
651 }
652
653
654
655
656
657
658
659
660
661
662
663
664 private void eMailVenctoLimiteFisico(String dataLimStr, ConfigMailCfgm configMailCfgm) throws ECARException, Exception {
665 try {
666 AcompReferenciaItemDao ariDAO = new AcompReferenciaItemDao(null);
667 TfuncacompConfigmailTfacfgmDAO tfuncacompConfigmailTfacfgmDAO = new TfuncacompConfigmailTfacfgmDAO();
668 AcompRealFisicoDao acompRealFisicoDao = new AcompRealFisicoDao(null);
669 UsuarioDao usuDAO = new UsuarioDao();
670
671 List listItens = null;
672 String dataCompStr = null;
673 Iterator itItem = null;
674
675
676
677
678
679
680
681
682 listItens = ariDAO.listarAcompReferenciaItemPorDataLimiteFisico(dataLimStr);
683 if( listItens != null ) itItem = listItens.iterator();
684
685
686
687 while( itItem.hasNext() ){
688 AcompReferenciaItemAri ari = (AcompReferenciaItemAri) itItem.next();
689
690 dataCompStr = Data.parseDate(ari.getDataLimiteAcompFisicoAri());
691 if( dataLimStr.equals(dataCompStr) ) {
692 List list = new ArrayList(ari.getItemEstruturaIett().getItemEstUsutpfuacIettutfas());
693
694 List usuariosEmailEnviado = new ArrayList();
695 Iterator itList = list.iterator();
696
697 while( itList.hasNext() ) {
698 ItemEstUsutpfuacIettutfa itemEstUsutpfacIetutfa = (ItemEstUsutpfuacIettutfa) itList.next();
699 TfuncacompConfigmailTfacfgmPK tfcfgmPK = new TfuncacompConfigmailTfacfgmPK();
700 tfcfgmPK.setConfigMailCfgm(configMailCfgm);
701 tfcfgmPK.setTipoFuncAcompTpfa(itemEstUsutpfacIetutfa.getTipoFuncAcompTpfa());
702
703 TfuncacompConfigmailTfacfgm tfcfm = (TfuncacompConfigmailTfacfgm) tfuncacompConfigmailTfacfgmDAO.buscar(TfuncacompConfigmailTfacfgm.class, tfcfgmPK);
704
705 List acompRealFisicoList = acompRealFisicoDao.getIndResulByAcompRefItemBySituacao(ari, Dominios.TODOS, true);
706 Iterator itArf = acompRealFisicoList.iterator();
707 boolean faltaArf = false;
708 while (itArf.hasNext())
709 {
710 AcompRealFisicoArf arf = (AcompRealFisicoArf) itArf.next();
711 if (arf.getQtdRealizadaArf() == null)
712 faltaArf = true;
713 }
714
715 List novosIndicadores = ariDAO.getNovosIndicadores(ari);
716 Iterator itIndicadores = novosIndicadores.iterator();
717 if(itIndicadores.hasNext()){
718 faltaArf = true;
719 }
720
721
722 if (("S".equals(tfcfm.getEnviaMailTfacfgm())) && (faltaArf)) {
723
724
725
726 List usuarios = new ArrayList();
727 if (itemEstUsutpfacIetutfa.getUsuarioUsu() != null) {
728 usuarios.add((UsuarioUsu) usuDAO.buscar(UsuarioUsu.class, itemEstUsutpfacIetutfa.getUsuarioUsu().getCodUsu()));
729 } else if (itemEstUsutpfacIetutfa.getSisAtributoSatb() != null){
730 usuarios.addAll(usuDAO.getUsuariosBySisAtributoSatb(itemEstUsutpfacIetutfa.getSisAtributoSatb()));
731 }
732
733 Iterator itUsu = usuarios.iterator();
734
735 while (itUsu.hasNext()){
736
737 UsuarioUsu usu = (UsuarioUsu) itUsu.next();
738
739
740 if(!usuariosEmailEnviado.contains(usu)) {
741 usuariosEmailEnviado.add(usu);
742
743 Long codIett = Long.valueOf(0);
744 String textoMail = "";
745 String assunto = "";
746 String remetente = "";
747
748 if( configMailCfgm.getTextosSiteMail() != null ) {
749 textoMail = configMailCfgm.getTextosSiteMail().getTextoTxts();
750 assunto = configMailCfgm.getTextosSiteMail().getDescricaoUsoTxts();
751 remetente = configMailCfgm.getTextosSiteMail().getEmailResponsavelTxts();
752 }
753
754 if( ari.getItemEstruturaIett() != null )
755 codIett = ari.getItemEstruturaIett().getCodIett();
756
757 try {
758 String html = this.montaEmail(textoMail, usu.getNomeUsu(), codIett, dataLimStr, ari.getAcompReferenciaAref().getTipoAcompanhamentoTa().getDescricaoTa()).toString();
759 if ((usu.getEmail1Usu() != null) && (!"".equals(usu.getEmail1Usu()))) {
760 Util.enviarEmail(assunto, this.nomeSistema, remetente, html, usu.getEmail1Usu(),"", "", usu);
761
762 org.apache.log4j.Logger.getLogger(this.getClass()).info(
763 "E-mail enviado (" +
764 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
765 " assunto: " + assunto +
766 " - remetente: " + remetente +
767 " - destinatarioPara: " + usu.getEmail1Usu()
768 );
769 } else {
770 String erro = "Erro na tentativa de enviar e-mail para o usuario " + usu.getNomeUsu() + "(Cod: " + usu.getCodUsu() + ")<br> Verifique o e-mail e o nome do mesmo no cadastro de usuarios";
771 Util.enviarEmail("["+ this.nomeSistema + "] Erro de Envio de Email", this.nomeSistema, remetente, erro, remetente, "", "", usu);
772 org.apache.log4j.Logger.getLogger(this.getClass()).info(
773 "E-mail enviado (" +
774 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
775 " assunto: " + assunto +
776 " - remetente: " + remetente +
777 " - destinatarioPara: " + remetente
778 );
779 }
780 }catch (Exception e) {
781 org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
782 String erro = "Erro na tentativa de enviar e-mail para o usuario " + usu.getNomeUsu() + "(Cod: " + usu.getCodUsu() + ")<br> Verifique o e-mail e o nome do mesmo no cadastro de usuarios";
783 erro = erro + "<br>" + e.toString();
784 Util.enviarEmail("["+ this.nomeSistema + "] Erro de Envio de Email", this.nomeSistema, remetente, erro, remetente, "", "", usu);
785 org.apache.log4j.Logger.getLogger(this.getClass()).info(
786 "E-mail enviado (" +
787 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
788 " assunto: " + assunto +
789 " - remetente: " + remetente +
790 " - destinatarioPara: " + remetente
791 );
792 this.enviarEmailExcecao("AgendadorEmail.eMailVenctoLimiteFisico() (1)", e);
793 }
794 }
795 }
796 }
797
798 if ("S".equals(tfcfm.getEnviaSms())) {
799
800 }
801 }
802 }
803 }
804 } catch(Exception e) {
805 this.enviarEmailExcecao("AgendadorEmail.eMailVenctoLimiteFisico() (2)", e);
806 throw(e);
807 }
808 }
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015 private void gravarValorRealizadoMetasIndicadores() throws ECARException, IllegalAccessException, NoSuchMethodException, InvocationTargetException{
1016 AcompReferenciaItemAri ariFiltro = new AcompReferenciaItemAri();
1017 ServicoDao servicoDao = new ServicoDao(null);
1018 AcompRealFisicoDao acompRealFisicoDao = new AcompRealFisicoDao(null);
1019
1020 Date dataAtual = Data.getDataAtual();
1021 Calendar calendarDataAtual = Data.getCalendar(dataAtual);
1022 Calendar calendarDataAtualSemHMS = new GregorianCalendar(calendarDataAtual.get(Calendar.YEAR), calendarDataAtual.get(Calendar.MONTH), calendarDataAtual.get(Calendar.DAY_OF_MONTH));
1023
1024 Date dataOntem = Data.addDias(-1, calendarDataAtualSemHMS.getTime());
1025
1026 ariFiltro.setDataLimiteAcompFisicoAri(dataOntem);
1027
1028 List listAri = new AcompReferenciaItemDao(null).pesquisar(ariFiltro, null);
1029
1030 if (listAri != null){
1031 Iterator itAri = listAri.iterator();
1032 while (itAri.hasNext()){
1033 AcompReferenciaItemAri ari = (AcompReferenciaItemAri) itAri.next();
1034 if (ari.getItemEstruturaIett() != null && ari.getItemEstruturaIett().getIndAtivoIett().equals(Pagina.SIM)){
1035 Set setIettrs = ari.getItemEstruturaIett().getItemEstrtIndResulIettrs();
1036 if (setIettrs != null){
1037 Iterator itIettrs = setIettrs.iterator();
1038 while (itIettrs.hasNext()){
1039 ItemEstrtIndResulIettr iettr = (ItemEstrtIndResulIettr) itIettrs.next();
1040 if (iettr.getRealizadoServicoSer() != null
1041 && iettr.getAcompRealFisicoArfs() != null
1042 && iettr.getIndRealPorLocal().equals(Pagina.NAO)
1043 && iettr.getIndTipoAtualizacaoRealizado() != null
1044 && iettr.getIndTipoAtualizacaoRealizado().equals(ServicoSer.TIPO_ATUALIZACAO_REALIZADO_AUTOMATICO)){
1045 Set setAcompRealFisicoArf = iettr.getAcompRealFisicoArfs();
1046 if (setAcompRealFisicoArf != null){
1047 Iterator itAcompRealFisicoArf = setAcompRealFisicoArf.iterator();
1048 while (itAcompRealFisicoArf.hasNext()){
1049 AcompRealFisicoArf acompRealFisicoArf = (AcompRealFisicoArf) itAcompRealFisicoArf.next();
1050 if (acompRealFisicoArf.getAnoArf().equals(Long.valueOf(ari.getAcompReferenciaAref().getAnoAref())) && acompRealFisicoArf.getMesArf().equals(Long.valueOf(ari.getAcompReferenciaAref().getMesAref()))){
1051 String url = iettr.getRealizadoServicoSer().getUrlSer();
1052 url = url.substring(0,1).toLowerCase() + url.substring(1);
1053 Object[] parametros = new ServicoDao(null).getParametrosServico(iettr.getRealizadoServicoSer(), ari);
1054 Double qtdRealizadoArf = (Double)(ServicoDao.class.getMethod(url, new Class[]{String.class, String.class}).invoke(servicoDao, parametros));
1055 acompRealFisicoArf.setQtdRealizadaArf(qtdRealizadoArf);
1056
1057 acompRealFisicoDao.alterar(acompRealFisicoArf);
1058 }
1059 }
1060 }
1061 }
1062 }
1063 }
1064 }
1065 }
1066 }
1067 }
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081 private void eMailVenctoPontoCritico (Date dataCorrente, ConfigMailCfgm configMailCfgm, String dataLimiteSeNula) throws ECARException, Exception {
1082 try {
1083 gravarValorRealizadoMetasIndicadores();
1084 } catch(Exception e) {
1085 this.enviarEmailExcecao("AgendadorEmail.gravarValorRealizadoMetasIndicadores() ", e);
1086 throw(e);
1087 }
1088
1089 try {
1090
1091 PontoCriticoDao ptcDAO = new PontoCriticoDao(null);
1092 TfuncacompConfigmailTfacfgmDAO tfuncacompConfigmailTfacfgmDAO = new TfuncacompConfigmailTfacfgmDAO();
1093 UsuarioDao usuDAO = new UsuarioDao();
1094
1095 List listItens = null;
1096 String dataCompStr = null;
1097 Iterator itPontos = null;
1098 String corRelogio = null;
1099 Set datasLimite = null;
1100
1101
1102
1103
1104
1105
1106
1107
1108 listItens = ptcDAO.listarPontoCriticoAtivoNExcluidoNSolucionado("S", "S");
1109
1110 if( listItens != null ) itPontos = listItens.iterator();
1111
1112
1113
1114 while( itPontos.hasNext() ){
1115 PontoCriticoPtc ptc = (PontoCriticoPtc) itPontos.next();
1116
1117
1118
1119
1120
1121
1122 Date dataComparacao = ptc.getDataLimitePtc();
1123 dataCompStr = Data.parseDate(dataComparacao);
1124
1125 int diasAntecedencia;
1126 int frequencia;
1127
1128
1129
1130 if (dataCompStr.equals(Data.parseDate(dataCorrente)))
1131 {
1132 corRelogio = "PretoFixo";
1133 datasLimite = new HashSet();
1134 datasLimite.add(dataCompStr);
1135 }
1136
1137
1138
1139
1140 else
1141 {
1142
1143
1144
1145 List listPtcCor = ptcDAO.ordenaSet(ptc.getPontoCriticoCorPtccores(), "this.antecedenciaPrimEmailPtccor", "asc");
1146 Iterator itPtcCor = listPtcCor.iterator();
1147 boolean encontrouLimite = false;
1148 while((itPtcCor.hasNext()) && (!encontrouLimite))
1149 {
1150 PontocriticoCorPtccor ptcCor = (PontocriticoCorPtccor) itPtcCor.next();
1151
1152
1153 if (ptcCor.getAntecedenciaPrimEmailPtccor() == null)
1154 diasAntecedencia = 0;
1155 else
1156 diasAntecedencia = ptcCor.getAntecedenciaPrimEmailPtccor().intValue();
1157
1158
1159 if (ptcCor.getFrequenciaEnvioEmailPtccor() == null)
1160 frequencia = 0;
1161 else
1162 frequencia = ptcCor.getFrequenciaEnvioEmailPtccor().intValue();
1163
1164 Date dataLimite = Data.addDias(diasAntecedencia, dataCorrente);
1165 String dataLimStr = Data.parseDate(dataLimite);
1166
1167
1168
1169
1170
1171 if ((dataLimite.after(dataComparacao)) || (dataLimStr.equals(dataCompStr)))
1172 {
1173 datasLimite = new HashSet();
1174 if (diasAntecedencia > 0)
1175 {
1176 if ("S".equals(ptcCor.getIndAtivoEnvioEmailPtccor()))
1177 {
1178 datasLimite.add(dataLimStr);
1179 if (frequencia > 0)
1180 {
1181 while (diasAntecedencia > 0)
1182 {
1183 diasAntecedencia = diasAntecedencia - frequencia;
1184 dataLimStr = new String(Data.parseDate(Data.addDias(diasAntecedencia, dataCorrente)));
1185 datasLimite.add(dataLimStr);
1186 }
1187 }
1188 corRelogio = ptcCor.getCor().getNomeCor();
1189 }
1190 encontrouLimite = true;
1191 }
1192 }
1193 }
1194 }
1195
1196
1197 ItemEstruturaIett iett = (ItemEstruturaIett) ptc.getItemEstruturaIett();
1198
1199
1200 if( (datasLimite != null && datasLimite.contains(dataCompStr)) && (iett != null && iett.getIndAtivoIett().equals("S")) ) {
1201 List usuariosEmailEnviado = new ArrayList();
1202
1203 List listIett = new ArrayList(iett.getItemEstUsutpfuacIettutfas());
1204
1205 Iterator itList = listIett.iterator();
1206
1207 while( itList.hasNext() ) {
1208 ItemEstUsutpfuacIettutfa itemEstUsutpfacIetutfa = (ItemEstUsutpfuacIettutfa) itList.next();
1209
1210 TfuncacompConfigmailTfacfgmPK tfcfgmPK = new TfuncacompConfigmailTfacfgmPK();
1211 tfcfgmPK.setConfigMailCfgm(configMailCfgm);
1212 tfcfgmPK.setTipoFuncAcompTpfa(itemEstUsutpfacIetutfa.getTipoFuncAcompTpfa());
1213
1214 TfuncacompConfigmailTfacfgm tfcfm = (TfuncacompConfigmailTfacfgm) tfuncacompConfigmailTfacfgmDAO.buscar(TfuncacompConfigmailTfacfgm.class, tfcfgmPK);
1215
1216 if ("S".equals(tfcfm.getEnviaMailTfacfgm())) {
1217
1218
1219
1220 List usuarios = new ArrayList();
1221 if (itemEstUsutpfacIetutfa.getUsuarioUsu() != null) {
1222 usuarios.add((UsuarioUsu) usuDAO.buscar(UsuarioUsu.class, itemEstUsutpfacIetutfa.getUsuarioUsu().getCodUsu()));
1223 } else if (itemEstUsutpfacIetutfa.getSisAtributoSatb() != null){
1224 usuarios.addAll(usuDAO.getUsuariosBySisAtributoSatb(itemEstUsutpfacIetutfa.getSisAtributoSatb()));
1225 }
1226
1227 Iterator itUsu = usuarios.iterator();
1228
1229 while (itUsu.hasNext()){
1230
1231 UsuarioUsu usu = (UsuarioUsu) itUsu.next();
1232
1233
1234 if(!usuariosEmailEnviado.contains(usu)) {
1235 usuariosEmailEnviado.add(usu);
1236
1237 Long codIett = Long.valueOf(0);
1238 String textoMail = "";
1239 String assunto = "";
1240 String remetente = "";
1241
1242 if( configMailCfgm.getTextosSiteMail() != null ) {
1243 textoMail = configMailCfgm.getTextosSiteMail().getTextoTxts();
1244 assunto = configMailCfgm.getTextosSiteMail().getDescricaoUsoTxts();
1245 remetente = configMailCfgm.getTextosSiteMail().getEmailResponsavelTxts();
1246 }
1247
1248 codIett = iett.getCodIett();
1249
1250 try {
1251 String html = this.montaEmail( textoMail, usu.getNomeUsu(), null, codIett,
1252 "Alerta de criticidade de data: <img src=\""+this.contextPath+"/images/pc"+corRelogio+"1.png\">",
1253 dataCompStr, null, null, null).toString();
1254 if ((usu.getEmail1Usu() != null) && (!"".equals(usu.getEmail1Usu())))
1255 {
1256 if ((assunto == null) || (assunto.length() <= 0)) {
1257 assunto = "Alerta de criticidade de data";
1258 }
1259
1260 Util.enviarEmail(assunto, this.nomeSistema, remetente, html, usu.getEmail1Usu(),"", "", usu);
1261 org.apache.log4j.Logger.getLogger(this.getClass()).info(
1262 "E-mail enviado (" +
1263 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
1264 " assunto: " + assunto +
1265 " - remetente: " + remetente +
1266 " - destinatarioPara: " + usu.getEmail1Usu()
1267 );
1268 }
1269 else
1270 {
1271 String erro = "Erro na tentativa de enviar e-mail para o usuario " + usu.getNomeUsu() + "(Cod: " + usu.getCodUsu() + ")<br> Verifique o e-mail e o nome do mesmo no cadastro de usuarios";
1272 Util.enviarEmail("["+ this.nomeSistema + "] Erro de Envio de Email", this.nomeSistema, remetente, erro, remetente, "", "", usu);
1273 org.apache.log4j.Logger.getLogger(this.getClass()).info(
1274 "E-mail enviado (" +
1275 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
1276 " assunto: " + assunto +
1277 " - remetente: " + remetente +
1278 " - destinatarioPara: " + remetente
1279 );
1280 }
1281 }catch (Exception e) {
1282 org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
1283 String erro = "Erro na tentativa de enviar e-mail para o usuario " + usu.getNomeUsu() + "(Cod: " + usu.getCodUsu() + ")<br> Verifique o e-mail e o nome do mesmo no cadastro de usuarios";
1284 erro = erro + "<br>" + e.toString();
1285 Util.enviarEmail("["+ this.nomeSistema + "] Erro de Envio de Email", this.nomeSistema, remetente, erro, remetente, "", "", usu);
1286 org.apache.log4j.Logger.getLogger(this.getClass()).info(
1287 "E-mail enviado (" +
1288 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
1289 " assunto: " + assunto +
1290 " - remetente: " + remetente +
1291 " - destinatarioPara: " + remetente
1292 );
1293 this.enviarEmailExcecao("AgendadorEmail.eMailVenctoPontoCritico() (1)", e);
1294 }
1295 }
1296 }
1297 }
1298
1299 if ("S".equals(tfcfm.getEnviaSms())) {
1300
1301 }
1302 }
1303
1304 }
1305 }
1306 } catch(Exception e) {
1307 this.enviarEmailExcecao("AgendadorEmail.eMailVenctoPontoCritico() (2)", e);
1308 throw(e);
1309 }
1310
1311 }
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324 private void eMailDataItem (String dataLimStr, ConfigMailCfgm configMailCfgm) throws ECARException, Exception {
1325 try {
1326 Iterator itItem = null;
1327
1328
1329
1330
1331
1332
1333
1334 List list = new ItemEstruturaDao(null).listarItemEstruturaPorDataLimite(dataLimStr);
1335 if( list != null ) itItem = list.iterator();
1336
1337
1338 while( itItem.hasNext() ){
1339 ItemEstruturaIett iett = (ItemEstruturaIett) itItem.next();
1340 String dataItemStr = null;
1341
1342 switch(configMailCfgm.getCodCfgm().intValue()) {
1343 case 7:
1344 dataItemStr = Data.parseDate(iett.getDataTerminoIett());
1345 break;
1346 case 8:
1347 dataItemStr = Data.parseDate(iett.getDataInicioIett());
1348 break;
1349 case 9:
1350 dataItemStr = Data.parseDate(iett.getDataR1());
1351 break;
1352 case 10:
1353 dataItemStr = Data.parseDate(iett.getDataR2());
1354 break;
1355 case 11:
1356 dataItemStr = Data.parseDate(iett.getDataR3());
1357 break;
1358 case 12:
1359 dataItemStr = Data.parseDate(iett.getDataR4());
1360 break;
1361 case 13:
1362 dataItemStr = Data.parseDate(iett.getDataR5());
1363 break;
1364 }
1365
1366 eMailGenerico(dataLimStr, dataItemStr, configMailCfgm, iett);
1367 }
1368 } catch(Exception e) {
1369 this.enviarEmailExcecao("AgendadorEmail.eMailDataItem()", e);
1370 throw(e);
1371 }
1372
1373 }
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388 private void eMailGenerico(String dataLimStr, String dataCompStr, ConfigMailCfgm configMailCfgm, ItemEstruturaIett iett) throws ECARException, Exception {
1389 try {
1390 TfuncacompConfigmailTfacfgmDAO tfuncacompConfigmailTfacfgmDAO = new TfuncacompConfigmailTfacfgmDAO();
1391 UsuarioDao usuDAO = new UsuarioDao();
1392
1393 if( dataLimStr.equals(dataCompStr) ) {
1394 List listIettutfas = new ArrayList(iett.getItemEstUsutpfuacIettutfas());
1395 List usuariosEmailEnviado = new ArrayList();
1396 Iterator itList = listIettutfas.iterator();
1397
1398 while( itList.hasNext() ) {
1399 ItemEstUsutpfuacIettutfa itemEstUsutpfacIetutfa = (ItemEstUsutpfuacIettutfa) itList.next();
1400
1401 TfuncacompConfigmailTfacfgmPK tfcfgmPK = new TfuncacompConfigmailTfacfgmPK();
1402 tfcfgmPK.setConfigMailCfgm(configMailCfgm);
1403 tfcfgmPK.setTipoFuncAcompTpfa(itemEstUsutpfacIetutfa.getTipoFuncAcompTpfa());
1404
1405 TfuncacompConfigmailTfacfgm tfcfm = (TfuncacompConfigmailTfacfgm) tfuncacompConfigmailTfacfgmDAO.
1406 buscar(TfuncacompConfigmailTfacfgm.class, tfcfgmPK);
1407
1408 if ("S".equals(tfcfm.getEnviaMailTfacfgm())) {
1409
1410
1411 List usuarios = new ArrayList();
1412 if (itemEstUsutpfacIetutfa.getUsuarioUsu() != null) {
1413 usuarios.add((UsuarioUsu) usuDAO.buscar(UsuarioUsu.class, itemEstUsutpfacIetutfa.getUsuarioUsu().getCodUsu()));
1414 } else if (itemEstUsutpfacIetutfa.getSisAtributoSatb() != null){
1415 usuarios.addAll(usuDAO.getUsuariosBySisAtributoSatb(itemEstUsutpfacIetutfa.getSisAtributoSatb()));
1416 }
1417
1418 Iterator itUsu = usuarios.iterator();
1419
1420 while (itUsu.hasNext()){
1421
1422 UsuarioUsu usu = (UsuarioUsu) itUsu.next();
1423
1424 if(!usuariosEmailEnviado.contains(usu)) {
1425 usuariosEmailEnviado.add(usu);
1426 Long codIett = Long.valueOf(0);
1427 String textoMail = "";
1428 String assunto = "";
1429 String remetente = "";
1430
1431 if( configMailCfgm.getTextosSiteMail() != null ) {
1432 textoMail = configMailCfgm.getTextosSiteMail().getTextoTxts();
1433 assunto = configMailCfgm.getTextosSiteMail().getDescricaoUsoTxts();
1434 remetente = configMailCfgm.getTextosSiteMail().getEmailResponsavelTxts();
1435 }
1436
1437 codIett = iett.getCodIett();
1438
1439 try {
1440 String html = this.montaEmail(textoMail, usu.getNomeUsu(), codIett, dataLimStr, null).toString();
1441 if ((usu.getEmail1Usu() != null) && (!"".equals(usu.getEmail1Usu()))) {
1442 Util.enviarEmail(assunto, this.nomeSistema, remetente, html, usu.getEmail1Usu(),"", "", usu);
1443
1444 org.apache.log4j.Logger.getLogger(this.getClass()).info(
1445 "E-mail enviado (" +
1446 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
1447 " assunto: " + assunto +
1448 " - remetente: " + remetente +
1449 " - destinatarioPara: " + usu.getEmail1Usu()
1450 );
1451 } else {
1452 String erro = "Erro na tentativa de enviar e-mail para o usuario " + usu.getNomeUsu() + "(Cod: " + usu.getCodUsu() + ")<br> Verifique o e-mail e o nome do mesmo no cadastro de usuarios";
1453 Util.enviarEmail("["+ this.nomeSistema + "] Erro de Envio de Email", this.nomeSistema, remetente, erro, remetente, "", "", usu);
1454 org.apache.log4j.Logger.getLogger(this.getClass()).info(
1455 "E-mail enviado (" +
1456 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
1457 " assunto: " + assunto +
1458 " - remetente: " + remetente +
1459 " - destinatarioPara: " + remetente
1460 );
1461 }
1462 }catch (Exception e) {
1463 org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
1464 String erro = "Erro na tentativa de enviar e-mail para o usuario " + usu.getNomeUsu() + "(Cod: " + usu.getCodUsu() + ")<br> Verifique o e-mail e o nome do mesmo no cadastro de usuarios";
1465 erro = erro + "<br>" + e.toString();
1466 Util.enviarEmail("["+ this.nomeSistema + "] Erro de Envio de Email", this.nomeSistema, remetente, erro, remetente, "", "", usu);
1467 org.apache.log4j.Logger.getLogger(this.getClass()).info(
1468 "E-mail enviado (" +
1469 Data.getDataAtual() + " " + Data.getHoraAtual(true) + "): " +
1470 " assunto: " + assunto +
1471 " - remetente: " + remetente +
1472 " - destinatarioPara: " + remetente
1473 );
1474 this.enviarEmailExcecao("AgendadorEmail.eMailGenerico() (1)", e);
1475 }
1476 }
1477 }
1478 }
1479
1480 if ("S".equals(tfcfm.getEnviaSms())) {
1481
1482 }
1483 }
1484 }
1485 } catch(Exception e) {
1486 this.enviarEmailExcecao("AgendadorEmail.eMailGenerico() (2)", e);
1487 throw(e);
1488 }
1489 }
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502 private void enviarEmailExcecao(String mensagem, Exception e) {
1503 try {
1504 StringBuffer sb = new StringBuffer();
1505 sb.append(mensagem);
1506
1507 if(e != null) {
1508 sb.append("\n");
1509 sb.append(e.getMessage());
1510 }
1511
1512 if(this.emailErroEmpresa != null && !"".equals(this.emailErroEmpresa)) {
1513 Util.enviarEmail("[" + this.nomeSistema + "] ERRO - Agendador de Email",
1514 this.nomeSistema,
1515 this.emailErroEmpresa,
1516 sb.toString(),
1517 this.emailErroEmpresa,
1518 "",
1519 "", null);
1520 }
1521 } catch(Exception ex) {
1522 org.apache.log4j.Logger.getLogger(this.getClass()).error(ex);
1523 }
1524 }
1525 }