Commit f84d6633e0d43eb847652ee967a59e59a57aae5d

Authored by vitor.pacheco
1 parent 02fab9b1
Exists in master

Codificação #3290: Exportar para ODS

git-svn-id: https://svn.bento.ifrs.edu.br/default/ASES/e-selo@9823 c2178572-b5ca-4887-91d2-9e3a90c7d55b
Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/parametroCalculo/lista.jsp
@@ -67,10 +67,10 @@ @@ -67,10 +67,10 @@
67 <td>${parametroCalculo.usuario.nome}</td> 67 <td>${parametroCalculo.usuario.nome}</td>
68 <td> 68 <td>
69 <div class="btn-group"> 69 <div class="btn-group">
70 - <a href="<c:url value="/parametrosCalculo/relatorio/${parametroCalculo.id}" />" class="btn btn-default btn-sm">Relatório</a>  
71 <a href="<c:url value="/parametrosCalculo/atualizar/${parametroCalculo.id}" />" class="btn btn-default btn-sm">Consultar</a> 70 <a href="<c:url value="/parametrosCalculo/atualizar/${parametroCalculo.id}" />" class="btn btn-default btn-sm">Consultar</a>
72 <c:if test="${parametroCalculo.tsFim == null}"> 71 <c:if test="${parametroCalculo.tsFim == null}">
73 <a href="<c:url value="/parametrosCalculo/delete/${parametroCalculo.id}" />" class="btn btn-default btn-sm btn-confirm" data-msg="Deseja realmente excluir o Parametro de Avaliação selecionado?">Excluir</a> 72 <a href="<c:url value="/parametrosCalculo/delete/${parametroCalculo.id}" />" class="btn btn-default btn-sm btn-confirm" data-msg="Deseja realmente excluir o Parametro de Avaliação selecionado?">Excluir</a>
  73 + <a href="<c:url value="/parametrosCalculo/exportar/${parametroCalculo.id}/${parametroCalculo.slug}.ods" />" class="btn btn-default btn-sm">Exportar</a>
74 </c:if> 74 </c:if>
75 </div> 75 </div>
76 </td> 76 </td>
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/ParametroCalculoController.java
1 package br.com.eselo.controller; 1 package br.com.eselo.controller;
2 2
  3 +import java.io.File;
  4 +import java.io.FileNotFoundException;
  5 +import java.io.FileOutputStream;
  6 +import java.io.IOException;
3 import java.util.ArrayList; 7 import java.util.ArrayList;
  8 +import java.util.HashMap;
4 import java.util.List; 9 import java.util.List;
  10 +import java.util.Map;
  11 +
  12 +import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  13 +import org.apache.poi.ss.usermodel.Cell;
  14 +import org.apache.poi.ss.usermodel.CellStyle;
  15 +import org.apache.poi.ss.usermodel.CreationHelper;
  16 +import org.apache.poi.ss.usermodel.Font;
  17 +import org.apache.poi.ss.usermodel.IndexedColors;
  18 +import org.apache.poi.ss.usermodel.Row;
  19 +import org.apache.poi.ss.usermodel.Sheet;
  20 +import org.apache.poi.ss.usermodel.Workbook;
  21 +import org.apache.poi.ss.util.CellRangeAddress;
5 22
6 import br.com.caelum.vraptor.Get; 23 import br.com.caelum.vraptor.Get;
7 import br.com.caelum.vraptor.Path; 24 import br.com.caelum.vraptor.Path;
@@ -17,7 +34,9 @@ import br.com.eselo.component.Messages; @@ -17,7 +34,9 @@ import br.com.eselo.component.Messages;
17 import br.com.eselo.component.UsuarioWeb; 34 import br.com.eselo.component.UsuarioWeb;
18 import br.com.eselo.dao.ParametroCalculoDAO; 35 import br.com.eselo.dao.ParametroCalculoDAO;
19 import br.com.eselo.dao.RecomendacaoDAO; 36 import br.com.eselo.dao.RecomendacaoDAO;
  37 +import br.com.eselo.model.Criterio;
20 import br.com.eselo.model.ParametroCalculo; 38 import br.com.eselo.model.ParametroCalculo;
  39 +import br.com.eselo.model.Recomendacao;
21 40
22 @Resource 41 @Resource
23 public class ParametroCalculoController { 42 public class ParametroCalculoController {
@@ -26,15 +45,15 @@ public class ParametroCalculoController { @@ -26,15 +45,15 @@ public class ParametroCalculoController {
26 private final Result result; 45 private final Result result;
27 private final Validator validator; 46 private final Validator validator;
28 private final UsuarioWeb usuarioWeb; 47 private final UsuarioWeb usuarioWeb;
29 - 48 +
30 protected static final int MODO_ADD = 1; 49 protected static final int MODO_ADD = 1;
31 protected static final int MODO_EDIT = 2; 50 protected static final int MODO_EDIT = 2;
32 protected static final int MODO_DELETE = 3; 51 protected static final int MODO_DELETE = 3;
33 protected static final int MODO_IMPORT = 4; 52 protected static final int MODO_IMPORT = 4;
34 53
35 public ParametroCalculoController(ParametroCalculoDAO _dao, 54 public ParametroCalculoController(ParametroCalculoDAO _dao,
36 - RecomendacaoDAO _daoRecomendacao, Result _result, Validator _validator,  
37 - UsuarioWeb _usuarioWeb) { 55 + RecomendacaoDAO _daoRecomendacao, Result _result,
  56 + Validator _validator, UsuarioWeb _usuarioWeb) {
38 dao = _dao; 57 dao = _dao;
39 result = _result; 58 result = _result;
40 validator = _validator; 59 validator = _validator;
@@ -49,24 +68,27 @@ public class ParametroCalculoController { @@ -49,24 +68,27 @@ public class ParametroCalculoController {
49 parametroCalculo.setTsInicio(new java.util.Date()); 68 parametroCalculo.setTsInicio(new java.util.Date());
50 inserirParametroCalculo(parametroCalculo); 69 inserirParametroCalculo(parametroCalculo);
51 70
52 - result.redirectTo(ParametroCalculoController.class).form(dao.getMaxId()); 71 + result.redirectTo(ParametroCalculoController.class)
  72 + .form(dao.getMaxId());
53 } 73 }
54 74
55 @Get("/parametrosCalculo/importar/") 75 @Get("/parametrosCalculo/importar/")
56 @Restrito(descricao = "PARAMETRO_CALCULO_ADICIONAR") 76 @Restrito(descricao = "PARAMETRO_CALCULO_ADICIONAR")
57 public void importar(long idParametroCalculo) { 77 public void importar(long idParametroCalculo) {
58 String mensagem; 78 String mensagem;
59 - if(idParametroCalculo==0){  
60 - criarNovoParametroCalculo(new ParametroCalculo(),MODO_ADD); 79 + if (idParametroCalculo == 0) {
  80 + criarNovoParametroCalculo(new ParametroCalculo(), MODO_ADD);
61 mensagem = "Novo parâmetro criado [sem recomendações ou critérios associados]!"; 81 mensagem = "Novo parâmetro criado [sem recomendações ou critérios associados]!";
62 - }else{ 82 + } else {
63 ParametroCalculo pc = dao.load(idParametroCalculo); 83 ParametroCalculo pc = dao.load(idParametroCalculo);
64 - this.criarNovoParametroCalculo(pc,MODO_IMPORT);  
65 - mensagem = "Parâmetro de Cálculo criado com base no parametro "+pc.getDescricao()+" com sucesso."; 84 + this.criarNovoParametroCalculo(pc, MODO_IMPORT);
  85 + mensagem = "Parâmetro de Cálculo criado com base no parametro "
  86 + + pc.getDescricao() + " com sucesso.";
66 } 87 }
67 - 88 +
68 result.include("mensagem", mensagem); 89 result.include("mensagem", mensagem);
69 - result.redirectTo(ParametroCalculoController.class).form(dao.getMaxId()); 90 + result.redirectTo(ParametroCalculoController.class)
  91 + .form(dao.getMaxId());
70 } 92 }
71 93
72 @Post("/parametrosCalculo") 94 @Post("/parametrosCalculo")
@@ -103,7 +125,7 @@ public class ParametroCalculoController { @@ -103,7 +125,7 @@ public class ParametroCalculoController {
103 if (ultimo != null) { 125 if (ultimo != null) {
104 ultimo.setTsFim(parametroCalculo.getTsInicio()); 126 ultimo.setTsFim(parametroCalculo.getTsInicio());
105 dao.update(ultimo); 127 dao.update(ultimo);
106 - }else if (parametroCalculo.getDescricao() == null) { 128 + } else if (parametroCalculo.getDescricao() == null) {
107 validator.add(new ValidationMessage(Messages 129 validator.add(new ValidationMessage(Messages
108 .getString("parametro_calculo.validacao.descricao"), 130 .getString("parametro_calculo.validacao.descricao"),
109 "parametroCalculo.descricao")); 131 "parametroCalculo.descricao"));
@@ -116,10 +138,12 @@ public class ParametroCalculoController { @@ -116,10 +138,12 @@ public class ParametroCalculoController {
116 @Restrito(descricao = "PARAMETRO_CALCULO_ATUALIZAR") 138 @Restrito(descricao = "PARAMETRO_CALCULO_ATUALIZAR")
117 public void atualizar(ParametroCalculo parametroCalculo) { 139 public void atualizar(ParametroCalculo parametroCalculo) {
118 140
119 - ParametroCalculo parametroCalculoCadastrado = dao.load(parametroCalculo.getId()); 141 + ParametroCalculo parametroCalculoCadastrado = dao.load(parametroCalculo
  142 + .getId());
120 parametroCalculoCadastrado.setTsFim(parametroCalculo.getTsFim()); 143 parametroCalculoCadastrado.setTsFim(parametroCalculo.getTsFim());
121 parametroCalculoCadastrado.setUsuario(parametroCalculo.getUsuario()); 144 parametroCalculoCadastrado.setUsuario(parametroCalculo.getUsuario());
122 - parametroCalculoCadastrado.setDescricao(parametroCalculo.getDescricao()); 145 + parametroCalculoCadastrado
  146 + .setDescricao(parametroCalculo.getDescricao());
123 147
124 if (parametroCalculo.getTsFim() != null) { 148 if (parametroCalculo.getTsFim() != null) {
125 if (parametroCalculo.getTsFim().before( 149 if (parametroCalculo.getTsFim().before(
@@ -129,48 +153,52 @@ public class ParametroCalculoController { @@ -129,48 +153,52 @@ public class ParametroCalculoController {
129 "O campo \"Fim\" deve ser maior que o campo \"Início\"!", 153 "O campo \"Fim\" deve ser maior que o campo \"Início\"!",
130 "parametroCalculo.tsFim")); 154 "parametroCalculo.tsFim"));
131 } 155 }
132 - }else if (parametroCalculo.getDescricao() == null) { 156 + } else if (parametroCalculo.getDescricao() == null) {
133 validator.add(new ValidationMessage(Messages 157 validator.add(new ValidationMessage(Messages
134 .getString("parametro_calculo.validacao.descricao"), 158 .getString("parametro_calculo.validacao.descricao"),
135 "parametroCalculo.descricao")); 159 "parametroCalculo.descricao"));
136 } 160 }
137 161
138 - // result.include("usuarioList", dao.getAllUsuarios());  
139 - // result.include("recomendacaoList", new RecomendacaoDAO(dao.getSession()).listAllAtivas(this.dao.load(parametroCalculo.getId())));  
140 - System.err.println(parametroCalculo.getId()+"Id do parametro de calculo");  
141 -  
142 - validator.onErrorUsePageOf(ParametroCalculoController.class).form(parametroCalculo.getId()); 162 + // result.include("usuarioList", dao.getAllUsuarios());
  163 + // result.include("recomendacaoList", new
  164 + // RecomendacaoDAO(dao.getSession()).listAllAtivas(this.dao.load(parametroCalculo.getId())));
  165 + System.err.println(parametroCalculo.getId()
  166 + + "Id do parametro de calculo");
  167 +
  168 + validator.onErrorUsePageOf(ParametroCalculoController.class).form(
  169 + parametroCalculo.getId());
143 170
144 dao.saveOrUpdate(parametroCalculoCadastrado); 171 dao.saveOrUpdate(parametroCalculoCadastrado);
145 172
146 - result.include("mensagem",  
147 - "Parâmetro de Cálculo alterado com sucesso."); 173 + result.include("mensagem", "Parâmetro de Cálculo alterado com sucesso.");
148 result.redirectTo(ParametroCalculoController.class).index(1); 174 result.redirectTo(ParametroCalculoController.class).index(1);
149 } 175 }
150 176
151 @Path("/parametrosCalculo/delete/{id}") 177 @Path("/parametrosCalculo/delete/{id}")
152 @Restrito(descricao = "PARAMETRO_CALCULO_EXCLUIR") 178 @Restrito(descricao = "PARAMETRO_CALCULO_EXCLUIR")
153 public void excluir(Long id) { 179 public void excluir(Long id) {
154 -  
155 - if(dao.listAll().size()>1){ 180 + if (dao.listAll().size() > 1) {
156 ParametroCalculo pa = dao.load(id); 181 ParametroCalculo pa = dao.load(id);
157 - if((pa.getTsFim()==null)){  
158 - dao.remove(id);  
159 -  
160 - pa = dao.getLastParametrosCalculo();  
161 - pa.setTsFim(null);  
162 - dao.update(pa);  
163 - result.include("mensagem", "Parametro de Cálculo excluído com sucesso.");  
164 - }else{  
165 - result.include("mensagem", "Parametro de Cálculo não pode ser excluído pois não está ativo."); 182 + if ((pa.getTsFim() == null)) {
  183 + dao.remove(id);
  184 +
  185 + pa = dao.getLastParametrosCalculo();
  186 + pa.setTsFim(null);
  187 + dao.update(pa);
  188 + result.include("mensagem",
  189 + "Parametro de Cálculo excluído com sucesso.");
  190 + } else {
  191 + result.include("mensagem",
  192 + "Parametro de Cálculo não pode ser excluído pois não está ativo.");
166 } 193 }
167 - }else{  
168 - result.include("mensagem", "Este é o único Parametro de Cálculo cadastrado e ele não pode ser excluído."); 194 + } else {
  195 + result.include("mensagem",
  196 + "Este é o único Parametro de Cálculo cadastrado e ele não pode ser excluído.");
169 } 197 }
170 - 198 +
171 result.redirectTo(ParametroCalculoController.class).lista(); 199 result.redirectTo(ParametroCalculoController.class).lista();
172 } 200 }
173 - 201 +
174 @Get("/parametrosCalculo") 202 @Get("/parametrosCalculo")
175 @Restrito(descricao = "PARAMETRO_CALCULO_LISTA") 203 @Restrito(descricao = "PARAMETRO_CALCULO_LISTA")
176 public List<ParametroCalculo> lista() { 204 public List<ParametroCalculo> lista() {
@@ -225,13 +253,15 @@ public class ParametroCalculoController { @@ -225,13 +253,15 @@ public class ParametroCalculoController {
225 result.include("parametroCalculo", parametroCalculo); 253 result.include("parametroCalculo", parametroCalculo);
226 return dao.listAll(parametroCalculo); 254 return dao.listAll(parametroCalculo);
227 } 255 }
228 - 256 +
229 @Get("/parametrosCalculo/atualizar/{id}") 257 @Get("/parametrosCalculo/atualizar/{id}")
230 @Restrito(descricao = "PARAMETRO_CALCULO_ATUALIZAR") 258 @Restrito(descricao = "PARAMETRO_CALCULO_ATUALIZAR")
231 public ParametroCalculo form(Long id) { 259 public ParametroCalculo form(Long id) {
232 ParametroCalculo parametroCalculo = this.dao.load(id); 260 ParametroCalculo parametroCalculo = this.dao.load(id);
233 result.include("usuarioList", dao.getAllUsuarios()); 261 result.include("usuarioList", dao.getAllUsuarios());
234 - result.include("recomendacaoList", new RecomendacaoDAO(dao.getSession()).listAllAtivas(parametroCalculo)); 262 + result.include("recomendacaoList",
  263 + new RecomendacaoDAO(dao.getSession())
  264 + .listAllAtivas(parametroCalculo));
235 265
236 return parametroCalculo; 266 return parametroCalculo;
237 } 267 }
@@ -244,37 +274,168 @@ public class ParametroCalculoController { @@ -244,37 +274,168 @@ public class ParametroCalculoController {
244 result.include("parametroCalculo", parametroCalculo); 274 result.include("parametroCalculo", parametroCalculo);
245 } 275 }
246 276
247 - private void criarNovoParametroCalculo(ParametroCalculo parametroCalculo, int tipo) {  
248 - 277 + private void criarNovoParametroCalculo(ParametroCalculo parametroCalculo,
  278 + int tipo) {
249 boolean ok = false; 279 boolean ok = false;
250 280
251 switch (tipo) { 281 switch (tipo) {
252 - case ParametroCalculoController.MODO_ADD:  
253 - parametroCalculo.setId(0L);  
254 - ok=true;  
255 - break;  
256 -  
257 - case ParametroCalculoController.MODO_IMPORT:  
258 - ok=true;  
259 - break; 282 + case ParametroCalculoController.MODO_ADD:
  283 + parametroCalculo.setId(0L);
  284 + ok = true;
  285 + break;
  286 +
  287 + case ParametroCalculoController.MODO_IMPORT:
  288 + ok = true;
  289 + break;
260 } 290 }
261 -  
262 - if(ok){  
263 - new CopiadorParametroCalculo().criarNovoParametroCalculo(parametroCalculo, usuarioWeb, dao.getSession());  
264 - }  
265 -  
266 -  
267 - 291 +
  292 + if (ok) {
  293 + new CopiadorParametroCalculo().criarNovoParametroCalculo(
  294 + parametroCalculo, usuarioWeb, dao.getSession());
  295 + }
  296 +
268 } 297 }
269 - 298 +
270 @Get("/parametrosCalculo/relatorio/{id}") 299 @Get("/parametrosCalculo/relatorio/{id}")
271 @Restrito(descricao = "PARAMETRO_CALCULO_RELATORIO") 300 @Restrito(descricao = "PARAMETRO_CALCULO_RELATORIO")
272 public ParametroCalculo relatorio(Long id) { 301 public ParametroCalculo relatorio(Long id) {
273 ParametroCalculo parametroCalculo = this.dao.load(id); 302 ParametroCalculo parametroCalculo = this.dao.load(id);
274 result.include("usuarioList", dao.getAllUsuarios()); 303 result.include("usuarioList", dao.getAllUsuarios());
275 - result.include("recomendacaoList", new RecomendacaoDAO(dao.getSession()).listAllAtivas(parametroCalculo)); 304 + result.include("recomendacaoList",
  305 + new RecomendacaoDAO(dao.getSession())
  306 + .listAllAtivas(parametroCalculo));
276 307
277 return parametroCalculo; 308 return parametroCalculo;
278 } 309 }
279 310
  311 + @Get("/parametrosCalculo/exportar/{id}/*")
  312 + @Restrito(descricao = "PARAMETRO_CALCULO_LISTA")
  313 + public File exportar(Long id) {
  314 + File relatorio = new File("workbook.ods");
  315 + ParametroCalculo parametroCalculo = this.dao.load(id);
  316 + List<Recomendacao> recomendacaoList = new RecomendacaoDAO(
  317 + dao.getSession()).listAllAtivas(parametroCalculo);
  318 +
  319 + Workbook wb = new HSSFWorkbook();
  320 + FileOutputStream fileOut;
  321 +
  322 + Map<String, CellStyle> styles = createStyles(wb);
  323 + CreationHelper createHelper = wb.getCreationHelper();
  324 + Sheet sheet = wb.createSheet("new sheet");
  325 + sheet.setPrintGridlines(false);
  326 + sheet.setDisplayGridlines(false);
  327 +
  328 + short rows = 0;
  329 + Row row = sheet.createRow(rows);
  330 + Cell cell = row.createCell(0);
  331 + cell.setCellValue(createHelper.createRichTextString(parametroCalculo
  332 + .getDescricao()));
  333 + cell.setCellStyle(styles.get("title"));
  334 + sheet.addMergedRegion(CellRangeAddress.valueOf("$A$1:$L$1"));
  335 + rows += 3;
  336 +
  337 + for (Recomendacao recomendacao : recomendacaoList) {
  338 + row = sheet.createRow(rows);
  339 + cell = row.createCell(0);
  340 + cell.setCellValue(
  341 + createHelper.createRichTextString("Recomendação "
  342 + + recomendacao.getNumeroRecomendacao()));
  343 + cell.setCellStyle(styles.get("subtitle"));
  344 + rows++;
  345 + sheet.addMergedRegion(CellRangeAddress.valueOf("$A$"+rows+":$L$"+rows));
  346 +
  347 + row = sheet.createRow(rows);
  348 + cell = row.createCell(1);
  349 + cell.setCellValue("Descrição");
  350 + cell.setCellStyle(styles.get("label"));
  351 + row.createCell(2).setCellValue(recomendacao.getDescricao());
  352 + rows++;
  353 +
  354 + row = sheet.createRow(rows);
  355 + cell = row.createCell(1);
  356 + cell.setCellValue("Peso");
  357 + cell.setCellStyle(styles.get("label"));
  358 + cell = row.createCell(2);
  359 + cell.setCellValue(recomendacao.getPeso());
  360 + cell.setCellStyle(styles.get("numeric"));
  361 + rows += 2;
  362 +
  363 + row = sheet.createRow(rows);
  364 + cell = row.createCell(1);
  365 + cell.setCellValue("Código");
  366 + cell.setCellStyle(styles.get("label"));
  367 + cell = row.createCell(2);
  368 + cell.setCellValue("Peso");
  369 + cell.setCellStyle(styles.get("label"));
  370 + cell = row.createCell(3);
  371 + cell.setCellValue("Critério");
  372 + cell.setCellStyle(styles.get("label"));
  373 + rows++;
  374 +
  375 + for (Criterio criterio : recomendacao.getCriterios()) {
  376 + row = sheet.createRow(rows);
  377 + row.createCell(1).setCellValue(criterio.getNumeroCriterio());
  378 + row.createCell(2).setCellValue(criterio.getPeso());
  379 + row.createCell(3).setCellValue(criterio.getDescricao());
  380 + rows++;
  381 + }
  382 +
  383 + rows += 2;
  384 + }
  385 +
  386 + try {
  387 + fileOut = new FileOutputStream(relatorio);
  388 + wb.write(fileOut);
  389 + } catch (FileNotFoundException e) {
  390 + e.printStackTrace();
  391 + } catch (IOException e) {
  392 + e.printStackTrace();
  393 + }
  394 +
  395 + return relatorio;
  396 + }
  397 +
  398 + private static Map<String, CellStyle> createStyles(Workbook wb) {
  399 + Map<String, CellStyle> styles = new HashMap<String, CellStyle>();
  400 +
  401 + CellStyle style;
  402 + Font fontLargeBold = wb.createFont();
  403 + fontLargeBold.setFontHeightInPoints((short) 12);
  404 + fontLargeBold.setFontName("Arial");
  405 + fontLargeBold.setBoldweight(Font.BOLDWEIGHT_BOLD);
  406 +
  407 + Font fontMediumBold = wb.createFont();
  408 + fontMediumBold.setFontHeightInPoints((short) 11);
  409 + fontMediumBold.setFontName("Arial");
  410 + fontMediumBold.setBoldweight(Font.BOLDWEIGHT_BOLD);
  411 +
  412 + Font fontNormalBold = wb.createFont();
  413 + fontNormalBold.setFontHeightInPoints((short) 10);
  414 + fontNormalBold.setFontName("Arial");
  415 + fontNormalBold.setBoldweight(Font.BOLDWEIGHT_BOLD);
  416 +
  417 + style = wb.createCellStyle();
  418 + style.setAlignment(CellStyle.ALIGN_CENTER);
  419 + style.setFont(fontLargeBold);
  420 + styles.put("title", style);
  421 +
  422 + style = wb.createCellStyle();
  423 + style.setAlignment(CellStyle.ALIGN_LEFT);
  424 + style.setFont(fontMediumBold);
  425 + style.setBorderBottom(CellStyle.BORDER_DOTTED);
  426 + style.setBottomBorderColor(IndexedColors.GREY_40_PERCENT.getIndex());
  427 + styles.put("subtitle", style);
  428 +
  429 + style = wb.createCellStyle();
  430 + style.setAlignment(CellStyle.ALIGN_LEFT);
  431 + style.setFont(fontNormalBold);
  432 + styles.put("label", style);
  433 +
  434 + style = wb.createCellStyle();
  435 + style.setAlignment(CellStyle.ALIGN_LEFT);
  436 + style.setDataFormat(wb.createDataFormat().getFormat("0"));
  437 + styles.put("numeric", style);
  438 +
  439 + return styles;
  440 + }
280 } 441 }
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroCalculo.java
@@ -23,6 +23,8 @@ import org.hibernate.annotations.Fetch; @@ -23,6 +23,8 @@ import org.hibernate.annotations.Fetch;
23 import org.hibernate.annotations.FetchMode; 23 import org.hibernate.annotations.FetchMode;
24 import org.hibernate.annotations.ForeignKey; 24 import org.hibernate.annotations.ForeignKey;
25 25
  26 +import br.com.eselo.component.Util;
  27 +
26 @Entity 28 @Entity
27 @Table(name = "sel_parametro_calculo") 29 @Table(name = "sel_parametro_calculo")
28 public class ParametroCalculo { 30 public class ParametroCalculo {
@@ -30,7 +32,7 @@ public class ParametroCalculo { @@ -30,7 +32,7 @@ public class ParametroCalculo {
30 public ParametroCalculo() { 32 public ParametroCalculo() {
31 this.recomendacoes = new ArrayList<Recomendacao>(); 33 this.recomendacoes = new ArrayList<Recomendacao>();
32 } 34 }
33 - 35 +
34 @Id 36 @Id
35 @SequenceGenerator(name = "sel_parametro_calculo_id_parametro_calculo_seq", sequenceName = "sel_parametro_calculo_id_parametro_calculo_seq") 37 @SequenceGenerator(name = "sel_parametro_calculo_id_parametro_calculo_seq", sequenceName = "sel_parametro_calculo_id_parametro_calculo_seq")
36 @GeneratedValue(strategy = GenerationType.AUTO, generator = "sel_parametro_calculo_id_parametro_calculo_seq") 38 @GeneratedValue(strategy = GenerationType.AUTO, generator = "sel_parametro_calculo_id_parametro_calculo_seq")
@@ -44,7 +46,7 @@ public class ParametroCalculo { @@ -44,7 +46,7 @@ public class ParametroCalculo {
44 @Column(name = "ts_fim", columnDefinition = "timestamp without time zone") 46 @Column(name = "ts_fim", columnDefinition = "timestamp without time zone")
45 @Temporal(TemporalType.TIMESTAMP) 47 @Temporal(TemporalType.TIMESTAMP)
46 private Date tsFim; 48 private Date tsFim;
47 - 49 +
48 @Column(name = "ds_descricao", nullable = false) 50 @Column(name = "ds_descricao", nullable = false)
49 private String descricao; 51 private String descricao;
50 52
@@ -56,7 +58,7 @@ public class ParametroCalculo { @@ -56,7 +58,7 @@ public class ParametroCalculo {
56 58
57 @OneToMany(mappedBy = "parametroCalculo", targetEntity = br.com.eselo.model.Recomendacao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) 59 @OneToMany(mappedBy = "parametroCalculo", targetEntity = br.com.eselo.model.Recomendacao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
58 private List<Recomendacao> recomendacoes; 60 private List<Recomendacao> recomendacoes;
59 - 61 +
60 @OneToMany(mappedBy = "parametroCalculo", targetEntity = br.com.eselo.model.Avaliacao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) 62 @OneToMany(mappedBy = "parametroCalculo", targetEntity = br.com.eselo.model.Avaliacao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
61 private List<Avaliacao> avaliacoes; 63 private List<Avaliacao> avaliacoes;
62 64
@@ -67,15 +69,14 @@ public class ParametroCalculo { @@ -67,15 +69,14 @@ public class ParametroCalculo {
67 public void setAvaliacoes(List<Avaliacao> avaliacoes) { 69 public void setAvaliacoes(List<Avaliacao> avaliacoes) {
68 this.avaliacoes = avaliacoes; 70 this.avaliacoes = avaliacoes;
69 } 71 }
70 -  
71 - public void addAvaliacao(Avaliacao avaliacao){ 72 +
  73 + public void addAvaliacao(Avaliacao avaliacao) {
72 this.avaliacoes.add(avaliacao); 74 this.avaliacoes.add(avaliacao);
73 } 75 }
74 -  
75 - public void removeAvaliacao(Avaliacao avaliacao){ 76 +
  77 + public void removeAvaliacao(Avaliacao avaliacao) {
76 this.avaliacoes.remove(avaliacao); 78 this.avaliacoes.remove(avaliacao);
77 } 79 }
78 -  
79 80
80 public List<Recomendacao> getRecomendacoes() { 81 public List<Recomendacao> getRecomendacoes() {
81 return recomendacoes; 82 return recomendacoes;
@@ -85,14 +86,14 @@ public class ParametroCalculo { @@ -85,14 +86,14 @@ public class ParametroCalculo {
85 this.recomendacoes = recomendacoes; 86 this.recomendacoes = recomendacoes;
86 } 87 }
87 88
88 - public void addRecomendacao(Recomendacao recomendacao){ 89 + public void addRecomendacao(Recomendacao recomendacao) {
89 this.recomendacoes.add(recomendacao); 90 this.recomendacoes.add(recomendacao);
90 } 91 }
91 -  
92 - public void removeRecomendacao(Recomendacao recomendacao){ 92 +
  93 + public void removeRecomendacao(Recomendacao recomendacao) {
93 this.recomendacoes.remove(recomendacao); 94 this.recomendacoes.remove(recomendacao);
94 } 95 }
95 - 96 +
96 public Long getId() { 97 public Long getId() {
97 return id; 98 return id;
98 } 99 }
@@ -124,7 +125,7 @@ public class ParametroCalculo { @@ -124,7 +125,7 @@ public class ParametroCalculo {
124 public void setUsuario(Usuario usuario) { 125 public void setUsuario(Usuario usuario) {
125 this.usuario = usuario; 126 this.usuario = usuario;
126 } 127 }
127 - 128 +
128 public String getDescricao() { 129 public String getDescricao() {
129 return descricao; 130 return descricao;
130 } 131 }
@@ -132,4 +133,9 @@ public class ParametroCalculo { @@ -132,4 +133,9 @@ public class ParametroCalculo {
132 public void setDescricao(String descricao) { 133 public void setDescricao(String descricao) {
133 this.descricao = descricao; 134 this.descricao = descricao;
134 } 135 }
  136 +
  137 + public String getSlug() {
  138 + return Util.toSlug(descricao);
  139 + }
  140 +
135 } 141 }