View Javadoc

1   /*
2    * Created on 02/12/2004
3    */
4   package ecar.dao;
5   
6   import java.util.ArrayList;
7   import java.util.Iterator;
8   import java.util.List;
9   
10  import javax.servlet.ServletContext;
11  import javax.servlet.http.HttpServletRequest;
12  
13  import org.hibernate.Query;
14  import org.hibernate.criterion.Order;
15  import org.hibernate.criterion.Restrictions;
16  
17  import comum.database.Dao;
18  import comum.util.Pagina;
19  
20  import ecar.exception.ECARException;
21  import ecar.pojo.ConfiguracaoCfg;
22  import ecar.pojo.ItemEstrutUsuarioIettus;
23  import ecar.pojo.SegmentoSgt;
24  import ecar.pojo.SisAtributoSatb;
25  
26  /**
27   * @author evandro
28   */
29  public class SisAtributoDao extends Dao {
30  
31    /**
32     * Construtor. Chama o Session factory do Hibernate
33     */
34    public SisAtributoDao(HttpServletRequest request) {
35      super();
36      this.request = request;
37    }
38  
39    public SisAtributoDao() {
40      super();
41    }
42  
43    /**
44     * Verifica depois exclui
45     * @param sisAtributo
46     * @throws ECARException
47     */
48    public void excluir(SisAtributoSatb sisAtributo) throws ECARException {
49      try {
50        boolean excluir = true;
51        /*
52         * if(contar(sisAtributo.getUsuarioAtributoUsuas()) > 0){ excluir = false;
53         * throw new
54         * ECARException("sisAtributo.exclusao.erro.usuarioAtributoUsuas"); }
55         * if(contar(sisAtributo.getEntidadeAtributoEntas()) > 0){ excluir =
56         * false; throw new
57         * ECARException("sisAtributo.exclusao.erro.entidadeAtributoEntas"); }
58         * if(contar(sisAtributo.getDemAtributoDemas()) > 0){ excluir = false;
59         * throw new ECARException("sisAtributo.exclusao.erro.demAtributoDemas");
60         * } if(contar(sisAtributo.getLocAtributoLocas()) > 0){ excluir = false;
61         * throw new ECARException("sisAtributo.exclusao.erro.locAtributoLocas");
62         * }
63         */
64        if (contarLong(sisAtributo.getSegmentoTpAcessoSgttas()) > 0) {
65          excluir = false;
66          throw new ECARException("sisAtributo.exclusao.erro.segmentoTpAcessoSgttas");
67        }
68        if (contarLong(sisAtributo.getItemEstruturaNivelIettns()) > 0) {
69          excluir = false;
70          throw new ECARException("sisAtributo.exclusao.erro.itemEstruturaNivelIettns");
71        }
72        if (contarLong(sisAtributo.getSegmentoItemTpacesSgtitas()) > 0) {
73          excluir = false;
74          throw new ECARException("sisAtributo.exclusao.erro.segmentoItemTpacesSgtitas");
75        }
76        if (contarLong(sisAtributo.getSegmentoCategTpAcessSgts()) > 0) {
77          excluir = false;
78          throw new ECARException("sisAtributo.exclusao.erro.segmentoCategTpAcessSgts");
79        }
80        /*
81         * if(contar(sisAtributo.getEstruturaAcessoEttas()) > 0){ excluir = false;
82         * throw new
83         * ECARException("sisAtributo.exclusao.erro.estruturaAcessoEttas"); }
84         */
85        if (contarLong(sisAtributo.getConfiguracaoCfgsByCodSacapa()) > 0) {
86          excluir = false;
87          throw new ECARException("sisAtributo.exclusao.erro.configuracaoCfgsByCodSacapa");
88        }
89        if (contarLong(sisAtributo.getConfiguracaoCfgsByCodSapadrao()) > 0) {
90          excluir = false;
91          throw new ECARException("sisAtributo.exclusao.erro.configuracaoCfgsByCodSapadrao");
92        }
93  
94        if (excluir) {
95          if (sisAtributo.getItemEstrutUsuarioIettuses() != null) {
96            Iterator itExc = sisAtributo.getItemEstrutUsuarioIettuses().iterator();
97            while (itExc.hasNext()) {
98              ItemEstrutUsuarioIettus iettus = (ItemEstrutUsuarioIettus) itExc.next();
99              super.excluir(iettus);
100           }
101         }
102         super.excluir(sisAtributo);
103       }
104     } catch (ECARException e) {
105       this.logger.error(e);
106       throw e;
107     }
108   }
109 
110   /**
111    * Salva
112    * @param atributo
113    * @throws ECARException
114    */
115   public void salvar(SisAtributoSatb atributo) throws ECARException {
116     super.salvar(atributo);
117   }
118 
119   /**
120    * Altera
121    * @param atributo
122    * @throws ECARException
123    */
124   public void alterar(SisAtributoSatb atributo) throws ECARException {
125     super.alterar(atributo);
126   }
127 
128   /**
129    * @return List
130    * @throws ECARException
131    */
132   public List getAtributosTipoAcesso() throws ECARException {
133     ConfiguracaoCfg configuracao = new ConfiguracaoDao(request).getConfiguracao();
134     SisAtributoSatb atributo = new SisAtributoSatb();
135     atributo.setSisGrupoAtributoSga(configuracao.getSisGrupoAtributoSgaByCodSgaGrAtrTpAcesso());
136     return super.pesquisar(atributo, null);
137   }
138 
139   /**
140    * Seta Editorias
141    * @param atributo
142    * @param segmento
143    * @param request
144    * @param recuperarParametrosComoString
145    */
146   public void setEditorias(SisAtributoSatb atributo, SegmentoSgt segmento, HttpServletRequest request, boolean recuperarParametrosComoString) {
147     if (recuperarParametrosComoString) {
148       atributo.setDescricaoSatb(Pagina.getParamStr(request, "descricaoSatb"));
149       atributo.setIndAtivoSatb(Pagina.getParamStr(request, "indAtivoSatb"));
150     }
151     else {
152       atributo.setDescricaoSatb(Pagina.getParam(request, "descricaoSatb"));
153       atributo.setIndAtivoSatb(Pagina.getParam(request, "indAtivoSatb"));
154     }
155     atributo.setSisGrupoAtributoSga(segmento.getSisGrupoAtributoSga());
156   }
157 
158   /**
159    * @param atributo
160    * @param application
161    * @return
162    * @throws ECARException
163    */
164   public List pequisarEditoriasItensLivre(SisAtributoSatb atributo, ServletContext application) throws ECARException {
165     List retorno = new ArrayList();
166     List segmentosLivres = new SegmentoDao(request).getSegmentosLivres(application);
167     Iterator it = segmentosLivres.iterator();
168     while (it.hasNext()) {
169       SegmentoSgt segmento = (SegmentoSgt) it.next();
170       retorno.add(this.pesquisarEditoriasBySegmento(atributo, segmento));
171     }
172     return retorno;
173   }
174 
175   /**
176    * Pesquisa editoriais por segmento
177    * @param atributo
178    * @param segmento
179    * @return List
180    * @throws ECARException
181    */
182   public List pesquisarEditoriasBySegmento(SisAtributoSatb atributo, SegmentoSgt segmento) throws ECARException {
183 
184     List pesquisa = super.pesquisar(atributo, new String[] { "descricaoSatb", "asc" });
185     List retorno = new ArrayList();
186     if (pesquisa.size() > 0) {
187       Iterator it = pesquisa.iterator();
188       while (it.hasNext()) {
189         SisAtributoSatb atb = (SisAtributoSatb) it.next();
190         if (segmento.getSisGrupoAtributoSga() != null && atb.getSisGrupoAtributoSga().equals(segmento.getSisGrupoAtributoSga()))
191           retorno.add(atb);
192       }
193     }
194     return pesquisa;
195   }
196 
197   /**
198    * Pesquisa
199    * @param atributo
200    * @param indTabelaUso
201    * @return List
202    * @throws ECARException
203    */
204   public List pesquisar(SisAtributoSatb atributo, String indTabelaUso) throws ECARException {
205     List pesquisa = super.pesquisar(atributo, new String[] { "descricaoSatb", "asc" });
206     List retorno = new ArrayList();
207     if (pesquisa.size() > 0) {
208       Iterator it = pesquisa.iterator();
209       while (it.hasNext()) {
210         SisAtributoSatb atb = (SisAtributoSatb) it.next();
211         if (atb.getSisGrupoAtributoSga().getIndTabelaUsoSga().equals(indTabelaUso))
212           retorno.add(atb);
213       }
214     }
215     return retorno;
216   }
217 
218   /**
219    * @author Robson
220    * @return List
221    * @since 21/11/2007 retorna uma lista dos SisAtributos de grupo de acesso
222    */
223   public List getListaAcesso() {
224     String hql = new String("select atributo " + "from SisAtributoSatb as atributo " + "join atributo.sisGrupoAtributoSga as grupo " + "join grupo.configuracaoCfgsByCodSgaGrAtrClAcesso as config " + "where atributo.sisGrupoAtributoSga = config.sisGrupoAtributoSgaByCodSgaGrAtrClAcesso " + "and atributo.indAtivoSatb = \'" + SisAtributoSatb.ATIVO + "\' " + "order by atributo.descricaoSatb");
225 
226     return this.getSession().createQuery(hql).list();
227   }
228 }