1
2
3
4 package ecar.dao;
5
6 import java.util.ArrayList;
7 import java.util.Iterator;
8 import java.util.List;
9 import java.util.Set;
10
11 import javax.servlet.http.HttpServletRequest;
12
13 import comum.database.Dao;
14
15 import ecar.exception.ECARException;
16 import ecar.pojo.AtributoDemandaAtbdem;
17 import ecar.pojo.ObjetoDemanda;
18 import ecar.pojo.SisAtributoSatb;
19 import ecar.pojo.SisGrupoAtributoSga;
20 import ecar.pojo.TipoAcompanhamentoTa;
21 import ecar.util.Dominios;
22
23
24
25
26
27 public class SisGrupoAtributoDao extends Dao {
28
29
30
31 public SisGrupoAtributoDao(HttpServletRequest request) {
32 super();
33 this.request = request;
34 }
35
36
37
38
39
40 public SisGrupoAtributoDao() {
41 super();
42 }
43
44
45
46
47
48
49
50
51 public List getGruposAtributosCadastro(String indTabelaUso) throws ECARException {
52 SisGrupoAtributoSga sisGrupoAtributo = new SisGrupoAtributoSga();
53 sisGrupoAtributo.setIndAtivoSga("S");
54 sisGrupoAtributo.setIndSistemaSga("N");
55 if ("U".equals(indTabelaUso)) {
56 sisGrupoAtributo.setIndCadUsuSga("S");
57 }
58 else {
59 sisGrupoAtributo.setIndTabelaUsoSga(indTabelaUso);
60 }
61 return this.pesquisar(sisGrupoAtributo, new String[] { "seqApresentacaoSga", "asc" });
62 }
63
64
65
66
67
68
69
70
71 public List getGruposAtributosCadastroUsuarioSite() throws ECARException {
72 SisGrupoAtributoSga sisGrupoAtributo = new SisGrupoAtributoSga();
73 sisGrupoAtributo.setIndAtivoSga("S");
74 sisGrupoAtributo.setIndSistemaSga("N");
75 sisGrupoAtributo.setIndCadSiteSga("S");
76 return this.pesquisar(sisGrupoAtributo, new String[] { "seqApresentacaoSga", "asc" });
77 }
78
79
80
81
82
83
84
85
86 public List getAtributosOrdenados(SisGrupoAtributoSga sisGrupoAtributo) throws ECARException {
87 List retorno = new ArrayList();
88 if (sisGrupoAtributo.getSisTipoOrdenacaoSto() != null) {
89 if (sisGrupoAtributo.getSisTipoOrdenacaoSto().getCodSto().toString().equals(SisTipoOrdenacaoDao.CODIGO_ASC))
90 retorno = this.ordenaSet(sisGrupoAtributo.getSisAtributoSatbs(), "this.codSatb", "asc");
91 if (sisGrupoAtributo.getSisTipoOrdenacaoSto().getCodSto().toString().equals(SisTipoOrdenacaoDao.CODIGO_DESC))
92 retorno = this.ordenaSet(sisGrupoAtributo.getSisAtributoSatbs(), "this.codSatb", "desc");
93 if (sisGrupoAtributo.getSisTipoOrdenacaoSto().getCodSto().toString().equals(SisTipoOrdenacaoDao.DESCRICAO_ASC))
94 retorno = this.ordenaSet(sisGrupoAtributo.getSisAtributoSatbs(), "this.descricaoSatb", "asc");
95 if (sisGrupoAtributo.getSisTipoOrdenacaoSto().getCodSto().toString().equals(SisTipoOrdenacaoDao.DESCRICAO_DESC))
96 retorno = this.ordenaSet(sisGrupoAtributo.getSisAtributoSatbs(), "this.descricaoSatb", "desc");
97 if (sisGrupoAtributo.getSisTipoOrdenacaoSto().getCodSto().toString().equals(SisTipoOrdenacaoDao.INF_COMPLEMENTAR_ASC))
98 retorno = this.ordenaSet(sisGrupoAtributo.getSisAtributoSatbs(), "this.atribInfCompSatb", "asc");
99 if (sisGrupoAtributo.getSisTipoOrdenacaoSto().getCodSto().toString().equals(SisTipoOrdenacaoDao.INF_COMPLEMENTAR_DESC))
100 retorno = this.ordenaSet(sisGrupoAtributo.getSisAtributoSatbs(), "this.atribInfCompSatb", "desc");
101
102 }
103 else {
104 retorno.addAll(sisGrupoAtributo.getSisAtributoSatbs());
105 }
106 return retorno;
107 }
108
109 public void excluir(SisGrupoAtributoSga sisGrupoAtributo) throws ECARException {
110 try {
111 boolean excluir = true;
112 if (contar(sisGrupoAtributo.getSegmentoSgts()) > 0) {
113 excluir = false;
114 throw new ECARException("sisGrupoAtributo.exclusao.erro.segmentoSgts");
115 }
116 if (contar(sisGrupoAtributo.getSisAtributoSatbs()) > 0) {
117 excluir = false;
118 throw new ECARException("sisGrupoAtributo.exclusao.erro.sisAtributoSatbs");
119 }
120 if (contar(sisGrupoAtributo.getConfiguracaoCfgsByCodSgaGrAtrPgIni()) > 0) {
121 excluir = false;
122 throw new ECARException("sisGrupoAtributo.exclusao.erro.configuracaoCfgsByCodSgaGrAtrPgIni");
123 }
124 if (contar(sisGrupoAtributo.getConfiguracaoCfgsByCodSgaGrAtrNvPlan()) > 0) {
125 excluir = false;
126 throw new ECARException("sisGrupoAtributo.exclusao.erro.configuracaoCfgsByCodSgaGrAtrNvPlan");
127 }
128 if (contar(sisGrupoAtributo.getConfiguracaoCfgsByCodSgaGrAtrClAcesso()) > 0) {
129 excluir = false;
130 throw new ECARException("sisGrupoAtributo.exclusao.erro.configuracaoCfgsByCodSgaGrAtrClAcesso");
131 }
132 if (contar(sisGrupoAtributo.getConfiguracaoCfgsByCodSgaGrAtrLeiCapa()) > 0) {
133 excluir = false;
134 throw new ECARException("sisGrupoAtributo.exclusao.erro.configuracaoCfgsByCodSgaGrAtrLeiCapa");
135 }
136 if (contar(sisGrupoAtributo.getConfiguracaoCfgsByCodSgaGrAtrTpAcesso()) > 0) {
137 excluir = false;
138 throw new ECARException("sisGrupoAtributo.exclusao.erro.configuracaoCfgsByCodSgaGrAtrTpAcesso");
139 }
140
141
142 if (sisGrupoAtributo.getIndTabelaUsoSga().equals("D")) {
143
144 excluir = validaExclusaoDemanda(sisGrupoAtributo);
145
146 }
147
148 if (excluir)
149 super.excluir(sisGrupoAtributo);
150
151 } catch (ECARException e) {
152 this.logger.error(e);
153 throw e;
154 }
155 }
156
157
158
159
160
161
162 public Set getClassesDeAcesso() throws ECARException {
163
164 SisGrupoAtributoSga grupoAtributosClasseAcesso = new ConfiguracaoDao(request).getConfiguracao().getSisGrupoAtributoSgaByCodSgaGrAtrClAcesso();
165 Set lAtributosClasseAcesso = grupoAtributosClasseAcesso.getSisAtributoSatbs();
166
167 return lAtributosClasseAcesso;
168 }
169
170
171
172
173
174
175
176 public String getValidacoesAtributos(List atributosObrigatorios) {
177 return getValidacoesAtributos(atributosObrigatorios, false);
178 }
179
180
181
182
183
184
185
186 public String getValidacoesAtributos(List atributosObrigatorios, boolean cadastroUsuario) {
187 StringBuilder script = new StringBuilder("");
188 Iterator it = atributosObrigatorios.iterator();
189 while (it.hasNext()) {
190 SisGrupoAtributoSga grupoAtributo = (SisGrupoAtributoSga) it.next();
191 script.append(this.getValidacaoAtributo(grupoAtributo, cadastroUsuario));
192 }
193 return script.toString();
194 }
195
196 public String getValidacaoAtributo(SisGrupoAtributoSga grupoAtributo) {
197 return getValidacaoAtributo(grupoAtributo, false);
198 }
199
200 public String getValidacaoAtributo(SisGrupoAtributoSga grupoAtributo, boolean cadastroUsuario) {
201 StringBuilder script = new StringBuilder("");
202
203 boolean possuiAtributoAtivo = false;
204
205 for (int i = 0; i < grupoAtributo.getSisAtributoSatbs().size(); i++) {
206 if (((SisAtributoSatb) grupoAtributo.getSisAtributoSatbs().toArray()[i]).getIndAtivoSatb().equals("S")) {
207 possuiAtributoAtivo = true;
208 }
209 }
210
211 String tipoExibicao = "";
212 if (cadastroUsuario && grupoAtributo.getSisTipoExibicGrupoCadUsuSteg() != null) {
213 tipoExibicao = grupoAtributo.getSisTipoExibicGrupoCadUsuSteg().getCodSteg().toString();
214 }
215 else {
216 tipoExibicao = grupoAtributo.getSisTipoExibicGrupoSteg().getCodSteg().toString();
217 }
218
219 if (possuiAtributoAtivo) {
220
221 if (SisTipoExibicGrupoDao.CHECKBOX.equals(tipoExibicao)) {
222
223 script.append(" numChecks = verificaChecks(form, \"").append("a").append(grupoAtributo.getCodSga()).append("\");\n").append("encontrouChecked = false;\n").append("if(numChecks > 1){\n").append("for(i = 0; i < form.").append("a").append(grupoAtributo.getCodSga()).append(".length; i++){\n").append("if(form.").append("a").append(grupoAtributo.getCodSga()).append("[i].checked == true){\n").append("encontrouChecked = true;").append("}\n").append("}\n").append("}else{").append("if(form.").append("a").append(grupoAtributo.getCodSga()).append(".checked == true){\n").append("encontrouChecked = true;}\n").append("}\n").append("if(!encontrouChecked){\n").append("alert(\"Obrigatória a seleção do Campo ").append(grupoAtributo.getDescricaoSga()).append("\");\n").append("return false;\n").append("}\n");
224 }
225 if (SisTipoExibicGrupoDao.COMBOBOX.equals(tipoExibicao) || SisTipoExibicGrupoDao.LISTBOX.equals(tipoExibicao) || SisTipoExibicGrupoDao.TEXTAREA.equals(tipoExibicao) || SisTipoExibicGrupoDao.TEXT.equals(tipoExibicao)) {
226
227 script.append("if(");
228 script.append(" form.a").append(grupoAtributo.getCodSga()).append("!= null &&");
229 script.append(" !validaString(form.").append("a").append(grupoAtributo.getCodSga()).append(", \"").append(grupoAtributo.getDescricaoSga()).append("\", true)){ \n");
230 script.append("return false;\n");
231 script.append("}\n");
232 }
233 if (SisTipoExibicGrupoDao.RADIO_BUTTON.equals(tipoExibicao)) {
234
235
236 if (grupoAtributo.getSisAtributoSatbs().size() == 1) {
237 script.append("if(");
238 script.append(" form.a").append(grupoAtributo.getCodSga()).append("!= null &&");
239 script.append(" form.a").append(grupoAtributo.getCodSga()).append(".checked == false ");
240 script.append("){\n").append("alert(\"Obrigatória a seleção do Campo ").append(grupoAtributo.getDescricaoSga()).append("\");\n").append("return false;\n").append("}");
241
242 }
243 else {
244
245 script.append("if(");
246 for (int i = 0; i < grupoAtributo.getSisAtributoSatbs().size(); i++) {
247 if (i > 0)
248 script.append("&&");
249 script.append(" form.a").append(grupoAtributo.getCodSga()).append("[").append(i).append("] != null &&");
250 script.append(" form.a").append(grupoAtributo.getCodSga()).append("[").append(i).append("].checked == false ");
251 }
252 script.append("){\n").append("alert(\"Obrigatória a seleção do Campo ").append(grupoAtributo.getDescricaoSga()).append("\");\n").append("return false;\n").append("}");
253
254 }
255 }
256 if (SisTipoExibicGrupoDao.MULTITEXTO.equals(tipoExibicao)) {
257 script.append("if(");
258 for (int i = 0; i < grupoAtributo.getSisAtributoSatbs().size(); i++) {
259 SisAtributoSatb sisAtributoSatb = (SisAtributoSatb) grupoAtributo.getSisAtributoSatbs().toArray()[i];
260 if (i > 0)
261 script.append(" || ");
262 script.append(" Trim(form.a").append(grupoAtributo.getCodSga()).append("_").append(sisAtributoSatb.getCodSatb().toString()).append(".value)==\"\"");
263 }
264 script.append("){\n").append("alert(\"Obrigatório o preenchimento de todas as linhas do campo ").append(grupoAtributo.getDescricaoSga()).append("\");\n").append("return false;\n").append("}");
265 }
266 if (SisTipoExibicGrupoDao.IMAGEM.equals(tipoExibicao)) {
267 String path = "";
268 String imageDefault = "";
269 if (request != null) {
270 path = request.getContextPath();
271 imageDefault = "/images/ImagemIndisponivel.gif";
272 }
273 script.append(" if(!validaImage(form.").append("a").append(grupoAtributo.getCodSga()).append(", \"").append(grupoAtributo.getDescricaoSga()).append("\", true")
274
275 .append(", \"").append(path + imageDefault + "\")){ \n");
276 script.append("return false;\n");
277 script.append("}\n");
278 }
279 if (SisTipoExibicGrupoDao.VALIDACAO.equals(tipoExibicao)) {
280 script.append(" if(!validaString(form.").append("a").append(grupoAtributo.getCodSga()).append(", \"").append(grupoAtributo.getDescricaoSga()).append("\", true)){ \n");
281 script.append("return false;\n");
282 script.append("}\n");
283 }
284 }
285
286 return script.toString();
287 }
288
289 public String getValidacaoAtributo(SisGrupoAtributoSga grupoAtributo, String novoLabelGrupo) {
290 return getValidacaoAtributo(grupoAtributo, novoLabelGrupo, false);
291 }
292
293
294
295
296 public String getValidacaoAtributo(SisGrupoAtributoSga grupoAtributo, String novoLabelGrupo, boolean cadastroUsuario) {
297 StringBuilder script = new StringBuilder("");
298
299 boolean possuiAtributoAtivo = false;
300
301 for (int i = 0; i < grupoAtributo.getSisAtributoSatbs().size(); i++) {
302 if (((SisAtributoSatb) grupoAtributo.getSisAtributoSatbs().toArray()[i]).getIndAtivoSatb().equals("S")) {
303 possuiAtributoAtivo = true;
304 }
305 }
306
307 String tipoExibicao = "";
308 if (cadastroUsuario && grupoAtributo.getSisTipoExibicGrupoCadUsuSteg() != null) {
309 tipoExibicao = grupoAtributo.getSisTipoExibicGrupoCadUsuSteg().getCodSteg().toString();
310 }
311 else {
312 tipoExibicao = grupoAtributo.getSisTipoExibicGrupoSteg().getCodSteg().toString();
313 }
314
315 if (possuiAtributoAtivo) {
316
317 if (SisTipoExibicGrupoDao.CHECKBOX.equals(tipoExibicao)) {
318
319 script.append(" numChecks = verificaChecks(form, \"").append("a").append(grupoAtributo.getCodSga()).append("\");\n").append("encontrouChecked = false;\n").append("if(numChecks > 1){\n").append("for(i = 0; i < form.").append("a").append(grupoAtributo.getCodSga()).append(".length; i++){\n").append("if(form.").append("a").append(grupoAtributo.getCodSga()).append("[i].checked == true){\n").append("encontrouChecked = true;").append("}\n").append("}\n").append("}else{").append("if(form.").append("a").append(grupoAtributo.getCodSga()).append(".checked == true){\n").append("encontrouChecked = true;}\n").append("}\n").append("if(!encontrouChecked){\n").append("alert(\"Obrigatória a seleção do Campo ").append(novoLabelGrupo).append("\");\n").append("return false;\n").append("}\n");
320
321 }
322 if (SisTipoExibicGrupoDao.COMBOBOX.equals(tipoExibicao) || SisTipoExibicGrupoDao.LISTBOX.equals(tipoExibicao) || SisTipoExibicGrupoDao.TEXTAREA.equals(tipoExibicao) || SisTipoExibicGrupoDao.TEXT.equals(tipoExibicao)) {
323
324
325 if (grupoAtributo.getIndAtivoSga().equals("S")) {
326 script.append(" if(!validaString(form.").append("a").append(grupoAtributo.getCodSga()).append(", \"").append(novoLabelGrupo).append("\", true)){ \n");
327 script.append("return false;\n");
328 script.append("}\n");
329 }
330
331 }
332 if (SisTipoExibicGrupoDao.RADIO_BUTTON.equals(tipoExibicao)) {
333 script.append("if(");
334 if (grupoAtributo.getSisAtributoSatbs().size() == 1) {
335 script.append(" form.a").append(grupoAtributo.getCodSga()).append(".checked == false ").append("){\n").append("alert(\"Obrigatória a seleção do Campo ").append(novoLabelGrupo).append("\");\n").append("return false;\n").append("}");
336 }
337 else {
338
339 for (int i = 0; i < grupoAtributo.getSisAtributoSatbs().size(); i++) {
340
341 if (i > 0)
342 script.append("&&");
343 script.append(" form.a").append(grupoAtributo.getCodSga()).append("[").append(i).append("].checked == false ");
344
345 }
346
347 script.append("){\n").append("alert(\"Obrigatória a seleção do Campo ").append(novoLabelGrupo).append("\");\n").append("return false;\n").append("}");
348
349 }
350 }
351 if (SisTipoExibicGrupoDao.MULTITEXTO.equals(tipoExibicao)) {
352
353 script.append("if(");
354 for (int i = 0; i < grupoAtributo.getSisAtributoSatbs().size(); i++) {
355 SisAtributoSatb sisAtributoSatb = (SisAtributoSatb) grupoAtributo.getSisAtributoSatbs().toArray()[i];
356
357 if (i > 0)
358 script.append(" || ");
359 script.append(" Trim(form.a").append(grupoAtributo.getCodSga()).append("_").append(sisAtributoSatb.getCodSatb().toString()).append(".value)==\"\"");
360
361 }
362
363 script.append("){\n").append("alert(\"Obrigatório o preenchimento de todas as linhas do campo ").append(novoLabelGrupo).append("\");\n").append("return false;\n").append("}");
364
365 }
366 if (SisTipoExibicGrupoDao.IMAGEM.equals(tipoExibicao)) {
367 String path = "";
368 String imageDefault = "";
369 if (request != null) {
370 path = request.getContextPath();
371 imageDefault = "/images/ImagemIndisponivel.gif";
372 }
373
374 script.append(" if(!validaImage(form.").append("a").append(grupoAtributo.getCodSga()).append(", \"").append(novoLabelGrupo).append("\", true")
375
376 .append(", \"").append(path + imageDefault + "\")){ \n");
377 script.append("return false;\n");
378 script.append("}\n");
379
380 }
381 if (SisTipoExibicGrupoDao.VALIDACAO.equals(tipoExibicao)) {
382
383 script.append(" if(!validaString(form.").append("a").append(grupoAtributo.getCodSga()).append(", \"").append(novoLabelGrupo).append("\", true)){ \n");
384 script.append("return false;\n");
385 script.append("}\n");
386
387 }
388 }
389
390 return script.toString();
391 }
392
393
394
395
396
397
398 public boolean validaExclusaoDemanda(SisGrupoAtributoSga sisGrupoAtributo) throws ECARException {
399
400 boolean excluir = false;
401
402 AtributoDemandaAtbdem atributoDemandaAtbdem = new AtributoDemandaAtbdem();
403 atributoDemandaAtbdem.setSisGrupoAtributoSga(sisGrupoAtributo);
404
405
406
407 if (this.pesquisar(atributoDemandaAtbdem, null).size() > 0) {
408 throw new ECARException("sisGrupoAtributo.exclusao.erro.atributoAssociadoDemanda");
409 }
410 else {
411 excluir = true;
412 }
413
414 return excluir;
415 }
416
417 }