1
2
3
4 package ecar.dao;
5
6 import java.io.File;
7 import java.util.Collection;
8 import java.util.HashSet;
9 import java.util.Iterator;
10 import java.util.List;
11
12 import javax.servlet.http.HttpServletRequest;
13
14 import org.apache.commons.fileupload.FileItem;
15 import org.hibernate.HibernateException;
16 import org.hibernate.Query;
17
18 import comum.database.Dao;
19 import comum.util.Data;
20 import comum.util.FileUpload;
21
22 import ecar.exception.ECARException;
23 import ecar.pojo.AcompReferenciaItemAri;
24 import ecar.pojo.ItemEstrUplCategIettuc;
25 import ecar.pojo.ItemEstrutUploadIettup;
26 import ecar.pojo.ItemEstruturaIett;
27 import ecar.pojo.UploadTipoCategoriaUtc;
28 import ecar.pojo.UsuarioUsu;
29 import ecar.util.Dominios;
30
31
32
33
34 public class ItemEstruturaUploadCategoriaDao extends Dao {
35
36 public ItemEstruturaUploadCategoriaDao(HttpServletRequest request) {
37 super();
38 this.request = request;
39
40 }
41
42
43
44
45
46
47
48 public Collection getAtivos(ItemEstruturaIett itemEstrutura) throws ECARException {
49 try {
50 Query query = this.getSession().createQuery("select iettuc from ItemEstrUplCategIettuc iettuc" + " where iettuc.itemEstruturaIett.codIett = :codIett" + " and iettuc.itemEstruturaIett.indAtivoIett = 'S'" + " and iettuc.indAtivoIettuc = 'S'");
51 query.setLong("codIett", itemEstrutura.getCodIett().longValue());
52
53 return query.list();
54 } catch (HibernateException e) {
55 this.logger.error(e);
56 throw new ECARException(e);
57 }
58 }
59
60 public int contaAtivos(List listaItemEstUC) {
61 int contadorAtivos = 0;
62 Iterator itItemEstUC = listaItemEstUC.iterator();
63 while (itItemEstUC.hasNext()) {
64 ItemEstrUplCategIettuc itemEstUC = (ItemEstrUplCategIettuc) itItemEstUC.next();
65 if (itemEstUC.getItemEstrutUploadIettups() != null) {
66 HashSet setItemEstrutUploadIettups = new HashSet();
67 Iterator itItemEstrutUploadIettups = itemEstUC.getItemEstrutUploadIettups().iterator();
68 while (itItemEstrutUploadIettups.hasNext()) {
69 ItemEstrutUploadIettup itemEstrutUploadIettup = (ItemEstrutUploadIettup) itItemEstrutUploadIettups.next();
70 if (Dominios.ATIVO.equalsIgnoreCase(itemEstrutUploadIettup.getIndAtivoIettup())) {
71 setItemEstrutUploadIettups.add(itemEstrutUploadIettup);
72 contadorAtivos++;
73 }
74 }
75 }
76 }
77 return contadorAtivos;
78 }
79
80 public List excluiInativos(List listaItemEstUC) {
81 Iterator itItemEstUC = listaItemEstUC.iterator();
82 while (itItemEstUC.hasNext()) {
83 ItemEstrUplCategIettuc itemEstUC = (ItemEstrUplCategIettuc) itItemEstUC.next();
84 if (itemEstUC.getItemEstrutUploadIettups() != null) {
85 HashSet setItemEstrutUploadIettups = new HashSet();
86 Iterator itItemEstrutUploadIettups = itemEstUC.getItemEstrutUploadIettups().iterator();
87 while (itItemEstrutUploadIettups.hasNext()) {
88 ItemEstrutUploadIettup itemEstrutUploadIettup = (ItemEstrutUploadIettup) itItemEstrutUploadIettups.next();
89 if (Dominios.ATIVO.equalsIgnoreCase(itemEstrutUploadIettup.getIndAtivoIettup())) {
90 setItemEstrutUploadIettups.add(itemEstrutUploadIettup);
91 }
92 }
93 itemEstUC.setItemEstrutUploadIettups(setItemEstrutUploadIettups);
94 }
95 }
96 return listaItemEstUC;
97 }
98
99
100
101
102
103
104
105
106 public List getItemEstrUplCategIettucs(UploadTipoCategoriaUtc uploadTipoCat, ItemEstruturaIett itemEstrutura) throws ECARException {
107 try {
108 StringBuilder select = new StringBuilder("select itemEstrutUpCat from ItemEstrUplCategIettuc as itemEstrutUpCat").append(" where itemEstrutUpCat.uploadTipoCategoriaUtc.codUtc = :codUtc").append(" and itemEstrutUpCat.itemEstruturaIett.codIett = :codIett").append(" and itemEstrutUpCat.itemEstruturaIett.indAtivoIett = 'S'").append(" and itemEstrutUpCat.indAtivoIettuc = :indAtivo").append(" order by itemEstrutUpCat.nomeIettuc");
109
110 Query query = this.getSession().createQuery(select.toString());
111 query.setLong("codUtc", uploadTipoCat.getCodUtc().longValue());
112 query.setLong("codIett", itemEstrutura.getCodIett().longValue());
113 query.setString("indAtivo", "S");
114
115 List listaItemEstUC = query.list();
116 excluiInativos(listaItemEstUC);
117 return listaItemEstUC;
118
119
120
121 } catch (HibernateException e) {
122 this.logger.error(e);
123 throw new ECARException(e);
124 }
125 }
126
127
128
129
130
131
132
133
134
135
136
137 public List getItemEstrUplCategIettucsPaginacao(UploadTipoCategoriaUtc uploadTipoCat, ItemEstruturaIett itemEstrutura, int pagina, int resultados) throws ECARException {
138 try {
139 StringBuilder select = new StringBuilder("select itemEstrutUpCat from ItemEstrUplCategIettuc as itemEstrutUpCat").append(" where itemEstrutUpCat.uploadTipoCategoriaUtc.codUtc = :codUtc").append(" and itemEstrutUpCat.itemEstruturaIett.codIett = :codIett").append(" and itemEstrutUpCat.indAtivoIettuc = :indAtivo").append(" order by itemEstrutUpCat.nomeIettuc");
140
141 Query query = this.getSession().createQuery(select.toString());
142 query.setLong("codUtc", uploadTipoCat.getCodUtc().longValue());
143 query.setLong("codIett", itemEstrutura.getCodIett().longValue());
144 query.setString("indAtivo", "S");
145
146 query.setFirstResult(pagina);
147 query.setMaxResults(resultados);
148
149 List listaItemEstUC = query.list();
150 excluiInativos(listaItemEstUC);
151 return listaItemEstUC;
152
153
154
155 } catch (HibernateException e) {
156 this.logger.error(e);
157 throw new ECARException(e);
158 }
159 }
160
161
162
163
164
165
166
167 public int contarItemEstrUplCategIettucs(UploadTipoCategoriaUtc uploadTipoCat, ItemEstruturaIett itemEstrutura) throws ECARException {
168 try {
169 int resultado = 0;
170
171 StringBuilder select = new StringBuilder("select itemEstrutUpCat from ItemEstrUplCategIettuc itemEstrutUpCat").append(" where itemEstrutUpCat.uploadTipoCategoriaUtc.codUtc = :codUtc").append(" and itemEstrutUpCat.itemEstruturaIett.codIett = :codIett").append(" and itemEstrutUpCat.indAtivoIettuc = :indAtivo");
172
173 Query query = this.getSession().createQuery(select.toString());
174 query.setLong("codUtc", uploadTipoCat.getCodUtc().longValue());
175 query.setLong("codIett", itemEstrutura.getCodIett().longValue());
176 query.setString("indAtivo", "S");
177
178 List retorno = query.list();
179 if (!retorno.isEmpty()) {
180 resultado = contaAtivos(retorno);
181
182 }
183 return resultado;
184 } catch (HibernateException e) {
185 this.logger.error(e);
186 throw new ECARException(e);
187 }
188 }
189
190
191
192
193
194
195
196
197 public void setItemEstruturaUploadCategoria(List campos, ItemEstrUplCategIettuc categoria, String pathRaiz, String pathRelativo, boolean salvarImagem) throws ECARException {
198
199 try {
200 Iterator it = campos.iterator();
201 while (it.hasNext()) {
202 FileItem fileItem = (FileItem) it.next();
203 if (!fileItem.isFormField() && !"".equals(fileItem.getName()) && salvarImagem) {
204
205
206
207
208 if (categoria.getImagemIettuc() != null)
209 FileUpload.apagarArquivo(pathRaiz + categoria.getImagemIettuc());
210
211 File arquivoGravado = FileUpload.salvarNoDisco(fileItem, FileUpload.getPathFisico(pathRaiz, pathRelativo, FileUpload.getNomeArquivo(fileItem)));
212 categoria.setImagemIettuc(FileUpload.getPathFisico("", pathRelativo, FileUpload.getNomeArquivo(fileItem)));
213 }
214 else {
215 if ("codIett".equals(fileItem.getFieldName())) {
216 ItemEstruturaIett itemEstrutura = (ItemEstruturaIett) this.buscar(ItemEstruturaIett.class, Long.valueOf(fileItem.getString()));
217 categoria.setItemEstruturaIett(itemEstrutura);
218 }
219 if ("cod".equals(fileItem.getFieldName()) && !"".equals(fileItem.getString()))
220 categoria.setCodIettuc(Long.valueOf(fileItem.getString()));
221 if ("descricaoIettuc".equals(fileItem.getFieldName()))
222 categoria.setDescricaoIettuc(fileItem.getString());
223 if ("nomeIettuc".equals(fileItem.getFieldName()))
224 categoria.setNomeIettuc(fileItem.getString());
225 if ("uploadTipoCategoriaUtc".equals(fileItem.getFieldName()) && !"".equals(fileItem.getString()))
226 categoria.setUploadTipoCategoriaUtc((UploadTipoCategoriaUtc) this.buscar(UploadTipoCategoriaUtc.class, Long.valueOf(fileItem.getString())));
227 if ("codAri".equals(fileItem.getFieldName()) && !"".equals(fileItem.getString()))
228 categoria.setAcompReferenciaItemAri((AcompReferenciaItemAri) this.buscar(AcompReferenciaItemAri.class, Long.valueOf(fileItem.getString())));
229
230 }
231 }
232
233 categoria.setIndAtivoIettuc("S");
234
235 } catch (Exception e) {
236 this.logger.error(e);
237 throw new ECARException("erro.exception");
238 }
239
240 }
241
242
243
244
245
246
247
248
249 public void setItemEstruturaUploadCategoria(List campos, ItemEstrUplCategIettuc categoria, String pathRaiz, String pathRelativo) throws ECARException {
250 this.setItemEstruturaUploadCategoria(campos, categoria, pathRaiz, pathRelativo, true);
251 }
252
253
254
255
256
257
258
259
260 public void excluir(String[] codigosParaExcluir, String pathRaiz) throws ECARException {
261 for (int i = 0; i < codigosParaExcluir.length; i++) {
262 ItemEstrUplCategIettuc categoria = (ItemEstrUplCategIettuc) this.buscar(ItemEstrUplCategIettuc.class, Long.valueOf(codigosParaExcluir[i]));
263 if (categoria.getItemEstrutUploadIettups() != null && categoria.getItemEstrutUploadIettups().size() > 0) {
264 throw new ECARException("itemEstrutura.categoriaAnexo.exclusao.possuiUpload");
265 }
266 else if (categoria.getAcompReferenciaItemAri() != null) {
267 throw new ECARException("itemEstrutura.categoriaAnexo.exclusao.possuiAri");
268 }
269 else {
270 this.excluir(categoria, pathRaiz);
271 }
272 }
273 }
274
275
276
277
278
279
280 public void excluir(ItemEstrUplCategIettuc categoria, String pathRaiz) throws ECARException {
281 try {
282
283 categoria.setIndAtivoIettuc("N");
284
285 if (categoria.getImagemIettuc() != null) {
286 if (FileUpload.apagarArquivo(FileUpload.getPathFisico(pathRaiz, categoria.getImagemIettuc(), ""))) {
287
288 super.alterar(categoria);
289 }
290 else {
291 throw new ECARException("erro.excluirArquivo");
292 }
293 }
294 else
295 super.alterar(categoria);
296
297 } catch (Exception e) {
298 this.logger.error(e);
299 throw new ECARException("erro.exception");
300 }
301
302 }
303
304
305
306
307
308
309 public void salvar(ItemEstrUplCategIettuc categoria) throws ECARException {
310 categoria.setDataInclusaoIettuc(Data.getDataAtual());
311 super.salvar(categoria);
312 }
313
314 public void alterar(Object obj, String excluiImagem, String pathRaiz) throws ECARException {
315 try {
316 ItemEstrUplCategIettuc categoria = (ItemEstrUplCategIettuc) obj;
317
318 if ("on".equals(excluiImagem)) {
319 if (FileUpload.apagarArquivo(FileUpload.getPathFisico(pathRaiz, categoria.getImagemIettuc(), ""))) {
320 alterar(obj);
321 }
322 else {
323 throw new ECARException("erro.excluirArquivo");
324 }
325 }
326 else {
327 alterar(obj);
328 }
329 } catch (Exception e) {
330 this.logger.error(e);
331 throw new ECARException("erro.exception");
332 }
333 }
334
335
336
337
338
339
340
341
342 public Collection getItemEstrutUploadIettups(ItemEstrUplCategIettuc itemEstUC) throws ECARException {
343 try {
344 Query query = this.getSession().createQuery("select iettup from ItemEstrutUploadIettup iettup" + " where iettup.itemEstrUplCategIettuc.codIettuc = :codIettuc" + " and iettup.indAtivoIettup = :indAtivo" + " order by iettup.nomeOriginalIettup");
345 query.setLong("codIettuc", itemEstUC.getCodIettuc().longValue());
346 query.setString("indAtivo", "S");
347
348 return query.list();
349 } catch (HibernateException e) {
350 this.logger.error(e);
351 throw new ECARException(e);
352 }
353 }
354 }