1
2
3
4
5 package ecar.taglib.util;
6
7 import java.util.Collection;
8 import java.util.Iterator;
9
10 import javax.servlet.jsp.JspException;
11 import javax.servlet.jsp.JspWriter;
12 import javax.servlet.jsp.PageContext;
13 import javax.servlet.jsp.tagext.Tag;
14
15 import org.apache.log4j.Logger;
16
17 import comum.util.Util;
18
19 import ecar.dao.SisGrupoAtributoDao;
20 import ecar.pojo.ObjetoDemanda;
21 import ecar.pojo.SisAtributoSatb;
22 import ecar.pojo.SisGrupoAtributoSga;
23
24
25
26
27
28
29
30 public class ValidacaoRegDemandaTag implements Tag{
31 private Collection atributos;
32
33
34
35 private PageContext page = null;
36
37 private StringBuffer validacaoCampos;
38
39 private StringBuffer retornoPesquisa;
40
41 private SisGrupoAtributoDao sisGrupoAtributoDao= null;
42
43 private String acao;
44
45 private Boolean telaFiltro = null;
46
47
48
49
50
51
52
53
54
55
56
57 public int doStartTag() throws JspException {
58 try{
59 JspWriter writer = this.page.getOut();
60 StringBuffer s = new StringBuffer();
61 validacaoCampos = new StringBuffer();
62 retornoPesquisa = new StringBuffer();
63
64 telaFiltro = "filtrarClassificar".equals(acao) || "filtrarCadastro".equals(acao) ? true:false;
65
66
67
68
69
70 if(atributos != null){
71 Iterator it = atributos.iterator();
72 while(it.hasNext()){
73 ObjetoDemanda objetoDemanda = (ObjetoDemanda) it.next();
74 if(objetoDemanda.iGetGrupoAtributosLivres() != null){
75 geraValidacaoAtributoLivre(objetoDemanda);
76 }
77 else {
78 try {
79 this.getClass().
80 getMethod("geraValidacao" + Util.primeiraLetraToUpperCase(objetoDemanda.iGetNome()), new Class[] { ObjetoDemanda.class }).
81 invoke(this, new Object[] { objetoDemanda });
82 }
83 catch(Exception e) {
84 Logger logger = Logger.getLogger(this.getClass());
85 logger.error(e);
86 }
87 }
88 }
89
90
91 }
92 s.append("function validar(form) { \n");
93 if(validacaoCampos != null)
94 s.append(validacaoCampos);
95
96
97
98 s.append( "return true;\n");
99 s.append("}\n");
100 if(retornoPesquisa != null)
101 s.append(retornoPesquisa);
102 writer.print(s.toString());
103 } catch(Exception e){
104 Logger logger = Logger.getLogger(this.getClass());
105 logger.error(e);
106 }
107 return Tag.EVAL_BODY_INCLUDE;
108 }
109
110
111
112
113
114
115
116
117
118
119 public void geraValidacaoDescricaoRegd(ObjetoDemanda objetoDemanda) {
120 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
121 && (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar") ) ){
122 geraValidacaoCampoObrigatorio(objetoDemanda);
123 }
124 }
125
126
127
128
129
130
131
132
133
134 public void geraValidacaoDataLimiteRegd(ObjetoDemanda objetoDemanda) {
135 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
136 && (acao.equals("alterar") || acao.equals("incluir")) ){
137 geraValidacaoCampoObrigatorio(objetoDemanda);
138
139 }
140
141 if (!acao.equals("classificar")){
142 geraValidacaoData(objetoDemanda);
143 } else {
144 geraValidacaoCampoObrigatorio(objetoDemanda);
145 geraValidacaoData(objetoDemanda);
146 }
147 }
148
149
150
151
152
153
154
155
156
157 public void geraValidacaoOrgaoOrg(ObjetoDemanda objetoDemanda) {
158 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
159 && (acao.equals("alterar") || acao.equals("incluir") ) ){
160 geraValidacaoCampoObrigatorio(objetoDemanda);
161 }
162
163 else if (acao.equals("classificar")){
164 geraValidacaoCampoObrigatorio(objetoDemanda);
165 }
166 }
167
168
169
170
171
172
173
174
175
176
177 public void geraValidacaoSitDemandaSitd(ObjetoDemanda objetoDemanda) {
178
179
180
181
182 if (acao.equals("classificar")){
183 geraValidacaoCampoObrigatorio(objetoDemanda);
184 }
185 }
186
187
188
189
190
191
192
193
194
195
196 public void geraValidacaoPrioridadePrior(ObjetoDemanda objetoDemanda) {
197
198
199
200 if (acao.equals("classificar")){
201 geraValidacaoCampoObrigatorio(objetoDemanda);
202 }
203 }
204
205
206
207
208
209
210
211
212
213 public void geraValidacaoIndAtivoRegd(ObjetoDemanda objetoDemanda) {
214 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
215 && (acao.equals("alterar") || acao.equals("incluir")) ){
216 geraValidacaoCampoObrigatorio(objetoDemanda);
217 }
218 }
219
220
221
222
223
224
225
226
227
228 public void geraValidacaoNumeroDocOrigemRegd(ObjetoDemanda objetoDemanda) {
229 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
230 && (acao.equals("alterar") || acao.equals("incluir")) ){
231 geraValidacaoCampoObrigatorio(objetoDemanda);
232
233 }
234 if (!acao.equals("classificar")){
235 geraValidacaoNumeroDecimal(objetoDemanda);
236 }
237 }
238
239
240
241
242
243
244
245
246
247 public void geraValidacaoRegDemandaRegd(ObjetoDemanda objetoDemanda) {
248 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
249 && (acao.equals("alterar") || acao.equals("incluir")) ){
250 geraValidacaoCampoObrigatorio(objetoDemanda);
251 }
252 }
253
254
255
256
257
258
259
260
261
262 public void geraValidacaoNomeSolicitanteRegd(ObjetoDemanda objetoDemanda) {
263 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
264 && (acao.equals("alterar") || acao.equals("incluir")) || acao.equals("classificar") ){
265 geraValidacaoCampoObrigatorio(objetoDemanda);
266 }
267 }
268
269
270
271
272
273
274
275
276
277 public void geraValidacaoDataSolicitacaoRegd(ObjetoDemanda objetoDemanda) {
278 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
279 && (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar")) ){
280 geraValidacaoCampoObrigatorio(objetoDemanda);
281 }
282
283 geraValidacaoData(objetoDemanda);
284
285 }
286
287
288
289
290
291
292
293
294
295 public void geraValidacaoObservacaoRegd(ObjetoDemanda objetoDemanda) {
296 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
297 && (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar")) ){
298 geraValidacaoCampoObrigatorio(objetoDemanda);
299 }
300 }
301
302
303
304
305
306
307
308
309
310 public void geraValidacaoEntidadeOrgaoDemandaEntorgds(ObjetoDemanda objetoDemanda) {
311 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
312 && (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar") ) ){
313 geraValidacaoCampoObrigatorioOrgaoSolucinadorCheck(objetoDemanda);
314 }
315 }
316
317
318
319
320
321
322
323
324
325
326 public void geraValidacaoEntidadeDemandaEntds(ObjetoDemanda objetoDemanda) {
327 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
328 && (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar") ) ){
329 geraValidacaoCampoObrigatorioEntidadesCheck(objetoDemanda);
330 }
331 }
332
333
334
335
336
337
338
339
340
341 public void geraValidacaoLocalDemandaLdems(ObjetoDemanda objetoDemanda) {
342 if(objetoDemanda.iGetObrigatorio().booleanValue() == true
343 && (acao.equals("alterar") || acao.equals("incluir") || acao.equals("classificar")) ){
344 geraValidacaoCampoObrigatorioLocaisCheck(objetoDemanda);
345 }
346 }
347
348
349
350
351
352
353
354
355
356 private void geraValidacaoCampoObrigatorio(ObjetoDemanda objetoDemanda){
357 if (!telaFiltro){
358
359 getValidacaoCampos().append( " if (document.form.").append(objetoDemanda.iGetNome()).append(".value == \"\"){\n" );
360 getValidacaoCampos().append( " alert(\"Obrigatório o Preenchimento do Campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
361 getValidacaoCampos().append(" return false; \n");
362 getValidacaoCampos().append( " } \n");
363
364 }
365 }
366
367
368
369
370
371
372
373
374
375 private void geraValidacaoExistenciaCamposClassificaDemanda(){
376 if (!telaFiltro){
377 getValidacaoCampos().append( " if (document.form.sitDemandaSitd == null){\n" );
378 getValidacaoCampos().append(" \t alert(\"Obrigatória a configuração do Campo sitDemandaSitd");
379 getValidacaoCampos().append(" em Atributo na Demanda\");\n" );
380 getValidacaoCampos().append(" \t return false; \n");
381 getValidacaoCampos().append( " } \n");
382
383 getValidacaoCampos().append( " if (document.form.prioridadePrior == null){\n" );
384 getValidacaoCampos().append(" \t alert(\"Obrigatória a configuração do Campo prioridadePrior");
385 getValidacaoCampos().append(" em Atributo na Demanda\");\n" );
386 getValidacaoCampos().append(" \t return false; \n");
387 getValidacaoCampos().append( " } \n");
388
389 getValidacaoCampos().append( " if (document.form.orgaoOrg == null){\n" );
390 getValidacaoCampos().append(" \t alert(\"Obrigatória a configuração do Campo orgaoOrg");
391 getValidacaoCampos().append(" em Atributo na Demanda\");\n" );
392 getValidacaoCampos().append(" \t return false; \n");
393 getValidacaoCampos().append( " } \n");
394
395 getValidacaoCampos().append( " if (document.form.dataLimiteRegd == null){\n" );
396 getValidacaoCampos().append(" alert(\"Obrigatória a configuração do Campo dataLimiteRegd");
397 getValidacaoCampos().append(" em Atributo na Demanda\");\n" );
398 getValidacaoCampos().append(" return false; \n");
399 getValidacaoCampos().append( " } \n");
400
401
402 }
403
404 }
405
406
407
408
409
410
411
412
413
414 private void geraValidacaoCampoObrigatorioLocaisCheck(ObjetoDemanda objetoDemanda){
415 if (!telaFiltro){
416
417
418
419 getValidacaoCampos().append( " if (").append("contadorLocalReal").append("== \"0\" ||" );
420 getValidacaoCampos().append( " (document.form.").append("contadorLocalReal").append(".value == \"0\")){\n" );
421 getValidacaoCampos().append( " alert(\"Obrigatório o Preenchimento do Campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
422 getValidacaoCampos().append(" return false; \n");
423 getValidacaoCampos().append( " } \n");
424 }
425 }
426
427
428
429
430
431
432
433
434
435 private void geraValidacaoCampoObrigatorioEntidadesCheck(ObjetoDemanda objetoDemanda){
436 if (!telaFiltro){
437
438
439 getValidacaoCampos().append( " if (").append("contadorEntidadeReal").append(" == \"0\"){\n" );
440 getValidacaoCampos().append( " alert(\"Obrigatório o Preenchimento do Campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
441 getValidacaoCampos().append(" return false; \n");
442 getValidacaoCampos().append( " } \n");
443 }
444 }
445
446
447
448
449
450
451
452
453
454
455 private void geraValidacaoCampoObrigatorioOrgaoSolucinadorCheck(ObjetoDemanda objetoDemanda){
456 if (!telaFiltro){
457
458
459 getValidacaoCampos().append( " if (").append("contadorEntidadeOrgaoReal").append(" == \"0\"){\n" );
460 getValidacaoCampos().append( " alert(\"Obrigatório o Preenchimento do Campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
461 getValidacaoCampos().append(" return false; \n");
462 getValidacaoCampos().append( " } \n");
463 }
464 }
465
466
467
468
469
470
471
472
473
474 private void geraValidacaoData(ObjetoDemanda objetoDemanda){
475 if (telaFiltro){
476 getValidacaoCampos().append("if(form.").append(objetoDemanda.iGetNome() + "_Inicio").append(".value != \"\" && !validaData(form.").append(objetoDemanda.iGetNome() + "_Inicio").append(",false,true,true)){\n");
477 getValidacaoCampos().append( " alert(\"Valor inválido para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
478 getValidacaoCampos().append(" return false; \n");
479 getValidacaoCampos().append( " } \n");
480 getValidacaoCampos().append("if(form.").append(objetoDemanda.iGetNome() + "_Fim").append(".value != \"\" && !validaData(form.").append(objetoDemanda.iGetNome() + "_Fim").append(",false,true,true)){\n");
481 getValidacaoCampos().append( " alert(\"Valor inválido para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
482 getValidacaoCampos().append(" return false; \n");
483 getValidacaoCampos().append( " } \n");
484 getValidacaoCampos().append("if(!DataMenor(form.").append(objetoDemanda.iGetNome() + "_Inicio").append(".value, form.").append(objetoDemanda.iGetNome() + "_Fim").append(".value)){\n");
485 getValidacaoCampos().append( " alert(\"").append(objetoDemanda.iGetLabel()).append(" inicial maior que final").append("\");\n" );
486 getValidacaoCampos().append(" return false; \n");
487 getValidacaoCampos().append( " } \n");
488
489 } else {
490 getValidacaoCampos().append("if(form.").append(objetoDemanda.iGetNome()).append(".value != \"\" && !validaData(form.").append(objetoDemanda.iGetNome()).append(",false,true,true)){\n");
491 getValidacaoCampos().append( " alert(\"Valor inválido para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
492 getValidacaoCampos().append(" return false; \n");
493 getValidacaoCampos().append( " } \n");
494 }
495
496 }
497
498
499
500
501
502
503
504
505
506 private void geraValidacaoMoeda(ObjetoDemanda objetoDemanda){
507 getValidacaoCampos().append("if(document.form.").append(objetoDemanda.iGetNome()).append(".value != \"\" && !isValidMoeda(form.").append(objetoDemanda.iGetNome()).append(".value)){\n");
508 getValidacaoCampos().append( " alert(\"Valor inválido para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
509 getValidacaoCampos().append(" return false; \n");
510 getValidacaoCampos().append( " } \n");
511 }
512
513
514
515
516
517
518
519
520
521 private void geraValidacaoNumeroDecimal(ObjetoDemanda objetoDemanda){
522
523
524 getValidacaoCampos().append("if(document.form.").append(objetoDemanda.iGetNome()).append(".value != \"\" && (form.").append(objetoDemanda.iGetNome()).append(".value).length > 9){\n");
525 getValidacaoCampos().append( " alert(\"Valor de no máximo 9 digitos para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
526 getValidacaoCampos().append( " document.form.").append(objetoDemanda.iGetNome()).append(".focus();\n" );
527 getValidacaoCampos().append(" return false; \n");
528 getValidacaoCampos().append( " } \n");
529
530
531 getValidacaoCampos().append("if(document.form.").append(objetoDemanda.iGetNome()).append(".value != \"\" && !validaDecimal(form.").append(objetoDemanda.iGetNome()).append(".value)){\n");
532 getValidacaoCampos().append( " alert(\"Valor inválido para o campo ").append(objetoDemanda.iGetLabel()).append("\");\n" );
533 getValidacaoCampos().append( " document.form.").append(objetoDemanda.iGetNome()).append(".focus();\n" );
534 getValidacaoCampos().append(" return false; \n");
535 getValidacaoCampos().append( " } \n");
536 }
537
538
539
540
541
542
543
544
545
546 private void geraValidacaoAtributoLivre(ObjetoDemanda objetoDemanda){
547 if (!telaFiltro && (acao.equals("alterar") || acao.equals("incluir")
548 || acao.equals("classificar") )){
549 if(objetoDemanda.iGetObrigatorio().booleanValue() == true &&
550 objetoDemanda.iGetGrupoAtributosLivres() != null &&
551 objetoDemanda.iGetGrupoAtributosLivres().getSisAtributoSatbs().size() > 0){
552
553 SisGrupoAtributoSga grupoAtributo = objetoDemanda.iGetGrupoAtributosLivres();
554
555
556 if (grupoAtributo != null && grupoAtributo.getIndAtivoSga().equals("S") &&
557 grupoAtributo.getSisAtributoSatbs() != null && grupoAtributo.getSisAtributoSatbs().size() > 0){
558
559 getValidacaoCampos().append("/**** Início Validação Atributo Livre " + objetoDemanda.iGetNome() + " ****/");
560
561 if ( sisGrupoAtributoDao==null) {
562 getValidacaoCampos().append((new SisGrupoAtributoDao(null)).getValidacaoAtributo(grupoAtributo, objetoDemanda.iGetLabel()));
563 } else {
564 getValidacaoCampos().append(sisGrupoAtributoDao.getValidacaoAtributo(grupoAtributo, objetoDemanda.iGetLabel()));
565 }
566
567 getValidacaoCampos().append("/**** Fim Validação Atributo Livre " + objetoDemanda.iGetNome() + " ****/");
568 }
569 }
570 } else if (telaFiltro){
571 SisGrupoAtributoSga grupoAtributo = objetoDemanda.iGetGrupoAtributosLivres();
572 if (grupoAtributo != null && grupoAtributo.getIndAtivoSga().equals("S") &&
573 grupoAtributo.getSisAtributoSatbs() != null && grupoAtributo.getSisAtributoSatbs().size() > 0){
574 if (grupoAtributo.getSisTipoExibicGrupoSteg().getCodSteg().intValue() == Input.VALIDACAO){
575 if (grupoAtributo.getSisAtributoSatbs() != null && grupoAtributo.getSisAtributoSatbs().iterator().hasNext()){
576 SisAtributoSatb sisAtributoSatb = (SisAtributoSatb) grupoAtributo.getSisAtributoSatbs().iterator().next();
577 if (sisAtributoSatb.getAtribInfCompSatb().equals("dataScript")) {
578 getValidacaoCampos().append(validacaoIntervaloDataAtributoLivre(objetoDemanda));
579 } else if (sisAtributoSatb.getAtribInfCompSatb().equals("numeroInteiroScript") ||
580 sisAtributoSatb.getAtribInfCompSatb().equals("numeroRealScript") ||
581 sisAtributoSatb.getAtribInfCompSatb().equals("valorMonetarioScript")){
582 getValidacaoCampos().append(validacaoIntervaloNumeroAtributoLivre(objetoDemanda));
583 }
584 }
585 }
586 }
587 }
588 }
589
590
591
592
593
594
595 public String validacaoIntervaloDataAtributoLivre(ObjetoDemanda objetoDemanda){
596 StringBuffer validacao = new StringBuffer();
597 validacao.append("if(DataMenor(form.a").append(objetoDemanda.iGetGrupoAtributosLivres().getCodSga() + "_Fim").append(".value, form.a").append(objetoDemanda.iGetGrupoAtributosLivres().getCodSga() + "_Inicio").append(".value)){\n");
598 validacao.append( " alert(\"").append(objetoDemanda.iGetLabel()).append(" inicial maior que final").append("\");\n" );
599 validacao.append(" return false; \n");
600 validacao.append( " } \n");
601 return validacao.toString();
602 }
603
604
605
606
607
608
609 public String validacaoIntervaloNumeroAtributoLivre(ObjetoDemanda objetoDemanda){
610 StringBuffer validacao = new StringBuffer();
611 validacao.append("if(form.a").append(objetoDemanda.iGetGrupoAtributosLivres().getCodSga() + "_Fim").append(".value < form.a").append(objetoDemanda.iGetGrupoAtributosLivres().getCodSga() + "_Inicio").append(".value){\n");
612 validacao.append( " alert(\"").append(objetoDemanda.iGetLabel()).append(" inicial maior que final").append("\");\n" );
613 validacao.append(" return false; \n");
614 validacao.append( " } \n");
615 return validacao.toString();
616 }
617
618 public SisGrupoAtributoDao getSisGrupoAtributoDao() {
619 return sisGrupoAtributoDao;
620 }
621
622
623 public void setSisGrupoAtributoDao(SisGrupoAtributoDao sisGrupoAtributoDao) {
624 this.sisGrupoAtributoDao = sisGrupoAtributoDao;
625 }
626
627
628
629
630
631
632
633
634
635
636 public Collection getAtributos() {
637 return atributos;
638 }
639
640
641
642
643
644
645
646
647
648 public void setAtributos(Collection atributos) {
649 this.atributos = atributos;
650 }
651
652
653
654
655
656
657
658
659
660 public StringBuffer getRetornoPesquisa() {
661 return retornoPesquisa;
662 }
663
664
665
666
667
668
669
670
671
672 public void setRetornoPesquisa(StringBuffer retornoPesquisa) {
673 this.retornoPesquisa = retornoPesquisa;
674 }
675
676
677
678
679
680
681
682
683
684 public StringBuffer getValidacaoCampos() {
685 return validacaoCampos;
686 }
687
688
689
690
691
692
693
694
695
696 public void setValidacaoCampos(StringBuffer validacaoCampos) {
697 this.validacaoCampos = validacaoCampos;
698 }
699
700
701
702
703
704
705
706
707
708
709 public int doEndTag() throws JspException {
710 return Tag.EVAL_PAGE;
711 }
712
713
714
715
716
717
718
719
720
721 public void setPageContext(PageContext arg0) {
722 this.page = arg0;
723 }
724
725
726
727
728
729
730
731
732
733 public void setParent(Tag arg0) {
734 }
735
736
737
738
739
740
741
742
743
744 public Tag getParent() {
745 return null;
746 }
747
748
749
750
751
752
753
754
755
756 public PageContext getPage() {
757 return page;
758 }
759
760
761
762
763
764
765
766
767
768 public void setPage(PageContext page) {
769 this.page = page;
770 }
771
772
773
774
775
776
777 public void release() {
778
779 }
780
781 public String getAcao() {
782 return acao;
783 }
784
785
786 public void setAcao(String acao) {
787 this.acao = acao;
788 }
789
790
791 public Boolean getTelaFiltro() {
792 return telaFiltro;
793 }
794
795
796 public void setTelaFiltro(Boolean telaFiltro) {
797 this.telaFiltro = telaFiltro;
798 }
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823 }