View Javadoc

1   package ecar.dao;
2   
3   import java.util.ArrayList;
4   import java.util.Date;
5   import java.util.Iterator;
6   import java.util.List;
7   
8   import javax.servlet.http.HttpServletRequest;
9   
10  import org.hibernate.HibernateException;
11  import org.hibernate.Transaction;
12  
13  import comum.database.Dao;
14  import comum.util.Data;
15  import comum.util.Pagina;
16  
17  import ecar.exception.ECARException;
18  import ecar.pojo.PeriodoRevisaoPrev;
19  
20  /*
21   * Created on 23/05/2006
22   */
23  
24  /**
25   * @author igor
26   */
27  
28  public class PeriodoRevisaoPrevDao extends Dao {
29    /**
30     * Construtor. Chama o Session factory do Hibernate
31     */
32  
33    public boolean setPeriodoRevisaoPrev(HttpServletRequest request, PeriodoRevisaoPrev prev) throws ECARException {
34      if (!existeIntersecaoPeriodos(Pagina.getParamDataBanco(request, "dtInicioPrev"), Pagina.getParamDataBanco(request, "dtFimPrev"), prev)) {
35        if (!"".equals(Pagina.getParamStr(request, "dtInicioPrev")))
36          prev.setDtInicioPrev(Pagina.getParamDataBanco(request, "dtInicioPrev"));
37        else
38          prev.setDtInicioPrev(null);
39        if (!"".equals(Pagina.getParamStr(request, "dtInicioPrev")))
40          prev.setDtFimPrev(Pagina.getParamDataBanco(request, "dtFimPrev"));
41        else
42          prev.setDtFimPrev(null);
43        prev.setDescricaoPrev(Pagina.getParamStr(request, "descricaoPrev"));
44        prev.setConfiguracaoCfg(new ConfiguracaoDao(request).getConfiguracao());
45        return true;
46      }
47      return false;
48    }
49  
50    /**
51     * Contrutora
52     * @param request
53     */
54    public PeriodoRevisaoPrevDao(HttpServletRequest request) {
55      super();
56      this.request = request;
57    }
58  
59    /**
60     * @param dtInicio
61     * @param dtFim
62     * @param prevComp
63     * @return boolean
64     * @throws ECARException
65     */
66    public boolean existeIntersecaoPeriodos(Date dtInicio, Date dtFim, PeriodoRevisaoPrev prevComp) throws ECARException {
67      List periodos = this.listar(PeriodoRevisaoPrev.class, new String[] { "dtInicioPrev", "ASC" });
68      if (!periodos.equals(null) && periodos.size() > 0) {
69        Iterator itPeriodos = periodos.iterator();
70        while (itPeriodos.hasNext()) {
71          PeriodoRevisaoPrev prev = (PeriodoRevisaoPrev) itPeriodos.next();
72          if (!prevComp.equals(prev)) {
73            if (((!dtInicio.before(prev.getDtInicioPrev())) && (!dtInicio.after(prev.getDtFimPrev()))) || ((!dtFim.before(prev.getDtInicioPrev())) && (!dtFim.after(prev.getDtFimPrev()))))
74              return true;
75          }
76        }
77      }
78      return false;
79    }
80  
81    /**
82     * @param data
83     * @return boolean
84     * @throws ECARException
85     */
86    public boolean existePeriodo(Date data) throws ECARException {
87      List periodos = this.listar(PeriodoRevisaoPrev.class, new String[] { "dtInicioPrev", "ASC" });
88      if (!periodos.equals(null) && periodos.size() > 0) {
89        Iterator itPeriodos = periodos.iterator();
90        while (itPeriodos.hasNext()) {
91          PeriodoRevisaoPrev prev = (PeriodoRevisaoPrev) itPeriodos.next();
92          if (!(data.before(prev.getDtInicioPrev())) && (!data.after(prev.getDtFimPrev()))) {
93            return true;
94          }
95        }
96      }
97      return false;
98    }
99  
100   /**
101    * @return boolean
102    * @throws ECARException
103    */
104   public PeriodoRevisaoPrev getPeriodoAtual() throws ECARException {
105     List periodos = this.listar(PeriodoRevisaoPrev.class, new String[] { "dtInicioPrev", "ASC" });
106     PeriodoRevisaoPrev prev = new PeriodoRevisaoPrev();
107     if (!periodos.equals(null) && periodos.size() > 0) {
108       Iterator itPeriodos = periodos.iterator();
109       while (itPeriodos.hasNext()) {
110         prev = (PeriodoRevisaoPrev) itPeriodos.next();
111         Date hoje = Data.getDataAtual();
112         if ((!hoje.before(prev.getDtInicioPrev())) && (!hoje.after(prev.getDtFimPrev()))) {
113           return prev;
114         }
115       }
116     }
117     return prev;
118   }
119 
120   public boolean estaNoPeriodoAtual(Date data) throws ECARException {
121     PeriodoRevisaoPrev prev = this.getPeriodoAtual();
122     if ((!data.before(prev.getDtInicioPrev())) && (!data.after(prev.getDtFimPrev()))) {
123       return true;
124     }
125     return false;
126   }
127 
128   /**
129    * Recebe um array contendo códigos de itens da estrutura e exclui todos os
130    * registros. Todas os dados do item e todos os dados dos dependentes são
131    * excluidos também
132    * @param codigosParaExcluir
133    * @throws ECARException
134    */
135   public void excluir(String[] codigosParaExcluir) throws ECARException {
136     Transaction tx = null;
137 
138     try {
139       ArrayList objetos = new ArrayList();
140 
141       super.inicializarLogBean();
142 
143       tx = session.beginTransaction();
144 
145       for (int i = 0; i < codigosParaExcluir.length; i++) {
146         PeriodoRevisaoPrev prev = (PeriodoRevisaoPrev) buscar(PeriodoRevisaoPrev.class, Long.valueOf(codigosParaExcluir[i]));
147         session.delete(prev);
148         objetos.add(prev);
149       }
150 
151       tx.commit();
152 
153       if (super.logBean != null) {
154         super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
155         super.logBean.setOperacao("EXC");
156         Iterator itObj = objetos.iterator();
157 
158         while (itObj.hasNext()) {
159           super.logBean.setObj(itObj.next());
160           super.loggerAuditoria.info(logBean.toString());
161         }
162       }
163     } catch (HibernateException e) {
164       if (tx != null)
165         try {
166           tx.rollback();
167         } catch (HibernateException r) {
168           this.logger.error(r);
169           throw new ECARException("erro.hibernateException");
170         }
171       this.logger.error(e);
172       throw new ECARException("erro.hibernateException");
173     }
174   }
175 
176 }