1
2
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
28
29 public class SisAtributoDao extends Dao {
30
31
32
33
34 public SisAtributoDao(HttpServletRequest request) {
35 super();
36 this.request = request;
37 }
38
39 public SisAtributoDao() {
40 super();
41 }
42
43
44
45
46
47
48 public void excluir(SisAtributoSatb sisAtributo) throws ECARException {
49 try {
50 boolean excluir = true;
51
52
53
54
55
56
57
58
59
60
61
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
82
83
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
112
113
114
115 public void salvar(SisAtributoSatb atributo) throws ECARException {
116 super.salvar(atributo);
117 }
118
119
120
121
122
123
124 public void alterar(SisAtributoSatb atributo) throws ECARException {
125 super.alterar(atributo);
126 }
127
128
129
130
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
141
142
143
144
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
160
161
162
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
177
178
179
180
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
199
200
201
202
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
220
221
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 }