1
2
3
4 package ecar.dao;
5
6 import java.math.BigDecimal;
7 import java.util.ArrayList;
8 import java.util.Collection;
9 import java.util.Iterator;
10 import java.util.List;
11
12 import javax.servlet.http.HttpServletRequest;
13
14 import org.hibernate.HibernateException;
15 import org.hibernate.Query;
16 import org.hibernate.Transaction;
17
18 import comum.database.Dao;
19 import comum.util.Data;
20 import comum.util.Pagina;
21 import comum.util.Util;
22
23 import ecar.exception.ECARException;
24 import ecar.pojo.EfIettFonTotRevEfieftr;
25 import ecar.pojo.EfIettFonTotRevEfieftrPK;
26 import ecar.pojo.EfIettFonteTotEfieft;
27 import ecar.pojo.EfIettFonteTotEfieftPK;
28 import ecar.pojo.EfIettPrevisaoRevEfiepr;
29 import ecar.pojo.EfItemEstPrevisaoEfiep;
30 import ecar.pojo.EspecieEsp;
31 import ecar.pojo.ExercicioExe;
32 import ecar.pojo.FonteFon;
33 import ecar.pojo.FonteRecursoFonr;
34 import ecar.pojo.ItemEstruturaIett;
35 import ecar.pojo.ItemEstruturarevisaoIettrev;
36 import ecar.pojo.RecursoRec;
37
38
39
40
41 public class ItemEstruturaFonteRecursoRevDao extends Dao {
42
43 public ItemEstruturaFonteRecursoRevDao(HttpServletRequest request) {
44 super();
45 this.request = request;
46 }
47
48
49
50
51
52
53
54 public List getAtivos(ItemEstruturarevisaoIettrev itemEstrutura) throws ECARException {
55 try {
56
57
58
59
60
61
62
63 Query q = getSession().createQuery(" select fonteRecurso from ecar.pojo.EfIettFonTotRevEfieftr fonteRecurso " + "where fonteRecurso.itemEstruturarevisaoIettrev.codIettrev = ? and fonteRecurso.indAtivoEfieftr = 'S' " + "order by fonteRecurso.fonteRecursoFonr.nomeFonr asc");
64 q.setLong(0, itemEstrutura.getCodIettrev().longValue());
65 return q.list();
66 } catch (HibernateException e) {
67 this.logger.error(e);
68 throw new ECARException("erro.hibernateException");
69 }
70 }
71
72
73
74
75
76
77
78
79 public boolean verificaPossibilidadeInclusao(ItemEstruturarevisaoIettrev itemEstrutura) throws ECARException {
80
81
82
83
84
85
86
87
88
89
90 if (itemEstrutura.getEfIettFonTotRevEfieftrs().size() > 0)
91 return true;
92
93 ItemEstruturarevisaoIettrevDAO itemDao = new ItemEstruturarevisaoIettrevDAO(request);
94
95 List lista = new ArrayList();
96 lista.addAll(itemDao.getAscendentes(itemEstrutura));
97 lista.addAll(itemDao.getDescendentes(itemEstrutura, true));
98
99 Iterator it = lista.iterator();
100
101 while (it.hasNext()) {
102 ItemEstruturaIett itemLista = (ItemEstruturaIett) it.next();
103
104 if (itemLista.getEfIettFonteTotEfiefts() != null && itemLista.getEfIettFonteTotEfiefts().size() > 0)
105 return false;
106 }
107
108 return true;
109 }
110
111
112
113
114
115
116
117
118
119 public EfIettFonteTotEfieft buscarOLD(Long codItemEstrutura, Long codFonteRecurso, Long codExercicio) throws ECARException {
120 EfIettFonteTotEfieftPK comp_id = new EfIettFonteTotEfieftPK();
121 comp_id.setCodFonr(codFonteRecurso);
122
123 comp_id.setCodIett(codItemEstrutura);
124 return (EfIettFonteTotEfieft) super.buscar(EfIettFonteTotEfieft.class, comp_id);
125 }
126
127
128
129
130
131
132
133
134
135 public EfIettFonTotRevEfieftr buscar(Long codItemEstrutura, Long codFonteRecurso) throws ECARException {
136 EfIettFonTotRevEfieftrPK comp_id = new EfIettFonTotRevEfieftrPK();
137 comp_id.setCodFonr(codFonteRecurso);
138 comp_id.setCodIettrev(codItemEstrutura);
139 return (EfIettFonTotRevEfieftr) super.buscar(EfIettFonTotRevEfieftr.class, comp_id);
140 }
141
142
143
144
145
146
147
148
149
150 public List getFontesRecursosByExercicio(ItemEstruturarevisaoIettrev itemEstrutura, ExercicioExe exercicio) throws ECARException {
151 List retorno = new ArrayList();
152 EfIettFonTotRevEfieftr fonte = new EfIettFonTotRevEfieftr();
153 fonte.setItemEstruturarevisaoIettrev(itemEstrutura);
154
155 fonte.setIndAtivoEfieftr("S");
156 List ieFontes = super.pesquisar(fonte, null);
157 if (ieFontes != null) {
158 Iterator it = ieFontes.iterator();
159 while (it.hasNext()) {
160 retorno.add(((EfIettFonTotRevEfieftr) it.next()).getFonteRecursoFonr());
161 }
162 }
163 return retorno;
164 }
165
166
167
168
169
170
171
172 public List getFontesRecursosByExercicio(Long itemEstrutura, Long exercicio) throws ECARException {
173 ItemEstruturarevisaoIettrev item = (ItemEstruturarevisaoIettrev) this.buscar(ItemEstruturarevisaoIettrev.class, itemEstrutura);
174 ExercicioExe exercicioExe = (ExercicioExe) this.buscar(ExercicioExe.class, exercicio);
175 return this.getFontesRecursosByExercicio(item, exercicioExe);
176 }
177
178
179
180
181
182
183
184
185 public void setItemEstruturaFonteRecursoOLD(HttpServletRequest request, EfIettFonteTotEfieft itemEstruturaFonteRecurso) throws ECARException {
186
187
188
189
190
191 itemEstruturaFonteRecurso.setDataValorEfieft(Pagina.getParamDataBanco(request, "dataValorEfieft"));
192
193
194
195 itemEstruturaFonteRecurso.setFonteRecursoFonr((FonteRecursoFonr) super.buscar(FonteRecursoFonr.class, Long.valueOf(Pagina.getParamStr(request, "codFonr"))));
196 itemEstruturaFonteRecurso.setIndAtivoEfieft("S");
197 itemEstruturaFonteRecurso.setValorEfieft(new BigDecimal(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, "valorEfieft"))).doubleValue()));
198 itemEstruturaFonteRecurso.setItemEstruturaIett((ItemEstruturaIett) super.buscar(ItemEstruturaIett.class, Long.valueOf(Pagina.getParamStr(request, "codIett"))));
199 }
200
201
202
203
204
205
206
207
208 public void setItemEstruturaFonteRecurso(HttpServletRequest request, EfIettFonTotRevEfieftr itemEstruturaFonteRecurso) throws ECARException {
209 itemEstruturaFonteRecurso.setDataValorEfieftr(Pagina.getParamDataBanco(request, "dataValorEfieft"));
210 itemEstruturaFonteRecurso.setFonteRecursoFonr((FonteRecursoFonr) super.buscar(FonteRecursoFonr.class, Long.valueOf(Pagina.getParamStr(request, "codFonr"))));
211 itemEstruturaFonteRecurso.setItemEstruturarevisaoIettrev((ItemEstruturarevisaoIettrev) super.buscar(ItemEstruturarevisaoIettrev.class, Integer.valueOf(Pagina.getParamStr(request, "codIettrev"))));
212 }
213
214
215
216
217
218
219
220
221 public List setListaRecursoOLD(HttpServletRequest request, EfIettFonteTotEfieft itemEstruturaFonteRecurso) throws ECARException {
222 List lista = new ArrayList();
223
224 ExercicioDao exercicioDao = new ExercicioDao(request);
225 Collection listaExercicios = exercicioDao.getExerciciosValidos(itemEstruturaFonteRecurso.getItemEstruturaIett().getCodIett());
226 Iterator itExerc = listaExercicios.iterator();
227
228 while (itExerc.hasNext()) {
229 ExercicioExe exercicio = (ExercicioExe) itExerc.next();
230
231 if (!"".equals(Pagina.getParamStr(request, "recursoRec" + exercicio.getCodExe().toString()))) {
232 EfItemEstPrevisaoEfiep recurso = new EfItemEstPrevisaoEfiep();
233
234 recurso.setExercicioExe(exercicio);
235 recurso.setFonteRecursoFonr(itemEstruturaFonteRecurso.getFonteRecursoFonr());
236 recurso.setItemEstruturaIett(itemEstruturaFonteRecurso.getItemEstruturaIett());
237 recurso.setRecursoRec((RecursoRec) super.buscar(RecursoRec.class, Long.valueOf(Pagina.getParamStr(request, "recursoRec" + exercicio.getCodExe().toString()))));
238 recurso.setValorAprovadoEfiep(new BigDecimal(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, "valorAprovadoEfiep" + exercicio.getCodExe().toString()))).doubleValue()));
239 recurso.setValorRevisadoEfiep(new BigDecimal(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, "valorRevisadoEfiep" + exercicio.getCodExe().toString()))).doubleValue()));
240
241 recurso.setIndAtivoEfiep("S");
242 recurso.setDataInclusaoEfiep(Data.getDataAtual());
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267 lista.add(recurso);
268 }
269 }
270
271 return lista;
272 }
273
274
275
276
277
278
279
280
281 public List setListaRecurso(HttpServletRequest request, EfIettFonTotRevEfieftr itemEstruturaFonteRecurso, int numRecursos) throws ECARException {
282 List lista = new ArrayList();
283
284 ExercicioDao exercicioDao = new ExercicioDao(request);
285 Collection listaExercicios = exercicioDao.getExerciciosValidos(itemEstruturaFonteRecurso.getItemEstruturarevisaoIettrev().getItemEstruturaIettrev().getCodIett());
286 String nomeCombo = "";
287 String nomeCampoVlAprov = "";
288 String nomeCampoVlRev = "";
289
290 for (int i = 0; i < numRecursos; i++) {
291 nomeCombo = "recursoRec" + i;
292
293 Iterator itExerc = listaExercicios.iterator();
294
295 while (itExerc.hasNext()) {
296 ExercicioExe exercicio = (ExercicioExe) itExerc.next();
297
298 nomeCampoVlRev = "valorRevisadoEfiep" + i + "e" + exercicio.getCodExe().toString();
299 nomeCampoVlAprov = "valorAprovadoEfiep" + i + "e" + exercicio.getCodExe().toString();
300
301 if (!"".equals(Pagina.getParamStr(request, nomeCampoVlRev)) && !"".equals(Pagina.getParamStr(request, nomeCampoVlAprov))) {
302 EfIettPrevisaoRevEfiepr recurso = new EfIettPrevisaoRevEfiepr();
303
304 recurso.setExercicioExe(exercicio);
305 recurso.setFonteRecursoFonr(itemEstruturaFonteRecurso.getFonteRecursoFonr());
306 recurso.setItemEstruturarevisaoIettrev(itemEstruturaFonteRecurso.getItemEstruturarevisaoIettrev());
307 recurso.setRecursoRec((RecursoRec) super.buscar(RecursoRec.class, Long.valueOf(Pagina.getParamStr(request, nomeCombo))));
308 recurso.setValorAprovadoEfiepr(new Double(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, nomeCampoVlAprov))).doubleValue()));
309 recurso.setValorRevisadoEfiepr(new Double(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, nomeCampoVlRev))).doubleValue()));
310
311 recurso.setIndAtivoEfiepr("S");
312 recurso.setDataInclusaoEfiepr(Data.getDataAtual());
313
314 lista.add(recurso);
315 }
316 }
317 }
318
319 return lista;
320 }
321
322
323
324
325
326 public void setPK(EfIettFonTotRevEfieftr itemEstruturaFonteRecurso) {
327 EfIettFonTotRevEfieftrPK comp_id = new EfIettFonTotRevEfieftrPK();
328 comp_id.setCodFonr(itemEstruturaFonteRecurso.getFonteRecursoFonr().getCodFonr());
329 comp_id.setCodIettrev(Long.valueOf(itemEstruturaFonteRecurso.getItemEstruturarevisaoIettrev().getCodIettrev().longValue()));
330 itemEstruturaFonteRecurso.setComp_id(comp_id);
331 }
332
333
334
335
336
337
338
339
340
341
342 public void salvar(EfIettFonTotRevEfieftr itemEstruturaFonteRecurso, List listaRecursos) throws ECARException {
343 Transaction tx = null;
344 try {
345 ArrayList objetos = new ArrayList();
346 super.inicializarLogBean();
347
348 tx = session.beginTransaction();
349
350 setPK(itemEstruturaFonteRecurso);
351 itemEstruturaFonteRecurso.setDataInclusaoEfieftr(Data.getDataAtual());
352 itemEstruturaFonteRecurso.setIndAtivoEfieftr("S");
353
354 EfIettFonTotRevEfieftr itemEstFRAux = null;
355 try {
356 itemEstFRAux = buscar(Long.valueOf(itemEstruturaFonteRecurso.getItemEstruturarevisaoIettrev().getCodIettrev().longValue()), itemEstruturaFonteRecurso.getFonteRecursoFonr().getCodFonr());
357 } catch (Exception e) {
358 this.logger.error(e);
359
360 itemEstFRAux = null;
361 }
362
363 if (itemEstFRAux != null) {
364 throw new ECARException("itemEstrutura.fonteRecurso.inclusao.jaExiste");
365 }
366
367 session.save(itemEstruturaFonteRecurso);
368 objetos.add(itemEstruturaFonteRecurso);
369
370 ItemEstruturaPrevisaoRevDao itemEstPrevisaoDao = new ItemEstruturaPrevisaoRevDao(request);
371
372 Iterator itRecursos = listaRecursos.iterator();
373 while (itRecursos.hasNext()) {
374 EfIettPrevisaoRevEfiepr recurso = (EfIettPrevisaoRevEfiepr) itRecursos.next();
375 itemEstPrevisaoDao.setPK(recurso);
376 session.save(recurso);
377 objetos.add(recurso);
378 }
379
380 tx.commit();
381
382 if (super.logBean != null) {
383 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
384 super.logBean.setOperacao("INC");
385 Iterator itObj = objetos.iterator();
386
387 while (itObj.hasNext()) {
388 super.logBean.setObj(itObj.next());
389 super.loggerAuditoria.info(logBean.toString());
390 }
391 }
392 } catch (HibernateException he) {
393 if (tx != null)
394 try {
395 tx.rollback();
396 } catch (HibernateException r) {
397 this.logger.error(r);
398 throw new ECARException("erro.hibernateException");
399 }
400 this.logger.error(he);
401 throw new ECARException("erro.hibernateException");
402 }
403 }
404
405
406
407
408
409
410
411
412
413
414 public void alterar(EfIettFonTotRevEfieftr itemEstruturaFonteRecurso, List listaRecursos) throws ECARException {
415 Transaction tx = null;
416 try {
417 ArrayList objetos = new ArrayList();
418 super.inicializarLogBean();
419
420 tx = session.beginTransaction();
421
422 session.update(itemEstruturaFonteRecurso);
423 objetos.add(itemEstruturaFonteRecurso);
424
425 ItemEstruturaPrevisaoRevDao itemEstPrevisaoDao = new ItemEstruturaPrevisaoRevDao(request);
426
427
428 List recursosDoBanco = itemEstPrevisaoDao.getRecursosByFonteRecurso(itemEstruturaFonteRecurso.getFonteRecursoFonr().getCodFonr(), itemEstruturaFonteRecurso.getItemEstruturarevisaoIettrev().getCodIettrev());
429
430 ExercicioDao exercicioDao = new ExercicioDao(request);
431 Collection listaExercicios = exercicioDao.getExerciciosValidos(itemEstruturaFonteRecurso.getItemEstruturarevisaoIettrev().getItemEstruturaIettrev().getCodIett());
432
433
434
435
436
437 Iterator itRecBanco = recursosDoBanco.iterator();
438 while (itRecBanco.hasNext()) {
439 EfIettPrevisaoRevEfiepr recurso = (EfIettPrevisaoRevEfiepr) itRecBanco.next();
440 if (listaExercicios.contains(recurso.getExercicioExe())) {
441 session.delete(recurso);
442 objetos.add(recurso);
443 }
444 }
445
446 Iterator itRecursos = listaRecursos.iterator();
447 while (itRecursos.hasNext()) {
448 EfIettPrevisaoRevEfiepr recurso = (EfIettPrevisaoRevEfiepr) itRecursos.next();
449 itemEstPrevisaoDao.setPK(recurso);
450 session.save(recurso);
451 objetos.add(recurso);
452 }
453
454 tx.commit();
455
456 if (super.logBean != null) {
457 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
458 super.logBean.setOperacao("INC_ALT_EXC");
459 Iterator itObj = objetos.iterator();
460
461 while (itObj.hasNext()) {
462 super.logBean.setObj(itObj.next());
463 super.loggerAuditoria.info(logBean.toString());
464 }
465 }
466 } catch (HibernateException he) {
467 if (tx != null)
468 try {
469 tx.rollback();
470 } catch (HibernateException r) {
471 this.logger.error(r);
472 throw new ECARException("erro.hibernateException");
473 }
474 this.logger.error(he);
475 throw new ECARException("erro.hibernateException");
476 }
477 }
478
479
480
481
482
483
484
485
486
487
488
489 public void excluir(String[] codigosParaExcluir, Long codItemEstrutura) throws ECARException {
490 Transaction tx = null;
491
492 try {
493 ArrayList objetos = new ArrayList();
494 super.inicializarLogBean();
495
496 tx = session.beginTransaction();
497
498 for (int i = 0; i < codigosParaExcluir.length; i++) {
499 String[] codigos = codigosParaExcluir[i].split(",");
500 EfIettFonTotRevEfieftr itemEstruturaFonR = buscar(codItemEstrutura, Long.valueOf(codigos[0]));
501
502 EfIettPrevisaoRevEfiepr objBuscaRecurso = new EfIettPrevisaoRevEfiepr();
503 objBuscaRecurso.setFonteRecursoFonr(itemEstruturaFonR.getFonteRecursoFonr());
504 objBuscaRecurso.setItemEstruturarevisaoIettrev(itemEstruturaFonR.getItemEstruturarevisaoIettrev());
505
506 List resultBuscaRecurso = this.pesquisar(objBuscaRecurso, null);
507
508 if (resultBuscaRecurso.size() > 0) {
509 Iterator it = resultBuscaRecurso.iterator();
510 while (it.hasNext()) {
511 EfIettPrevisaoRevEfiepr recursoEncontrado = (EfIettPrevisaoRevEfiepr) it.next();
512 session.delete(recursoEncontrado);
513 objetos.add(recursoEncontrado);
514 }
515 }
516
517 session.delete(itemEstruturaFonR);
518 objetos.add(itemEstruturaFonR);
519 }
520
521 tx.commit();
522
523 if (super.logBean != null) {
524 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
525 super.logBean.setOperacao("EXC");
526 Iterator itObj = objetos.iterator();
527
528 while (itObj.hasNext()) {
529 super.logBean.setObj(itObj.next());
530 super.loggerAuditoria.info(logBean.toString());
531 }
532 }
533 } catch (Exception e) {
534 if (tx != null)
535 try {
536 tx.rollback();
537 } catch (HibernateException r) {
538 this.logger.error(r);
539 throw new ECARException("erro.hibernateException");
540 }
541 this.logger.error(e);
542 throw new ECARException("erro.hibernateException");
543 }
544 }
545
546
547
548
549
550
551 public void desativaRecursos(EfIettFonTotRevEfieftr itemEstruturaFonteRecurso) throws ECARException {
552 itemEstruturaFonteRecurso.setIndAtivoEfieftr("N");
553 this.alterar(itemEstruturaFonteRecurso);
554
555
556
557
558
559 List recursos = new ItemEstruturaPrevisaoRevDao(request).getRecursosByFonteRecurso(itemEstruturaFonteRecurso.getFonteRecursoFonr().getCodFonr(), itemEstruturaFonteRecurso.getItemEstruturarevisaoIettrev().getCodIettrev());
560 if (recursos != null) {
561 Iterator it = recursos.iterator();
562 while (it.hasNext()) {
563 EfIettPrevisaoRevEfiepr recurso = (EfIettPrevisaoRevEfiepr) it.next();
564 recurso.setIndAtivoEfiepr("N");
565 new ItemEstruturaPrevisaoRevDao(request).alterar(recurso);
566 }
567 }
568 }
569
570
571
572
573
574
575
576
577
578 public double getSomaRecursosFonteRecurso(EfIettFonTotRevEfieftr itemEstruturaFonteRecurso, String tipo) throws ECARException {
579 double total = 0;
580 List recursos = new ItemEstruturaPrevisaoRevDao(request).getRecursosByFonteRecurso(itemEstruturaFonteRecurso.getFonteRecursoFonr().getCodFonr(), itemEstruturaFonteRecurso.getItemEstruturarevisaoIettrev().getCodIettrev());
581 if (recursos != null) {
582 Iterator it = recursos.iterator();
583 while (it.hasNext()) {
584 EfIettPrevisaoRevEfiepr recurso = (EfIettPrevisaoRevEfiepr) it.next();
585 if ("Aprovado".equalsIgnoreCase(tipo))
586 total += recurso.getValorAprovadoEfiepr().doubleValue();
587 if ("Revisado".equalsIgnoreCase(tipo))
588 total += recurso.getValorRevisadoEfiepr().doubleValue();
589 if ("Todos".equalsIgnoreCase(tipo)) {
590 total += recurso.getValorAprovadoEfiepr().doubleValue();
591 total += recurso.getValorRevisadoEfiepr().doubleValue();
592 }
593 }
594 }
595 return total;
596 }
597 }