Skip to content

Commit

Permalink
Inclusão do CRUD de categorias, ajustes no CRUD de produtos
Browse files Browse the repository at this point in the history
  • Loading branch information
jose.araujo committed Jun 20, 2019
1 parent 46c7288 commit 250014b
Show file tree
Hide file tree
Showing 9 changed files with 219 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import br.com.aioprojs.controleestoque.exception.ResourceNotFoundException;
Expand Down Expand Up @@ -67,11 +66,17 @@ public ModelAndView exibirInclusaoProduto(Produto produto) {
}

@GetMapping("/produtos/editarProduto")
public ModelAndView editarProduto(Produto produto) {
public ModelAndView exibirAlteracaoProduto(Produto produto) {

ModelAndView model = new ModelAndView("/produto/incluirProduto");
model.addObject("produto", produto);

List<CategoriaProduto> listaCategorias = categoriaProdutoSercice.getListaCategorias();
model.addObject("listaCategorias", listaCategorias);

List<Fornecedor> listaFornecedores = fornecedorService.getListaFornecedores();
model.addObject("listaFornecedores", listaFornecedores);

return model;
}

Expand All @@ -94,7 +99,7 @@ public ModelAndView alterarProduto(@PathVariable("id") ObjectId id) throws Resou
LOG.debug("Buscando produto para alteração.");

Produto produto = produtoService.getProduto(id);
return exibirInclusaoProduto(produto);
return exibirAlteracaoProduto(produto);
}

@GetMapping("/produtos/deletarProduto/{id}")
Expand All @@ -107,40 +112,40 @@ public ModelAndView deletarProduto(@PathVariable("id") ObjectId produtoId) throw

// Controle de categorias de produtos

@GetMapping("/categorias/listaCategorias")
@GetMapping("/categorias/listar")
public String listarCategorias(Model model) {
List<CategoriaProduto> listaCategorias = categoriaProdutoSercice.getListaCategorias();
model.addAttribute("listaCategorias", listaCategorias);

return "listaCategorias";
return "/categoria/exibirCategorias";
}

@GetMapping("/categorias/exibirFormAdicionar")
@GetMapping("/categorias/adicionarCategoria")
public String exibirFormAdicionarCategoria(Model model) {
LOG.debug("Método para criação do formulário de cadastro de Categorias de Produtos.");
CategoriaProduto categoriaProduto = new CategoriaProduto();
model.addAttribute("categoriaProduto", categoriaProduto);
model.addAttribute("categoria", categoriaProduto);

return "formCategoria";
return "/categoria/incluirCategoria";
}

@PostMapping("/categorias/salvarCategoria")
public String salvarCategoria(@ModelAttribute("categoria") CategoriaProduto categoriaProduto) {
categoriaProdutoSercice.salvarCategoria(categoriaProduto);
return "redirect:/produto/categoria/listar";
return "redirect:/categorias/listar";
}

@GetMapping("/categoria/exibirFormAlterar")
public String exibirFormAlterarCategoria(@RequestParam ObjectId categoriaId, Model model) throws ResourceNotFoundException {
CategoriaProduto categoriaProduto = categoriaProdutoSercice.getCategoria(categoriaId);
@GetMapping("/categorias/alterarCategoria/{id}")
public String exibirFormAlterarCategoria(@ModelAttribute("id") ObjectId id, Model model) throws ResourceNotFoundException {
CategoriaProduto categoriaProduto = categoriaProdutoSercice.getCategoria(id);
model.addAttribute("categoria", categoriaProduto);

return "formCategoria";
return "/categoria/editarCategoria";
}

@GetMapping("/categorias/deletarCategoria")
public String deletarCategoria(@RequestParam ObjectId categoriaId) throws ResourceNotFoundException {
categoriaProdutoSercice.removerCategoria(categoriaId);
return "redirect:/produto/categoria/listar";
@GetMapping("/categorias/removerCategoria/{id}")
public String deletarCategoria(@ModelAttribute("id") ObjectId id) throws ResourceNotFoundException {
categoriaProdutoSercice.removerCategoria(id);
return "redirect:/categorias/listar";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,22 @@
public class CategoriaProduto {

@Id private ObjectId id;
private Integer identificador;
@Indexed
private String nome;
@DBRef
private List<Produto> listaProdutos;
@Indexed private String nome;
private String descricao;
@DBRef private List<Produto> listaProdutos;

public CategoriaProduto() {
super();
}

public CategoriaProduto(Integer identificador, String nome, List<Produto> listaProdutos) {
super();
this.identificador = identificador;
this.nome = nome;
this.listaProdutos = listaProdutos;
}

public CategoriaProduto(ObjectId id, Integer identificador, String nome, List<Produto> listaProdutos) {
public CategoriaProduto(ObjectId id, String nome, String descricao, List<Produto> listaProdutos) {
super();
this.id = id;
this.identificador = identificador;
this.nome = nome;
this.descricao = descricao;
this.listaProdutos = listaProdutos;
}

public ObjectId getId() {
return id;
}
Expand All @@ -45,14 +36,6 @@ public void setId(ObjectId id) {
this.id = id;
}

public Integer getIdentificador() {
return identificador;
}

public void setIdentificador(Integer id) {
this.identificador = id;
}

public String getNome() {
return nome;
}
Expand All @@ -61,6 +44,14 @@ public void setNome(String nome) {
this.nome = nome;
}

public String getDescricao() {
return descricao;
}

public void setDescricao(String descricao) {
this.descricao = descricao;
}

public List<Produto> getListaProdutos() {
return listaProdutos;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="en"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="default">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Controle de Estoque</title>
<link rel="stylesheet" type="text/css" href= "/css/bootstrap.min.css" />
</head>
<body>
<div class="container">
<div class="col-md-offset-2 col-md-7">
<h3 class="text-center">Formulário de cadastro de categorias</h3>
<div class="panel panel-info">
<div class="panel-heading">
<div class="panel-title">Editar dados da categoria</div>
</div>
<div class="panel-body">
<form action="#" th:action="@{/categorias/salvarCategoria}" class="form-horizontal"
method="post" th:object="${categoria}">

<input type="hidden" th:field="*{id}"/>

<div class="form-group">
<label for="nome" class="col-md-3 control-label">Nome</label>
<div class="col-md-9">
<input th:field="*{nome}" class="form-control" />
</div>
</div>
<div class="form-group">
<label for="descricao" class="col-md-3 control-label">Descrição</label>
<div class="col-md-9">
<input th:field="*{descricao}" class="form-control" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-primary">Confirmar</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>

<script type="text/javascript" src="/js/jquery-3.4.1.min.js" /></script>
<script type="text/javascript" src="/js/bootstrap.min.js" /></script>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<!DOCTYPE html>
<html lang="en"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="default">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Controle de Estoque</title>
<link rel="stylesheet" type="text/css" href= "/css/bootstrap.min.css" />
</head>
<body>
<div class="container">
<div class="col-md-offset-1 col-md-10">
<h3 class="text-center">Tela de consulta de categorias</h3>
<hr />

<input type="button" value="Adicionar Categoria" onclick="window.location.href='/categorias/adicionarCategoria'; return false;" class="btn btn-primary" /> <br /> <br />
<div class="panel panel-info">
<div class="panel-heading">
<div class="panel-title">Listagem das Categorias</div>
</div>
<div class="panel-body">
<table class="table table-striped table-bordered">
<tr>
<th>Nome</th>
<th>Descrição</th>
<th>Ação</th>
</tr>
<tr th:each="categoria : ${listaCategorias}">
<td th:text="${categoria.nome}"></td>
<td th:text="${categoria.descricao}"></td>
<td>
<div class="btn-group pull-right">
<a class="btn btn-sm btn-primary" th:href="@{/categorias/alterarCategoria/{id}(id=${categoria.id})}" >Editar</a>
<a class="delete btn btn-sm btn-danger" th:href="@{/categorias/removerCategoria/{id}(id=${categoria.id})}">Excluir</a>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>

</div>
<div class="footer">
<script type="text/javascript" src="/js/jquery-1.11.1.min.js" /></script>
<script type="text/javascript" src="/js/bootstrap.min.js" /></script>
</div>

</body>

</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="en"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="default">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Controle de Estoque</title>
<link rel="stylesheet" type="text/css" href= "/css/bootstrap.min.css" />
</head>
<body>
<div class="container">
<div class="col-md-offset-2 col-md-7">
<h3 class="text-center">Formulário de cadastro de categorias</h3>
<div class="panel panel-info">
<div class="panel-heading">
<div class="panel-title">Incluir nova categoria</div>
</div>
<div class="panel-body">
<form action="#" th:action="@{/categorias/salvarCategoria}" class="form-horizontal"
method="post" th:object="${categoria}">

<div class="form-group">
<label for="nome" class="col-md-3 control-label">Nome</label>
<div class="col-md-9">
<input th:field="*{nome}" class="form-control" />
</div>
</div>
<div class="form-group">
<label for="descricao" class="col-md-3 control-label">Descrição</label>
<div class="col-md-9">
<input th:field="*{descricao}" class="form-control" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-primary">Confirmar</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>

<script type="text/javascript" src="/js/jquery-3.4.1.min.js" /></script>
<script type="text/javascript" src="/js/bootstrap.min.js" /></script>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ public void contextLoads() {
public void whenFindById_thenReturnProduto() {

CategoriaProduto cereais = new CategoriaProduto();
cereais.setIdentificador(1002);
cereais.setNome("Cereais");
cereais.setDescricao("Grupo de alimentos perecíveis composto por grãos e sementes");

testEntityManager.persist(cereais);
testEntityManager.flush();
Expand Down

0 comments on commit 250014b

Please sign in to comment.