View Javadoc

1   /*
2    * Created on 29/10/2004
3    */
4   package ecar.dao;
5   
6   import java.util.ArrayList;
7   import java.util.Collection;
8   import java.util.List;
9   
10  import javax.servlet.http.HttpServletRequest;
11  
12  import org.hibernate.HibernateException;
13  import org.hibernate.Query;
14  
15  import comum.database.Dao;
16  import comum.util.Util;
17  
18  import ecar.exception.ECARException;
19  import ecar.pojo.AgendaAge;
20  import ecar.pojo.EfIettFonteTotEfieft;
21  import ecar.pojo.EfItemEstContaEfiec;
22  import ecar.pojo.EfItemEstPrevisaoEfiep;
23  import ecar.pojo.FonteRecursoFonr;
24  import ecar.pojo.ItemEstruturaIett;
25  
26  /**
27   * @author evandro
28   */
29  public class FonteRecursoDao extends Dao {
30  
31    /**
32     * Construtor. Chama o Session factory do Hibernate
33     */
34    public FonteRecursoDao(HttpServletRequest request) {
35      super();
36      this.request = request;
37    }
38  
39    /**
40     * Verifica e exclui
41     * @author n/c
42     * @param fonteRecurso
43     * @throws ECARException
44     */
45    public void excluir(FonteRecursoFonr fonteRecurso) throws ECARException {
46      try {
47        boolean excluir = true;
48        if (contar(fonteRecurso.getEfItemEstContaEfiecs()) > 0) {
49          List list = new ArrayList(fonteRecurso.getEfItemEstContaEfiecs());
50          EfItemEstContaEfiec ocorrencia = (EfItemEstContaEfiec) list.get(0);
51  
52          excluir = false;
53          throw new ECARException("fonteRecurso.exclusao.erro.efItemEstContaEfiecs", null, new String[] { ocorrencia.getContaSistemaOrcEfiec() });
54        }
55        if (contar(fonteRecurso.getEfItemEstPrevisaoEfieps()) > 0) {
56          List list = new ArrayList(fonteRecurso.getEfItemEstPrevisaoEfieps());
57          EfItemEstPrevisaoEfiep ocorrencia = (EfItemEstPrevisaoEfiep) list.get(0);
58  
59          String iett = (ocorrencia.getItemEstruturaIett() != null) ? ocorrencia.getItemEstruturaIett().getSiglaIett() + ": " + ocorrencia.getItemEstruturaIett().getNomeIett() : "";
60          String exercicio = (ocorrencia.getExercicioExe() != null) ? ocorrencia.getExercicioExe().getDescricaoExe() : "";
61          String recurso = (ocorrencia.getRecursoRec() != null) ? ocorrencia.getRecursoRec().getNomeRec() : "";
62  
63          excluir = false;
64          throw new ECARException("fonteRecurso.exclusao.erro.efItemEstPrevisaoEfieps", null, new String[] { iett, exercicio, recurso });
65        } /*
66           * FIXME : Historico : Valida existência no histórico antes de excluir.
67           * if(contar(fonteRecurso.getEfItemEstPrevhistEfiephs()) > 0){ List list
68           * = new ArrayList(fonteRecurso.getEfItemEstPrevhistEfiephs());
69           * EfItemEstPrevhistEfieph ocorrencia = (EfItemEstPrevhistEfieph)
70           * list.get(0); String iett = (ocorrencia.getItemEstruturaIett() !=
71           * null) ? ocorrencia.getItemEstruturaIett().getSiglaIett() + ": " +
72           * ocorrencia.getItemEstruturaIett().getNomeIett() : ""; String
73           * exercicio = (ocorrencia.getExercicioExe() != null) ?
74           * ocorrencia.getExercicioExe().getDescricaoExe() : ""; String recurso =
75           * (ocorrencia.getRecursoRec() != null) ?
76           * ocorrencia.getRecursoRec().getNomeRec() : ""; excluir = false; throw
77           * new ECARException(
78           * "fonteRecurso.exclusao.erro.efItemEstPrevhistEfiephs", null, new
79           * String[] {iett, exercicio, recurso}); }
80           */
81        if (contar(fonteRecurso.getEfIettFonteTotEfiefts()) > 0) {
82          List list = new ArrayList(fonteRecurso.getEfIettFonteTotEfiefts());
83          EfIettFonteTotEfieft ocorrencia = (EfIettFonteTotEfieft) list.get(0);
84  
85          excluir = false;
86          String iett = (ocorrencia.getItemEstruturaIett() != null) ? ocorrencia.getItemEstruturaIett().getSiglaIett() + ": " + ocorrencia.getItemEstruturaIett().getNomeIett() : "";
87          throw new ECARException("fonteRecurso.exclusao.erro.efIettFonteTotEfiefts", null, new String[] { iett });
88        }
89        /*
90         * FIXME : Historico : Valida a existência no histórico antes de excluir.
91         * if(contar(fonteRecurso.getEfIettFonteTothisEfiefhs()) > 0){ List list =
92         * new ArrayList(fonteRecurso.getEfIettFonteTothisEfiefhs());
93         * EfIettFonteTothisEfiefh ocorrencia = (EfIettFonteTothisEfiefh)
94         * list.get(0); excluir = false; String iett =
95         * (ocorrencia.getItemEstruturaIett() != null) ?
96         * ocorrencia.getItemEstruturaIett().getSiglaIett() + ": " +
97         * ocorrencia.getItemEstruturaIett().getNomeIett() : ""; throw new
98         * ECARException( "fonteRecurso.exclusao.erro.efIettFonteTothisEfiefh",
99         * null, new String[] {iett}); }
100        */
101       if (excluir)
102         super.excluir(fonteRecurso);
103 
104     } catch (ECARException e) {
105       this.logger.error(e);
106       throw e;
107     }
108   }
109 
110   /**
111    * Retorna um lista de exercícios que estão dentro do período de validade
112    * cadastrado para a fonte de recurso e ainda não estejam vinculados a esta
113    * fonte
114    * @param fonteRecurso
115    * @return
116    * @throws HibernateException
117    */
118   public Collection getExerciciosContidosPeriodoValidadeFonteRecurso(ItemEstruturaIett item, FonteRecursoFonr fonteRecurso) throws ECARException {
119     try {
120 
121       String select = "from ExercicioExe e where not (:fimValidade < e.dataInicialExe or :iniValidade > e.dataFinalExe)";
122 
123       Query q = this.session.createQuery(select);
124 
125       q.setDate("fimValidade", fonteRecurso.getDataFimValidadeFonr());
126       q.setDate("iniValidade", fonteRecurso.getDataIniValidadeFonr());
127 
128       List exerciciosPermitidos = q.list();
129       List exerciciosCadastrados = new ArrayList();
130 
131       return Util.diferenca(exerciciosPermitidos, exerciciosCadastrados);
132 
133     } catch (HibernateException e) {
134       this.logger.error(e);
135       throw new ECARException(e);
136     }
137   }
138 
139   /**
140    * Retorna uma lista dos itens que contém determinada fonte de recursos
141    * @param fonteRecurso
142    * @return List
143    * @throws ECARException
144    */
145   public List getItemEstruturaIetts(FonteRecursoFonr fonteRecurso) throws ECARException {
146     List retorno = new ArrayList();
147     return retorno;
148   }
149 
150   /**
151    * Retorna uma lista das fontes de recursos ativos
152    * @return
153    */
154   public List getAtivos() throws ECARException {
155 
156     FonteRecursoFonr fonteRecurso = new FonteRecursoFonr();
157     fonteRecurso.setIndAtivoFonr("S");
158     return super.pesquisar(fonteRecurso, new String[] { "nomeFonr", "asc" });
159   }
160 
161 }